Forum: Mikrocontroller und Digitale Elektronik PIC18F2550 Bootloader bei externer Spannungsversorgung


von St. K. (stepi)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich versuche den Bootloader2 von sprut auf meinem PIC 18F2550 zum laufen 
zu bekommen.

Vor dem Einsatz habe ich den Bootloader etwas abgeändert:
-  RE3 wird als Reset verwendet -> MCLR also aktiviert
-  Über RA0 == 0 wird der Bootloader aktiviert
-  Eine rote LED an RA4 soll als Status-Leuchte dienen.

=> Schaltplan und Bootloader siehe Anhang.

Weiterhin soll die Stromversorgung über rein extern sein, d.h. nicht 
USB-powered.

Status quo ist, dass…
1)  die Lampe sofort nach Reset leuchtet
2)  der PIC von Windows nicht erkannt wird.

Um die Fehlerquelle etwas einzuschränken voraus ein paar Fragen, die 
unklar/ offen sind:

-  wie muss ich den Pin Vusb „verkabeln“ -> momentan ist der bei mir 
einfach „in der Luft“
-  muss ich VRegEn auf On oder Off schalten; VRegEn On hieße, dass der 
USB Voltage Generator aktiviert ist. Brauche ich den, wenn ich über 
extern den PIC/ bzw. die Schaltung mit 5V versorge?
-  Des weiteren habe ich den GND der USB-Buchse nicht auf GND meiner 
Schaltung gelegt -> kann das der Grund sein?

Wenn sich das Problem durch die obigen Punkte nicht gelöst hat, muss 
jenes wohl in der Software zu suchen sein, obwohl ich dort nicht viel 
verändert habe, außer RE3 deaktiviert, den PIN für die LED und den PIN 
für die Bootloader-Aktivierung geändert habe.

Was genau ist der Hintergrund bzgl. der Definitionen:
//#define USE_SELF_POWER_SENSE_IO
//#define USE_USB_BUS_SENSE_IO
Brauch ich die, wenn meine SChaltung immer self-powered ist? Bzw. kann 
ich dann das entsprechende Flag immer auf 1 setzen?

Was kann ich noch messen/ testen/ nachprüfen, damit ich den Fehler 
einschränken kann??
Wie kann ich zum Beispiel prüfen, ob der sprut-Treiber (USB-Treiber) 
installiert ist: sehe ich das irgendwo im Gerätemanager??

Hoffe ihr könnt mir weiterhelfen!!

Grüße
Stepi

von St. K. (stepi)


Angehängte Dateien:

Lesenswert?

anbei noch der (von mir bereits angeänderte) Bootloader

von holger (Gast)


Lesenswert?

>Hoffe ihr könnt mir weiterhelfen!!

Dir ist nicht zu helfen!

Fehlerliste (möglicherweise nicht vollständig)

An VUSB gehört ein Kondensator mit min 200nF
Vss nicht angeschlossen
Vdd nicht angeschlosssen
USB GND nicht angeschlossen

Ich spar mir den Rest

von St. K. (stepi)


Lesenswert?

holger wrote:

> An VUSB gehört ein Kondensator mit min 200nF
-> das war eine meiner Fragen: nehme an der Kond. kommt nach Masse
> Vss nicht angeschlossen
-> ist natürlich in real angeschlossen
> Vdd nicht angeschlosssen
-> ist natürlich in real angeschlossen
> USB GND nicht angeschlossen
-> war auch eine meiner Fragen

ich werde die fehlenden Bauteile/ Verbindungen korrigieren.

Nichtsdestotrotz bleibt die Frage offen, warum die rote LED an RA4 
sofort nach Reset leuchtet und nicht erst wenn der Bootloader aktiviert 
ist.
PortA wird ja erstmal komplett auf Eingangs-Ports geschalten, erst im 
Bootloadermodus dann der Pin RA4 auf Ausgang.

Grüße
Stepi

von K. J. (Gast)


Lesenswert?

hi erstmal die led an porta5 wird nicht leuchten :

zum zweiten ra4 leuchtet dauerhaft wen kein Programm auf den µC ist da 
der Bootloder einfach in einer endloschleife durchläuft

von St. K. (stepi)


Lesenswert?

Hallo zusammen,

erste Erfolgsmeldungen:
- habe die HW-Änderungen gemacht (USB an gnd angeschlossen; Vusb über 
220nF an gnd)
- dass die rote LED immer gebrannt hat weiß ich noch nicht ganz, aber 
auf alle Fälle habe ich vergessen dem RA0 als digitalen I/O zu 
definieren (REgister ADCON1; bei POR ist RA0 erstmal als analog I/O 
definiert).

=> d.h. mein Bootloader funkt nun

Allerdings muss ich eine Beobachtung machen, die mich etwas stutzig 
macht: ich habe vor dem Bootlader mit einem Brennprogramm ein PRogramm 
hochgeladen, das zwei LEDs für ca. 0,5sec anmacht (über 
Delay10KTCY(500)).

Lade ich nun das gleiche Programm (Linker geändert, sonst nichts) mit 
dem Bootloader in den PIC, so werden aus den 0,5sec plötzlich ca. 5ms.
Auch ein vergrößern des Delays (Delay10KTCY(5000)) hat keine Änderung 
zur Folge.

Woran kann das liegen? In meinem Programm habe ich über
#pragma config FOSC = HS     //CPU=8 MHz
die Oszi-Einstellung immer drin.

Grüße
Stepi

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.