Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Acesta este un mic ghid pentru a clipi un nou firmware pe o clonă USBasp ca a mea. Acest ghid este scris special pentru clona USBasp văzută în imagini, totuși ar trebui să funcționeze în continuare cu alții. Cablajul este prezentat la pasul 5, există un TL; DR la pasul 9.
Bucurați-vă!
Pasul 1: problema
Avrdude îmi spune că programatorul pe care îl folosesc are un firmware depășit. Jumperul normal pentru auto-programare nu există pe placa mea. Iată cum să remediați acest lucru. Schemele pentru USBasp pot fi găsite la fischl.de.
Pasul 2: Materiale necesare
Vei avea nevoie…
- Un fier de lipit
- Un Arduino (de preferință Nano)
- Unele fire jumper
- Un PC cu Arduino IDE și avrdude instalat
Pasul 3: Soluția
Pentru ca noi să intermitem un nou firmware pe ATmega8, trebuie să obținem controlul pinului RESET. În mod normal, un jumper pe USBasp poate fi închis pentru a permite auto-programarea, totuși producătorul plăcii mele nu a inclus unul.
Pe ATmega8, pinul RESET este pinul 29, al patrulea pin din partea superioară din stânga. Este conectat la un rezistor de tracțiune de 10k la 5V. Trebuie să-l conectăm la pinul 5 al antetului ICSP.
Am putea încerca să lipim un fir direct pe rezistor sau pinul în sine, totuși este obositor și vă poate deteriora placa. (Am încercat-o și am rupt rezistența de tragere, nu o recomand) De asemenea, există o modalitate mult mai ușoară!
Deși producătorul nu a inclus un jumper real pentru a permite auto-programarea, el a pus un antet sub microcontroler. Putem pur și simplu să lipim un fir și …
Pasul 4: Voilà
Am conectat cei doi pini de resetare! Cele două găuri de pe partea inferioară conectează pinul 29 și pinul 14 al microcontrolerului.
Pasul 5: Configurarea Arduino
Pentru a bloca noul firmware pe programator, avem nevoie de un alt programator, în acest caz un Arduino cu schița ArduinoISP pe el. Doar pentru a vă asigura că configurarea dvs. este aceeași, vă rugăm să decomentați linia 81
// #define USE_OLD_STYLE_WIRING
Acum conectați Arduino cu antetul ICSP de pe programatorul dvs.
Arduino USBasp
5V Pin 2 (VCC) GND Pin 4/6/8/10 (GND) Pin 10 Pin 5 (Resetare) Pin 11 Pin 9 (MISO) Pin 12 Pin 1 (MOSI) Pin 13 Pin 7 (SCK)
USBasp rămâne deconectat de la computer.
Deschideți un terminal și tastați
avrdude -cavrisp -pm8 -b19200 -P [Numărul portului dvs. merge aici, ar trebui să fie același ca în IDE Arduino]
Dacă totul merge bine, avrdude ar trebui să imprime câteva informații despre ATmega8 (siguranțe, semnătură etc.)
Pasul 6: intermitent ATmega8
Pentru a bloca cipul, mai avem nevoie de firmware. Accesați fisch.de și descărcați cea mai nouă versiune. Extrageți arhiva și navigați la aceasta folosind shell-ul.
Compilarea codului nu a funcționat pentru mine, dar din fericire arhiva conține toate programele compilate
bin / firmware
Aici ar trebui să vedeți trei fișiere.hex. Alegeți-l pe cel cu același nume ca și cipul dvs. Programatorul meu folosește un ATmega8, așa că am ales
usbasp.atmega8.yyyy-mm-dd.hex
Cu o conexiune funcțională la ATmega8, intermitentul ar trebui să necesite doar tastarea
avrdude -cavrisp -pm8 -b19200 -P [PORT] -U flash: w: [fișier hexagonal]
Dacă totul a fost făcut corect, avrdude ar trebui să scrie și să verifice firmware-ul selectat.
Pasul 7: Asigurați-vă că programatorul funcționează
Pentru a utiliza din nou USBasp ca programator, trebuie să îndepărtăm conexiunea dintre pinul 29 și pinul 14. Tăierea jumperului de pe partea inferioară ar trebui să fie suficientă, totuși îndepărtarea acestuia nu poate afecta niciuna.
Puteți încerca conectându-l din nou la computer și tastând
avrdude -cusbasp -pm8
Chiar dacă avrdude nu poate atinge ținta, ar trebui cel puțin să recunoască noul firmware al programatorului nostru.
Pasul 8: Depanare
Dacă avrdude arată o astfel de eroare, probabil că are ceva de-a face cu funcția de resetare automată a Arduino. Pentru a ocoli acest lucru, vă rugăm să adăugați un condensator între RESET și GND al Arduino. În general, se recomandă utilizarea unui condensator de 10µF, cu toate acestea, în cazul meu, un condensator de 100µF a funcționat foarte bine.
Dacă aveți o eroare de genul
avrdude: eroare: program enable: target nu răspunde. 1
sau se restituie o semnătură nevalidă, vă rugăm să verificați cablajul. Am avut o problemă cu cablurile de alimentare ruginite și nu mai conduc electricitatea. Vă recomandăm să verificați în prealabil toate firele jumperului.
De asemenea, asigurați-vă că comutați pinul 11 și pinul 12 pe Arduino, dacă problema persistă.
De asemenea, asigurați-vă că setați rata de transmisie corectă pentru Arduino ca ISP, 19200. Poate fi setată cu opțiunea
-b19200
Dacă aveți întrebări sau ați observat o greșeală, vă rugăm să ne anunțați:)
Pasul 9: TL; DR
- Lipiți un fir peste cei doi pini de pe partea de jos a plăcii
- Configurați un Arduino ca ISP, asigurându-vă că activați schema de cablare veche
- Conectați Arduino la programator prin antetul ICSP
- Introduceți noul firmware pe programator
- Scoateți conexiunea din partea de jos
- Nu smulgeți rezistențe SMD