Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Toto je malý návod na prenos nového firmvéru na klon USBasp, ako je ten môj. Táto príručka je napísaná špeciálne pre klon USBasp zobrazený na obrázkoch, napriek tomu by mal fungovať aj s inými. Zapojenie je zobrazené v kroku 5, v kroku 9 je TL; DR.
Užite si to!
Krok 1: Problém
Avrdude mi hovorí, že programátor, ktorý používam, má zastaraný firmvér. Normálny jumper pre vlastné programovanie na mojej doske neexistuje. Tu je postup, ako to opraviť. Schémy pre USBasp nájdete na fischl.de.
Krok 2: Potrebný materiál
Budete potrebovať…
- Spájkovačka
- Arduino (najlepšie Nano)
- Niektoré prepojovacie vodiče
- Počítač s nainštalovaným Arduino IDE a avrdude
Krok 3: Riešenie
Aby sme mohli na ATmega8 flashovať nový firmvér, musíme získať kontrolu nad jeho pinom RESET. Normálne je možné prepojku na zariadení USBasp zavrieť, aby sa umožnilo samočinné programovanie, výrobca mojej dosky ho však neuviedol.
Na ATmega8 je kolík RESET pin 29, štvrtý kolík zhora zľava. Je pripojený k 10k pull-up odporu na 5V. Musíme ho pripojiť k pinu 5 hlavičky ICSP.
Mohli by sme skúsiť spájkovať drôt priamo na odpor alebo samotný kolík, je to však únavné a môže to poškodiť vašu dosku. (Skúsil som to a odtrhol pull-up odpor, neodporúčam) Tiež existuje oveľa jednoduchší spôsob!
Napriek tomu, že výrobca neuviedol skutočný prepojovací kábel, ktorý by umožňoval automatické programovanie, umiestnil záhlavie pod mikrokontrolér. Jednoducho môžeme spájkovať drôt a …
Krok 4: Voilà
Pripojili sme dva resetovacie kolíky! Dva otvory v spodnej časti spájajú kolík 29 a kolík 14 mikrokontroléra.
Krok 5: Nastavenie Arduina
Na flashovanie nového firmvéru na programátor potrebujeme ďalší programátor, v tomto prípade Arduino a na ňom skicu ArduinoISP. Aby ste sa uistili, že je vaše nastavenie rovnaké, odošlite prosím komentár na riadok 81
// #define USE_OLD_STYLE_WIRING
Teraz pripojte Arduino k hlavičke ICSP na svojom programátore.
Arduino USBasp
5V Pin 2 (VCC) GND Pin 4/6/8/10 (GND) Pin 10 Pin 5 (Reset) Pin 11 Pin 9 (MISO) Pin 12 Pin 1 (MOSI) Pin 13 Pin 7 (SCK)
USBasp zostane odpojený od počítača.
Otvorte terminál a napíšte
avrdude -cavrisp -pm8 -b19200 -P [Tu je uvedené vaše číslo portu, malo by byť rovnaké ako v Arduino IDE]
Ak je všetko v poriadku, avrdude by mal vytlačiť niekoľko informácií o ATmega8 (poistky, podpis atď.)
Krok 6: Flashovanie ATmega8
Na flashovanie čipu stále potrebujeme firmvér. Prejdite na stránku fisch.de a stiahnite si najnovšiu verziu. Rozbaľte archív a prejdite naň pomocou shellu.
Kompilácia kódu mi nevyšla, ale našťastie archív obsahuje všetky skompilované programy pod
bin/firmvér
Tu by ste mali vidieť tri súbory.hex. Vyberte ten, ktorý má rovnaké meno ako váš čip. Môj programátor používa ATmega8, tak som si vybral
usbasp.atmega8.rrrr-mm-dd.hex
S funkčným pripojením k ATmega8 by blikanie malo vyžadovať iba písanie
avrdude -cavrisp -pm8 -b19200 -P [PORT] -U blesk: w: [hex súbor]
Ak bolo všetko vykonané správne, avrdude by mal zapísať a overiť vybraný firmvér.
Krok 7: Zaistite, aby programátor fungoval
Aby sme mohli USBasp znova použiť ako programátor, musíme odstrániť prepojenie medzi pinom 29 a pinom 14. Odstrihnutie prepojky na spodnej strane by malo stačiť, ale jeho odstránenie tiež nemôže uškodiť.
Môžete to vyskúšať tak, že ho zapojíte späť do počítača a napíšete
avrdude -cusbasp -pm8
Aj keď avrdude nemôže dosiahnuť cieľ, malo by to aspoň potvrdiť nový firmvér nášho programátora.
Krok 8: Riešenie problémov
Ak by avrdude ukazoval takúto chybu, pravdepodobne to má niečo do činenia s funkciou automatického resetovania Arduina. Aby ste tomu zabránili, pridajte kondenzátor medzi RESET a GND Arduina. Všeobecne sa odporúča použiť 10 µF kondenzátor, v mojom prípade však 100 µF kondenzátor fungoval dobre.
Ak sa vám zobrazí chyba ako
avrdude: chyba: povolenie programu: cieľ neodpovedá. 1
alebo sa vráti neplatný podpis, skontrolujte svoje zapojenie. Mal som problém s tým, že mi hrdzavili napájacie káble a už nevedú elektrický prúd. Odporúčam vopred skontrolovať všetky prepojovacie vodiče.
Ak problém pretrváva, nezabudnite prepnúť kolíky 11 a 12 na zariadení Arduino.
Nezabudnite tiež nastaviť správnu prenosovú rýchlosť pre Arduino ako ISP, 19200. Je možné ju nastaviť pomocou možnosti
-b19200
Ak máte otázky alebo ste zistili chybu, dajte nám vedieť:)
Krok 9: TL; DR
- Spájkujte drôt cez dva kolíky v spodnej časti dosky
- Nastavte Arduino ako ISP a uistite sa, že povolíte starú schému zapojenia
- Pripojte Arduino k programátoru cez hlavičku ICSP
- Nahrajte nový firmvér do programátora
- Odstráňte pripojenie v spodnej časti
- Neodstraňujte žiadne rezistory SMD