ไม่สามารถโปรแกรม หลังจากปิดการใช้งาน JTAG (STM32)

Started by chirawat_not, July 31, 2013, 06:36:47 PM

Previous topic - Next topic

chirawat_not

ใช้คำสั่ง Remap ดังนี้ครับ
GPIO_PinRemapConfig( GPIO_Remap_SWJ_Disable, ENABLE ) ;

แล้วไม่สามารถโปรแกรมชิพผ่าน JTAG ได้ พยายามใช้ Boot Loader โดยการเซ็ตบิต BOOT0 เป็น High และ BOOT1 เป็น Low ในสภาวะรีเซ็ตแล้ว ปรากฎว่าโปรแกรม Flash Loader Demonstrator ไม่สามารถติดต่อกับชิพได้
Error Message ขึ้น "No response from the target device..."

มีวิธีไหนที่จะโปรแกรมชิพได้อีกบ้างครับ

gui

เคยเจอปัญหานี้ในแผงวงจร STM32F0-Discovery  พอสั่ง GPIO_Remap_SWJ_Disable หรือคำสั่งใกล้เคียง (นานแล้วครับ) มันจะติดต่อกับบอร์ดไม่ได้ พอไล่ดูคำสั่งพบว่ามันจะตัดการทำงานของ JTAG ออก พอดูส่วนของขาที่ติดต่อแบบ SWD ยังไม่ได้ถูก remap แต่ขา jnrst ขารีเซ็ตของ SWD มันถูกย้ายไปแล้ว มันก็เลยรีเซ็ตไมโครของ STM32 ไม่ได้

ต้องลองกด ดาวน์โหลดที่คอมพิวเตอร์ พร้อมกับรีเซ็๋ตตัว STM32-Dis ทำเกือบสิบรอบ มันได้จังหวะที่ซิงกันพอดี ก็เลยติดต่อกับดาวน์โหลดโปรแกรมได้ กลับมาปกติแล้ว

ลองแล้วได้ผลอย่างไร โพสต์กลับในเวบนี้ด้วยนะครับ

chirawat_not

Quote from: gui on August 01, 2013, 08:45:05 AM
เคยเจอปัญหานี้ในแผงวงจร STM32F0-Discovery  พอสั่ง GPIO_Remap_SWJ_Disable หรือคำสั่งใกล้เคียง (นานแล้วครับ) มันจะติดต่อกับบอร์ดไม่ได้ พอไล่ดูคำสั่งพบว่ามันจะตัดการทำงานของ JTAG ออก พอดูส่วนของขาที่ติดต่อแบบ SWD ยังไม่ได้ถูก remap แต่ขา jnrst ขารีเซ็ตของ SWD มันถูกย้ายไปแล้ว มันก็เลยรีเซ็ตไมโครของ STM32 ไม่ได้

ต้องลองกด ดาวน์โหลดที่คอมพิวเตอร์ พร้อมกับรีเซ็๋ตตัว STM32-Dis ทำเกือบสิบรอบ มันได้จังหวะที่ซิงกันพอดี ก็เลยติดต่อกับดาวน์โหลดโปรแกรมได้ กลับมาปกติแล้ว

ลองแล้วได้ผลอย่างไร โพสต์กลับในเวบนี้ด้วยนะครับ

ครับผม ขอบคุณมากครับ ตอนนี้ยังมืดบอดอยู่ แต่ต้องหาทางให้ได้
แหม่ คำสั่งนี้อันตรายจริงๆ ไม่ได้คิดล่วงหน้าด้วยว่ามันจะโปรแกรมอีกไม่ได้ ;D ;D ;D



MicroMan

การ Remap Pin จะมีผลเมื่อ Code เริ่ม Execute แล้ว แต่ค่า Pin หลังจาก Power-ON Reset ขาของ JTAGE จะถูก Enable โดยอัตโนมัติอยู่แล้วนะครับ ในกรณีใช้โปรแกรมผ่าน JTAG หรือ SWD ไม่น่ามีปัญหา แต่ถ้าโปรแกรมผ่าน Bootloader ลองใช้การ Power-ON แทนการกดสวิตช์รีเซ็ตครับ และโปรแกรม Flash Loader เองบางครั้งก็ต้องสั่งซ้ำๆ หลายๆรอบเหมือนกันครับ ตั้งค่า Time-Out น้อยๆ ถ้าจะให้ดีแนะนำหา JTAG มาใช้จะสะดวกกว่า ถ้าจะประหยัด I/O ก็ใช้ SWD Mode ครับ เสียขา I/O เพียง 2เส้น สามารถโปรแกรมและดีบักได้ สะดวกกว่า Bootloader มากครับ