Forum: Mikrocontroller und Digitale Elektronik USB Bootloader für PIC24


von Tom (Gast)


Lesenswert?

Hallo miteinander

Zurzeit arbeite ich an einem Projekt, welches auf einem PIC24FJ256GB106 
aufbaut. Nebst diversen anderen Peripherien ist auch ein USB-Anschluss 
auf den Controller geführt.
Über den würde ich jetzt gerne die neue Software einspielen, bisher 
läuft das alles noch per PicKit3 ab.

Von Microchip gibt es bereits einen USB Bootloader, der genau das macht. 
Jedoch ist der für den PIC24FJ256GB110 geschrieben und aus irgendeinem 
Grund bringe ich den nicht zum laufen, trotz diversen Modifikationen.

Hat hier jemand vielleicht per Zufall schonmal den Bootloader angepasst 
an einen anderen Controller und könnte mir mitteilen, was er genau 
geändert hat?

Danke und Gruss
Tom

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Hallo Tom,

mit dem USB-Bootloader habe ich zwar nicht gearbeitet, aber ich durfte 
letztens das USB-CDC-Beispiel von Microchip vom GB110 auf den GB106 
angepassen. Ich hatte für beide Controller PIM-Module für das 
Explorer-16-Board und musste beim Config-Bits des GB106 nur 
"PLLDIV_DIV3" in "PLLDIV_DIV2" ändern, da sonst der Takt nicht passte. 
Das Beispiel sah eigentlich vor, dass man für den GB106 ein anderes 
Board mit anderem Quarz verwendet, daher war die Änderung nötig. Die 
Taktgeschichte würde ich in jedem Fall prüfen, ansonsten müsste der Rest 
bei beiden Controllern eigentlich gleich sein.

Christoph

von Tom (Gast)


Lesenswert?

Hallo Christoph

Danke für deine Antwort.
Ich bin jetzt immerhin soweit, dass sich der PIC versucht per USB 
anzumelden.
Der Fehler lag in den Fuses, hab den Eintrag für die externe Taktquelle 
übersehen...nach der Änderung auf "FNOSC_FRCPLL" hats geklappt. 
Testweise habe ich in der Main ein paar Ausgänge gesetzt - funktioniert.

Das Problem ist aber, dass sich der PIC nicht korrekt anmeldet. Wenn ich 
meine Leiterplatte per USB anschliesse, zeigt mir mein Windows 7 an, 
dass das USB Gerät nicht erkannt wurde.
Das Tool von Microchip (Microchip USB HID Bootloader v2.6a) erkennt es 
auch nicht: Device not detected. Verify device is in bootloader mode.

Vielleicht noch eine weitere Idee?

Danke und Gruss
Tom

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Tom schrieb:
> Das Problem ist aber, dass sich der PIC nicht korrekt anmeldet. Wenn ich
> meine Leiterplatte per USB anschliesse, zeigt mir mein Windows 7 an,
> dass das USB Gerät nicht erkannt wurde.

Das heißt aber auf jeden Fall auch schon einmal, dass der PIC den 
Pull-Up für USB aktiviert, ansonsten würde Windows gar kein Gerät 
entdecken.

> Vielleicht noch eine weitere Idee?

Ich würde wirklich verifizieren, dass dein Controller mit der richtigen 
Frequenz läuft, 48MHz USB-Takt sind das bei den PIC24, wenn ich mich 
recht entsinne.

Welche Hardware benutzt du denn eigentlich?

von Tom (Gast)


Lesenswert?

Du hattest Recht, es waren die 48 MHz. Jetzt wird er korrekt erkannt und 
es kann eine Software reingeladen werden. Einzig und alleine besteht 
noch das Problem, dass der Bootloader immer startet und nie das 
Programm...werde mir morgen bzw. heute nochmal die main.c zu Gemüte 
führen.

Hardware ist eine eigene Entwicklung, kein Demoboard oder ähnlich.

Gruss
Tom

von Potter S. (potter68)


Lesenswert?

Hallo Tom,

nach einem Reset wird zuerst der Bootloader gestartet. Dieser prüft 
dann, ob irgendein Pin auf low/high ist (= Taste gedrückt). Sollte das 
der Fall sein, dann wird der Bootloader gestartet. Ansonsten wird zum 
Hauptprogramm gesprungen.

Gruß Ralf

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.