ICSP หรือไมโครคอนโทรลเลอร์ที่ตั้งโปรแกรมล่วงหน้า


11

ฉันได้ออกแบบ PCB สำหรับการผลิตขนาดเล็ก ขณะนี้ฉันกำลังบัดกรีพวกมันเป็นครั้งละ 20 ชุด PCB นี้ใช้ไมโครคอนโทรลเลอร์ ATMEGA168 ซึ่งฉันตั้งโปรแกรมก่อนบัดกรีกับบอร์ด - วิธีนี้ใช้ได้ดีสำหรับฉันในขณะนี้

ฉันกำลังมองหาที่มีจำนวน 200 แผงผลิตและประกอบให้ฉันเป็นผลิตภัณฑ์ที่ฉันออกแบบดูเหมือนจะเป็นที่นิยมมาก มันจะเป็นการดีกว่าไหมถ้าจะรวมส่วนหัว ICSP ไว้บนบอร์ดหรือเก็บโปรแกรม IC ล่วงหน้าไว้ด้วย? การเขียนโปรแกรมซ้ำของบอร์ดหลังจากผลิตหรือประกอบไม่ได้เป็นคุณสมบัติที่ตั้งใจหรือจำเป็น

ฉันไม่แน่ใจว่าจะทำสิ่งนี้ได้อย่างไรในสภาพแวดล้อมการผลิตขนาดใหญ่? การเพิ่มส่วนหัว ICSP จะเพิ่มต้นทุนการผลิตเล็กน้อยดังนั้นการเขียนโปรแกรมล่วงหน้าเป็นมาตรฐานหรือไม่

คำตอบ:


18

ฉันจะแนะนำให้รวมส่วนหัวในปริมาณประเภทนั้น (เล็ก) เสมอ หากคุณมีปริมาณมากขึ้นคุณสามารถพิจารณาแผ่นสำหรับหมุด pogo (คุณต้องติดตั้งเพื่อยึด PCB ในแนวตั้ง) หรือในปริมาณของคุณคุณสามารถใช้สายเคเบิลเชื่อมต่อแท็กหนึ่งซึ่งต้องใช้เพียงหลุมและไม่มีคนอยู่ แผ่นอิเล็กโทรด (มันล็อคลงบนบอร์ด)

ป้อนคำอธิบายรูปภาพที่นี่

เช่นเดียวกับการอนุญาตให้คุณกู้คืนจากความต้องการการอัปเดตการเขียนโปรแกรมนี้จะช่วยให้คุณมีสภาผู้ประกอบการเติมบอร์ดก่อนการเขียนโปรแกรมซึ่งสามารถปรับปรุงโลจิสติกส์

การตั้งโปรแกรมล่วงหน้าเป็นตัวเลือกอย่างแน่นอนแม้ในปริมาณการผลิต (คุณสามารถให้ตัวแทนจำหน่ายทำเพื่อคุณ) แต่ดูเหมือนว่าส่วนใหญ่จะใช้ในแอปพลิเคชันที่ง่ายที่สุด โดยปกติชิปบนแผงวงจรจะถูกตั้งโปรแกรม (หรือสามารถตั้งโปรแกรม) โพสต์ประกอบ


ดูเหมือนว่าเป็นทางออกที่ดี - ขอบคุณสำหรับความช่วยเหลือของคุณสายเคเบิลเหล่านั้นดูมีประโยชน์ทีเดียว!
edcs

1
แท็กเชื่อมต่อทำงานได้ดีสำหรับเรื่องนี้ นอกจากนี้คุณยังสามารถรับรุ่นที่ไม่มีหมุดล็อค (พลาสติกสีดำที่ด้านขวาของภาพ) ซึ่งใช้แรงกดดันหรือแผ่นรองหลังซึ่งจับหมุดแทน โปรดทราบว่าสายเคเบิลภาพประมาณ $ 50 ในด้านบวกรายชื่อ PCB มีประมาณ $ 0
Ben Jackson

20

หากคุณมีที่ว่างสำหรับส่วนหัวนั่นอาจเป็นตัวเลือกที่ดีที่สุดและหมุดที่เซมาโก้แนะนำเล็กน้อยเป็นวิธีที่ดีในการยึดตัวเชื่อมต่อไว้โดยไม่เพิ่มความซับซ้อน

แต่นี่เป็นวิธีทางเลือกสำหรับบอร์ดที่คุณไม่มีพื้นที่ให้พอดีกับส่วนหัวหรือส่วนหัวมาตรฐานไม่สามารถทำงานทดสอบการเขียนโปรแกรม / การตั้งค่า / บอร์ดทั้งหมดได้สำเร็จ

รับ PCB แฟคเตอร์ขนาดเล็กตามที่นี่ (เส้นผ่าศูนย์กลาง 33 มม.) ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถจัดเค้าโครงด้วยคะแนนทดสอบ (ติดป้ายด้านหลัง) ป้อนคำอธิบายรูปภาพที่นี่

และสร้างการติดตั้งการทดสอบสำหรับมัน (โดยใช้Pogo Pins ) ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้ต้องใช้ความสามารถในการขึ้นรูปและอย่างน้อยก็เจาะเสา (เพราะหมุด pogo จะต้องอยู่ในแนวตั้ง) อย่างไรก็ตามหากคุณยินดีที่จะเสี่ยง PCB ต้นแบบคุณสามารถหนีบมันลงบนแผ่นวัสดุและ "ตรวจสอบ" ผ่านหลุมทดสอบเพื่อรับหมุด pogo ในตำแหน่งที่ถูกต้อง (ฉันได้รับ 10 PCBs สำหรับราคาที่ต่ำอย่างน่าขันจาก Itead ดังนั้นการสูญเสียอย่างใดอย่างหนึ่งจึงไม่ใช่เรื่องใหญ่)

ด้วยเครื่องกลึงและโรงโม่การสร้างเสาและที่ยึดเพื่อค้นหา PCB ในตำแหน่งที่ถูกต้องเป็นเพียงแค่หัวแหลม แต่ก็ไม่ยากเกินไปกับเครื่องมือที่ง่ายกว่า

จากนั้นคุณก็พอดีกับ PCB แต่ละโปรแกรมและทดสอบ โดยทั่วไปแล้วตัวเชื่อมต่อหลวมจะไปที่หมุดส่วนหัวบน TI Launchpad ซึ่งใช้สำหรับการเขียนโปรแกรม MPU (TI MSP430) นี้ผ่านทางอินเตอร์เฟส SBW แต่หลักการเดียวกันนี้จะใช้กับ JTAG หรืออินเตอร์เฟสอื่น ๆ (สายเคเบิลสีน้ำตาลที่ด้านบนเป็นสาย co-ax ที่มีสัญญาณการสอบเทียบไปยังตัวนับความถี่) ป้อนคำอธิบายรูปภาพที่นี่

ฐานมะฮอกกานีขัดมันเป็นตัวเลือก; ฉันเพิ่งชอบสไตล์ steampunk สำหรับการทดสอบของฉัน


นี่คือคำตอบที่ดีและขอขอบคุณที่สละเวลาเพื่อให้คำตอบที่มีประโยชน์อย่างละเอียด! ฉันไม่ได้ทำเครื่องหมายว่าเป็นคำตอบเพราะในกรณีของฉันฉันมีพื้นที่ให้พอดีกับส่วนหัว ICSP แต่เป็นสิ่งที่ฉันควรทราบถ้าฉันต้องสร้างอะไรเล็ก ๆ
edcs

2
นั่นเป็นจิ๊กที่น่ารัก (หรือว่าเป็นโคม?) มีอะไรที่สำคัญกับมุม PCB อย่างชาญฉลาดหรือแค่เรียงต่อกันด้วยตาเปล่า?
Spehro Pefhany

ฉันจ้องมองหมุด pogo ผ่านหลุมทดสอบที่มองเห็นได้ก่อนที่ฉันจะกดลงและเหวี่ยงที่หนีบเอาไว้ แต่มันก็ใช้งานได้ บน PCB ขนาดใหญ่ฉันขอแนะนำหมุดตำแหน่งสองสามอันเช่นในรูยึด PCB
Brian Drummond

13

ฉันมักจะเพิ่มที่ว่างสำหรับส่วนหัว ICSP แม้ว่าจะไม่ได้บรรจุ ฉันมีสามวิธีในการทำในขณะนี้ขึ้นอยู่กับสถานการณ์

หนึ่งในการออกแบบของฉันมีส่วนหัวพิทช์ที่ละเอียดมากซึ่งฉันได้สร้างอแด็ปเตอร์ (เส้นลวดแกนแข็ง 0.6 มม. เหมาะสำหรับมัน):

ป้อนคำอธิบายรูปภาพที่นี่

ฉันใช้ตัวเชื่อมต่อนี้เมื่อพื้นที่ว่างอยู่ในระดับพรีเมียม (ขออภัยมันเบลอกล้องในโทรศัพท์ของฉันไม่ได้เป็นอะไร)

ข้อตกลงที่สองที่ฉันมักใช้คือรวม ICSP ไว้ในส่วนหัวอื่น หากสามารถใช้พิน ICSP เป็นพิน GPIO ได้และคุณสามารถใช้กับการเชื่อมต่อที่ถอดออกได้ดังนั้นจึงง่ายพอที่จะรวมการเชื่อมต่อ ICSP อื่น ๆ ที่คุณอาจต้องการ (MCLR เป็นต้น) ในราคาที่ถูกที่สุด จากนั้นคุณเพียงแค่เสียบโปรแกรมเมอร์ของคุณเข้ากับส่วนหัวนั้นด้วยอะแดปเตอร์ที่น่าจะง่ายพอที่จะทำ

วิธีที่สามคือการจัดทำส่วนหัว "เซ" หรือ "ออฟเซ็ต" สำหรับ ICSP ฉันใช้สิ่งนี้เป็นส่วนใหญ่ในบอร์ดการพัฒนาที่ผู้ใช้อาจต้องการทำ ICSP แต่ไม่ต้องการทำลายบอร์ดของพวกเขาโดยการบัดกรีส่วนหัวอย่างถาวร รอยเท้านี้ช่วยให้ส่วนหัวมาตรฐานสามารถกดได้และสัมผัสได้ดีโดยไม่ต้องบัดกรี:

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อคุณเริ่มจัดการกับปริมาณที่มากขึ้นมันจะคุ้มค่ามากขึ้นในการให้ผู้ผลิตชิปตั้งโปรแกรมล่วงหน้าให้กับเฟิร์มแวร์ของคุณ ฉันคิดว่าผู้ผลิตรายใหญ่ทั้งหมดให้สิ่งอำนวยความสะดวกนั้น


ขอบคุณสำหรับคำตอบอย่างละเอียด - ข้อมูลที่เป็นประโยชน์อย่างแน่นอนที่นี่! ฉันไม่ยอมรับคำตอบของคุณเพราะฉันจะใช้สายเคเบิลเชื่อมต่อของแท็กที่แนะนำ แต่วิธีการของขาที่เซจะทำงานได้ดีเช่นกัน
edcs

แอทเมลเป็นตัวเลือกอย่างแน่นอน
Ignacio Vazquez-Abrams

2
รอยเท้าหัวเซที่มีความบริสุทธิ์ +1
Vladimir Cravero

5

หากมีใครใช้หน่วยประมวลผลที่สามารถ reprogrammed ในวงจรฉันขอแนะนำว่าบอร์ดได้รับการออกแบบในลักษณะที่จะอนุญาตให้ใช้แม้ว่าจริง ๆ แล้วการใช้คุณลักษณะจะต้องทำให้การติดตั้งเพื่อวัตถุประสงค์เฉพาะและหนึ่งไม่ วางแผนที่จะสร้าง หากพบปัญหาเฟิร์มแวร์หลังจากผลิตบอร์ดจำนวนมากการสร้างฟิกซ์เจอร์ซึ่งสามารถดัดแปลงบอร์ดเหล่านั้นอาจมีราคาถูกกว่าการสร้างใหม่หรือสร้างใหม่

ในบางกรณีวิธีการที่ดีอาจเลือกเค้าโครง I / O ของบอร์ดเพื่อให้พินตัวควบคุมที่จำเป็นสำหรับการโปรแกรมซ้ำในวงจรมีวัตถุประสงค์เพื่อที่ "เป็นธรรมชาติ" ส่งผลให้พวกมันถูกสัมผัสกับจุดสัมผัสที่เข้าถึงได้ง่าย ตัวอย่างเช่นบอร์ดที่ออกแบบมาเพื่อใช้กับหน้าสัมผัสที่เป็นโลหะอาจมีหน้าสัมผัสที่ต่อกับขาตั้งโปรแกรมในวงจร การออกแบบดังกล่าวไม่จำเป็นต้องใช้พื้นที่ในเค้าโครงสำหรับตัวเชื่อมต่อการเขียนโปรแกรม แต่โดยเฉพาะอย่างยิ่งถ้าหน้าสัมผัสแบตเตอรี่มีขนาดปกติก็อนุญาตให้ตัวเชื่อมต่อการเขียนโปรแกรมเข้าถึงได้ด้วยหน้าสัมผัสแบบสปริงที่เรียบง่าย

โปรดทราบว่าไม่จำเป็นว่าจะต้องมีรหัสทดสอบหรือไม่ การเปลี่ยนจากชิปหนึ่งชุดไปเป็นชิปถัดไปอาจทำให้เกิดปัญหาที่ไม่คาดคิดได้ ตัวอย่างเช่นฉันออกแบบผลิตภัณฑ์ที่ควรจะปิดตัวเองภายใต้การควบคุมของโปรเซสเซอร์โดยให้ตัวประมวลผลเอาต์พุต "สูง" บนพินเมื่อมันควรจะเป็น "เปิด" ในชุดแรกของ 10,000 หน่วยทุกอย่างทำงานได้ดี แต่ในภายหลังชุดประมวลผลจะเริ่มทำงานผิดพลาดเมื่อแรงดันไฟฟ้าของมันตีประมาณ 2 โวลต์และสามารถสลับขาที่กลับไปที่ "สูง"; เอาต์พุต "สูง" 2 โวลต์นั้นแทบจะไม่เพียงพอที่จะเปิดเครื่อง เนื่องจากตัวประมวลผลถูกระบุให้อยู่ในโหมดสลีปจนถึง IIRC 1.6 โวลต์ เป็นไปได้ที่จะแก้ไขปัญหาด้วยการตั้งโปรแกรมใหม่เพื่อให้เข้าสู่โหมดสลีปเมื่อเปิดใช้งานสถานะการปิดเครื่อง หากไม่สามารถทำการ reprogramming ดังกล่าวได้จะต้องมีการทำใหม่ที่มีราคาแพงกว่า (หรือการทำลายและการสร้างใหม่)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.