USB Bootloader voor 18F2550 en 18F4550 voor Proton Basic

Deze bootloader bestaat uit een PC programma deel (executable) en een programmaatje op de PIC (firmware).

De 18F2550 (28pin) en de 18F4550 (40pin) hebben beide een hardware USB device aan boord. Deze bootloader maakt gebruik van het USB device (De DS30 bootloader van het UART device (seriƫle poort)). Dit heeft als voordeel dat de PIC direct aan de USB poort van een PC aangesloten kan worden, zonder tussenkomst van een Serieel/USB converter (FTDI b.v.).

Deze bootloader is ontwikkelt uit de Microchip USB stack door Joe Hanley en beschikbaar gesteld op de Proton site
De bootloader is ook hier te downloaden.
Om het PC deel te laten werken moeten ook .NET4.0 en Visual C++ 2010 geinstalleerd zijn.

Het PC tooltje ziet er zo uit:

Heel simpel: 3 knoppen.
De eerste om de hex file op te zoeken en te laden.
De tweede om het programmeren te starten.
De derde om de PIC weer vrij te geven.

Om verbinding te maken tussen de PIC het het tooltje wordt de reset knop op de PIC gebruikt (soms enige malen herhalen)
Zodra de verbinding er is kan met de tweede knop geprogrammeerd worden.De reset knop op de tool geeft na programmeren de PIC weer vrij.

De bootloader firmware (het stukje code in de PIC) zit bij deze bootloader bovenin het memory van de PIC.
Dit heeft als gevolg dat de code die met wil plaatsen voor wat betreft adressering een stukje opgeschoven moet worden.
Bij Proton Basic doet men dat door “Declare PROTON_START_ADDRESS = 0x0f00” in het begin op te nemen.
Bij deze bootloader moet de frequentie “XTAL = 48” worden opgegeven.
Er zit een vinkje in de tool waarmee men config settingen kan laten veranderen. Kijk hier mee uit dat de USB settingen niet verandert worden, dan werkt de bootloader niet meer!

Een klein voorbeeld prgramma:

Device 18F2550
XTAL = 48               ' alijd 48Mhz met Proton USB bootloader

    Declare PROTON_START_ADDRESS = 0x0f00    ;where to start
    Declare LCD_DATAUS 75     ;LCD timing voor wat oudere 16x2 displays (default = 50) 

    ALL_DIGITAL = True
 
    DelayMS 500
    
    Cls
    
    DelayMS 100
    
    Print At 1,1, " Knutselaar.eu "

    While 1 = 1             ' Create an endless loop
        High LATA.5           
        DelayMS 500         ' Wait for half a second
        Low LATA.5             
        DelayMS 500         ' Wait for half a second
    Wend                    ' Do it forever

En nog het aansluit schema:

C20, J20 en X20 vormen samen het
USB direct opsteek bordje.

De 18F4550 of 18F2550 bestellen