Kuinka poltan käynnistyslataimen?

Minua kehotettiin ”polttamaan käynnistyslatausohjelma” Arduinolleni korjaamaan virhe, jonka sain. Kuinka voin tehdä tämän? (Ja mikä on käynnistyslatain tarkalleen?)

Kommentit

vastaus

Käynnistyslatain on pieni ohjelma, joka on (melkein) aina Arduinolla. Se hallitsee tekemiesi luonnosten lataamisen ja käynnistämisen ja vilkkuu nasta 13 -merkkivaloa aina, kun levy nollataan.


Käynnistyslataimen polttaminen:

  1. Hanki AVR ISP, USBtinyISP , ParallelProgrammer tai vastaava; tai käytä toista Arduino-korttia . Tämä on Internet-palveluntarjoajasi.
  2. Ellei toisin ohjeisteta, liitä Internet-palveluntarjoaja korttisi ICSP-nastoihin.
  3. Kytke kortti päälle joko USB-kaapelilla tai ulkoisella virtalähteellä. / li>
  4. Avaa Arduino IDE.
  5. Varmista, että valitsit oikean kortin, jolle poltat, osoitteessa Tools ► Board ► IDE: ssä. Tarkista tämä vielä, vaikka voisit ladata ohjelmia oikein; lataaminen ei vaadi aina oikeaa taulua.
  6. Valitse sopiva ohjelmoija osoitteesta Tools ► Programmer ►.
  7. Napsauta Tools ► Burn Bootloader ja odota. Sen ei pitäisi kestää kauemmin kuin minuutti, ja se kestää usein vain muutaman sekunnin.

Lähteet:

Kommentit

  • AVRISP on melkein EOL (elämän loppu) tässä vaiheessa. Ainakin haluat AVRISPmk2: n. Tarjolla on myös paljon muita miellyttäviä työkaluja (esimerkiksi AVR One!). Sinun pitäisi luultavasti sanoa vain {line 1} or other dedicated ISP programmer.
  • Arduino Yunin kaltaisilla levyillä joka kerta, kun " lataat wifi-yhteyden kautta ", ' käynnistyslataimen polttaminen sulautui luonnokseesi. Tämä johtuu siitä, että Linux-keskusyksikkö on kytketty AVR-keskusyksikköön SPI: n kautta, jotta voit matkia Internet-palveluntarjoajaa ohjelmistolla.
  • @FedericoFissore – viekö se siksi niin kauan?
  • Kyllä, se ja se, että GPIO-bittisiirto on hitaampaa. Sen nopeuttamiseksi pyritään jatkuvasti.

Vastaa

Mikä on käynnistyslatain?

Ja mikä on käynnistyslatain tarkalleen?

Käynnistyslatain on pieni koodipala, joka sijaitsee ohjelmamuistin ”korkeassa” osassa. Normaalisti sitä ei poisteta, kun lataat uusia luonnoksia. Tarkoitus on aktivoida heti nollauksen jälkeen (sulakkeet on konfiguroitu aloittamaan koodi käynnistyslataimen osoitteesta osoitteen 0x0000 sijaan). Käynnistyslatain odottaa vähän aikaa (kuten sekunnin) nähdäksesi, onko ”ohjelmointitietoja” saapumassa sarjaporttiin.

  • Jos on, se lukee nämä tiedot ja purkaa se ohjelmoi loput flash-muistista uudelleen. Latausohjelman (yleensä avrdude) yhteydessä uusi luonnos lähetetään sarjaportin kautta. Käynnistyslatain pyyhkii flash-muistin sivut ja korvaa ne uudella koodilla. Kun se on valmis, se suorittaa uuden koodin.

  • Jos ohjeita ei tule, käynnistyslatain hyppää osoitteeseen 0x0000 suorittaakseen olemassa olevan piirustuksen.


Käynnistyslataimen korvaaminen

Vaihtoehtoinen tapa käynnistyslataimen ohjelmointiin on käyttää jonkin aikaa sitten kirjoittamaani luonnosta, joka toimii:

  • Uno (tai vastaava, kuten Duemilanove)
  • Leonardo
  • Mega2560

”Ohjelmointitaulu” suorittaa luonnoksen, joka on käynnistyslataimet useille levyille, jotka on koodattu siihen. Yhdistät ohjelmointikortin kohdekorttiin (alusta, joka haluaa käynnistyslataimen) kuudella liitäntäjohdolla kuvan osoittamalla tavalla. p>

Kyseinen valokuva kuvaa yhden Unon ohjelmoivan toisen.

Suoritat luonnoksen (annat sille komentoja Serial Monitorin kautta). Ensin se tunnistaa kohdesirun:

Atmega chip programmer. Written by Nick Gammon. Entered programming mode OK. Signature = 0x1E 0x95 0x0F Processor = ATmega328P Flash memory size = 32768 bytes. LFuse = 0xFF HFuse = 0xDE EFuse = 0xFD Lock byte = 0xCF Bootloader address = 0x7E00 Bootloader length = 512 bytes. Type "L" to use Lilypad (8 MHz) loader, or "U" for Uno (16 MHz) loader ... Type "G" to program the chip with the bootloader ... 

Painat G sen ohjelmoimiseksi.

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 = 0xCF Done. Type "C" when ready to continue with another chip ... 

Unolle tämä kestää sekunnin. Mega2560: n ohjelmoiminen kestää 3 sekuntia.

Yksityiskohtaiset ohjeet osoitteessa Atmega bootloader-ohjelmoija

Koodin voi ladata osoitteesta Github: nickgammon / arduino_sketches

Kommentit

  • Onko sinun valittava tyyppi sirusi, johon poltat (Tools- > Board ..)?Mikä levy valitaan, kun poltan käynnistyslataimen itsenäiseksi siruksi?
  • Valitset levytyypin , jota käytät käynnistyslataimen polttamiseen IDE: ssä. Käynnistyslataimen luonnos tunnistaa kohdekorttityypin automaattisesti.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *