ich will eine uC-Steuerung über USB mit den PC verbinden. USB-Hardware ist im uC vorhanden. Leider habe ich kaum Kenntnisse über die detailierte Funktionsweise des USB-Busses.
Kann mir jemand einen Link oder Literatur zur USB-Spezifikation, möglichst auf deutsch, empfehlen?
"Matthias Karl" schrieb im Newsbeitrag news:bubn4v$l1q$03$ snipped-for-privacy@news.t-online.com...
2 Buchvorschläge:
USB Handbuch für Entwickler Jan Axelson MITP Verlag
USB 2.0 Hans-Joachim Kelm Franzis-Verlag
Aus dem Franzis-Verlag kenne ich die Version 1.1 des USB Buches und fand es ganz gut. Von Jan Axelson kenne ich Parallel Port Complete und kann es empfehlen.
Was willst Du genau wissen? Eigentlich mußt Du nur EP0 so konfigurieren, daß dort die In/Out Pipes angezeigt werden, die Du benutzen willst (usbview.exe). Und dann mußt Du die Daten eigentlich nur in die HW-Buffer legen, wo der Host sie dann per Polling abholt. Eigentlich relativ easy.
formatting link
Wir haben in der Firma insg. 3 Bücher zu USB und die taugen alle nichts. Haben mir und meinen Kollegen bei Cypress und TI Projekten rein garnichts gebracht.
Ich würde den Original Standard + Suche bei Google benutzen.
Zu dem TUSB3210 gibt es übrigens eine Mailingliste.
Ein nicht unerheblicher Aufwand bei USB kann auf die Erstellung eines DeviceDriver fallen, daher wird von vielen Seiten auf die USB Chips von FTDI
formatting link
verwiesen, die virtuelle COM-Treiber bereitstellen. Daher stellt sich oft die Frage, ob es sich lohnt für eine µC-Steuerung eine eigene USB-Firmware + DeviceDriver für das Host-System zu erstellen, selbst wenn die USB-Funktionalität in Deinem Controller eingebaut ist.
Ich selbst kann nicht viel dazu sagen, da die FTDI noch nicht verwendet habe.
Matthias Karl schrieb am Samstag, 17. Januar 2004 17:15:
Sollte dein Controller I2C unterstützen, wäre vielleicht auch der IO-Warrior von Codemercs einen kurzen Blick wert. Dieser Chip erspart dir das Einarbeiten in das USB-Protokoll.
Bei den Controllern, die ich kenne, ist das einfach. Zu USB selbst muß man eigentlich nichts wissen. Steht eigentlich alles im Datenblatt.
Du hast zwei 64 Byte USB Buffer pro Kanal. Da kopierst Du einfach Daten rein, setzt ein Ready Flag und wartest bis das Flag zurückgesetzt wird. Um einen Transfer für den USB Stack zu beenden, sendest Du ein Short Paket (!= 64 Byte).
Du mußt eigentlich nur über EP0 sagen, weile Kanalnummern Du benutzen willst.
Ich arbeite auch gerade an einer USB-Schnittstelle. Ich verwende dazu den PDIUSBD12 von Phillips, würd dir den aber nicht empfehlen, wenn Du nur eine einfache Anwendung hast, denn der ist ziemlich kompliziert. Du mußt dafür erst die Firmware schreiben und danach noch einen Treiber für den Computer und meistens natrülich auch ein kleines Programm... Es gibt USB-ICs, die am PC einfach als serielle Schnittstelle erscheinen, Du brauchst dann keinen Treiber, und es geht um vieles einfacher, v.a. brauchst Du Dich nicht großartig mit den USB-internen Abläufen auskennen.
Eine sehr gute Seite ist
formatting link
, dort ist auch ein Programmierbeispiel und vieles mehr... Du solltest Dir die Einführung ("USB in a Nutshell") durchlesen.
Außerdem:
formatting link
formatting link
"Matthias Karl" schrieb im Newsbeitrag news:bubn4v$l1q$03$ snipped-for-privacy@news.t-online.com... : Hallo, : : ich will eine uC-Steuerung über USB mit den PC verbinden. : USB-Hardware ist im uC vorhanden. Leider habe ich kaum : Kenntnisse über die detailierte Funktionsweise des USB-Busses. : : Kann mir jemand einen Link oder Literatur zur USB-Spezifikation, : möglichst auf deutsch, empfehlen? : : Vielen Dank : Matthias : : : : :
Die ftdis lohnen sich nur, wenn man auf hohe Geschwindigkeit verzichten kann. Immerhin gibt es Linux-Treiber im Kernel. Eine andere Möglichkeit ist, eine der vielen generic classes von usb zu implementieren. Dann entfällt die Treiberentwicklung auch, da die gängigen BSs die schon eingebaut haben.
"Jochen Giese" schrieb im Newsbeitrag news: snipped-for-privacy@4ax.com...
Klar, das ist natürlich auch noch möglich. Ich hab auch schon beides gemacht (Eigener Treiber für Linux und Windows) und ein HID device (joystick). Aufgrund schlechter Debug-Möglichkeit war ich damals sehr froh, daß ich einen USB-Analyser verwenden konnte.
Aber mit den FIDI's entfällt auch noch das Schreiben der Firmware.
Wäre die einfachste Lösung, dagegen spricht, dass mein uC (upPSD3234A STM) schon die USB-Hardware drauf hat und mein Kunde es nicht verstehen würde, wenn ich zusätzlich einen weiteren Baustein einsetze, auch aus Kostengründen...
("USB
Die Seite ist wirklich gut, ich werde mich dort demnächst mal genauer umsehen.
Ich befasse mich auch eine Zeit lang damit und kenne - ohne 100-Pin-ICs folgende Möglichkeiten:
PDIUSB11 / PDIUSB12
USBN 9602 / 9604
Das sind alles externe uC-Interfaces die über z.B. I2C an den uC ange- schlossen wird. Man muß Firmware, PC-Software und PC-Treiber schreiben, Doku und Support sind eher mau.
FTDI-Chips
Ist praktisch ein TTL-RS232 USB-Konverter, gibt gute Treiber sogar mit virtuellem COM-Port-Treiber. Ist aber sauteuer und etwas umständ- lich von der Hardware her.
TIUSB 3210
Ist ein 8051'er Devirat mit USB-Erweiterung. Die Doku ist - vorsichtig ausgedrückt - schwierig.
IGOR-Plug
Ist ein ganz normaler AT AVR 90S2313 mit einer speziellen Software die die Vorgänge auf dem USB-Anschluß per Software steuert. Der AVR wird übertaktet und auch die USB-Spec wird nicht 100% eingehalten, aber es funktioniert. Ich steuere das Ding mit der mitgelieferten DLL an, geht aber ist saumäßig langsam. Das ganze ist sozusagen die gut erhältliche Billiglösung.
PIC 16C745 / 16C765
Ein ganz normaler PIC, aber mit USB-Erweiterung. Ist relativ gut er- hältlich aber auch hier ist die Doku knapp. Nachteil ist der Programm- speicher als EPROM / OTP.
Nicht nur die Doku und deren Support ist für die Tonne. Die verweisen einen auf Beispielsourcen, die sich angeblich auf ihrer HP befinden, deren URL sie aber selbst nicht kennen.
Den IC hat wohl mal eine stud. Hilfskraft entwickelt und nun kennt sich niemand mit dem Teil aus. Ich frage mich bis heute, wie man den IC in den Standby Modus schaltet.
Und verbunden mit dem Hinweis, am besten gleich den Cypress EZ-USB zu nehmen. Der läuft wenigstens vernünftig.
Bei der schönen Liste gehört auf jeden Fall noch der MC68HCx08JB von Motorola erwähnt. Im Gegensatz zu den PIC's hält der die USB-Spec ein, geschweige denn vom IGOR-Plug (ist zwar ganz nett, aber naja). Außerdem gibts für die HC08 super in-system Debug möglichkeit (C-Source Debugging über RS232)!
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.