Forum: Mikrocontroller und Digitale Elektronik ARM-Bootloader und USB Reset (LPC1766)


von Alex M. (Gast)


Lesenswert?

Hallo miteinander,

ich bastle zur Zeit ein wenig mit einem ARM-Demoboard herum, und 
versuche, einen USB-Bootloader zum laufen zu bekommen. Das ganze klappt 
auch wunderbar mit den Informationen, die z.B. unter
http://www.nxp.com/documents/application_note/AN10866.pdf
zu finden sind.

Das einzige Problem, bei dem ich mir jetzt schon seit Wochen die Zähne 
ausbeisse, ist die Reinitialisierung des USB-Devices. Die Hauptfirmware 
soll den gleichen USB-Anschluss als Bulk Device benutzen, also möchte 
ich nach einem erfolgreichen Flashen die USB-Verbindung des Bootloaders 
zurücksetzen und einen System-Reset auslösen.

Das klappt auch wunderbar, jedoch scheint der Host damit nicht klar zu 
kommen und LibUSB quittiert mir einen erneuten Verbindungsversuch mit 
"Claim device error". Nach einem harten Trennen der Spannungsquelle 
funktioniert aber dann alles.

Hat hier jemand evtl. tiefergehende Kenntnisse vom USB Protokoll, wie 
man soetwas in den Griff bekommen kann?

Vielen vielen Dank,
 Alex

von holger (Gast)


Lesenswert?

>Das klappt auch wunderbar, jedoch scheint der Host damit nicht klar zu
>kommen und LibUSB quittiert mir einen erneuten Verbindungsversuch mit
>"Claim device error". Nach einem harten Trennen der Spannungsquelle
>funktioniert aber dann alles.

Wie lange wartest du denn nachdem du die USB Verbindung
zurückgesetzt hast? Ich würde das USB Modul abschalten,
die entsprechenden Pins auf Digital IO Inputs setzen
und dann mindestens 500ms warten bevor ich einen System
Reset auslöse.

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.