Arduino Uno'mu yaptım mı? Panele yükleme ile ilgili sorunlar


86

Arduino Uno’ma eskiz yükleyemiyorum.

  • "Tuğla" yaptım mı?
  • Neyin yanlış olduğunu bulmak için hangi adımları atabilirim?
  • Düzeltmek için ne yapabilirim?

7
Merak edenler için bu gerçek bir soru değil! Daha çok referans soru. Sorunun kendisi bilerek oldukça genişlemiştir. Ancak cevap oldukça ayrıntılı ve bu soru referans olarak kullanılabilir.
Paul

2
Daha çok referans soru. Oldukça doğru. Bkz O sorun ve Kendi Sorular Cevap sakınca .
Nick Gammon

@Nick_Gammon Evet. Ama bir şekilde bunu bir yere not etmiş olmalısın. İlk bakışta, sorunun çok geniş olduğu ve herhangi bir araştırma yapmadığınız anlaşılıyor gibiydi (biraz). Ama cevabını gördüğümde, her şey mantıklı geldi. Ayrıca, (yapabildiğiniz zaman) kendi cevabınızı kabul etmeyi unutmamalısınız; böylece yardım etmeye çalışan diğer kişiler bu konuda soruları yanıtlamaya, incelemeye ya da yorum yapmaya başlamazlar (ki bu sizin için gerçekten size yardımcı olmaz) Zaten bu sorunu ayıklamak için oldukça iyi bir yol buldum).
Paul,

Geri dönüşünüz için teşekkür ederiz. Başlangıçta soruyu kendi cevabımı göndereceğim bir notla göndermeyi düşündüm, ama sonra "kendi sorunuzu cevapla" onay kutusunu gördüm, bunun yerine bunu işaretledim. Kabul etme gelince, 20 saat boyunca izin verilmez. Kendi cevabınızı kabul etmek bana biraz garip geldi ama izin verdiğimde kesinlikle yapabilirim. Meta Arduino hakkında bir soru sordum Tam olarak kanonik bir soru nedir? Doğru prosedürü denemek ancak cevap alamamak için.
Nick Gammon

@FaZe ve Nick Gammon: Bu genel olarak harika görünüyor, yapabileceğim tek öneri, konuyu soru ve cevabın gerçekte ne olduğuna dair daha anlamlı hale getirmektir. Olduğu gibi, çok belirsiz bir şekilde havaya uçurmak için cazip olabileceğimi düşünüyorum. Belki de başlık "Başarısız yüklemeleri nasıl giderebilirim?" Olabilir.
dlu

Yanıtlar:


115

Muhtemelen tuğla değildir

Epeyce Arduino'm var ve son birkaç yılda sadece birini “tuğla” yaptım ve sanırım bunu statik elektrikle zıplatıyordum. Maalesef, belirli birinin bir SMD (yüzeye monte) işlemci yongası vardı, bu nedenle başka bir yonga ile değiştirmeyi denemek kolay değil.

Sakin ol ve aşağıdaki adımları dene ...


Örnek tahta

Bir "Arduino Uno" başarısız olabilecek bir şey değil . Birden fazla ana bileşene sahiptir ve muhtemelen yalnızca bir tanesi (eğer varsa) başarısız olmuştur. Bu referans fotoğrafına bakın:

Arduino Uno ana bileşenleri

Ana bileşenler:

  • Atmega16U2 işlemci - bu USB bağlantısının arayüzünü idare eder
  • Atmega328P işlemci - üzerinde taslak üzerinde olan "ana" işlemci.
  • Voltaj regülatörü - bu, gelen gücü elektrik prizinden 5 V'a dönüştürür
  • Güç LED'i (yeşil) - "Açık" işaretli
  • "L" işaretli gösterge LED'i (sarı) - op-amp ile dijital pin 13'e bağlı
  • Rx ve Tx LED'leri (sarı) - bunlar USB yongasının (Atmega16U2) alıp almadığını veya iletmediğini gösterir.

Rx ve Tx LED'lerinin doğrudan panodaki 0 ​​ve 1 dijital pinlerine (Rx ve Tx işaretli) bağlı olmadığını unutmayın. Bunlar sadece USB üzerinden seri iletişim yapıyorsanız yanar , doğrudan dijital pin 0 ve 1'e takılı bir şey (GPS gibi) varsa yanmaz .

Ayrıca, "L" LED'in bir op-amp ile bağlandığından, pim 13'ün çiziminizdeki bir girişe ayarlanmış olması durumunda yanabileceğini unutmayın. Bu normal. Bir şeylerin yanlışlıkla veri yolladığı anlamına gelmez.


Gücü kontrol edin

USB gücü

  • Kartı USB kablosuyla bilgisayarınıza takın ve yeşil "Açık" LED'inin yandığını kontrol edin.

  • 5V pin ve GND pin (altta oklu) arasında test etmek için bir multimetre ve birkaç atlama kablosu kullanın. Yaklaşık 5,0 V değerinde bir okuma almalısınız (benimki üzerinde 5,04 V aldım).

(Eğer yoksa, 10 dolar için ucuz bir multimetre satın alabilirsiniz, ancak 50 dolar için daha iyi bir tane elde etmeniz daha iyidir - tüm elektronik web sitelerini ve mağazaları inceleyin.)

  • Ayrıca 3.3 V pin ve GND pin arasında test edin - 3.3 V almalısınız.

USB kablosu takılıyken 5 V almazsanız, diğer ucunun bilgisayarınıza bağlı olduğundan emin olun. Ayrıca farklı bir kablo deneyin.

Güç jakı

  • Elektrik prizini kullanıyorsanız veya kullanmayı planlıyorsanız (fotoğrafta "güç girişi" olarak işaretlenmiş) USB bağlantısını kesin ve merkez pim üzerinde pozitif olan 7 ila 12 V DC olması gereken bir güç kaynağını takın .

  • Yukarıdaki gibi 5 V ve 3.3 V pimleri ölçün. Hala aynı gerilimleri görmelisin.

USB bağlıyken 5 V alırsanız, ancak güç kaynağında olmasanız, voltaj regülatörü (fotoğrafın üzerinde işaretlenmiş) muhtemelen zarar görür. Veya, muhtemelen güç kaynağı arızalandı. Hangisi olduğunu onaylamak için farklı bir güç kaynağı deneyin.


Açık LED flaşı kontrol edin

Optiboot önyükleyicisine sahipseniz (Uno normalde bununla birlikte gelir) o zaman Reset (Sıfırla) düğmesine basıp serbest bırakırsanız veya USB veya güç kablosunu çıkarıp takarsanız, "L" LED'i hızlı bir şekilde 3 kez yanıp sönmelidir. "Açık" ve "kapalı" zamanları her biri 50 ms'dir, üç flaş bir saniyenin 1 / 3'ü içinde bitmelidir.

Olmazsa, önyükleyici veya ana işlemci yongası (Atmega328P) ile ilgili bir sorun yaşayabilirsiniz.


Bir çizim yüklemeyi deneyin

Önemli: Eskiz yüklerken sorun yaşıyorsanız, bağlı tüm cihazları (kalkanlar gibi) çıkarın. Ayrıca tahta soketlerine takılı köprü tellerini de çıkarın. Özellikle, 0 ve 1 numaralı dijital pinlere (Rx ve Tx) bağlı hiçbir şey olmamalıdır, çünkü bu yükleme bilgisayarıyla iletişim kurmaya engel olur.

Basit örnek çizimlerden birini seçin (örn. Blink) ve yüklemeyi deneyin. Görmeniz gereken şey bu:

  • "L" LED'i 3 kez yanıp sönmelidir. Bunun nedeni, ana çipin yükleme işleminden bir komutla sıfırlanmasıdır.

  • "Rx" LED'i hızlı bir şekilde yanıp sönmelidir. Bu, yükleme işleminden bootloader'ı etkinleştirmeye çalışan talimatlardır.

  • "Tx" LED'i hızlı bir şekilde yanıp sönmelidir. Yüklenen verileri onaylayan işlemci budur.

Yükleme işlemi başarısız olsa bile yukarıdakileri görebilirsiniz. Bunun nedeni yanlış pano tipinin seçilmesi olabilir.

Yalnızca "Rx" LED'i yanıp sönerse, önyükleyici veya ana işlemci yongası (Atmega328P) ile ilgili bir sorun olabilir. Birisi kapıyı çalıyor ama kimse evde yok!

Tahta tipini kontrol edin

LED'ler yanıp sönüyorsa, ancak şöyle bir mesaj alırsınız:

avrdude: stk500_recv(): programmer is not responding

Tahta tipini kontrol edin:

Yönetim Kurulu tipi menüsü

Eğer yanlış pano tipini seçtiyseniz, muhtemelen yanlış yükleme talimatlarını gönderir ve zaman aşımı veya başka türlü başarısız olur. Eğer benim gibiyseniz ve etrafta farklı panoların olması durumunda, yaptığınız son yüklemenin farklı bir pano tipinde olduğunu unutmak kolaydır.

İletişim portunu kontrol et

LED'ler hiç yanıp sönmezse, yanlış iletişim portu seçilmiş olabilir.

İletişim portunu kontrol edin:

İletişim portu menüsü

Mümkünse farklı bir PC / Mac deneyin

Elinizde varsa, Arduino'nuzu farklı bir PC / Mac'te deneyin. Bu, taktığınız bilgisayarla veya genel olarak bilgisayarlarla ilgili bir sorununuz olup olmadığını daraltabilir.

Geridöngü testi yapın

  • Tüm kalkanları ve diğer telleri ayırın
  • Kartı güçten çıkarın
  • RESET'ten GND'ye bir atlama teli bağlayın (fotoğraftaki turuncu kablo)
  • Rx'den Tx'e bir atlama teli bağlayın (fotoğraftaki beyaz kablo)

kablolama:

Geri döngü testi

  • USB kablosunu takın ve Arduino IDE'deki Terminal Monitor gibi bir terminal programı başlatın. Bir şeyler yazın ve gönderin (örn. Terminal Monitor'de Enter tuşuna basın ).
  • Yazdığınız her şey geri yanmalı.

Her şey geri çağrılırsa: Bu, doğru iletişim portuna sahip olduğunuzu doğrular, USB kablosu tamam ve USB arayüz yongası (Atmega16U2) muhtemelen tamamdır.

Hiçbir şey yankılanmadıysa, kontrol edin:

  • Doğru iletişim bağlantı noktanız var.
  • Farklı bir kablo deneyin. Bazı ucuz USB kablolarında yalnızca güç kabloları bulunur, veri kabloları yoktur.
  • Arduino'nun kurulu olup olmadığını görmek için aygıt sürücüsünü kontrol edin. Tahta daha önce bu bilgisayarda çalışmışsa, muhtemelen bunu yapmanız gerekmez, ancak bu tahtayı bu bilgisayara ilk kez taktıysanız, yapmaya değer olabilir.

Atmega16U2 çipini test edin

Anakartınız geri döngü testini geçemezse ve USB kablosunun iyi durumda olduğundan eminseniz, Atmega16U2 yongasının kendisini test edebilirsiniz. Kart üzerinde, Atmega16U2 yongasına bitişik ve USB soketinin yanında bir ICSP (Devre Seri Programlama) başlığı var.

Önce gücü kesin (USB kablosunu ve herhangi bir güç kablosunu çıkarın).

Ardından, fotoğrafta gösterildiği gibi ICSP başlığını 6 atlama kablosu ile bilinen iyi bir Uno'ya bağlayabilirsiniz:

Atmega16U2 çipini test edin

ICSP başlığının pinleri (üstten):

ICSP başlığı

Atmega16U2 yongasının yakınındaki ICSP başlığındaki Pim 1, "AREF" deki "F" yakınında küçük beyaz bir nokta ile işaretlenmiştir. ATmega328P yongasının yakınındaki ICSP başlığındaki pim 1, "ON" konumunda "N" altında küçük beyaz bir nokta ile işaretlenmiştir.

Bağlanmak:

Good board         Target Uno

  MISO                MISO    (pin with dot - pin 1)
  VCC                 VCC
  SCK                 SCK
  MOSI                MOSI
  D10                 /RESET
  GND                 GND

Kablolarını iki kez kontrol et.

Ardından "iyi bilinen" panele "Atmega_Board_Detector" taslağını Atmega bootloader programlayıcı sayfasında açıklandığı şekilde kurun . Kod GitHub - nickgammon / arduino_sketches adresindedir . Bu sayfadaki İndir düğmesine tıklarsanız birçok kullanışlı çizim elde edersiniz. İstediğiniz "Atmega_Board_Detector" olarak adlandırılır.

Kurulduktan sonra seri monitörü açın, 115200 baud'a ayarlayın ve şöyle bir şey görmelisiniz:

Atmega chip detector.
Written by Nick Gammon.
Version 1.17
Compiled on Jul  9 2015 at 08:36:24 with Arduino IDE 10604.
Attempting to enter ICSP programming mode ...
Entered programming mode OK.
Signature = 0x1E 0x94 0x89
Processor = ATmega16U2
Flash memory size = 16384 bytes.
LFuse = 0xEF
HFuse = 0xD9
EFuse = 0xF4
Lock byte = 0xCF
Clock calibration = 0x51
Bootloader in use: No
EEPROM preserved through erase: No
Watchdog timer always on: No
Bootloader is 4096 bytes starting at 3000

Bootloader:

3000: 0x4B 0xC0 0x00 0x00 0x64 0xC0 0x00 0x00 0x62 0xC0 0x00 0x00 0x60 0xC0 0x00 0x00
3010: 0x5E 0xC0 0x00 0x00 0x5C 0xC0 0x00 0x00 0x5A 0xC0 0x00 0x00 0x58 0xC0 0x00 0x00
3020: 0x56 0xC0 0x00 0x00 0x54 0xC0 0x00 0x00 0x52 0xC0 0x00 0x00 0xEE 0xC4 0x00 0x00
...
3FE0: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
3FF0: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

MD5 sum of bootloader = 0xD8 0x8C 0x70 0x6D 0xFE 0x1F 0xDC 0x38 0x82 0x1E 0xCE 0xAE 0x23 0xB2 0xE6 0xE7
Bootloader name: Arduino-dfu-usbserial-atmega16u2-Uno-Rev3

First 256 bytes of program memory:

0: 0x90 0xC0 0x00 0x00 0xA9 0xC0 0x00 0x00 0xA7 0xC0 0x00 0x00 0xA5 0xC0 0x00 0x00
10: 0xA3 0xC0 0x00 0x00 0xA1 0xC0 0x00 0x00 0x9F 0xC0 0x00 0x00 0x9D 0xC0 0x00 0x00
20: 0x9B 0xC0 0x00 0x00 0x99 0xC0 0x00 0x00 0x97 0xC0 0x00 0x00 0x48 0xC4 0x00 0x00
30: 0x0C 0xC4 0x00 0x00 0x91 0xC0 0x00 0x00 0x8F 0xC0 0x00 0x00 0x8D 0xC0 0x00 0x00
...

Ancak böyle bir mesaj alırsanız:

"Failed to enter programming mode. Double-check wiring!"

ATmega16U2'nizin çalışmadığını gösteriyor gibi görünüyor.


ATmega328P çipini test edin

"İyi bilinen" Arduino Uno ile olan gücü kesin ve bu fotoğrafa göre ICSP atlama tellerini Uno'nuzdaki "ana" işlemciye bağlamak için yeniden bağlayın:

ATmega328P çipini test edin

ICSP başlığının pinleri (üstten):

ICSP başlığı

ATmega328P yongasının yakınındaki ICSP başlığındaki pim 1, "ON" konumunda "N" altında küçük beyaz bir nokta ile işaretlenmiştir.

Kablo bağlantısı, diğer ICSP başlığına bağlanmanız dışında, kartın sonundaki USB soketinden en uzak olanı hariç, aynıdır.

Good board       Target Uno

  MISO                MISO    (pin with dot - pin 1)
  VCC                 VCC
  SCK                 SCK
  MOSI                MOSI
  D10                 /RESET
  GND                 GND

Bağlandıktan sonra seri monitörü açın, 115200 baud'a ayarlayın ve şöyle bir şey görmelisiniz:

Atmega chip detector.
Written by Nick Gammon.
Version 1.17
Compiled on Jul  9 2015 at 08:36:24 with Arduino IDE 10604.
Attempting to enter ICSP programming mode ...
Entered programming mode OK.
Signature = 0x1E 0x95 0x0F
Processor = ATmega328P
Flash memory size = 32768 bytes.
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xEF
Clock calibration = 0x83
Bootloader in use: Yes
EEPROM preserved through erase: No
Watchdog timer always on: No
Bootloader is 512 bytes starting at 7E00

Bootloader:

7E00: 0x11 0x24 0x84 0xB7 0x14 0xBE 0x81 0xFF 0xF0 0xD0 0x85 0xE0 0x80 0x93 0x81 0x00
7E10: 0x82 0xE0 0x80 0x93 0xC0 0x00 0x88 0xE1 0x80 0x93 0xC1 0x00 0x86 0xE0 0x80 0x93
...

MD5 sum of bootloader = 0xFB 0xF4 0x9B 0x7B 0x59 0x73 0x7F 0x65 0xE8 0xD0 0xF8 0xA5 0x08 0x12 0xE7 0x9F
Bootloader name: optiboot_atmega328

First 256 bytes of program memory:

0: 0x0C 0x94 0x35 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00
10: 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00
20: 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00
30: 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00 0x0C 0x94 0x5D 0x00
...

Bu durumda, ana işlemcinin çalıştığını ve üzerinde Optiboot önyükleyicisinin bulunduğunu onaylar.


Düzeltebileceğiniz şeyler

Arıza voltaj regülatörü

Bunun değiştirilmesi kolay değildir, ancak yalnızca elektrik prizini kullanıyorsanız gereklidir. USB'den çalıştırıyorsanız, bu gerekli değildir. Alternatif olarak 4 ila 5 V'luk bir besleme (örneğin, 3 x AA pil) ayarlayabilir ve bunları doğrudan karttaki 5 V sokete bağlayabilirsiniz.


Başarısız ATmega16U2 çip

Bu sadece USB portu üzerinden skeç yüklemek ve seri hata ayıklamak için gereklidir. Bir SMD (yüzeye monte cihaz) olduğu için değiştirilmesi özellikle kolay değildir. Ancak onsuz yönetebilirsiniz.

Bir ICSP programlama cihazı satın aldıysanız, çizimleri ICSP başlığı üzerinden yükleyebilirsiniz.

ICSP soketine takılı bu tür cihazlara örnekler:

USBtinyISP

AVRISP

(Bu fotoğraflar bir Ruggeduino tarafından çekilmiş, ancak konsept aynı).


Bunun gibi bir FTDI kablosu da alabilirsiniz:

FTDI'yı Arduino'ya bağlayın

Tahtanızın seri portlarına şu şekilde bağlayın:

FTDI kablosu

FTDI    Arduino Uno

GND       GND  (black wire on FTDI cable, blue jumper wire)
CTS       not connected
VCC       5V
TxD       D0 (RX)
RxD       D1 (TX)
RTS       To RESET with a 0.1 µF capacitor in series with it (green wire)

Artık USB çipini atlayarak eskizleri doğrudan ana işlemciye yükleyebilirsiniz.


Ayrıca .mega dosyalarını yüklemek için Atmega çip bağımsız programlamamı da kullanabilirsiniz - bu, çizim için .hex dosyasını bir SD karta kopyalamanızı ve ardından kartı ICSP başlığı aracılığıyla programlamanızı sağlar.


Başarısız ATmega328P çip

Ana işlemci, bir sokete monte edilmişse kolayca değiştirilebilir. Yaklaşık 6 ABD Doları karşılığında Adafruit gibi bir yerden yeni bir fiş alın . Alternatif olarak, eBay'i deneyin. Güçlükten tasarruf etmek için zaten üzerinde Optiboot bootloader olan bir çip almaya çalışın.

Mevcut fişi dikkatlice soketten çıkarın ve pimi 1'in yerini not ederek yenisini takın. Pim 1 çip üzerinde bir çentik vardır ve bu fotoğraftaki ilk fotoğrafta doğru yönü sarı renktedir. nokta (tahtanın kenarına en yakın). Muhtemelen bacakları hafifçe düzeltmeniz gerekecektir. Çipi uçlarından tutup hafifçe içeri itilene kadar masa gibi düz bir yüzeye yavaşça bastırın. Deneyin değil statik elektrik ile onları zap olabilir, metal işaretçilerine dokunun.


ATmega328P yanıt veriyor ancak önyükleyici yok

Ben de bir taslak var Atmega bootloader programcısı Optiboot bootloader yerini alacak. Kablolama, talaş dedektörü taslağı ile aynıdır. Kod GitHub - nickgammon / arduino_sketches adresindedir . Bu sayfadaki İndir düğmesine tıklarsanız birçok kullanışlı çizim elde edersiniz. İstediğiniz "Atmega_Board_Programmer" olarak adlandırılır.

Krokiyi "iyi bilinen" Uno'nuza takın ve daha önce gösterilen kablolarla hedef kartına bağlayın.

ATmega328P çipini test edin

"Good" Uno'nuzdaki Seri Monitörü açın ve şunu görmelisiniz:

Atmega chip programmer.
Written by Nick Gammon.
Version 1.35
Compiled on Jul  9 2015 at 15:06:58 with Arduino IDE 10604.
Attempting to enter ICSP programming mode ...
Entered programming mode OK.
Signature = 0x1E 0x95 0x0F
Processor = ATmega328P
Flash memory size = 32768 bytes.
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xEF
Clock calibration = 0x83
Type 'L' to use Lilypad (8 MHz) loader, or 'U' for Uno (16 MHz) loader ...

Uno (Optiboot) yükleyici için "U" yazın.

Using Uno Optiboot 16 MHz loader.
Bootloader address = 0x7E00
Bootloader length = 512 bytes.
Type 'Q' to quit, 'V' to verify, or 'G' to program the chip with the bootloader ...

Çipi programlamak için "G" yazın.

Görmelisin:

Erasing chip ...
Writing bootloader ...
Committing page starting at 0x7E00
Committing page starting at 0x7E80
Committing page starting at 0x7F00
Committing page starting at 0x7F80
Written.
Verifying ...
No errors found.
Writing fuses ...
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xEF
Clock calibration = 0x83
Done.
Programming mode off.
Type 'C' when ready to continue with another chip ...

Bu yaklaşık bir saniye sürer. Şimdi bootloader kuruldu.


Bekçi köpeği zamanlayıcı sorunları

Bekçi uygulaması zamanlayıcısı (varsayılan olarak kapalı) işlemciyi belirli bir süre sonra sıfırlamak için yapılandırılabilir. Amaç, alana yerleştirilmiş bir işlemci için bir "takılmadan" kurtulmaktır. Bununla birlikte, zamanlayıcı kısa bir süre için ayarlanmışsa (16 ms gibi), işlemci önyükleyici herhangi bir şey yapma şansına sahip olmadan önce sıfırlanabilir.

Belirtiler, yeni çizimler yükleyemeyeceğinizdir. Bazı modern önyükleyiciler (Optiboot gibi) bu sorunu ilk yaptıkları şeylerden biri olarak durdurmak için adımlar atıyor. Ancak diğerleri yok.

Bunu düzeltmek zor olabilir, çünkü çizim bir kez çalıştıktan sonra sıfırlama probleminiz vardır ve probleminiz varsa çizimi değiştiremezsiniz. İnsanlar genellikle kurtarmak için yeni bir önyükleyici yakmaları gerektiğini bildirir. Ancak bunun nedeni, bir yan etki olarak, bir önyükleyiciyi yakmanın geçerli çizimi silmesidir.

Orada ise kurtarma yolu. Şu adımları izleyin:

  • Kartı tamamen kapatın (USB kablosunu çıkarın).
  • Sıfırlama düğmesini basılı tutun ve aşağı düzenlenen tutmak (GND pin RESET pin bir köprü teli çalıştırabilir veya). Bu, problem taslağının başlamasını ve böylece bekçi uygulaması zamanlayıcısının etkinleştirilmesini önler
  • Hala Sıfırla düğmesini basılı tutarken USB kablosunu tekrar takın.
  • Bu sorunu olmayan bir çizim yüklemeye başlayın (örn. Blink)
  • IDE "Yüklüyor" u bildirdikten sonra Sıfırla düğmesini bırakın (veya atlama telini çıkarın).
  • Şimdi Tamam'ı yüklemeli - bekçi saati kronometresini harekete geçiren çizim asla başlamamıştır.

Mega2560 yüklemeyle ilgili sorunlar

Bu yazıdan bahsediyorum, bu yazı gerçekten Uno tahtasını hedefliyor olsa da, oldukça yaygın.

Mega2560 bootloader'ın bazı versiyonları "!!!" PC'den gelen yüklemede ve bunu görürlerse, hata ayıklama moduna geçin. Bu yükleme işleminin başarısız olmasına neden olur.

Örnek kod:

Serial.println ("Furnace overheating!!!");

Çözümler:

  • Daha yeni bir bootloader yükleyin. Bu cevapta daha önce belirtilen "bootloader uploader" taslağım, bu sorunu olmayan bir bootloader kurmalı.

Veya (daha basit):

  • Kullanmayın "!!!" senin krokide.

Leonardo / Micro / Esplora vs.'ye yükleme sorunları

ATmega32u4'ü ana (ve sadece) işlemcisi olarak kullanan kartlar yüklemek daha zor olabilir. Bunun nedeni aynı çipin yüklemeleri ele alması ve ayrıca kodunuzu çalıştırmasıdır.

Yüklenecek yeni bir taslak ararken, tahta sıfırlandıktan sonra küçük bir fırsat penceresi vardır. Bu panolara yükleme tekniği:

  • Çiziminizi hatasız bir şekilde derleyin.
  • Yüklemeyi başlat
  • IDE "Uploading" i bildirir bildirmez, Reset düğmesine basın ve bırakın.

Eski kroki çalışmaya başlamadan önce bunu yapmak için sadece bir saniyeniz var. Bu işlemi birkaç kez tekrarlamak zorunda kalmazsanız, cesaretiniz kırılmasın. Bu normal.


Referanslar


5
Vay. Bu harika harika bir cevap
rpax

1
Bu harika bir cevap efendim.
Mert Gülsoy

"Eğer USB bağlıyken 5 V alırsanız, ancak güç kaynağınız olmasa, voltaj regülatörü (fotoğrafın üzerinde işaretlenmiş olabilir) büyük olasılıkla hasar görmüştür. Veya, muhtemelen güç kaynağı arızalıdır. ." - bu neden eskizleri yüklemenizi engelliyor?
user2813274,

Çok haklısın, olmazdı. Ancak kontrol listesindeki başarısızlıkların genel bir kontrol listesi olması gerekiyordu. Bu durumda daha çok "Bir taslak yükleyebilirim, ancak alana yerleştirildiğinde, güç kaynağında (duvar siğili) çalışmıyor" gibi olacaktır.
Nick Gammon

1
Geçenlerde yeni FTDI sürücülerinde bir sorun yaşadım "çinileri" FTDI uyumlu "(" taklit diyebilirsiniz) cips ". Aygıtın PID değerini 0x0000 değerine koydular, bu da sürücüleri geçersiz kılacak. PID’yi FTDI’daki M_PROG aracıyla geri değiştirmeyi veya sürücüleri değiştirmeyi (ve doğrulanmamış sürücülere izin vermek için pencereleri ayarlamayı) seçebilirsiniz.
Paul,

14

En azından - çiziminizi avrdude yoluyla yüklediğinizi varsaydığım gibi - lütfen yükleme hatası hakkında daha fazla bilgi verin (örn. Çizim yükleyicisinin çıktısı), böylece buradaki insanlar size daha iyi yardımcı olabilir.

Ayrıca Nick Gammon'un büyük cevabına, lütfen eskizinizde ünlem işareti arayın. Çiziminiz, 3 ünlem işaretinden daha fazla veya ona eşit bir dize içeriyorsa, Arduino Bootloader'ın eski sürümleri bu ünlem işaretlerini başka bir işlev olarak yorumlayacağından ve yükleme işlemi duracağından yükleme işlemi başarısız olacaktır.

Yüklemeyi durdurmanın bir örneği:

char* test = "This will stop the upload!!!";

Google Koduna bakınız .


1
İyi bir nokta. Bu esas olarak Mega2560 için geçerlidir, ancak kabul etmedim. :)
Nick Gammon

1
Bu konuyla ilgilenmek için bir bölüm eklendi.
Nick Gammon

2

Arduino Uno kartımda statik nedeniyle 2x ATMega328P tuğla yaptım (sanırım).

Statik TX pimini öldürmüş görünüyor ve bu nedenle program USB kablosu kullanılarak indirilemiyor.

En kolay çözüm mikrodenetleyiciyi değiştirmektir. Arduino önyükleyicisiyle programlanmış yeni bir ATMega328P DIP satın alabilirsiniz (bunun gibi Adafruit'ten ) ve tekrar gitmeye hazırsınız.

Alternatif olarak, AVRISPmkII programlayıcıyı kullanarak ATMega328P'leri programlayabilirsiniz. Bunu yaptığınızda, Tx pimi dışındaki her şey yolunda gider.

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.