ปัญหาการเขียนโปรแกรม Mini Pro ผ่าน Arduino เป็น ISP


9

ฉันเพิ่งเลือกบอร์ดโคลน Mini Pro 5v ของ Arduino Mini Pro (ขายใน Microcenter ปัจจุบันราคา $ 4 USD) และฉันต้องการใช้ Uno ของฉันเป็น ISP อย่างที่ฉันเคยทำกับ ATmega328 และ ATtiny85 ชิปก่อนหน้านี้ ฉันได้ตั้งโปรแกรม Uno ด้วยคำแนะนำที่หน้ากวดวิชา ArduinoISPและฉันได้เชื่อมต่อ Uno กับ Mini Pro โดยใช้คำแนะนำในหน้านี้ ฉันไม่สามารถรับ Arduino IDE หรือ avrdude จากบรรทัดคำสั่งเพื่อเขียนโปรแกรมบอร์ดเหล่านี้ให้สำเร็จไม่ว่าฉันจะพยายามทำอะไร ยกเว้นว่าฉันสามารถใช้ Arduino IDE เพื่อเบิร์น bootloader ใหม่ไปยัง Mini Pro

ฉันได้เชื่อมต่อไฟ LED แสดงสถานะเช่นกัน (หมุด 7, 8 และ 9) และฉันสามารถเห็นได้ว่าโปรแกรมเมอร์มีเงื่อนไขข้อผิดพลาด (pin 8) เมื่อฉันพยายามโปรแกรมอะไรนอกจาก bootloader

นี่คือบรรทัดคำสั่ง avrdude ของฉันที่ฉันพยายามตั้งฟิวส์บน Mini Pro:

avrdude -P /dev/tty.usbmodema0121 -b 57600 -c avrisp -p atmega328p -U lfuse:w:0xff:m -U hfuse:w:0xdb:m -U efuse:w:0xfd:m

ฉันได้รับกลับดังต่อไปนี้จาก avrdude:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c

avrdude done.  Thank you.

ฉันไม่ได้มีปัญหาใด ๆ กับการใช้การตั้งค่าเดียวกันนี้ค่อนข้างแน่นอน แต่ด้วยชิป ATmega328 หรือ ATtiny85 บนเขียงหั่นขนมที่มี avrdude ในอดีตดังนั้นฉันจึงตกอยู่กับสิ่งที่เกิดขึ้นที่นี่

ฉันยังได้ดูรหัส ArduinoISP และฉันไม่แน่ใจว่า resp = 0x1c คืออะไร ฉันไม่เห็นค่า 0x1c ที่กำหนดไว้ในส่วนคำจำกัดความของ STK ดังนั้นฉันไม่แน่ใจว่าเกิดจากอะไร

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

ขอบคุณ!

คำตอบ:


7

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

ไม่แน่ใจว่าฉันเคยพลาดเรื่องนี้มาก่อน แต่มันง่ายที่จะแก้อย่างน้อย

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