Forum: Mikrocontroller und Digitale Elektronik PIC18F45K22 - Welchen Bootloader verwenden?


von Markus B. (pspracers)


Lesenswert?

Hallo,

Für mein aktuelles Projekt sollte es später jedem möglich sein 
Softwareupdates einzuspielen auch ohne vorhandenem Programmiergerät, 
daher möchte ich einen Bootloader verwenden.
Ich habe mich nun bereits ein wenig eingelesen, allerdings nicht 
sonderlich viele gute Quellen gefunden.
Ein Problem welches sich mir stellt ist, dass ich keinerlei Kenntnisse 
in Assembler habe, ich aber bis jetzt keinen in C geschriebenen 
Bootloader gefunden habe.
Bis jetzt habe ich gefunden:
AN1310 - direkt von Microchip 
http://ww1.microchip.com/downloads/en/appnotes/01310a.pdf
ds30 Loader - in der Gratisversion 
http://mrmackey.no-ip.org/elektronik/ds30loader/forum/index.php
und den
Tiny PIC Bootloader 
http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm

Die Frage: Mit welchen bekomme ich wohl das beste Ergebnis? :)

Die Kommunikation mit dem PC erfolgt über die UART-Schnittstelle und 
dazugeschaltenem RS232->USB wandler.

Danke für eure Hilfe! :)

LG Markus

von Subnano (Gast)


Lesenswert?

Da schmeisse ich noch einen weiteren Bootloader mit in den Ring:
http://hg.kewl.org/pub/wellington

Der ds30loader ist eine abgekupferte Version des genialen tinypic 
Bootloaoders. Wellington ist eine überarbeitete Version davon. IMHO 
wesentlich einfacher anpassbar für PIC18 und es gibt ein vernünftiges 
CLI Interface für Linux.
Ich habe den Wellington Bootloader verwendet und er funktioniert 
einfach.

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Mikroe hat ein paar für Pic16, Pic18 usw. seriell und USB mit frontend 
für Linux und Windows (und OSX)

von Markus B. (pspracers)


Lesenswert?

Subnano schrieb:
> Da schmeisse ich noch einen weiteren Bootloader mit in den Ring:
> http://hg.kewl.org/pub/wellington

Der sieht auch sehr gut aus :) Hast du damit schon mal einen 
18F45K22,46K22,25K22 oder 26K22 betrieben?
Einen direkt in C geschriebenen Bootloader gibt es nicht? Beim 
Wellington scheint es sich um eine Kombination aus Assembler und C zu 
handeln, Ich hab zwar schon gewusst das man Assembler Code sehr gut auch 
in C Code verwenden kann, habs bisher nur noch nie gesehen^^

Der Rächer der Transistormorde schrieb:
> Mikroe hat ein paar für Pic16, Pic18 usw. seriell und USB mit frontend
> für Linux und Windows (und OSX)

Funktionieren die dann auch mit dem MPlabX 2.20 und XC8 Compiler? Später 
wird noch ein C# Programm(somit für Windows) geschrieben welches neben 
dem Update auch noch weiter Funktionen bieten soll.

LG Markus

von Volker S. (vloki)


Lesenswert?

Markus B. schrieb:
> Einen direkt in C geschriebenen Bootloader gibt es nicht?

Ich habe schon mal überlegt, den HID Bootloader aus der USB Bibliothek 
(MLA) für USART anzupassen. Dazu bin ich aber bisher aber noch nicht 
gekommen, bzw ich war mir auch nicht sicher, ob ich nicht lieber doch 
einen anderen nehmen soll. (Es gibt ja so viele ;-)
Der Bootloader ist in C geschrieben und vom Code her bestimmt 
umfangreicher als die oben genannten Alternativen.
Erste Anwendung dafür wäre bei mir auch ein 18FxxK22.

Das mitgelieferte PC Programm (Sourcecode Qt5 / MAC, Linux, Windows) 
würde ich dann auch erweitern und für beide (HID und USART) nutzen.

: Bearbeitet durch User
von Subnano (Gast)


Lesenswert?

Markus B. schrieb:
> Subnano schrieb:
>> Da schmeisse ich noch einen weiteren Bootloader mit in den Ring:
>> http://hg.kewl.org/pub/wellington
>
> Der sieht auch sehr gut aus :) Hast du damit schon mal einen
> 18F45K22,46K22,25K22 oder 26K22 betrieben?

Nein, "nur" einen PIC18F26K80 - siehe boot/easy-can.asm.
Es ist aber relativ einfach: das Template nehmen (oder ein anderes 
File), PIC Typ wählen, Baudrate und Frequenz einstellen, Uart wählen 
(PORTB oder PORTC), Init ggf. anpassen (für Digitalports) und die 
Config-Register setzen. make generiert dann das Hex-File.
Wie sehen denn Deine o.g. Werte/Einstellungen aus ?

BTW: es ist auch ein CAN-Bootloader Template bzw. Beispiel vorhanden.

Tinypic-Bootloader (mit abstrichen auch ds30loader) und insbesondere 
Wellington sind in ASM geschrieben, um alles in Bezug auf Code-Größe aus 
dem bzw. in den PIC zu quetschen. Das wird man mit C nicht hinbekommen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.