Bagaimana saya bisa memperbaiki kesalahan tidak-sinkron-AVR saat memprogram Arduino melalui kabel USB-to-serial?

9

Saya mencoba untuk membangun ini pencahayaan Ambient untuk PC. Ini bekerja dengan sempurna di Arduino Uno saya. Langkah saya selanjutnya adalah membuatnya menggunakan "Arduino pada papan tempat memotong roti" . Jadi saya membeli chip ATmega328 kosong dan membakar bootloader Arduino (untuk papan "Arduino Duemilanove w / ATmega328") ke dalamnya menggunakan Arduino IDE dan USBasp; dan saya tahu ini telah dimuat dengan benar karena chip ATmega ini berfungsi dengan baik di Uno.

Kemudian saya membuat konverter USB-ke-serial menggunakan FT232RL ; tetapi drivernya tidak diinstal pada PC saya (Windows 7 x64). Saya curiga saya terlalu panas chip FTDI permukaan-mount dan membunuhnya saat menyolder tangan.

Jadi, saya sudah terus ke samping, dan mendapat ini USB-to-serial jembatan converter: (Maaf untuk jelek foto) saya menggunakan ST232CN tambahan pada papan tempat memotong roti saya, untuk mengubah level tegangan dari RS232 ke TTL, seperti yang ditunjukkan dalam ini halaman . Dan ini berfungsi dengan baik, karena saya memverifikasi dari tes loopback. Dan saya sudah menghubungkan pin 9 dari ST232 ke pin 2 ATmega, dan pin 10 ke pin 3.

Ketika saya mencoba mengunggah contoh kedip dari Arduino IDE, saya mendapatkan kesalahan ini:

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

Ketika saya melakukan unggahan verbose (Shift + Upload), saya mendapatkan pesan kesalahan ini:

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

Juga, saya mencoba menambahkan resistor pull-up 1k pada pin 2 dan 3 ATmega, tetapi tidak membantu. Jadi saya kira masalahnya sekarang adalah komunikasi serial dari ST232 ke ATmega? Dan apakah ada koneksi khusus ke pin Reset ATmega? Saya telah menariknya hingga 5V dengan resistor 10k.

potato_in_my_ear
sumber
Skema dan atau gambar pengaturan papan tempat memotong roti Anda akan membantu.
sptrks
3
Apakah Anda mengatur ulang chip sesaat sebelum, pada saat yang sama, atau hanya setelah memerintahkan unggahan? Setiap kali saya mendapatkan kesalahan 'tidak sinkron', itu terkait dengan waktu relatif itu. Untuk papan tempat memotong roti saya, dan Eclipse / AVRDude, menghapus pin reset tepat sebelum atau tepat ketika saya mengklik perintah unggah adalah waktu yang tepat. Tetapi juga periksa apakah PC Anda benar-benar melihat adaptor ketika Anda mencolokkannya.
JRobert
1
@potato_in_my_ear - Format yang tepat untuk mem-posting solusi bukanlah edit tetapi jawaban. Lihat di bawah, dan Anda akan melihat kotak berjudul "Jawaban Anda" untuk memasukkannya. Setelah masuk, orang akan memberikan suara untuk jawaban Anda, dan Anda dapat 'menerimanya' dengan menekan tanda centang di sebelah kiri jawaban.
Kevin Vermeer
1
@potato_in_my_ear: Saya senang itu membantu. Anda seorang pria dan sarjana - saya akan membuat komentar saya sebagai jawaban.
JRobert
2
Solusinya adalah agar orang berhenti memberikan jawaban dalam komentar!
Kevin Vermeer

Jawaban:

6

Setiap kali saya mendapatkan kesalahan 'tidak sinkron', itu terkait dengan saya baru saja me-reset pengaturan waktu (atau lupa mengatur ulang sepenuhnya!). Untuk papan tempat memotong roti saya, dan Eclipse / AVRDude, mencopot pin reset tepat sebelum atau pada saat yang sama ketika saya mengklik tombol unggah adalah waktu yang tepat. Tetapi juga periksa apakah PC Anda benar-benar melihat adaptor ketika Anda mencolokkannya.

Kemudian papan arduino dibangun untuk mengatur ulang setiap kali koneksi serial dibuat, dan secara programatik oleh bootloader. Artikel blog ini menjelaskan cara kerjanya, dan yang lebih menarik, cara meretasnya ke papan sebelumnya. Seharusnya tidak terlalu sulit untuk meletakkannya di papan tempat memotong roti jika Anda mau. Chip itu perlu memiliki bootloader yang kompatibel, tentu saja (yang sudah Anda masukkan ke dalam milik Anda). Untuk papan tempat memotong roti, saya hanya melakukan tarian tombol reset / klik mouse.

JRobert
sumber
Saya menemukan seseorang yang mengatakan bahwa Anda bisa mendapatkan rantai alat avr untuk melakukan reset sendiri dengan mengedit avrdude.conf ; di sini (dalam komentar). Tetapi saya tidak yakin bagaimana melakukannya. Dapatkah kamu menolong. Aku benci menekan reset setiap saat ..
Anubis
Ini akan membutuhkan dukungan perangkat keras pada papan Arduino atau papan tempat memotong roti yang nantinya akan dibangun Aduino; kode saja tidak bisa melakukannya. Ini didasarkan pada kapasitor dari DTR serial ke reset dan pull-up reset. Jika Anda memiliki yang lebih lama atau papan tempat memotong roti, Anda harus menambahkannya. Pertanyaan EE StackEx dan artikel blog yang saya kutip ini akan mengarahkan Anda ke arah yang benar.
JRobert
2

Seperti @JRobert katakan dalam komentar, waktu yang tepat untuk pentanahan dan ungrounding pin reset pada ATmega melakukan trik. Terus arde pin atmega ATmega saat Anda mengklik "Unggah", dan sama seperti itu menunjukkan "Unggah", unground it.

potato_in_my_ear
sumber
Baru saja mendapatkan mini Arduino dan saya tahu bahwa saya perlu menekan tombol reset untuk mengunggah kode, tetapi saya tidak tahu kapan !!! Ini berhasil untuk saya. Terima kasih.
Sponge Bob
0

Saya memiliki kesalahan yang sama yang saya lihat diposting di beberapa situs RE: Pesan Arduino "avrdude: stk500_getsync (): tidak sinkron: resp = 0x00" atau serupa.

Saya menemukan bahwa jika saya menghapus apa pun yang ditambal ke D0 ([D0] pin Nol DIGITAL, terjauh dari USB dan colokan Daya, juga bertuliskan "RX").

Saya mencoba dua komputer yang berbeda dan mendapatkan kesalahan yang sama dan menemukan bahwa jika: 1- Saya melepas kabel dari atau membuka sirkuit ke [D0] 2- Unggah ke Arduino 3- tambal kembali kawat yang dilepaskan atau tutup sirkuit terbuka ke [ D0]

Saya hanya menemui kesalahan itu ketika saya mengunggah dan ini solusi saya. untuk sekarang.

Semoga ini bisa membantu.

Terasa enak akhirnya memberikan info yang berguna kembali ke komunitas!

ddd
sumber
1
Responsnya agak tidak jelas: Kalimat yang dimulai "Saya menemukan bahwa jika saya ..." tidak lengkap, tidak yakin apa yang ingin Anda katakan di sana. Harap edit, terima kasih.
Anindo Ghosh
Jawaban ini mengacu pada sirkuit yang saling terhubung yang terhubung ke pin seri perangkat keras atmega.
Chris Stratton
0

Ini memperbaiki masalah saya, buka Drivers and Setup, ganti Boards.txt di arduino IDE ...

Saya memiliki Arduino MEGA 2560 R3 dan saya memiliki masalah yang sama

avrdude: stk500_getsync (): tidak sinkron: resp = 0x00

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

pengguna36857
sumber
-1

Untuk memperbaiki kesalahan "avrdude: stk500_getsync (): tidak sinkron: resp = 0x00". Cukup instal FTDI Driver versi 2.8.24.0. Ada beberapa masalah dengan driver baru v2.8.28.0.

Christian Skjerning
sumber
-1

Saat memperbarui kode dari Arduino IDE di komputer Anda, silakan tarik pin RX kartu Arduino 0. Anda akan mendapatkan keberhasilan mengunggah kode. Hubungkan pin RX dan coba. Atau, Anda dapat menempatkan (mungkin) RX bluetooth ke Arduino RX sehingga TX terhubung satu sama lain.

Teluk
sumber