Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Toto je malý průvodce přenesením nového firmwaru na klon USBasp, jako je ten můj. Tato příručka je speciálně napsána pro klon USBasp, který je vidět na obrázcích, přesto by měl fungovat s ostatními. Zapojení je uvedeno v kroku 5, v kroku 9 je TL; DR.
Užívat si!
Krok 1: Problém
Avrdude mi říká, že programátor, který používám, má zastaralý firmware. Normální propojka pro vlastní programování na mé desce neexistuje. Zde je návod, jak to opravit. Schémata pro USBasp najdete na fischl.de.
Krok 2: Potřebné materiály
Budete potřebovat…
- Páječka
- Arduino (nejlépe Nano)
- Nějaké propojovací vodiče
- Počítač s nainstalovaným Arduino IDE a avrdude
Krok 3: Řešení
Abychom mohli na ATmega8 flashovat nový firmware, musíme získat kontrolu nad jeho pinem RESET. Normálně lze propojku na USBasp zavřít, aby bylo možné vlastní programování, ale výrobce mé desky ji nezahrnul.
Na ATmega8 je kolík RESET pin 29, čtvrtý pin nahoře zleva. Je připojen k 10k pull-up rezistoru na 5V. Musíme jej připojit k pinu 5 hlavičky ICSP.
Mohli bychom zkusit připájet vodič přímo na odpor nebo samotný kolík, ale je to zdlouhavé a může to poškodit vaši desku. (Zkoušel jsem to a strhl jsem pull-up odpor, nedoporučuji) Také existuje mnohem jednodušší způsob!
Přestože výrobce nezahrnul skutečný propojovací kabel, který by umožnil vlastní programování, umístil záhlaví pod mikrokontrolér. Můžeme jednoduše pájet drát a…
Krok 4: Voilà
Spojili jsme dva resetovací piny! Dva otvory ve spodní části spojují kolík 29 a kolík 14 mikrokontroléru.
Krok 5: Nastavení Arduina
Abychom nový firmware nahráli do programátoru, potřebujeme dalšího programátora, v tomto případě Arduino a na něm skicu ArduinoISP. Abyste se ujistili, že je vaše nastavení stejné, odkomentujte prosím řádek 81
// #define USE_OLD_STYLE_WIRING
Nyní připojte Arduino k hlavičce ICSP na vašem programátoru.
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 zůstává odpojen od počítače.
Otevřete terminál a napište
avrdude -cavrisp -pm8 -b19200 -P [Vaše číslo portu zde, mělo by být stejné jako v Arduino IDE]
Pokud je vše v pořádku, avrdude by měl vytisknout některé informace o ATmega8 (pojistky, podpis atd.)
Krok 6: Flashování ATmega8
K flashování čipu stále potřebujeme firmware. Přejděte na fisch.de a stáhněte si nejnovější verzi. Rozbalte archiv a přejděte do něj pomocí shellu.
Kompilace kódu mi nefungovala, ale naštěstí archiv obsahuje všechny kompilované programy pod
bin/firmware
Zde byste měli vidět tři soubory.hex. Vyberte ten, který má stejný název jako váš čip. Můj programátor používá ATmega8, tak jsem si vybral
usbasp.atmega8.rrrr-mm-dd.hex
S fungujícím připojením k ATmega8 by blikání vyžadovalo pouze psaní
avrdude -cavrisp -pm8 -b19200 -P [PORT] -U flash: w: [hex soubor]
Pokud bylo vše provedeno správně, avrdude by měl zapsat a ověřit vybraný firmware.
Krok 7: Zajistěte, aby programátor fungoval
Abychom mohli znovu použít USBasp jako programátor, musíme odstranit spojení mezi pinem 29 a pinem 14. Odstřihnutí propojky na spodní straně by mělo stačit, ale jeho odstranění také nemůže ublížit.
Můžete to zkusit zapojením zpět do počítače a zadáním
avrdude -cusbasp -pm8
I když avrdude nemůže dosáhnout cíle, mělo by to přinejmenším potvrdit nový firmware našeho programátora.
Krok 8: Odstraňování problémů
Pokud by avrdude vykazoval takovou chybu, pravděpodobně to má něco společného s funkcí automatického resetování Arduina. Abyste tomu zabránili, přidejte mezi RESET a GND Arduina kondenzátor. Obecně se doporučuje použít kondenzátor 10 µF, ale v mém případě 100 µF kondenzátor fungoval dobře.
Pokud se zobrazí chyba jako
avrdude: chyba: povolení programu: cíl neodpovídá. 1
nebo je vrácen neplatný podpis, zkontrolujte zapojení. Měl jsem problém s korozí napájecích kabelů a již nevedl elektřinu. Doporučuji předem zkontrolovat všechny propojovací vodiče.
Pokud problém přetrvává, nezapomeňte také přepnout pin 11 a pin 12 na Arduinu.
Nezapomeňte také nastavit správnou přenosovou rychlost pro Arduino jako ISP, 19200. Lze ji nastavit pomocí možnosti
-b19200
Pokud máte nějaké dotazy nebo jste narazili na chybu, dejte mi prosím vědět:)
Krok 9: TL; DR
- Pájejte drát přes dva kolíky na spodní straně desky
- Nastavte Arduino jako ISP a nezapomeňte povolit staré schéma zapojení
- Připojte Arduino k programátoru pomocí hlavičky ICSP
- Nahrajte nový firmware na programátor
- Odstraňte připojení ve spodní části
- Neodtrhávejte žádné rezistory SMD