คุณจะโจมตีบอร์ดใหม่ได้อย่างไร


24

คุณได้รับ PCB กลับมาจากผู้ผลิต มันเป็นการออกแบบใหม่คุณมีส่วนสำคัญในการทำขนมปัง แต่คุณรู้ว่ามันจะมีปัญหา มีหลายสิ่งมากเกินไปที่อาจทำให้เกิดปัญหาเช่น:

  • ข้อผิดพลาดในแผนผัง
  • ข้อผิดพลาดในเค้าโครงไม่พบโดย ERC / DRC
  • วางชิ้นส่วนผิดระหว่างการบัดกรี
  • กางเกงขาสั้นและชอบในระหว่างการบัดกรี
  • การรวมกันดังกล่าวข้างต้น

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

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

วิธีนี้ใช้งานได้ แต่ช้ามาก ฉันยังต้องแสดงความคิดเห็น / แสดงความคิดเห็นในรหัสใด ๆ ที่ถือว่ามีฮาร์ดแวร์บางตัว

ไม่มีใครมีเคล็ดลับ / คำแนะนำเกี่ยวกับวิธีการเข้าถึง PCBs ที่ออกแบบใหม่หรือไม่

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


2
อาจเป็นความคิดที่ดีในการเติมแหล่งจ่ายไฟและการกระจายของคุณรวมถึงฝาปิดแบบจำนวนมากและบายพาส หากคุณมีฝาแทนทาลัมอยู่ด้านหลังคุณจะรู้ได้เร็ว จากนั้นตรวจสอบว่า MCU (และอื่น ๆ ) มีแรงดันไฟฟ้าที่ถูกต้องที่พินที่ถูกต้องก่อนที่จะไปยังอุปกรณ์เหล่านั้น
JustJeff

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

2
เมื่อคุณใช้กำลังไฟฟ้าเข้าเริ่มต้นด้วยขีด จำกัด กระแสไฟต่ำ
starblue

1
ควรเป็นวิกิชุมชน
Brian Carlton

1
@Morten - อ่าเข้าท่า คุณพูดถูกแคปไม่น่าจะทำให้เกิดปัญหาได้
Kevin Vermeer

คำตอบ:


10

ฉันได้ตัดสินใจแล้วว่าการทำขนมปังบอร์ดก่อนหน้านี้เป็นการเสียเวลานอกเสียจากว่าจะมีแง่มุมของการแสดงที่คุณต้องวัดด้วยตัวเอง

ฉันยังคิดว่าการสร้างกระดานเป็นชิ้น ๆ เป็นการเสียเวลา การดีบักฮาร์ดแวร์เริ่มต้นใช้เวลาเพียงหนึ่งหรือสองวัน ปัญหาที่ละเอียดอ่อนใด ๆ จะไม่ปรากฏจนกว่าจะรวมซอฟต์แวร์แล้ว ฉันต้องการดีบั๊กหนึ่งวงจร (ครบวงจร) มากกว่าการลดลงของวงจรเฉพาะกิจ

เพียงสร้างสิ่ง! ประกอบบอร์ดทั้งหมดและเพิ่มพลัง ดูที่แรงดันไฟฟ้า mA มีจำนวนเท่าใด ส่วนไหนที่ร้อนแรง? ส่วนไหนที่อบอุ่น จากนั้นลองเบิร์มเฟิร์มแวร์ลงบนอะไรก็ตามที่ไมโครคอนโทรลเลอร์อยู่บนบอร์ด จากนั้นเริ่มเขียนเฟิร์มแวร์ รับนาฬิกาและสลับเข็ม รับการสื่อสารแบบอนุกรม (หรืออะไรก็ตาม) ขึ้น ตอนนี้เขียนโปรแกรมทดสอบสำหรับอุปกรณ์ต่อพ่วงแต่ละอัน จากนั้นสร้างฟิกซ์เจอร์ทดสอบการผลิตและเริ่มเขียนเฟิร์มแวร์ "ของจริง"


แก้ไข:

ในการค้นหารางที่ติดอยู่

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

เทคนิคที่คล้ายกันทำงานเพื่อค้นหาร่องรอยที่สั้นบนกระดานที่มีประชากรอยู่ เรียกใช้กระดานโดยใช้ขอบเขตเพื่อค้นหาร่องรอย "ดิจิตอล" ที่อยู่ในช่วงแรงดันไฟฟ้าที่อยู่ระหว่าง


ฉันใช้วิธีการเดียวกัน มันใช้งานได้ แต่สองสามครั้งมันกลับมากัดฉันค่อนข้างแย่ ครั้งล่าสุดที่มันเป็นช่องเสียบที่ดูไร้เดียงสาภายใต้คอนเนคเตอร์ที่ผ่านการชุบในระหว่างการผลิตและทำให้พื้นดินและเครื่องบินพลังงานสั้นลง ความผิดของฉันเองทั้งหมด แต่มันเป็นข้อผิดพลาดที่น่าผิดหวังและหายาก
morten

1
หากต้องการใช้วิธี "แค่สร้างสิ่ง" ฉันคิดว่าฉันต้องสั่งมากกว่า PCB แผ่นเดียว
มอร์เทน

ฉันเคยเห็นโพรบ "squeaker" ใช้เพื่อจุดประสงค์ที่คล้ายกัน - เป็นศูนย์ในระยะสั้น น่าเศร้าที่ฉันไม่พบลิงค์ไปยังผลิตภัณฑ์
Toybuilder


20

ฉันทำมันโดยการเติมบอร์ดด้วยขั้นต่ำเปล่าในขั้นต้นเริ่มต้นให้อุปกรณ์ทำงานก่อนจากนั้น MCU จากนั้นเพิ่มระบบย่อยต่าง ๆ ทีละตัวและทดสอบพวกมันก่อนดำเนินการต่อเขียนซอฟต์แวร์ทดสอบตามความจำเป็น ฉันไม่พบกระบวนการเลยแม้แต่น้อย

ฉันมีบอร์ดที่มีความซับซ้อนไม่ผ่านการทดสอบบอร์ดใด ๆ มีค่าใช้จ่ายเพิ่มเติม แต่ก็คุ้มค่า


3
ใช้เวลาเพียงหนึ่งข้อผิดพลาดที่สำคัญพบว่าวิธีนี้จะทำให้มันเร็วขึ้นมาก
Kortuk

11

ฉันเพียงเขียงหั่นขนมวงจรเล็กมาก จากนั้นฉันก็บัดกรีวงจรเล็ก ๆ ลงบนกระดานโปรโต หากทำงานกับชิป SMD จะช่วยให้ได้รับอะแดปเตอร์ SMD-> Thru-hole

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

เมื่อฉันมีหน่วยการสร้างทำงานบนกระดาน dev ฉันย้ายไปยัง PCB หากแผนผังเปลี่ยนแปลงตลอดเวลาในการสร้าง PCB ฉันจะกลับไปทำใหม่และสร้างบล็อคและทดสอบพวกมันบนกระดาน dev อีกครั้ง


ในหมายเหตุด้านข้างแทนที่จะแสดงความคิดเห็นรหัสคุณควรใช้คำสั่ง #define และ #ifdef preprocessor มันทำให้ง่ายขึ้นอย่างมากในการเพิ่มและลบบล็อคการทำงานของรหัสใน MCU


ฟังดูเหมือนฉันจะทำอย่างไรซึ่งฉันรู้สึกว่าเป็นวิธีที่ดีมากในการพัฒนาการออกแบบ นอกจากนี้ยังทำให้สามารถนำชิ้นส่วนต่างๆมาใช้ใหม่ได้ในภายหลัง
Trygve Laugstøl

9

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


อืมคำแนะนำดีมาก! ด้วยเหตุผลบางอย่างที่ฉันไม่ได้คิดเกี่ยวกับ "การออกแบบเพื่อการทดสอบ" ในบริบทนี้มาก่อน
morten

2
คุณสามารถยกระดับไปอีกระดับด้วยการออกแบบความสามารถในการทดสอบตัวเอง มันเพิ่มความซับซ้อนของบอร์ดของคุณ แต่มันสามารถทำให้การตรวจสอบการออกแบบของคุณง่ายขึ้นและยังช่วยให้คุณมีตัวเลือกในการรวมการทดสอบด้วยตัวเองเมื่อเปิดเครื่องในผลิตภัณฑ์ที่มีการบรรจุ
JustJeff

8

ฉันคิดว่าคำถามสำคัญหนึ่งข้อคือ: รายการตรวจสอบก่อนการบินก่อนที่คุณจะออกบอร์ดเพื่อผลิต รายการก่อนบินของฉันคือ:

  1. ทบทวนการออกแบบแผนผัง
    1. ชื่อเน็ตและพอร์ตแบบปิดชีต
    2. เชื่อมต่อหมุดแหล่งจ่ายไฟแล้ว
  2. แผนผัง DRC
  3. รอยพระพุทธบาท
    1. กรอกหมายเลขชิ้นส่วนของผู้ผลิต
    2. หมายเลขชิ้นส่วนตรงกับรอยบน PCB และ pinout ในแผนผัง
    3. หมายเลขพินรอยเท้าคือ "ด้านขวา" และถูกต้อง
    4. ขนาดรอยพระพุทธบาทถูกตรวจสอบเป็นสองเท่าสำหรับขนาดรูการกวาดล้างของเก็บ ฯลฯ
    5. การเชื่อมต่อการผสมพันธุ์จะมุ่งเน้นอย่างถูกต้อง; หมุด 1 ต่อ 1, 2 ต่อ 2, ฯลฯ
  4. PCB ขนาดและรู
  5. PCB DRC
  6. Fab Drawings มีเลเยอร์ทั้งหมดและมีการโทรออก

ชุมชนคำตอบนี้มีวิกิ


5

สิ่งที่คนอื่นพูดทั้งหมดนั้นถูกต้อง แต่ฉันต้องการเพิ่ม 2 เซ็นต์ของฉันมีค่า

สิ่งที่ดีที่สุดที่ต้องทำคือไม่ได้ทำผิดพลาดตั้งแต่แรก ดูเหมือนโง่ที่จะพูดถึงเรื่องนี้ แต่ทั้งหมดก็มักจะถูกมองข้าม ทำแผนผังและการทบทวนการออกแบบ PCB มีหลายคนที่ดูการออกแบบของคุณ - แม้แต่วิศวกรมือใหม่ ใช้การตรวจสอบกฎการออกแบบในซอฟต์แวร์ของคุณ ใช้ทรัพยากรใด ๆ ที่มีอยู่เพื่อให้แน่ใจว่าการออกแบบของคุณดี มีวิธีปฏิบัติทางวิศวกรรมที่ดีเพื่อปรับปรุงอัตราต่อรองของคุณในการจับข้อบกพร่อง

ในช่วง 20 ปีที่ผ่านมาและมีการออกแบบ PCB หลายสิบและสิบ (บางที่มี 14 ชั้นและส่วนประกอบ 2,000) ฉันมี PCB ของสองที่ไม่สามารถใช้งานได้ในรอบแรกของต้นแบบ แน่นอนฉันมีข้อบกพร่อง แต่มีเพียงสองกระดานเท่านั้นที่ "ถูกบล็อก"

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

สิ่งนี้จะเป็นไปไม่ได้หากไม่มีความพยายามหลัก ๆ ในการลดข้อผิดพลาดไว้ล่วงหน้า


ผู้ผลิตบางราย (เช่น 4pcb) ยังเสนอการทดสอบ DFM ฟรีสำหรับผู้ใช้ของคุณ การทดสอบฟรีเหล่านี้เป็นส่วนเสริมที่ดีสำหรับ DRC ของเครื่องมือ PCB
ajs410

4

ในการออกแบบใหม่ทั้งหมดฉันมักจะใช้วิธีแบ่งและพิชิต

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

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

บอร์ดที่เป็นสปินที่สอง / สาม (ล้างข้อมูล) ไม่จำเป็นต้องมีความขยัน ฉันสามารถแยกส่วนของวงจรที่มีการเปลี่ยนแปลงทดสอบได้อย่างอิสระและบันทึกการทดสอบส่วนที่เหลือของวงจรเพื่อเพิ่มกำลังไฟทั้งหมด

อย่าลืมอุปกรณ์ป้องกันภัยส่วนบุคคลของคุณ ฉันอึดอัดมากที่กำลังเปิดเครื่องทุกอย่างโดยไม่ต้องสวมแว่นตานิรภัย (และที่อุดหูบางครั้ง ... )


1
+1 สำหรับการป้องกันตา / หู! ฉันเคยได้ยิน DAC ที่กำลังระเบิดจากห้องแล็บ - คนที่ทำงานอยู่นั้นมีจุดบอดชั่วคราวในสายตาของเขาประมาณ 5 นาที!
Toybuilder

3

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

หากมีองค์ประกอบการออกแบบใด ๆ ที่ยังไม่ทดลองแทนที่จะพยายามออกแบบใหม่ทั้งหมดในบอร์ดเดียวฉันพยายามสร้างบอร์ดทดสอบที่พิสูจน์แนวคิดและพิสูจน์ประสิทธิภาพบนแผงวงจร PCB ราคาถูกของ proto (เช่นบริการ BareBonesPCB ขั้นสูง - สอง เลเยอร์ไม่มีหน้ากากประสานประมาณ $ 80 สำหรับการเปิด 24 ชั่วโมง)

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


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