Arduino'yu USB'den seri kabloya programlarken AVRdude senkronize olmayan bir hatayı nasıl düzeltebilirim?


9

PC için bu Ortam aydınlatmasını oluşturmaya çalışıyorum . Bu Arduino Uno'mda kusursuz çalıştı. Bir sonraki adım "bir breadboard üzerinde Arduino" kullanarak yapmak oldu . Bu yüzden boş bir ATmega328 yongası aldım ve Arduino ön yükleyicisini ("Arduino Duemilanove w / ATmega328" için) Arduino IDE ve USBasp kullanarak üzerine yaktım; ve biliyorum ki bu ATmega yongası Uno'da iyi çalışıyor.

Sonra FT232RL kullanarak USB-seri dönüştürücü yaptı ; ancak sürücüleri bilgisayarıma yüklenmedi (Windows 7 x64). Yüzeye monte FTDI yongasını aşırı ısıttığımı ve elle lehimlerken öldürdüğümü sanıyorum.

Yani, bir kenara tuttu ve var bu gösterildiği gibi, RS232 TTL voltaj seviyelerini dönüştürmek için, benim breadboard ek ST232CN kullanılan (Maalesef berbat resimler için): USB-seri dönüştürücü köprüsü bu sayfası . Ve ben bir geridöngü testinden doğrulanmış gibi, bu iyi çalışıyor. Ve ST232'nin 9 numaralı pinini ATmega'nın 2 pinine, 10 numaralı pin 3'e bağladım.

Arduino IDE'den göz kırpma örneği yüklemeye çalıştığımda bu hatayı alıyorum:

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

Ben ne zaman yükleme ayrıntılı (Shift + Yükle), bu hata / mesajı alıyorum:

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

Ayrıca, ATmega'nın 2 ve 3 pinlerine 1k pull-up direnç eklemeyi denedim, ancak yardımcı olmadı. Şimdi sorun ST232'den ATmega'ya seri iletişimde sanırım? ATmega'nın Reset pinine özel bir bağlantı var mı? Ben 10k direnç ile 5V kadar çekti.


Breadboard kurulumunuzun şematik ve / veya resmi size yardımcı olacaktır.
sptrks

3
Çipi yükleme işleminden hemen önce, aynı zamanda mı yoksa yükleme komutunu verdikten hemen sonra mı sıfırladınız? 'Senkronize değil' hatasını aldığımda, bu göreceli zamanlamayla ilgiliydi. Breadboard'um ve Eclipse / AVRDude için, yükleme komutunu hemen önce veya tıklattığımda sıfırlama iğnesinin tabanını açmak doğru zamanlamadır. Ama aynı zamanda PC'nizin fişi taktığınızda adaptörü gerçekten görüp görmediğini kontrol edin.
JRobert

1
@potato_in_my_ear - Çözüm göndermek için uygun biçim bir düzenleme değil, bir yanıttır. Aşağıya bakın, gireceğiniz "Cevabınız" başlıklı bir kutu göreceksiniz. Girdikten sonra, insanlar cevabınızı oylayacak ve cevabın solundaki onay işaretine basarak 'kabul' edebilirsiniz.
Kevin Vermeer

1
@potato_in_my_ear: Yardımcı olduğuna sevindim. Siz bir centilmensin ve bilginsiniz - yorumuma bir cevap vereceğim.
JRobert

2
Çözüm, insanların yorumlarda cevap vermeyi bırakmasıdır!
Kevin Vermeer

Yanıtlar:


6

'Senkronize değil' hatasını aldığımda, sıfırlama zamanlamasını kaçırmam (veya sıfırlamayı tamamen unutmam!) İle ilgiliydi. Breadboard ve Eclipse / AVRDude için, sıfırlama pinini topraklamadan hemen önce veya aynı anda tıklattığım zaman topraklama doğru zamanlamadır. Ancak, bilgisayarınızın fişi taktığınızda adaptörü gerçekten görüp görmediğini de kontrol edin.

Daha sonra arduino kartları seri bağlantı yapıldığında ve programlı olarak bootloader tarafından sıfırlanacak şekilde üretilir. Bu blog makalesi , nasıl çalıştığını ve daha da ilginç bir şekilde, önceki kurullara nasıl hacklendiğini açıklar. İsterseniz bir breadboard'a koymak çok zor olmamalı. Çipin uyumlu bir önyükleyiciye sahip olması gerekir, elbette (zaten kendinize ait olan). Breadboard'lar için, sıfırlama düğmesi / fare tıklaması dansı yapıyorum.


Bazı avr aracı zinciri avrdude.conf düzenleyerek sıfırlama kendisi yapmak alabilirsiniz söyleyerek bulundu ; burada (yorumlarda). Ama bunu nasıl yapacağımdan emin değilim. Yardım edebilir misin. Her zaman sıfırlama tuşuna basmaktan nefret ediyorum ..
Anubis

Bu, daha sonra Aduino'nun yerleşik olduğu Arduino kartında veya breadboard'da donanım desteği gerektirir; kod tek başına yapamaz. Seri DTR'den sıfırlamaya ve bir sıfırlama pull-up'a kadar bir kapasitöre dayanır. Daha eski bir tane veya bir breadboard'unuz varsa, eklemeniz gerekir. Bu EE StackEx sorusu ve alıntıladığım blog makalesi sizi doğru yönde göstermelidir.
JRobert

2

@JRobert'in yorumlarda söylediği gibi, ATmega'daki sıfırlama piminin topraklanması ve topraklamasının doğru zamanlaması hile yaptı. "Yükle" yi tıkladığınızda ATmega'nın sıfırlama pimini topraklamaya devam edin ve tıpkı "Yükleme" ifadesini gösterdiği gibi topraklamayın.


Sadece bir arduino mini var ve kod yüklemek için sıfırlama düğmesine basmak gerektiğini biliyordum, ama ne zaman bulamadım !!! Bu benim için çalıştı. Teşekkürler.
Sünger Bob

0

Ben birkaç sitede RE gördüm aynı hataları vardı RE: Arduino mesajı "avrdude: stk500_getsync (): senkronize değil: resp = 0x00" veya benzeri.

D0'a yamalanmış olan her şeyi kaldırırsam (USB ve Güç jaklarından en uzak olan [D0] DIGITAL pin Zero'nun da "RX" okuduğunu gördüm.

İki farklı bilgisayarı denedim ve aynı hataları aldım ve şunu buldum: 1- Eğer teli [D0] 'e bağlarım veya devreyi açarım. D0]

Bu hatayı yalnızca yüklerken karşılaştım ve bu benim çözümüm. şimdilik.

Umarım yardımcı olur.

Sonunda bir topluluğa faydalı bilgiler vermek iyi hissettiriyor!


1
Yanıt biraz belirsiz: "Ben ... '' kelimesinin eksik olduğunu söyleyen cümle eksik, orada ne söylemeye çalıştığınızdan emin değilim. Lütfen düzenleyin, teşekkürler.
Anindo Ghosh

Bu cevap, atmega donanım seri pimlerine bağlı çakışan devrelere sahip olmayı ifade eder.
Chris Stratton


-1

"Avrdude: stk500_getsync (): senkronize değil: resp = 0x00" hatasını düzeltmek için. FTDI Driver sürüm 2.8.24.0'ı kurmanız yeterlidir. Yeni sürücü v2.8.28.0 ile ilgili bazı sorunlar var.


-1

Bilgisayarınızdaki Arduino IDE kodlarını yükseltirken, lütfen Arduino kartının RX pin 0'ını çekin. RX pinini takın ve deneyin. Veya, Arduino'nun RX'ine Bluetooth'un RX'ini (belki) koyabilirsiniz, böylece TX'ler birbirine bağlanır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.