Sari la conținut
ELFORUM - Forumul electronistilor

Upgrade firmware USBASP v2.0 prin Arduino Uno R3


oroles

Postări Recomandate

Intr-o postare anterioara am spus ca am incercat sa scriu bootloader-ul ptr Arduino Uno R3, folosind modulul programator USBASP v2.0. Din pacate, cand am incercat manevra, am primit urmatoarea eroare:

 

avrdude: warning: cannot set sck period. please check for usbasp firmware update

 

Cautand pe Internet lamuriri, am gasit urmatorul Howto:

 

Updating firmware on USBASP bought from eBay

 

Urmand pasii de aici, am reusit sa realizez upgrade-ul de firmware al programatorului, fara nici un fel de probleme. 

A fost o experienta interesanta pentru un incepator ca mine; totusi, pentru cei care nu au mai incercat, m-am gandit ca ar putea fi util sa mai fac cateva precizari.

 

Inainte de a trece la treaba, realizati mai intai conexiunile dintre placa Arduino Uno R3 si programatorul USBASP V2.0, urmand indicatiile de la punctul 6 din Howto-ul de mai sus. Daca poza nu este chiar foarte clara, iata mai jos o schema a pinout-ului conectorului de la cablul programatorului :

 

Posted Image

 

Nu uitati ca pentru a putea realiza upgrade-ul de firmware, trebuie sa scurtcircuitati jumperul J2 de pe placa USBASP V2.0.

La fel ca la punctul 5 din articolul citat, am lipit pe placa doi pini extrasi dintr-o bareta/conector tip "pieptene", iar straparea acestora am facut-o cu un jumper recuperat de la o unitate DVD defecta.

 

Abia dupa ce ati realizat toata partea hardware, va puteti apuca de treaba pe zona software.

E simplu. Daca procedati exact ca in articolul de mai sus, totul va functiona "uns". Eu am urmat toti pasii:

 

1. Verificare conectare programator USBASP V2.0 <> PC

2. Backup firmware original
3. Verificare rescriere firmware original
4. Scriere firmware nou
 
la ultimul pas, pentru a simplifica sintaxa de scriere a liniei de comanda pentru avrdude.exe, am plasat fisierul 
usbasp.atmega8.2011-05-28.hex (cel care contine ultimul firmware descarcat pentru USBASP V2.0) chiar in folderul in care exista si avrdude.exe (si unde se salvase de fapt si back-up-ul firmware-ului original cu care cumparasem programatorul). Astfel, linia mea de comanda a aratat astfel:
 

F:Program FilesArduinohardwaretoolsavrbin>avrdude -C ../etc/avrdude.conf -
c avrisp -P COM21 -b 19200 -p m8 -U flash:w:usbasp.atmega8.2011-05-28.hex
 
Dupa rulare, am obtinut urmatorul output:
 

avrdude: AVR device initialized and ready to accept instructions
 
Reading | ################################################## | 100% 0.05s
 
avrdude: Device signature = 0x1e9307
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be perform
ed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "usbasp.atmega8.2011-05-28.hex"
avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: writing flash (4700 bytes):
 
Writing | ################################################## | 100% 7.84s
 
avrdude: 4700 bytes of flash written
avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
avrdude: reading on-chip flash data:
 
Reading | ################################################## | 100% 5.77s
 
avrdude: verifying ...
avrdude: 4700 bytes of flash verified
 
avrdude: safemode: Fuses OK (H:FF, E:D9, L:9F)
 
avrdude done.  Thank you.
 
Cam asta-i tot. Am atasat fisierul cu output-ul corespunzator rularii fiecarei comenzi in parte, pentru cei care vor sa aiba o referinta suplimentara.
 
IMPORTANT:
Dupa upgrade-ul de firmware,. deconectati programatorul de la portul USB si NU UITATI SA DECONECTATI JUMPERUL CU CARE ATI STRAPAT J2, altfel nu va functiona cand veti dori sa il folositi !!
 
Ca test al reusitei, am urmat instructiunile din articolul de mai jos pentru a rescrie din nou bootloader-ul placii Arduino Uno R3, operatiune care s-a derulat cu succes si fara nici un fel de incident.
 
 
Pentru testare, de obicei folosesc exemplul cu Blink, in care schimb delay-ul la 100, ca sa fac LED-ul de pe placa sa clipeasca mai repede (in felul asta imi atrage mai usor atentia).
 
Succes!
Oroles
 
 

 

 

Link spre comentariu

Eu am ramas la punctul 1. Blocat.

Nu pot conecta usbasp la pc. Se aprinde un led rosu si atat. "USB Device Not Recognized" la prima bagare.

La a doua bagare scrie "Found USBasp" si se deschide Wizard-ul care ma invita sa pun drivere sau soft.

Ce pun sa mearga?

Am vazut ca firmware-ul e destul de vechi. Oare chinezii care vand programatoarele astea nu le pun nimic in ele ?

Link spre comentariu

Nu pot conecta usbasp la pc. Se aprinde un led rosu si atat. "USB Device Not Recognized" la prima bagare.

La a doua bagare scrie "Found USBasp" si se deschide Wizard-ul care ma invita sa pun drivere sau soft.

Ce pun sa mearga?

Am vazut ca firmware-ul e destul de vechi. Oare chinezii care vand programatoarele astea nu le pun nimic in ele ?

Driverii pentru USBAsp se gasesc in sectiunea Download pe acelasi site de unde se iau si cei pentru firmware:

http://www.fischl.de/usbasp/

 

E drept ca firmware-ul poate fi vechi, dar la cat costa un programator de la galbejiti, aia nu sunt obligati sa scrie ultima versiune in el ! :)

Sper sa-ti fie de folos !

 

Oroles

Link spre comentariu

ok, am avansat pana aproape de sfarsit, numai fisierul hex imi lipseste. am downloadat fisierul tar.gz , dar nu-l pot despacheta cu ce am eu.

 

era arhivat de mai multe ori, l-am gasit pana la urma.

Editat de lutza2
Link spre comentariu

a) Cum aflu acum ce versiune este scrisa in USBasp ?

b) numai fisierul hex imi lipseste. am downloadat fisierul tar.gz , dar nu-l pot despacheta cu ce am eu. era arhivat de mai multe ori, l-am gasit pana la urma.

 

a) Citeste pasul #1 din fisierul text atasat la prima mea postare!

b) tar.gz este un format de arhiva tipic pe sisteme Unix. Intr-adevar, e dublu arhivat, odata cu tar si apoi cu gzip. Se poate despacheta fara nici o problema cu 7zip (dar nu numai). Referitor la fisierul .hex, citeste ce am scris in prima mea postare, mai spre sfarsit, acolo unde am inceput paragraful cu "la ultimul pas, pentru a simplifica sintaxa de scriere a liniei de comanda pentru avrdude.exe ....." .

L-am scris tocmai ptr ca m-am gandit sa-i scutesc de un hop pe unii care vor fi prea entuziasti si nu vor studia sintaxa utilitarului avrdude.exe ...

...dar nu m-am gandit ca nu vor fi suficient de atenti macar cu amanuntele postarii. :)

 

Succes!

 

Oroles

Editat de oroles
Link spre comentariu

Pana la urma am reusit ceva. Asa ca putem sa zicem ca topicul fu foarte bine venit.

Probleme au fost cu windows 10 pe care inca nu am reusit sa pun driverul pt usbasp.

Ar fi fost utula si o schema de legare a conectorului 6 pini de conectorul cu 10 pini din usbasp, eu nu am gasit-o si am legat:

1 cu 9

2 cu 2

3 cu 7

4 cu 1

5 cu 5

6 cu 10, la usbasp cu 10 pini sunt mai multe configuratii de pinout. Pe placuta mea pare doar 8 si 10 ca ar fi legate la Gnd.

 

Din pacate nu s-a rezolvat problema ridicata si de altcineva. Am rescris bootloaderul cu ce a vrut arduino IDE . Singura chestie e ca acum ledul nu mai clipeste sta permanent aprins , dar tot nu pot pune programe in arduino si am aceeasi eroare de not in sync pe care o aveam si inainte.

 

Ar mai ramane sa schimb quartz-ul de 16M, tot dupa niste pareri de pe net. Macar am un usbasp care functioneste.

Link spre comentariu

Ar fi fost utula si o schema de legare a conectorului 6 pini de conectorul cu 10 pini din usbasp, eu nu am gasit-o

Pe placuta mea pare doar 8 si 10 ca ar fi legate la Gnd.

 

Am rescris bootloaderul cu ce a vrut arduino IDE . Singura chestie e ca acum ledul nu mai clipeste sta permanent aprins , dar tot nu pot pune programe in arduino si am aceeasi eroare de not in sync pe care o aveam si inainte.

Salut,

Am dat o cautare pe Google dupa " ICSP header arduino 10 pins to 6 pins "  si am obtinut asta:

http://www.instructables.com/id/Beeduino-Homemade-Arduino-on-a-Budget/step11/10-Pin-to-6-Pin-ICSP-Header/

Poza chiar de acolo:

Posted Image

Conexiunile realizate de tine sunt corecte, de altfel le puteai verifica comparand schema placii Arduino Uno Rev3 cu cea de la programatorul USBASP original.

 

Nu stiu ce sa-ti spun despre cealalta problema. Eu brick-uisem placa Arduino si am reincarcat bootloaderul procedand exact cum am scris.

Mediul IDE Arduino transfera bootloaderul pentru placa pe care ai selectat-o in meniul aferent, ai grija sa fie cea pe care o folosesti. Eu n-am avut nici o problema, si am rescris de 2 ori bootloaderul (prima oara folosind o placa Arduino Mega 1280 drept programator si a doua oara, folosind USBASP asa cum am scris). Si totul a mers uns...

Poate ti-a scapat ceva, poate te-ai grabit ?! Nu stiu ce sa-ti spun. Poate altcineva cu mai multa experienta, eu am spus clar ca sunt la inceput de drum, am povestit doar ce am experimentat... Oricum, daca il pui la punct, scrie pe aici, sa invete si altii !

 

Bafta,

Oroles

Link spre comentariu

USBasp v2.0 nu are pinii 4 si 6 legati la gnd, cel putin cel pe care il am . O sa-l sun sa vad unde duc.

Cum leg programatorul la Mini Pro ?

1) Ignora pinii 3,4 si 6 de la conectorul cu 10 craci.

Posted Image

Si inca ceva. Pe programatorul meu, JP3 care merge catre bara de +5V, nu are jumper; adica, +5V nu ajung pe pinul 2 al conectorului de 10 pini aflat pe placuta programatorului USBasp. 

 

2) Pana acum 1 minut, habar n-aveam ce inseamna "Mini Pro" .

M-am gandit ca e legat de Arduino si Google mi-a dat dreptate: Arduino ProMini, zice el c-ar fi corect. Bun, mai invat si eu ceva.

Daca ar fi sa ma aflu eu in situatia ta, adica sa vreau sa conectez USBasp-ul la placuta ProMini , as proceda cam asa:

 

- m-as uita in schema de principiu : https://www.arduino.cc/en/uploads/Main/Arduino-Pro-Mini-schematic.pdf

- as cauta apoi Arduino Pro Mini pe site-ul producatorului :

https://www.arduino.cc/en/Main/ArduinoBoardProMini

... unde se poate vedea poza asta:

Posted Image

 

- apoi as cauta Arduino Pro Mini Pinout, care arata ca aici si identificand pinii MISO, SCK, RESET, MOSI, +5V si GND, 

as crea conexiunile necesare. Vezi mai jos poza modificata de mine:

Posted Image

 

Cam asa as face eu. 

Sa-mi zici si mie daca ti-a mers!

 

Oroles

Link spre comentariu

Pana la urma am reusit ceva. Asa ca putem sa zicem ca topicul fu foarte bine venit.

Probleme au fost cu windows 10 pe care inca nu am reusit sa pun driverul pt usbasp.

Ar fi fost utula si o schema de legare a conectorului 6 pini de conectorul cu 10 pini din usbasp, eu nu am gasit-o si am legat:

1 cu 9

2 cu 2

3 cu 7

4 cu 1

5 cu 5

6 cu 10, la usbasp cu 10 pini sunt mai multe configuratii de pinout. Pe placuta mea pare doar 8 si 10 ca ar fi legate la Gnd.

 

Din pacate nu s-a rezolvat problema ridicata si de altcineva. Am rescris bootloaderul cu ce a vrut arduino IDE . Singura chestie e ca acum ledul nu mai clipeste sta permanent aprins , dar tot nu pot pune programe in arduino si am aceeasi eroare de not in sync pe care o aveam si inainte.

 

Ar mai ramane sa schimb quartz-ul de 16M, tot dupa niste pareri de pe net. Macar am un usbasp care functioneste.

Daca led-ul nu clipeste atunci bootloader-ul nu a fost incarcat corect. Eroarea de sincronizare poate proveni din faptul ca nu este bine scris bootloader-ul.

Cu ce program ai comandat USBAsp? Ai citit inainte fuse-bits si, mai mult, i-ai pastrat asa cum erau, nu i-ai alterat in vreun fel?

Nu schimba quartzul pentru ca nu rezolvi nimic asa! Rescrie bootloader-ul.

 

L.E.: in care din cei doi conectori ICSP ai conectat programatorul?

Ai in anexa bootloaderul potrivit

ATmegaBOOT_168_atmega328.zip

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări