ไม่สามารถตั้งโปรแกรม STM32 แบบกำหนดเองได้


9

ฉันออกแบบบอร์ด STM32 ง่าย ๆ ด้านล่างนี้เป็นแผนผังและรูปภาพโครงร่าง PCB:

แผนผัง:
ป้อนคำอธิบายรูปภาพที่นี่

เค้าโครง PCB: ป้อนคำอธิบายรูปภาพที่นี่

โครงร่าง PCB พร้อม VDD ไฮไลต์: ป้อนคำอธิบายรูปภาพที่นี่

โครงร่าง PCB พร้อม GND ที่ไฮไลต์: ป้อนคำอธิบายรูปภาพที่นี่

เฉพาะส่วนของการออกแบบนี้ที่เกี่ยวข้องกับคำถามของฉันเท่านั้นที่แสดงในภาพด้านบน

ปัญหาของฉันคือฉันพยายามใช้ ST-Link ในตัวของบอร์ด STM32 Discovery เพื่อตั้งโปรแกรมบอร์ดที่กำหนดเองนี้ แต่ฉันยังไม่ประสบความสำเร็จ แอปพลิเคชัน ST-Link Utility บนพีซีสามารถจดจำโปรแกรมเมอร์ แต่ไม่สามารถตรวจจับ MCU เป้าหมายได้ ข้อความแสดงข้อผิดพลาดที่ฉันได้รับคือ "เป้าหมายไม่ได้เชื่อมต่อ" และ "ข้อผิดพลาดการสื่อสาร USB ST-Link"

นี่คือข้อเท็จจริงบางอย่างที่เกี่ยวข้องกับปัญหาของฉัน:

  • บอร์ด STM32 Discovery ทำงานได้ดี: ฉันสามารถใช้ ST-Link ในตัวเพื่อตั้งโปรแกรมบนบอร์ด STM32 MCU ไม่เป็นไร
  • STM32 MCU ได้รับการบัดกรีด้วยการวางแนวที่ถูกต้องบนกระดานที่กำหนดเอง ฉันตรวจสอบสิ่งนี้สองครั้ง
  • ฉันได้ตรวจสอบร่องรอย VDD และ SWD เชื่อมต่อได้ดี (ไม่มีปัญหาการบัดกรี) Pin Boot0 อยู่ที่ 0V Pin NRST อยู่ที่ 3.3V
  • สายเคเบิล SWD สั้นความยาวเพียง 7-8 ซม.
  • STM32 ในบอร์ดที่กำหนดเองของฉันเป็นประเภทเดียวกันกับบอร์ด Discovery
  • ฉันได้ปฏิบัติตามคำแนะนำในคู่มือของบอร์ด STM32 Discovery Board เกี่ยวกับวิธีการใช้ Discovery Board เพื่อตั้งโปรแกรม STM32 MCU ภายนอก เพื่อให้เจาะจงยิ่งขึ้นฉันได้ถอดจัมเปอร์ CN3 2 ตัวออกและจากนั้นฉันก็เชื่อมต่อบอร์ดดังตารางนี้ ป้อนคำอธิบายรูปภาพที่นี่

  • ฉันยังลบ Solder bridge SB11 บน Discovery Board (เพื่อให้ pin NRST สามารถทำงานได้อย่างถูกต้อง)

  • ฉันลองทั้งแอพ ST-Link Utility และ Keil แล้ว ข้อความแสดงข้อผิดพลาดที่ฉันได้รับเหมือนกัน
  • ตอนแรกฉันไม่ได้เชื่อมต่อขา 6 บนตารางด้านบน (SWO) เพราะความรู้ของฉันไม่จำเป็น อย่างไรก็ตามหลังจากนั้นฉันก็เชื่อมต่อด้วยเช่นกัน แต่สิ่งต่าง ๆ ยังไม่ได้ผล
  • ฉันยังเพิ่มฝา 100nF จาก pin NRST ไปยัง GND และจากนั้นตัวต้านทานแบบดึงขึ้น 100k จาก pin นี้เป็น VDD ปัญหายังคงอยู่
  • ฉันพยายามใช้โหมด "เชื่อมต่อภายใต้การรีเซ็ต" ของโปรแกรม ST-Link Utility ไม่มีโชคเช่นกัน

ฉันสงสัยว่าอาจมีบางอย่างผิดปกติกับการออกแบบ แต่ฉันไม่แน่ใจ โปรดช่วยฉันแก้ปัญหาด้วย

ขอบคุณมาก :)


เท่าที่ฉันจำได้คุณจะต้องเพิ่มทั้ง st-link และบอร์ดที่กำหนดเองของคุณ 3.3V ในตัวเชื่อมต่อ SWD ของบอร์ดที่กำหนดเองของคุณจะต้องให้ 3.3V สำหรับ st-link เพื่อตรวจจับ
davidrojas

@davidrojas: ขอบคุณสำหรับคำตอบของคุณ ตอนนี้ฉันกำลังใช้ ST-Link โดยพอร์ต USB จากพีซีของฉัน บอร์ด STM32 ที่กำหนดเองนั้นใช้พลังงานจาก 3.3V แยกต่างหากภายนอก อย่างไรก็ตามพื้นของบอร์ดทั้งสองนี้เชื่อมต่อกันแล้ว (ดังในตารางด้านบน) นอกจากนี้ 3.3V จากบอร์ดที่กำหนดเองของฉันยังเชื่อมต่อกับ VDD_TARGET บน ST-Link ด้วย คุณคิดว่านี่เพียงพอหรือไม่
user3286500

มันควรจะเพียงพอแล้ว ปัญหาอีกอย่างคือความยาวและเลย์เอาต์ของเส้น SWDIO และ SWCLK ฉันมีปัญหาในการเชื่อมต่อเป็นระยะ ๆ ในอดีตเพราะเรื่องนี้ พวกเขาจะต้องสั้นที่สุด ลองลดความเร็วของ SWD ด้วย
davidrojas

ฉันลดความเร็ว SWD จากค่าเริ่มต้น 1.8 MHz เป็นต่ำกว่า 400 kHz แต่ก็ยังไม่ประสบความสำเร็จ สำหรับความยาวของสายเคเบิลในการตั้งค่าความยาวรวมของการเชื่อมต่อ SWD (จาก ST-Link ไปยัง STM32 เป้าหมาย) อยู่ที่ประมาณ 12-13 ซม. นี่ยังไม่ถึงขีด จำกัด ใช่ไหม
user3286500

1
คุณสังเกตเห็นว่ากราวด์ใต้ชิปนั้นถูกแยกทางกายภาพและไม่ได้เชื่อมต่อกับหมุดภาคพื้นดินใด ๆ จริง ๆ หรือไม่? การเชื่อมต่อจริงระหว่างหมุดภาคพื้นดินนั้นทำตามเส้นทางที่คดเคี้ยวด้านนอกชิปและบางอันอาจถูกแยกออก คุณต้องปรับการฝึกปรือของคุณเพื่อให้พื้นดินไม่ได้แยกเกาะและสิ่งนี้จะช่วยให้แน่ใจว่าพินกราวด์ทั้งหมดของชิปนั้นใกล้เคียงกับศักยภาพเดียวกันมาก
Dave Tweed

คำตอบ:


5

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

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

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