Forum: Mikrocontroller und Digitale Elektronik Chipkit Uno 32 & Microchip Bootloader AN1388


von No Y. (noy)


Lesenswert?

So,

ich hab mir hier vor kurzem aus dem Markt ein Chipkit Uno 32 gekauft 
weil ich ein kleines PIC Board zum mitnehmen in die Bahn haben wollte.
Leider ist da ja dieser Arduino Bootloader drauf.
Da ich aber möglichst in C programmieren will (mir wurde von vielen 
abgeraten die Arduino sprache zu nehmen wenn man C kann... man würde 
sich sein C "versauen") von daher würde ich gerne mit meinem PICKIT3 den 
PIC 32 Bootloader von Microchip draufflashen (will mein Pickit3 nicht 
immer mitschleppen).

Leider bekomme ich es einfach nicht hin. So ein bisschen LED leuchten 
lassen und Taster,PWM,LCD und der ganze kram klappt (bisher auf nem 
PIC18 bzw. dsPIC30) und so weiter klappt schon aber nen Bootloader 
umzustricken....

Naja da es leider kein richtiges Tutorial oder schon ein fertiges .hex 
file oder Source Code passend für das Chipkit Uno 32 gibt hoffe ich das 
mir hier jemand weiterhelfen kann.... UART Bootloader reicht mir 
volkommen. Das problem ist zb. auch das ich ja gar keinen weiteren 
Taster außer den Reset habe um den Bootloader zu aktivieren... Von daher 
passt das PIM Explorer 16 leider nicht. Und mit dem Note von dem 
Bootloader komm ich nciht wirklich weiter, da steht zwar der Ablauf aber 
nicht was man wo anpassen muss.

von Roland H. (batchman)


Lesenswert?

No y. schrieb:
> Leider ist da ja dieser Arduino Bootloader drauf.

Sehe ich als Feature - leider ist in vielen µCs kein "boot loader" 
integriert.

Ich kenne PIC32 Pinguino mit dem USB HID boot loader, es dürfte aber 
ähnlich funktionieren:

Sieh Dir die zugehörige Arduino-IDE an, wie diese ein .hex in die CPU 
überträgt, hoffentlich ist das ein Kommdozeilen-Programm.

Diesem Utility und dem "boot loader" ist es dann ziemlich egal, womit 
das .hex erzeugt wurde.

Allerdings gibt es zumindest beim PIC32 Pinguino und dessen "boot 
loader" eine Besonderheit: Es muss ein spezielles "linker script" 
verwendet werden. Das Kompilat ist somit unterschiedlich für "ohne boot 
loader" und für "mit boot loader". Wenn das für "ohne boot loader" 
fälschlicherweise dem "boot loader" zugeführt wird, dann überschreibt 
sich dieser selbst.

http://forum.pinguino.cc/showthread.php?tid=3377

von No Y. (noy)


Lesenswert?

Ja das Problem ist, dass das Chipkit kein USB HID im Chip hat. Auf dem 
Board ist ein FTDI Chip verbaut. Somit bringt mir ein HID Bootloader 
nichts. Es geht auch mehr um den Bootloader selber nicht um spezielle 
anpassungen am später drauf zu flashendem Programm. Das problem ist das 
die Arduino Bootloader für PIC dieses AVR STK500 dingen benutzen. Was 
ich mit MPLABX geschrieben .hex files denke ich zumindest mal nicht 
nutzen kann. Mir würde ja schon reichen die hex files von MPLABX über 
diese MPIDE auf das Chipkit zu flashen aber anscheinend geht dies nicht.

von Roland H. (batchman)


Lesenswert?

> Das problem ist das
> die Arduino Bootloader für PIC dieses AVR STK500 dingen benutzen.

Ist mit "Dingen" das Protokoll gemeint, über welches sich der "boot 
loader" ansprechen lässt? Das würde vermutlich nicht weiter stören, 
evtl. könnte man sogar mit avrdude das Programm übertragen.

> Was
> ich mit MPLABX geschrieben .hex files denke ich zumindest mal nicht
> nutzen kann.

Ich denke schon - das interessiert weder das "flash utility" noch den 
"boot loader" - warum denkst Du, dass das nicht geht?

> Ja das Problem ist, dass das Chipkit kein USB HID im Chip hat. Auf dem
> Board ist ein FTDI Chip verbaut. Somit bringt mir ein HID Bootloader
> nichts.

Aha, jetzt verstehe ich das Eingangsposting besser.

Versuch mach klug: Einfach probieren: Mit MPLAB erzeugen, und das 
Kompilat so wie chipkit übertragen.

Im schlimmsten Fall zerschiesst es den "boot loader". Das sollte egal 
sein, da Du ja ein PICKIT3 hast.

Ohne Gewähr ;-)

Und bitte über Erfolge berichten :-)

von No Y. (noy)


Lesenswert?

Also ich hab ein wenig gesucht und was gefunden:

Anscheined kann man mit dem AVRdude die .hex files übertragen auch 
direkt aus MPLAB heraus. Ist zwar mehr "gefrickel" als einfach den 
source Code des Microchip Bootloaders anzupassen aber mal probieren.

Meine Frage wäre nun noch was muss ich denn jetzt genau weglassen? Also 
zb. meine config parameter wie watchdog und den kram brauch ich wohl 
nicht mehr. Aber wie fängt man denn nun an ? Bzw. muss ich irgendwas 
spezielles definen damit der mir das Programm erst zu der Bootloader 
einsprung Adresse reinschreibt?

http://chipkit.org/wiki/index.php?title=Avrdude_and_the_chipkit

http://www.chipkit.org/forum/viewtopic.php?f=17&t=97

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.