Forum: Mikrocontroller und Digitale Elektronik MPLab - nur für eingeweihte? USB und PIC32


von Svenny (Gast)


Lesenswert?

Hallo,

Ich habe mir ein PIC32 USB Starter Kit II gekauft um mich mit den 
USB-Funktionen des PIC32 bekannt zu machen. Die Beispielprogramme 
funktionieren tadellos, also programmierte ich ein einfaches Programm, 
welches erkennt ob ein Gerät(z.b. USB Stick) eingesteckt wird erkannt 
und zunächst ein einfach "Hallo Welt" in den Stick geschrieben. Doch der 
Stick wurde erst gar nicht angesprochen. Ich dachte zuerst an ein 
Programmierfehler doch dann...

dann stellte ich folgendes fest:
1. Das Beispielprogramm funktioniert Tadellos
2. Ich erstelle ein neues Projekt mit MpLab
3. Ich füge die (alle) Dateien des Beispiels in mein
   Projekt mit MpLab ein
4. Das Projekt unterscheidet sich nun vom Beispielprojekt nicht
5. Der einzige UNterschied ist,
   dass die Projektdatei *.mcp
   von mir mit dem Projekt-Wizard angelegt wurde.

Meine Annahme ist, dass ich irgendeine Einstellung im MpLab tätigen 
muss, um USB-Funktionen zu aktivieren!? Der Compiler bringt mir keine 
Fehlermeldung und selbstprogrammierte kleine Testprogramme wie LED 
blinken lassen funktionieren. Warum also USB-Programme nicht, wenn ich 
ein eigenes Projekt mit den Programm-Dateien der Beispielprojekte 
erstelle? Programmierfehler sind also auszuschließen.

von Svenny (Gast)


Angehängte Dateien:

Lesenswert?

Man benötigt eine Heapsize von 8192 (Byte?), dies gibt man unter
'Project -> Build Options->Project'
an.

von Master S. (snowman)


Lesenswert?

> zunächst ein einfach "Hallo Welt" in den Stick geschrieben
???
auch sonst habe ich null schnall, was du machtest noch was du willst, 
geschweige denn, wo deine konkreten probleme liegen.

ich schlage dir vor, dass du ein lauffähiges beispielprojekt abänderst 
anstelle ein neues projekt zu erstellen ;-)

von Paulchen Panther (Gast)


Lesenswert?

Hi!

Vergleiche mal ALLE Einstellungen.
Dazu gibt es mehrere Möglichkeiten:

- Zweimal MPLAP öffnen(falls möglich). Dann die Einstellungen des 
Projekts nebeneinander aufmachen und vergleichen.

- Falls die MCP menschenlesbar ist, diese öffnen und vergleichen.

- ...

Gruß
PP

von heinzhorst (Gast)


Lesenswert?

in den "Build Options" bist du schon richtig. Vergleich mal unter der 
Redisterkarte "Directories" die Einstellungen für "Include Seach Path" 
und "Library Search Path" mit dem Beispielprojekt.

von Svenny (Gast)


Lesenswert?

Danke für die Tipps - und in der Tat, ich habe etwas durcheinander 
geschrieben... Tut mir leid, war schon etwas spät. Für alle die es noch 
interessiert: Ich wollte lediglich eine Datei mit dem Inhalt "Hallo 
Welt" auf einen Usb-Stick erzeugen.

Nun habe ich folgendes herausgefunden:
Es ist eine Heapsize (siehe oben) von 8192 byte erforderlich. 
Fehlermeldungen gibt es keine, sollte man es vergessen - oder 
schlichtweg nicht wissen.

Zudem fragte ich das Usb-Event "EVENT_VBUS_REQUEST_POWER" ab, um zu 
prüfen ob ein USB-Gerät Strom anfragt, indirekt heisst das, dass ein 
Usb-Gerät angeschlossen wurde. Was nach der bescheibung in der Datei 
"usb_common.h" auch so sein muss, da es kein einfaches "EVENT_ATTACH" 
-Event gibt.

Doch hier liegt ein wenig der Wurm drin, denn bei der erstmaligen 
Abfrage des USB-Events ist der Status IMMER "EVENT_VBUS_REQUEST_POWER", 
also wird selbst dann ein "EVENT_VBUS_REQUEST_POWER"-Event ausgelöst, 
wenn anfangs gar kein USB-Stick angeschlossen ist. Ebenso beim 
herausziehen wird zuerst richtigerweise ein 
"EVENT_VBUS_RELEASE_POWER"-Event ausgelöst, alsdann aber sogleich wieder 
ein "EVENT_VBUS_REQUEST_POWER". Wenn jetzt ein USB-Gerät angeschlossen 
und tatsächlich nun Strom "angefragt" wird dann tritt abermals (nun aber 
korrekterweise) das "EVENT_VBUS_REQUEST_POWER"-Ereignis auf.

Also Grundsätzlich betrachte ich das Topic nun als gelöst, aber 
vielleicht kennt sich hier jemand schon weit besser in der Materie aus 
als ich und kann mir bzw. den Forenlesern dieses Verhalten erklären?

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.