ฉันจะแก้ไขข้อผิดพลาดไม่เข้ากันได้กับ AVRdude เมื่อตั้งโปรแกรม Arduino ผ่านสายเคเบิล USB เป็นอนุกรมได้อย่างไร


9

ฉันพยายามที่จะสร้างนี้ให้แสงโดยรอบสำหรับเครื่องพีซี สิ่งนี้ทำงานได้อย่างไม่มีที่ติบน Arduino Uno ของฉัน ขั้นตอนต่อไปของผมคือการทำให้มันใช้"Arduino บนเขียงหั่นขนม" ดังนั้นฉันจึงซื้อชิป ATmega328 ที่ว่างเปล่าและเบิร์น bootloader Arduino (สำหรับบอร์ด "Arduino Duemilanove w / ATmega328") ลงบนมันโดยใช้ Arduino IDE และ USBasp; และฉันรู้ว่ามันถูกโหลดอย่างถูกต้องเนื่องจาก ATmega ชิพนี้ทำงานได้ดีบน Uno

แล้วฉันจะทำแปลง USB เพื่ออนุกรมใช้FT232RL ; แต่ไดรเวอร์ไม่ได้ติดตั้งบนพีซีของฉัน (Windows 7 x64) ฉันสงสัยว่าฉันร้อนเกินไปชิป FTDI ที่ยึดพื้นผิวและฆ่ามันในขณะที่บัดกรีด้วยมือ

ดังนั้นฉันได้เก็บมันไว้กันและได้นี้ USB เพื่ออนุกรมสะพานแปลง: (ขออภัยสำหรับภาพเส็งเคร็ง) ผมใช้เพิ่มเติม ST232CN บนเขียงหั่นขนมของฉันการแปลงระดับแรงดันไฟฟ้าจาก RS232 เพื่อ TTL ดังแสดงในนี้ หน้า และใช้งานได้ดีเมื่อฉันตรวจสอบจากการทดสอบลูปแบ็ค และฉันได้เชื่อมต่อ pin 9 ของ ST232 เพื่อ pin 2 ของ ATmega และ pin 10 กับ pin 3

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

Binary sketch size: 1026 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00

เมื่อฉันทำการอัพโหลดแบบละเอียด (Shift + อัปโหลด) ฉันได้รับข้อผิดพลาด / ข้อความนี้:

avrdude: usbdev_open(): did not find any USB device "usb"

นอกจากนี้ฉันพยายามเพิ่มตัวต้านทานแบบดึงขึ้น 1k ที่หมุด 2 และ 3 ของ ATmega แต่ไม่ได้ช่วย ดังนั้นฉันเดาว่าปัญหาตอนนี้อยู่ในการสื่อสารแบบอนุกรมจาก ST232 ถึง ATmega? และมีการเชื่อมต่อพิเศษกับพินรีเซ็ตของ ATmega หรือไม่? ฉันดึงมันได้ถึง 5V ด้วยตัวต้านทาน 10k


แผนผังและหรือรูปภาพของการตั้งค่า breadboard ของคุณจะช่วยได้
sptrks

3
คุณรีเซ็ตชิปก่อนหน้านี้ในเวลาเดียวกับหรือหลังจากสั่งการอัปโหลดหรือไม่ เมื่อใดก็ตามที่ฉันได้รับข้อผิดพลาด 'ไม่ซิงค์' มันเกี่ยวข้องกับช่วงเวลาที่สัมพันธ์กัน สำหรับ breadboard ของฉันและ Eclipse / AVRDude การยกเลิกการปักหมุดรีเซ็ตก่อนหรือขณะที่ฉันคลิกคำสั่งอัพโหลดเป็นเวลาที่เหมาะสม แต่ให้ตรวจสอบด้วยว่าพีซีของคุณเห็นอะแดปเตอร์จริง ๆ เมื่อคุณเสียบมัน
JRobert

1
@potato_in_my_ear - รูปแบบที่เหมาะสมสำหรับการโพสต์โซลูชันไม่ใช่การแก้ไข แต่เป็นคำตอบ ดูด้านล่างและคุณจะเห็นกล่องชื่อ "คำตอบของคุณ" ที่จะป้อน หลังจากป้อนแล้วผู้คนจะลงคะแนนในคำตอบของคุณและคุณสามารถ 'ยอมรับ' ได้โดยกดเครื่องหมายถูกที่ด้านซ้ายของคำตอบ
Kevin Vermeer

1
@potato_in_my_ear: ฉันดีใจที่ได้ช่วย คุณเป็นสุภาพบุรุษและนักวิชาการ - ฉันจะให้ความเห็นของฉันคำตอบ
JRobert

2
ทางออกสำหรับคนที่จะหยุดให้คำตอบในความคิดเห็น!
Kevin Vermeer

คำตอบ:


6

เมื่อใดก็ตามที่ฉันได้รับข้อผิดพลาด 'ไม่ซิงค์' มันเกี่ยวข้องกับเวลาที่ฉันเพิ่งรีเซ็ตเวลาหายไป (หรือลืมการรีเซ็ตทั้งหมด!) สำหรับ breadboard ของฉันและ Eclipse / AVRDude ให้ยกเลิกการต่อกราวด์รีเซ็ตก่อนหรือในเวลาเดียวกันเมื่อฉันคลิกปุ่มอัปโหลดเป็นเวลาที่เหมาะสม แต่ตรวจสอบด้วยว่าพีซีของคุณเห็นอะแดปเตอร์จริงๆเมื่อคุณเสียบมัน

บอร์ด arduino ภายหลังถูกสร้างขึ้นเพื่อรีเซ็ตเมื่อใดก็ตามที่มีการเชื่อมต่อแบบอนุกรมและโปรแกรมโดย bootloader บทความบล็อกนี้อธิบายวิธีการทำงานและน่าสนใจยิ่งขึ้นเกี่ยวกับวิธีการแฮ็กข้อมูลลงในบอร์ดก่อนหน้า ไม่ควรที่จะวางไว้บนเขียงขนมปังหากคุณต้องการ ชิปนั้นต้องมี bootloader ที่ใช้งานร่วมกันได้ (ซึ่งคุณได้ใส่เข้าไปแล้ว) สำหรับคนทำขนมปังฉันแค่เต้นปุ่มรีเซ็ต / คลิกเมาส์


ฉันพบบางคนบอกว่าคุณสามารถรับโซ่เครื่องมือ avr เพื่อทำการรีเซ็ตตัวเองโดยแก้ไข avrdude.conf ; ที่นี่ (ในความคิดเห็น) แต่ฉันไม่แน่ใจว่าจะทำอย่างไร คุณช่วยได้ไหม ฉันเกลียดการกดปุ่มรีเซ็ตตลอดเวลา ..
Anubis

นี้จะต้องมีการสนับสนุนฮาร์ดแวร์บนบอร์ด Arduino หรือเขียงหั่นขนมซึ่งภายหลังของ Aduino มีอยู่แล้วภายใน; รหัสเพียงอย่างเดียวไม่สามารถทำได้ มันขึ้นอยู่กับตัวเก็บประจุจาก DTR อนุกรมเพื่อรีเซ็ตและดึงขึ้นรีเซ็ต หากคุณมีเก่ากว่าหรือเขียงหั่นขนมคุณจะต้องเพิ่มมัน คำถาม EE StackEx นี้และบทความบล็อกที่ฉันยกมาควรนำคุณไปในทิศทางที่ถูกต้อง
JRobert

2

ดังที่ @Robert กล่าวในความคิดเห็นว่าเวลาที่เหมาะสมในการต่อสายดินและการคลายพินการรีเซ็ตบน ATmega นั้นเป็นการหลอกลวง ทำการต่อกราวด์รีเซ็ตของ ATmega เมื่อคุณคลิกที่ "อัปโหลด" และเช่นเดียวกับที่แสดง "อัปโหลด" ให้ยกเลิกการเชื่อมต่อ


เพิ่งได้รับ aarduino mini และฉันรู้ว่าฉันต้องกดปุ่มรีเซ็ตเพื่ออัปโหลดรหัส แต่ฉันไม่สามารถรู้ได้เมื่อ !!! สิ่งนี้ใช้ได้สำหรับฉัน ขอบคุณ
ฟองน้ำบ๊อบ

0

ฉันมีข้อผิดพลาดเหมือนกันที่ฉันเห็นโพสต์ในหลายไซต์ RE: ข้อความ Arduino "avrdude: stk500_getsync (): ไม่ซิงค์: resp = 0x00" หรือคล้ายกัน

ฉันพบว่าหากฉันลบสิ่งที่แพทช์ลงใน D0 ([D0] DIGITAL pin Zero ซึ่งอยู่ห่างจากแจ็ค USB และ Power มากที่สุดให้อ่าน "RX" ด้วย)

ฉันลองคอมพิวเตอร์สองเครื่องที่แตกต่างกันและมีข้อผิดพลาดเหมือนกันและพบว่าถ้า: 1- ฉันลบสายจากหรือเปิดวงจรไปที่ [D0] 2- อัปโหลดไปยัง Arduino 3- แก้ไขสายลวดที่ถอดออกหรือปิดวงจรเปิดไปที่ [ D0]

ฉันพบข้อผิดพลาดนั้นเมื่อฉันอัปโหลดเท่านั้นและนี่คือวิธีการแก้ปัญหาของฉัน สำหรับตอนนี้.

หวังว่ามันจะช่วย

รู้สึกดีที่ได้ให้ข้อมูลที่เป็นประโยชน์กลับสู่ชุมชนในที่สุด


1
การตอบสนองนั้นค่อนข้างไม่ชัดเจน: ประโยคที่เริ่มต้น "ฉันพบว่าถ้าฉัน ... " ไม่สมบูรณ์ไม่แน่ใจว่าคุณกำลังพูดอะไรอยู่ที่นั่น โปรดแก้ไขขอบคุณ
Anindo Ghosh

คำตอบนี้หมายถึงการมีวงจรที่ขัดแย้งกันเชื่อมต่อกับหมุดอนุกรมฮาร์ดแวร์ atmega
Chris Stratton

0

วิธีนี้แก้ไขปัญหาของฉันไปที่ไดรเวอร์และการตั้งค่าแทนที่ Boards.txt ใน arduino IDE ...

ฉันมี arduino MEGA 2560 R3 และฉันมีปัญหาเดียวกัน

avrdude: stk500_getsync (): ไม่ซิงค์: resp = 0x00

http://arduino.cc/en/Main/ArduinoBoardADK


-1

ในการแก้ไขข้อผิดพลาด "avrdude: stk500_getsync (): not in sync: resp = 0x00" เพียงติดตั้ง FTDI Driver เวอร์ชั่น 2.8.24.0 มีปัญหาบางอย่างกับไดรเวอร์ใหม่ v2.8.28.0


-1

ในขณะที่อัปโหลดรหัสจาก Arduino IDE บนคอมพิวเตอร์ของคุณโปรดดึง RX pin ของการ์ด Arduino ออกคุณจะได้รับการอัปโหลดรหัสสำเร็จ เสียบหมุด RX แล้วลอง หรือคุณอาจจะใส่ (อาจ) RX ของบลูทู ธ กับ Arduino ของ RX เพื่อให้ TX เชื่อมต่อกัน

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