Bootloader laden

Uit Nodo Wiki
Ga naar: navigatie, zoeken

Inhoud

Bootloader

Een Arduino heeft een stukje software aan boord dat het mogelijk maakt om programma┬┤s te laden en uit te voeren. In principe is elk nieuw Arduino bordje klaar voor gebruik met een al geladen bootloader, maar zeker bij goedkopere Chinese klonen komt het voor dat de bootloader afwezig is.

Ook komt het voor dat een bootloader beschadigd raakt, en dan reageert het Arduino bordje niet meer.

In beide gevallen kun je zelf een nieuwe bootloader in de Arduino chip laden. Je hebt er alleen altijd een extra stukje hardware voor nodig.

Een tweede Arduino als ISP

De eerste methode gebruikt een tweede (goed werkend!) Arduino bordje, waarin tijdelijk een speciaal script wordt geladen vanuit de Arduino compiler. Hiermee wordt dit Arduino bordje een zogenaamde ISP: een In-System Programmer. Vervolgens wordt het defecte bordje met een aantal draadjes verbonden met het ISP bordje, en wordt een bootloader gebrand.

Hoe dit exact in zijn werk gaat, staat gedetailleerd beschreven op de Arduino site

Arduino als isp.png

Een USBasp

er zijn diverse relatief goedkope ISP kaartjes te koop. Dit is een speciaal stukje hardware/firmware, vaak inclusief een kabel, dat je aansluit op een USB poort van de computer. Afhankelijk van het model en type moet je al dan niet een speciale driver installeren. Als dat allemaal gelukt is, dan kun je dit kaartje rechtstreeks vanuit de Arduino compiler gebruiken om een bootloader te branden in een Arduino bord.

Hieronder zie je een voorbeeld van een zeer betaalbare ISP programmer. Deze was in januari 2013 te koop op eBay voor $ 3,53, inclusief verzending.

USBasp.jpg

Ondanks dat de kabel vanuit deUSBasp er heel standaard uitziet, is hij niet compatible met Arduino bordjes. De makkelijkste manier van verbinden is om zes jumper kabeltjes te nemen, die je gebruikt om de signalen van de connector op de flatcable te verbinden met de juiste pinnen van de Arduino.

De plug aan de flatcable is meestal tien-pins. De layout zie je hieronder. De zespins layout beschrijft de speciale ISP header die op sommige Arduino bordjes aanwezig is, maar vaak ook niet "bestukt": de aansluitingen zijn er wel, maar de header is niet geplaatst. Geeft niet, je kunt altijd via de reguliere pinnen een ISP aansluiten.

ISP plug layout.jpg

Let op dat de nummering steeds horizontaal is: bovenste twee zijn 1 en 2, de twee eronder 3 en 4, daaronder 5 en 6, enzovoort.

Let er ook op dat dit een bovenaanzicht is, dus de kant waarop de kabel in de plug zit geklemd. De gaatjes zitten dan aan de onderkant. Verder zit er vaak een rechthoekig nokje op de plug, die zit links. In geval van twijfel even meten! Verder wordt met VTG hetzelfde bedoeld als VCC oftewel plus-5V.

Let op: de pinnen die je op de Arduino moet verbinden verschillen per type Arduino. Zie onderstaande tabel.

Bedradings tabel
Signaal ISP Programmer Arduino Pro/duemilanove Arduino Mega Arduino AT Tiny 85
MOSI 1 11 51 5
Reset 5 Reset Reset 1
SCK 7 13 52 7
MISO 9 12 50 6
VCC 2 VCC VCC 8
Ground 6 Gnd Gnd 4

LET OP!!!! De USBASP programmer die ik zelf bezit is nogal kieskeurig als het gaat om een USB aansluiting. Ik heb me eens helemaal kleurenblind gezocht naar een probleem. De programmer werkte wel, werd ook keurig aan de driver gekoppeld in Windows, maar het branden van de bootloader (feitelijk alleen de fuses instellen), en ook het laden van een script, eindigde steevast met een vreemde error boodschap. En dan pas na enkele secondes, zodat het leek alsof hij wel degelijk iets deed. Lang gezocht, totdat ik de USB kabel naar de USB hub afhaalde en rechtstreeks op de computer inplugde: probleem verholpen. Misschien komt het door de kwaiteit van de hub, of door het feit dat hij niet "powered" is; hoe dan ook, het probleem was opeens verdwenen....

USBasp: nieuwe firmware installeren

Helaas komt het regelmatig voor dat goedkope USBasp's worden geleverd met ronduit twijfelachtige firmware. Dit merk je dan omdat het ding helemaal niet wil werken, of omdat je regelmatig vreemde foutboodschappen krijgt, meestal beginnend met het schijnbaar joviale "AVRdude"...

Als je dit gedrag zat bent, dan is het mogelijk om nieuwe firmware te installeren in de USBasp. Hiervoor heb je wat software nodig, maar dat is makkelijk te downloaden. Ook heb je extra hardware nodig: een Arduino, acht draadjes, en een 10uF condensatortje.

Hoe je dit precies kunt doen staat beschreven in een document dat door Thijs Slotboom is geschreven (en waarvoor dank!).

Denk er wel om dat dit op eigen risico gebeurt. We hebben de procedure al vele malen uitgevoerd zonder enig probleem, maar als je toch iets stukmaakt dan is het eigen risico!

Het document staat hier: Media:Updaten_firmware_USBasp_met_behulp_van_een_Arduino.pdf

Zie ook

Persoonlijke instellingen
Naamruimten
Varianten
Handelingen
Navigatie
Hulpmiddelen