Forum: Mikrocontroller und Digitale Elektronik PIC18F USB Firmware


von Robert G. (022etrg)


Lesenswert?

Hallo,

ich bin seit geraumer Zeit daran mit einem PIC18f4550 und der von
Microchip in C programmierten Firmware ein USB Datenlogger zu
entwickeln. (Praktikum) Gibt es Jemanden in diesem Forum der sich schon
mit einem ähnlichen Projekt beschäftigt hat oder gerade dabei ist?

Ich bin momentan auf ein paar Fragen gestoßen auf die einfach keine
Antwort finde. Da ich mit diesem Projekt meinen Einstieg in die
Mikrocontrollerwelt gewagt habe bin ich noch nicht in der Lage die
Firmware selber zu schreiben. Ich versuche an der von Microchip die
Arbeitsweise zu verstehen und diese entsprechend anzupassen.
Problematisch ist nur, dass ich über keinen BUS- oder USB- Analysator
verfüge. Das tatsächliche Geschehen auf dem Bus lässt sich so nur
schwer nachvollzihen. Gerade beim debuggen der Software. Momentan liegt
mein Problem in der Behandlung der Control Transfers.
Freu mich auf jeden Kommentar!!!

MfG

robert

von Schoaschi (Gast)


Lesenswert?

Hi.

Ich versuche auch schon seit einiger Zeit das USB Modul des PIC18F4550
anzusprechen,jedoch habe ich es noch nie geschaft.. nicht einmal mit
dem Beispielprogramm von Microchip.

Die Hardware ist so ähnlich aufgebaut wie das Demoboard von Microchip.

Ich hab auch schon versucht das Datenblatt zu lesen und es selbst
anzugehen.. aber dafür fehlen mir dir grundlegenden sachen über USB
selbst...

Also im grossen und ganzen... es ist nicht einfach.. und ich wünsche
dir viel Erfolg und hoffe du schafst es und postest nachher deine
Erfolge... würde mich freuen.

http://burger-web.com/Projects/PIC18F4550USB/de_PIC18UsbBoard.htm

von Thorsten (Gast)


Lesenswert?

Ich habe mir auch ein Board mit dem 4550 und dem 2550 auf Lochraster
aufgebaut und arbeite mit der HID-Firmware. Allerdings fand ich die
Implementierung des ganzen USB-Gerüsts doch sehr verwirrend und alles
habe ich nicht verstanden. Vielmehr habe ich die Firmware erweitert mit
meinen eigenen Routinen und das funktioniert eigentlich sehr gut. Zur
Zeit ist es ein AD-Wandler mit mehreren Kanälen, war auch schon ein
USB-gesteuerter Dimmer.

Microchip hat jetzt auch eine Mass-Storage Frmware veröffentlicht, mal
sehen was die so kann.

Gruß
Thorsten

von Weinga-Unity (Gast)


Lesenswert?

Hallo!

Ist zwar nicht PIC, aber auf der PC-Seite sind sie eh alle gleich. Mit
der Dokumentation sollte euch zumindest mal bei der Programmierung des
PC's geholfen sein.

http://www.ime.jku.at/tusb

mfg Weichinger Klaus
www.weinga-unity.at.tt
www.weinga-unity-uni.at.tt

von Robert G. (022etrg)


Lesenswert?

Ich habe mir an dem Demoboard von Microchip auch einige Ideen abgeschaut
jedoch hat sich recht wenig für mein Projekt geeignet. Im Großen und
Ganzen wird ein AD Wandler betrieben der von vier kleinen
Eingangsverstärkern seine Eingangssignale bekommt. Mit ein paar kleinen
Änderungen ist die originale Firmware eigentlich auf jedes Board
anwendbar. Die Belegung der Pins muß geändert, und die
Konfigurationsbits angepasst werden. Über die PC Demosoftware kann man
nun schon die Firmware auslesen. Diese Routinen habe ich für die ersten
Versuche den PICinternen Wandler auszulesen genutzt und sie entsprechend
geändert. Da der Treiber ebenfalls von Microchip bereitgestellt ist und
wie ich finde auch recht gut dokumentiert ist stellt die PC Seite für
mich kein Problem dar. Ich danke trotzdem für Deinen Beitrag Klaus!
(Hoffe Vorname ist OK???) Und ich will mich auch gleich noch mal
bedanken, da Deine Ausarbeitung das erste war was ich zu diesem Thema
überhaupt gelesen habe. War ein guter Einstieg! Ich habe auch lange
über den TUSB nachgedacht aber in der Firma ist der PIC das Mittel der
Wahl und die entsprechenden Werkzeuge sind auch vorhanden.
Von der Vorstellung das USB Modul einfach zu benutzen bin ich bei
Zeiten abgekommen. Um die Fähigkeiten von USB wirklich nutzen zu können
muß man glaub ich sehr tief in die Materie eindringen. Die Spezifikation
vom USB Konsortium ist wirklich nicht umsonst über 600 Seiten lang.
Ich habe recht präzise Vorgaben was das Gerät können soll und da stößt
das Modifizieren der Firmware an seine Grenzen.

Mein eigentliches Problem ist, dass ich nicht in "echtzeit" debuggen
kann da Vorgänge wie die Enumeration ja in Millisekunden ablaufen und
das debuggen zu lange dauert. Ich sehe quasi nicht wirklich was auf dem
Bus passiert und ebensowenig was in der Firmware an einigen stellen
passiert.

Wäre schön wenn hier noch ein paar Beiträge dazu kommen würden.
Vielleicht hilft ja auch schon das drüber schreiben. Bei Fragen, soweit
ich sie beantworten kann, bin ich jederziet bereit sie zu beantworten.

von Weinga-Unity (Gast)


Lesenswert?

Hallo!

Jo, Klaus passt.

Das Debuggen hab ich eigenlich per UART problemlos durchgeführt. Der
Anfang war etwas doof, da ich auch beim Tusb alles ausprogrammieren
musste, aber über UART konnte ich z.B. die eingehenden Setup-Requests
usw. ausgebenlassen und somit festellen, wo der Enumerationsprozess
stehen bleibt oder probleme hat.

Mit fertigen Debuggersystemen hab ich eher weniger Erfahrungen, aber
die UART hat mir immer geholfen.

mfg Weichinger Klaus

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.