การสื่อสารการหมดเวลา Arduino Mega Mega กับข้อผิดพลาดของโปรแกรมเมอร์


10

ฉันมี Arduino Mega 2560 และมันก็ใช้ได้ดีจนกระทั่งถึงเวลาอาหารกลางวันเมื่อฉันเริ่มได้รับข้อผิดพลาดนี้:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

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

จากสิ่งที่ฉันได้อ่านนี้อาจเป็นปัญหากับ bootloader และอาจเกี่ยวข้องกับ Arduino รุ่นปัจจุบัน ฉันไม่รู้อะไรเกี่ยวกับ bootloader; ทั้งหมดที่ฉันรู้ก็คือมันใช้เพื่ออัปโหลดรหัสไปยัง Arduino (ฉันคิดว่า ... ) ดังนั้นฉันจึงกลัวว่าจะล้อเล่นกับไฟล์ที่เกี่ยวข้องโดยไม่รู้ตัว

หน้าเหล่านี้เป็นหน้าตาที่ฉันเคยดูมา แต่อย่างที่ฉันบอกฉันไม่รู้จริงๆเลยที่จะรู้สึกสบายใจที่จะเล่นกับไฟล์

ฉันลองถอนการติดตั้ง Mega ทั้งหมดแล้วติดตั้งใหม่ ฉันยังดาวน์โหลด Arduino รุ่นเก่ากว่า (0022) และดูเหมือนว่าจะไม่มีตัวเลือกใด ๆ

ฉันไม่รู้ว่าต้องทำอย่างไรหรือจะเปลี่ยนไฟล์ 'AVR' ถ้าจำเป็น



โอ้ฉันไม่ได้สังเกตเห็นโพสต์นั้น ฉันได้ลองทุกอย่างยกเว้นการเบิร์น bootloader ... มีวิธีง่ายๆในการทำเช่นนี้โดยไม่ต้องซื้อซอฟต์แวร์หรือ
bladepanthera

โดยปกติแล้วคุณเพียงแค่ไปที่ IDE ให้ดูที่เมนูเครื่องมือเลือก "เขียน Bootloader" ตรวจสอบให้แน่ใจว่าได้เลือกกระดานที่เหมาะสมก่อน
TheDoctor

@TheDoctor ฉันเห็นตัวเลือกนั้น แต่ฉันไม่รู้ว่าจะทำอะไรต่อไป ฉันคิดว่าฉันต้องโหลดอีกครั้งด้วยโปรแกรม "bootloader" ใหม่หรือไม่? หนึ่งเว็บไซต์ ( learn.sparkfun.com/tutorials/installing-an-arduino-bootloader ) บอกว่าฉันต้องซื้อฮาร์ดแวร์และดาวน์โหลดซอฟต์แวร์เฉพาะ ... ทั้งหมดเพื่อแทนที่ซอฟต์แวร์บน bootloader! ฉันไม่แน่ใจว่าฉันเข้าใจว่าทำไม
bladepanthera

1
คุณสามารถใช้ Uno เพื่อตั้งโปรแกรม Mega ใหม่ เงยหน้าขึ้นมองArduinoISP
mic

คำตอบ:


3

bootloader ใน arduino เป็นเพียงซอฟต์แวร์ที่เขียนขึ้นเพื่อให้คุณสามารถอัปเดตภาพร่างของคุณโดยใช้การเชื่อมต่อ usb หากไม่มี bootloader คุณจะไม่สามารถอัปโหลดภาพร่างโดยใช้เพียงแค่ arduino ide

ข้อมูลเพิ่มเติมเกี่ยวกับ bootloader สามารถพบได้ที่นี่: http://arduino.cc/en/Guide/Environment?from=Tutorial.Bootloader ดูที่หัวข้อการอัปโหลดหัวข้อซึ่งจะอธิบายส่วนที่ bootloader เล่นในการอัปโหลดภาพร่าง

เมื่อคุณใช้ปุ่ม "เขียน Bootloader" ใน arduino ide มันจะพยายามเขียนสำเนาใหม่ของ bootloader ลงบนบอร์ด Arduino ที่แนบมา ในการทำเช่นนี้บอร์ดจะต้องเชื่อมต่อในลักษณะที่เฉพาะเจาะจงนั่นคือใช้ส่วนหัว icsp / isp แทนสาย usb

ตอนนี้เพื่อตั้งโปรแกรมชิป avr โดยตรงคุณต้องใช้โปรแกรมเมอร์ภายนอก (ฮาร์ดแวร์) โชคดีที่คุณไม่จำเป็นต้องซื้อมันถ้าคุณมีอาร์ดิโนตัวที่สองเพราะอาร์ดิโนตัวที่สองนั้นสามารถใช้เป็นโปรแกรมเมอร์ได้ คำแนะนำสำหรับการทำเช่นนั้นสามารถพบได้ที่นี่: http://arduino.cc/en/Tutorial/ArduinoISP

ข้อมูลเพิ่มเติมเกี่ยวกับ bootloader: http://arduino.cc/en/Hacking/Bootloader?from=Main.Bootloader


1

ฉันได้รับข้อผิดพลาดเดียวกันนี้เมื่อพอร์ต Arduino COM ของฉันไม่ว่างกับแอพอื่น ฉันปิดแอพนั้นแล้วอัปโหลดแบบร่าง Arduino และข้อผิดพลาดหายไป


0

น่าเสียดายที่ข้อผิดพลาดนี้อ้างถึงปัญหาต่าง ๆ มากมายและมีการโพสต์มากมายที่นี่และบนแพลตฟอร์มอื่น ๆ ไม่มีคำตอบที่แน่นอน บางทีทีม Arduino ควรพยายามให้ข้อผิดพลาดที่ดีกว่าเพื่อแยกความแตกต่าง แต่ฉันได้พยายามตอบคำถามเดียวกันที่นี่ในโพสต์ SOนี้

สิ่งที่แก้ไขปัญหาของฉันคือไปที่เครื่องมือ> บอร์ด> ตัวจัดการบอร์ด ... เลือก "อัปเดตได้" สำหรับ "ประเภท" ที่ด้านบนซ้ายจากนั้นเลือกแพ็คเกจที่อัปเดตได้ด้านล่างและคลิกที่อัปเดต

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