Inhoudsopgave:

Hoe de firmware op een goedkope USBasp-kloon te updaten: 9 stappen
Hoe de firmware op een goedkope USBasp-kloon te updaten: 9 stappen

Video: Hoe de firmware op een goedkope USBasp-kloon te updaten: 9 stappen

Video: Hoe de firmware op een goedkope USBasp-kloon te updaten: 9 stappen
Video: ProMicro ISP | SparkFun ProMicro als ISP-programmeur 2024, November
Anonim
Hoe de firmware op een goedkope USBasp-kloon te updaten
Hoe de firmware op een goedkope USBasp-kloon te updaten

Dit is een kleine handleiding voor het flashen van nieuwe firmware op een USBasp-kloon zoals de mijne. Deze handleiding is speciaal geschreven voor de USBasp-kloon die op de foto's te zien is, maar hij zou ook met andere moeten werken. De bedrading wordt getoond op stap 5, er is een TL;DR op stap 9.

Genieten van!

Stap 1: Het probleem

Het probleem
Het probleem
Het probleem
Het probleem

Avrdude vertelt me dat de programmer die ik gebruik verouderde firmware heeft. De normale jumper voor zelfprogrammering bestaat niet op mijn bord. Hier leest u hoe u dat kunt oplossen. Schema's voor de USBasp zijn te vinden op fischl.de.

Stap 2: Benodigde materialen

Je zal nodig hebben…

  • Een soldeerbout
  • Een Arduino (bij voorkeur Nano)
  • Sommige jumperdraden
  • Een pc met de Arduino IDE en avrdude geïnstalleerd

Stap 3: De oplossing

De oplossing
De oplossing
De oplossing
De oplossing
De oplossing
De oplossing

Om nieuwe firmware op de ATmega8 te kunnen flashen, moeten we controle krijgen over de RESET-pin. Normaal gesproken kan een jumper op de USBasp worden gesloten om zelfprogrammering mogelijk te maken, maar de fabrikant van mijn bord heeft er geen meegeleverd.

Op de ATmega8 is de RESET-pin pin 29, de vierde pin bovenaan van links. Het is verbonden met een 10k pull-up weerstand tot 5V. Die moeten we aansluiten op pin 5 van de ICSP-header.

We kunnen proberen een draad rechtstreeks op de weerstand of de pin zelf te solderen, maar het is vervelend en kan je bord beschadigen. (Ik heb het geprobeerd en de pull-up-weerstand eraf gehaald, ik raad het niet aan) Er is ook een veel eenvoudigere manier!

Hoewel de fabrikant geen echte jumper heeft meegeleverd om zelfprogrammering mogelijk te maken, heeft hij wel een header onder de microcontroller geplaatst. We kunnen er eenvoudig een draad doorheen solderen en…

Stap 4: Voilà

Voila!
Voila!

We hebben de twee reset-pinnen aangesloten! De twee gaten aan de onderkant verbinden pin 29 en pin 14 van de microcontroller.

Stap 5: De Arduino instellen

Om de nieuwe firmware op de programmer te flashen, hebben we een andere programmeur nodig, in dit geval een Arduino met de ArduinoISP-schets erop. Om er zeker van te zijn dat uw instellingen hetzelfde zijn, kunt u het commentaar op regel 81 verwijderen

// #define USE_OLD_STYLE_WIRING

Verbind nu de Arduino met de ICSP-header op je programmeur.

Arduino USB-asp

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)

De USBasp blijft losgekoppeld van de pc.

Open een terminal en typ

avrdude -cavrisp -pm8 -b19200 -P [Uw poortnummer komt hier, het zou hetzelfde moeten zijn als in de Arduino IDE]

Als alles goed gaat, zou avrdude wat informatie over de ATmega8 (zekeringen, handtekening, enz.)

Stap 6: Flashen van de ATmega8

Om de chip te flashen hebben we nog steeds de firmware nodig. Ga naar fisch.de en download de nieuwste versie. Pak het archief uit en navigeer ernaar met behulp van de shell.

Het compileren van de code werkte niet voor mij, maar gelukkig bevat het archief alle gecompileerde programma's onder

bak/firmware

Hier zou je drie.hex-bestanden moeten zien. Kies degene met dezelfde naam als je chip. Mijn programmeur gebruikt een ATmega8, dus ik koos

usbasp.atmega8.jjjj-mm-dd.hex

Met een werkende verbinding met de ATmega8, hoef je alleen maar te typen om te knipperen

avrdude -cavrisp -pm8 -b19200 -P[POORT] -U flash:w:[hex-bestand]

Als alles correct is gedaan, zou avrdude de geselecteerde firmware moeten schrijven en verifiëren.

Stap 7: Ervoor zorgen dat de programmer werkt

Ervoor zorgen dat de programmeur werkt
Ervoor zorgen dat de programmeur werkt

Om de USBasp weer als programmer te gebruiken, moeten we de verbinding tussen pin 29 en pin 14 verwijderen. Het doorknippen van de jumper aan de onderkant zou voldoende moeten zijn, maar verwijderen kan ook geen kwaad.

Je kunt het uitproberen door het weer op de pc aan te sluiten en te typen

avrdude -cusbasp -pm8

Zelfs als avrdude het doel niet kan bereiken, moet het op zijn minst de nieuwe firmware van onze programmeur erkennen.

Stap 8: Problemen oplossen

Probleemoplossen
Probleemoplossen

Mocht avrdude een dergelijke fout vertonen, dan heeft dit waarschijnlijk iets te maken met de auto-reset-functie van de Arduino. Om dit te omzeilen, voeg een condensator toe tussen RESET en GND van de Arduino. Het wordt over het algemeen aanbevolen om een condensator van 10 µF te gebruiken, maar in mijn geval werkte een condensator van 100 µF prima.

Mocht u een foutmelding krijgen zoals

avrdude: fout: programma inschakelen: doel antwoordt niet. 1

of een ongeldige handtekening wordt geretourneerd, controleer uw bedrading. Ik had een probleem met mijn stroomkabels die roesten en geen elektriciteit meer geleiden. Ik raad aan om alle jumperdraden vooraf te controleren.

Zorg er ook voor dat u pin 11 en pin 12 op de Arduino verwisselt, als het probleem aanhoudt.

Zorg er ook voor dat u de juiste baudrate voor de Arduino instelt als ISP, 19200. Dit kan worden ingesteld met de optie

-b19200

Als je vragen hebt of een fout hebt ontdekt, laat het me dan weten:)

Stap 9: TL;DR

  1. Soldeer een draad over de twee pinnen aan de onderkant van het bord
  2. Stel een Arduino in als ISP en zorg ervoor dat u het oude bedradingsschema inschakelt
  3. Verbind de Arduino met de programmeur via de ICSP-header
  4. Flash de nieuwe firmware op de programmer
  5. Verwijder de aansluiting aan de onderkant
  6. Scheur geen SMD-weerstanden af

Aanbevolen: