Wat is een bootloader?
Een bootloader kan worden gezien als een vervanger voor een hardware programmer zoals de Wisp648 of de PICkit 2 etc…..
Met een bootloader is de Microcontroller chip direct vanaf de PC via een seriële verbinding te programmeren (mits de controller daarvoor geschikt is, moet RTSP hebben (run time self programming))
Een bootloader bestaat uit een aantal delen.
1: Een software programma op de PC
2: Een seriële (evt. via USB) verbinding tussen de PC en de
Microcontroller
3: Een stukje firmware (programma) op de Microcontroller
Eén van de bootloader programma’s dat als freeware aanwezig is, is DS30.
Microsoft .NET framework 2.0 of hoger of Mono is nodig om DS30 te laten werken.
Deel 1:
Als de zip file voor DS30 gedownload is vind je hierin een directory “DS30-091112” met twee executables, dit zijn een GUI versie en een commandline versie.
Met de GUI kun je met de hand een hex file in je Microcontroller laden, met de commandline versie kun je vanuit je compiler programma direct laden.
Het compiler programma (indien juist ingesteld) geeft dan via een commando met opties aan de commandline versie van DS30 door hoe en waar de hex file in de Microcontroller geprogrammeerd moet worden.
Deel 2:
De seriële verbinding van PC naar Microcontroller.
De DS30 bootloader is bedoeld voor Microcontrollers waarbij de bootloader verbinding via de RX, TX poorten gaat.
In dit geval beperken we ons tot een serëile verbinding via USB.
Het FTDI opsteek bordje is bij uitstek geschikt voor dit werk. De USB driver van dit bordje zorgt ervoor dat vanuit de PC gezien de seriële uitgangen van de FTDI chip (TX, RX) als een standaard COM port gezien worden. Je kunt nu dus vanaf de PC communiceren als over een ouderwetse seriële kabel.
Deel 3:
De Microcontroller moet van een programma (firmware) voorzien zijn wat met deze COM poort kan communiceren. Dit noemt men ook wel bootloader.
PIC Microcontrollers 16F877A, 18F25K20 en 18F25K22 die in de winkel van Knutselaar.eu aangeboden worden, zijn voorzien van ds30 bootloader firmware.
Ook kan men zelf ds30 bootloader firmware aanmaken.
Dit kan nodig zijn als men andere config fuse settingen nodig heeft als degene die in de meegeleverde bootloader zitten.
Hoe gaat het een en ander in zijn werk?
DS30 GUI (Graphical User Interface):
Het ds30 bootloader GUI programma op de PC (ds30LoaderGui.exe) wordt eerst geladen met de HEX file die je in je controller wilt zetten.
Daarna stel je op de GUI device type in (b.v. 18F type 25K22), de baudrate, het COM poort nummer en het vakje “Write program” aanvinken.
Als je nu op de knop Write drukt zal het programma verbinding gaan zoeken met de bootloader op de controller, na 10 seconden volgt een timeout.
De bootloader op de controller “luistert” vrij kort na een reset of power on. (ongeveer 1 seconde) Het is dus de bedoeling om na het indrukken van de Write knop de PIC Microcontroller te resetten of aan te zetten. De verbinding wordt dan gemaakt en uiteindelijk komt de melding completed.
DS30 commandline interface:
Behalve de ds30 GUI (Graphical User Interface) heb je ook de commandline versie (ds30LoaderConsole.exe). Hiermee kun je vanuit je compiler (b.v. Proton of Amicus18) net als bij een hardware programmer direct je PIC Microcontroller programmeren.
Bij Proton en Amicus18 kun je deze als volgt installeren.
Klik in de menu balk van de proton of Amicus18 IDE op de “View” knop en dan op “(Compile and )Program Options”.
Er verschijnt nu een nieuwe window , kies hier voor programmer als dat nodig is en kies dan voor “Install New Programmer”.
Nu komt er een window op met “Install New Programmer, Availiable Programmers”. Kies in dit window voor de “create a custom programmer entry” optie en druk op “Next”. Het volgende scherm wordt dan “Install New Programmer, Select Display Name”. Hier vul je de naam in die je wilt zien als je de programmer wilt selecteren, b.v. “ds30-19K2”, daarna op “Next” drukken.
Het volgende window heet “Select Programmer Executable”, vul hier de naam van de executable voor de commandline versie in: “ds30LoaderConsole.exe” en druk op “Next”.
In het hierop volgende window moet de path naam naar de executable opgegeven worden. Het beste doet men dit met “find manualy” (gaat vaak sneller). Je krijgt dan een directory browser te zien waar je de directory moet selecteren waarin de file te vinden is, vanuit hier zal dan het path aangemaakt worden.
Laatste stap is het opgeven van de parameters voor de commandline versie. dit moet je doen in het laatste venster. Een voorbeeld voor wat je hier in kunt vullen: “−−file=$hex−filename$ −−device=PIC$target-device$ −−port=COM6 −−baudrate=19200 −−writef” (zonder “”). −−file= en −−device= hoef je nooit te veranderen, −−port= en −−baudrate= moet je aanpassen naar wat je gebruiken wilt.
Voor COM poort nummers en het FTDI bordje zie: FTDI driver informatie
Wanneer je met de “ds30LoaderConsole.exe” gaat werken krijg je een zwart schermpje met witte tekst te zien.
Na het indrukken van een toets wacht de bootloader maximaal +/- 10 seconden op contact met de te programmeren PIC controller.
Binnen deze 10 seconden moet je van bootloader firmware voorziene controller dus opstarten of resetten.
Als alles goed gaat ziet het er zo uit.
De files ds30LoaderGui.exe en ds30LoaderConsole.exe kun je vinden in de volgende download file: DS30 Executables en testfiles (HEX) voor 18F25K20 en 18F25K22 met DS30 bootloader
De 2 files staan in de directory DS30-091112
De nieuwste DS30 versie’s zijn eventueel te downloaden vanaf: http://picbootloader.com/forum/forumdisplay.php?fid=13.
Houd er rekening mee dat deze misschien niet compatible zijn met de firmware in de door Knutselaar.eu geleverde PIC controllers.