USB Bootloader für PIC18F4550? Wie geht das?

Support-Forum für Deutschsprachige, die in ihrer Muttersprache schreiben möchten.

Moderator: Benj

Post Reply
juergenschmitz
Flowcode V4 User
Posts: 5
Joined: Mon Nov 02, 2009 12:27 pm
Contact:

USB Bootloader für PIC18F4550? Wie geht das?

Post by juergenschmitz »

Hallo Flowcode Freunde,
wer hat bereits beim PIC18F4550 den USB-Bootloader verwendet?
Und bitte wer hat die Möglichkeit mir zu nennen, wie es genau funktioniert?
Es wäre sehr hilfreich, wenn es quasi so eine Art Liste mit Punkten gibt, die abgearbeitet werden müssen und dann gehts.
Vom Prinzip her habe ich das Verstanden, aber am Umsetzen scheitert es leider noch.
Ich gehe mal davon aus, dass es in dieser Art irgendwie funktioniert:

a) Bootloader von Micrchip herunterladen oder vielleicht von Sprut?
Welchse Dateien oder Versionen?
b) Das hex-file entsprechend mit einem Programmer (z.B. Galep 4) in den PIC laden
c) Flowcode Projekt anlegen und als Target "MCHP_FSUSB" angeben und Projekt und hex-file erzeugen
d) Projekt mit Bootloader.exe in den PIC über USB laden?
Braucht es dafür aber wohl noch ein Programmiertool? Welches wird dafür benötigt? Es sollte möglichst günstig sein

Ergänzungen:
Wie stelle ich dann die Taktfrequenz ein? Also welchen Quarz benötige ich dann? 48MHz ist klar, aber die können ja mit unterschiedlichen Quarzen und Einstellung der "Faktoren" erzeugt werden. Wie geht das genau?

In der Flowcode Hilfe war es wenig ausführlich beschrieben.
Leider fehlt mir beruflich z.Z. etwas die Freizeit um mich sehr lange mit Suchen zu beschäftigen. Wenn es also schon eine fertige Lösung gibt, dann wäre ich sehr dankbar, wenn mir jemand helfen könnte. Sollten Infos oder Dateien gesendet werden, dann einfach an: js72@freenet.de
Vielen Dank

User avatar
Benj
Matrix Staff
Posts: 15312
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Has thanked: 4803 times
Been thanked: 4314 times
Contact:

Re: USB Bootloader für PIC18F4550? Wie geht das?

Post by Benj »

Hallo,

Die ECIO Palette von Produkten verfügen bereits über den USB-Bootloader und Flowcode eingerichtet ist, um mit dem USB-Komponenten arbeiten out of the box.

Falls dies nicht für Sie dann, damit Ihr USB-Bootloader zu arbeiten, müssen Sie den Bootloader Hex-Datei in das Gerät gewährleistet die Konfigurationseinstellungen passend zu Ihrer Hardware herunterladen. einem 4MHz Quarz ist gut für die Erzeugung der 48MHz PLL-Ausgang. Der Microchip Pdfsusb Bootloader funktioniert ok, aber das Programmier-Tool akzeptiert keine Befehlszeilenparameter, so müssen Sie manuell die Datei laden jedes Mal haben.

Bei der Programmierung via Flowcode müssen Sie die Compiler-Optionen Punkt, um den Bootloader Programmier-Tool wie die Programmier-Software verwenden und Sie müssen auch diese zusätzlichen Parameter an den Linker hinzugefügt, damit er den Code entsprechend zu verschieben.

-rb 0x800

wo 0x800 ist das Ende der Bootloader / Beginn der Programmspeicher.


Hello,

The ECIO range of products already feature the USB bootloader and Flowcode is setup to work with the USB components out of the box.

If these are not for you then to allow your USB bootloader to work you will need to download the bootloader hex file into the device ensuring the configuration settings match your hardware. a 4MHz crystal is good for generating the 48MHz PLL output. The Microchip Pdfsusb bootloader will work ok but the programming tool does not accept command line parameters so you have to manually load the file each time.

When programming via Flowcode you will need to point the compiler options to use the bootloader programming tool as the programming software and you will also need to add this extra parameter to the linker to allow it to shift the code appropriately.

-rb 0x800

where 0x800 is the end of your bootloader / start of program memory.

juergenschmitz
Flowcode V4 User
Posts: 5
Joined: Mon Nov 02, 2009 12:27 pm
Contact:

Re: USB Bootloader für PIC18F4550? Wie geht das?

Post by juergenschmitz »

Hallo Ben,

vielen Dank für die schnelle Antwort.
Leider hilft mir diese Antwort nur sehr wenig.
Das bei der ECIO Palette ein Bootloader enthalten ist habe ich gewusst. Dafür muss ich aber die ECIO Palette kaufen. Oder ist das nicht richtig?
Die ECIO Pallette ist ja sehr gut und auch sehr nützlich. Aber diese passt nicht zu meiner Anwendung.
In der ECIO Palette ist aber doch auch der PIC18F2550 und nicht der PIC18F4550?
Das das Anwender Programm an der Stelle 0x800 beginnen soll und das ich das in den Linker eintragen muss war mir bekannt. Das ist in den Linker einzutragen.

Das was mir helfen würde wäre im Prinzip der Bootlaoder der ECIO und ein entsprechendes Softwaretool, welches dann über USB mit dem PC verbunden ist.
Den Bootloader müsste ich dann als hex-file über mein Programmiergerät GALEP III
Zusätzlich müsste ich den Bootloader aber wohl auch immer mit im Flowcodeprojekt haben. da bin ich mir jetzt nicht sicher ob ich das verstanden habe.

Es wäre doch hilfreich, wenn man in Flowcode einen Bootloader separat auswählen könnte!?
Und in Flowcode müsste es dann die Möglichkeit geben über USB direkt das Projekt laden zu können. Im prinzip wie bei der ECIO, aber frei für eigene Projekte.

Mir fehlt einfach das Verständnis, wie ich das ganz genau praktisch umsetzen muss. Im Moment hab eich nur Halbwissen udn bekomme den Transfer nicht hin, alles zusammen zusetzen.
Vielleicht stelle ich mich auch ein bischen dumm an, aber bin halt Anfänger.
Vielen Dank nochmals für die Hilfe. Vielleicht hat ja auch ein anderer leser in dem Forum das schon mal praktisch umgesetzt und kann mir das mal genau erklären.
Wäre schön.
VG
Jürgen

juergenschmitz
Flowcode V4 User
Posts: 5
Joined: Mon Nov 02, 2009 12:27 pm
Contact:

Re: USB Bootloader für PIC18F4550? Wie geht das?

Post by juergenschmitz »

Hallo Ben,

ich habe gerade nochmals in Flowcode nachgeschaut und dann mal das ECIO-40 Projekt als Target angeben. Dann wird der PIC18F4455 angegen im Bild für den Mikrocontroller. Nun hab eich das Bild mit dem Datenblatt von Microchip verglichen und festhestellt, dass es ja unterschiedlich ist. Im Datenblatt steht aber, dass bis auf die Größe des Speichers die Chips gleich sein sollen.
Ist vielleicht in Flowcode das Microcontrollerbild nicht ganz passend oder welchen Grund hat das?
Das Bild alleine wäre mir egal, wenn die Anschlüsse so wären wie im Datenblatt. Also PIC18F4455 und PIC18F4550 sind identisch.
Und dann könnte ich das nutzen und der Bootloader würde direkt enthalten sein? Also beim erstenmal mit dem PALEP III programmieren udn dann über USB?

Vielen Dank nochmals.
Viele Grüße

Jürgen

saschech@gmx.de
Posts: 714
Joined: Wed Jan 31, 2007 12:41 pm
Has thanked: 1 time
Been thanked: 26 times
Contact:

Re: USB Bootloader für PIC18F4550? Wie geht das?

Post by saschech@gmx.de »

Hallo Jürgen

Das Bild von der Belegung ist nicht identich mit der Chip-belegung.
Der Hauptspeicher (Flash) ist ist beim 4550 um 8K größer.

Ecio40pin ist mit Flowcode schon eine Einheit.
d.h.:
Schreibe dein Projekt in Flussdiagramm >>> teste es in Flowcode ob es alles richtig macht;was du möchtest >>>> lade es über das USB-Kabel
in den chip >>> wenn alles klappt läuft es jetzt auf deiner Hardware.(led`s,Taster,Display usw.)

Wenn dir 24K Speicher für dein Projekt genügen,ist das die einfachste!!!!!! und kostengünstigste Art einen Pic zu programmieren.

Gruß Wolfgang
Attachments
chip.gif
chip.gif (21.01 KiB) Viewed 9371 times


juergenschmitz
Flowcode V4 User
Posts: 5
Joined: Mon Nov 02, 2009 12:27 pm
Contact:

Re: USB Bootloader für PIC18F4550? Wie geht das?

Post by juergenschmitz »

Hallo Zusammen,

vielen Dank Wolfgang für Deine Nachricht und Deine Bemühungen. Das habe ich auch verstanden und mich am Abend nochmals damit beschäftigt.
Das Bild in Flowcode bei dem ECIO40 zeigt die Pins an, die nach außen geführt sind. Hätte ich ja eigentlich auch direkt drauf kommen können. Habe mich aber damit komplett in die Irre bringen lassen.
Dann brauche ich das Projekt einfach nur mit dem PIC18F4455 aufbauen, einen 4MHz Quarz nehmen, den USB entsprechend Datenblatt verschalten, noch den Resetbutton (hoffe der liegt an MCLR) und dann sollte es funktionieren. Auf der ECIO ist aber eine andere Bauform gewählt. Also Hobbyelektroniker werde ich den DIL Typ verwenden. Aber ich hoffe das ist egal.
Ansonsten könnte ja vielleicht auch das Formula Modul funktionieren!? Da ist auch mit USB Bootloader und einem DIL Typ. Ich habe auf jedne Fall mal einen PIC18F4455 bestellt. Den bekomme ich zwar relativ schnell geliefert, bin aber gerade beruflich im Ausland und kann es nicht gleich testen. Vermutlich erst im September bin ich wieder zurück. Aber wenns dann funktioniert, dann wäre das echt super. Das mit dem Bootloader ist halt sehr praktisch, weil der Chip dann eingebaut bleiben kann.
Insgesamt möchte ich damit einige Schaltungen für meine Modelleisenbahn bauen. Hoffe ich zumindest. Mit Motortreiber, Lichtschranken, RS485 und USB an .Net anbinden. Also alles rein privat.
Vielen Dank nochmals Wolfgang.

Vielen Dank auch Dir Steve. Den Link hab eich mir durchgelesen und klar verstehe ich das schon, dass es alleine wegen der Rechte und auch des Verkaufs keinen fertigen direkt einzeln verwendbaren Bootloader gibt. Liegt ja auch daran, dass jedes USB Gerät lizenziert ist oder sein muss und das auch Geld kostet. Das muss ja auch wieder zurückwandern. Schon klar. Da es ja alles privat ist, waere es ja eigentlich egal und eine Hilfe für Hobbyisten, wenn sie den Bootloader auch so frei verwenden könnten. Von mir aus auch mit Lizenzerklärung usw..
War vielleicht auch zu einfach aus Sicht eine Hobbyisten gedacht.
Also ich denke, ich habe jetzt einges dazu gelernt und hoffentlich auch verstanden.
Vielen Dank nochmals für Eure Hilfen. Bin überrascht, weil ich schon einge Foren durchstöbert habe und dann lesen musste, dass es ja 1000 Beispiele im Netz gibt. Kann ja sein, aber wenn ich die gefunden hätte, dann hätte ich ja wohl nicht gefragt. Aus Langeweile mache ich das ja nicht. Von daher bin ich positiv überrascht

Viele Grüße und einen schönen Abend.
Jürgen

fresh
Posts: 47
Joined: Mon Jun 08, 2009 11:11 am
Contact:

Re: USB Bootloader für PIC18F4550? Wie geht das?

Post by fresh »

Hallo Jürgen,
wenn es "nur" darum geht den PIC nicht ausbauen zu müssen, könntest Du diesen
doch via ICSP programmieren.

Gruß Andreas

saschech@gmx.de
Posts: 714
Joined: Wed Jan 31, 2007 12:41 pm
Has thanked: 1 time
Been thanked: 26 times
Contact:

Re: USB Bootloader für PIC18F4550? Wie geht das?

Post by saschech@gmx.de »

Hallo Jürgen

So einfach geht es leider nicht;entweder du kaufst bei elektor einen"ecio40pin" und behandelst diesen Print als ein
"40-poligen Chip mit usb-programmierung" 4Stck = ca. 100€ >> http://www.elektor.de/products/e-blocks ... 9920.lynkx
1Stck = ca 30€ >> http://www.elektor.de/products/e-blocks ... 7422.lynkx
ecio40pin hat den Bootloader schon einproggramiert und ist somit betriebsbereit nachdem Du die entsprechenden USB-Treiber zusätzlich auf Deinem
PC installiert hast (zusätzlich zu Flowcode).
Soltest Du intensiver mit den Pick`s arbeiten wollen,würde ich Dir ein Pickit2(3) empfehlen (ICD3 ist eine teurere Lösung) ; ein Proggramiergerät brauchst
Du so wie so,um den USB-loader in den "nackten" Chip zu bekommen......Den 18F4455 kannst Du trotzdem verwenden ; die usb-pins sind dann halt i/o`s.

Der Start ist zwar etwas holprig,wenn es aber dann mit ein wenig Übung verstanden ist ;macht das Erstellen von Programmen mit Flowcode richtig Spaß!!!!
Zudem ist es um einiges einfacher damit als asm oder C (zumal mit einem Pic),asm mit z80 oder 8051 ging ja noch.........
Solltest Du noch Fragen haben melde Dich .

Gruß Wolfgang

juergenschmitz
Flowcode V4 User
Posts: 5
Joined: Mon Nov 02, 2009 12:27 pm
Contact:

Re: USB Bootloader für PIC18F4550? Wie geht das?

Post by juergenschmitz »

Hallo Zusammen,

sorry für die verspätete Antwort. Im Hotel war Internet defekt. Gewitter. Aber jetzt gehts wieder.
@Andreas
nun ja, es geht nicht nur darum, dass der PIC nicht ausgebaut werden soll. Ich wollte auch noch eine USB Kommunikation mit .Net durchführen. Zumindest mal in der Zukunft. Und deshalb habe ich gedacht, ein USB Bootloader wäre schon sehr passabel und dann auch schnell erweiterbar.
Für ICSP benötigt man aber doch wieder ein spezielles Programmiergerät? Ich habe halt nur das GalepIII und damit kann ich HEX-Files in den PIC schieben. Aber dafür muss der Chip raus und es ist noch sehr langsam, weil über Parallelen Port. Aber vielleicht hast Du eine Anschaltskizze oder sogar mal ein eigenes Projekt gemacht? Dann könnte ich mir zumindest auch dazu mal einen kleinen Überblick machen.
Danke schön auf jeden Fall für die Info.

@Wolfgang
hmm, das ist ja schade, dass es nicht so einfach geht.
Also ein Programmiergerät habe ich ja schon. Das GalepIII. Ist schon ein paar jahre alt und funktioniert auch. Das Hex-File kann ich damit immer in den PIC schieben udn es macht keine Probleme. Außer das es sehr langsam ist und auch wenig komfortabel.
Aber für den Bootloader einmalig auf den PIC zu laden ist es kein Problem.
Also brauche ich ja eigentlich nur den Bootloader -> von mir aus auch als Hex-File, laden den hinein und kann dann via Flowcode programme laden.
Das muss doch irgendwie möglich sein.
Im Prinzip ist das mit Flowcode nicht so schwer. ich habe ja schon ein paar Projekte gemacht, aber ohne Bootloader. Der Rest ist ja wirklich nicht so kompliziert. Zumindest ist es besser als asm. Bei C bin ich mir nur halb sicher. Die Komponenten vereinfachen natürlich das Leben enorm. Wenn man dass alles selber programmieren muesste und die Registerzuweisung, dann wäre man schon eine ganze Zeit beschäftigt. Der einzige Vorteil wäre, dass wenn es funktioniert, es alles klar ist wie es genau funktioniert. Das ist bei Benutzung von Flowcode eben nicht immer gewährleistet. Im Prinzip muss man es ja auch nicht genau wissen, aber bei Problemen findet man so viele viel schneller die Lösung.
Damit habe ich aber mein problem zwar weiter durchleuchtet, aber die Lösung habe ich natürlich noch nicht. Ich hatte ja mal per USB und .Net eine Kommunikation aufgebaut und auch Variablen Inhalte vom PIC zum PC und umgekehrt senden können. Es fehlte halt nur noch der Bootloader.

Dann wünsche ich mal allen einen schönen und nicht so stressigen Wochenenanfang und viele Grüße aus Italien
Jürgen

Post Reply