USB Spezifikation?

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

Reply to
Matthias Karl
Loading thread data ...

"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.

Gruß

Dirk Dörr

Reply to
Dirk Dörr

"Dirk Dörr" schrieb im Newsbeitrag

es

Danke für den Tipp, USB 1.1 wäre für meine Anwendung ausreichend,

Gruß Matthias

Reply to
Matthias Karl

Welchen uC? Cypress? TI TUSB?

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.

cu, Marco

--
S: Minolta: Winkelsucher (VN), VC-9

E-Mail: mb-news-blinuxhaven.de
Deutsches Linux HOWTO Projekt: http://www.linuxhaven.de
Reply to
Marco Budde

Noch etwas:

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.

Gruß

Dirk Dörr

Reply to
Dirk Dörr

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.

--
Gruss, RB
Reply to
Ruediger Britzen

Marco Budde wrote in news: snipped-for-privacy@linuxhaven.de:

Wo?

M.

--
Bitte auf mwnews2@pentax.boerde.de antworten.
Reply to
Matthias Weingart

"Marco Budde" schrieb im Newsbeitrag

uPSD3234A vom STM

alles zum Ablauf, von der Geräteanmeldung, Datenübertragung, Abmeldung

Gruß Matthias

Reply to
Matthias Karl

Kenne ich garnicht. Was hat der für ein uC Core?

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.

cu, Marco

--
S: Minolta: Winkelsucher (VN), VC-9

E-Mail: mb-news-blinuxhaven.de
Deutsches Linux HOWTO Projekt: http://www.linuxhaven.de
Reply to
Marco Budde

: Zu dem TUSB3210 gibt es uebrigens eine Mailingliste.

Adresse?

-- Uwe Bonnes snipped-for-privacy@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt

--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Reply to
Uwe Bonnes

Hallo Matthias!

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 : : : : :

Reply to
Simone Winkler

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.

Reply to
Jochen Giese

"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.

Hängt alles von den Prioritäten des OP ab.

--

    Dirk
Reply to
Dirk Dörr

"Simone Winkler" schrieb...

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.

Danke Matthias

Reply to
Matthias Karl

Hallo !

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.

Das wäre doch mal was für die FAQ...

cu,

Aguja

Neu: Forum - PROuC.de ==> Free AVR-, PIC- & 8051-Programmers, Apps & Tips

Reply to
Aguja

Gibt die zwei Begriffe bei Google ein und Du hast sie. Das Leben kann so einfach sein :).

cu, Marco

--
S: Minolta: Winkelsucher (VN), VC-9

E-Mail: mb-news-blinuxhaven.de
Deutsches Linux HOWTO Projekt: http://www.linuxhaven.de
Reply to
Marco Budde

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.

cu, Marco

--
S: Minolta: Winkelsucher (VN), VC-9

E-Mail: mb-news-blinuxhaven.de
Deutsches Linux HOWTO Projekt: http://www.linuxhaven.de
Reply to
Marco Budde

Hallo,

[etliche USB-Controller]

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)!

MfG, Johannes

Reply to
Johannes Schöller

"Marco Budde" schrieb

sehr neues Teil, uC hat 8052-Kern mit 40MHz,

32KB Bootflash (C:), 256KB Mainflash (X:Bank), 8KB SRAM (X:) integrierter PLD (ca. wie 22V10), USB, I2C, 2xUART, JTAG-ISP, Supervisor, 8bit AD-Wandler, PWM-Unit, 7 IO-Ports uvm., TQFP-80 Gehäuse, kostet deutlich unter 10Euro (100Stk.)

Software zur Konfiguration ist Kostenlos bei STM, ISP-Flashlinkkabel kostet 56Euro, oder ist im Selbstbau machbar (über LPT-Schnittstelle)

Siehe hier

formatting link

Gruß Matthias

Reply to
Matthias Karl

Matthias Karl wrote: : "Marco Budde" schrieb : >

: > > > Welchen uC? Cypress? TI TUSB? : > > uPSD3234A vom STM : >

: > Kenne ich garnicht. Was hat der fuer ein uC Core?

: sehr neues Teil, uC hat 8052-Kern mit 40MHz, : 32KB Bootflash (C:), 256KB Mainflash (X:Bank), 8KB SRAM (X:) : integrierter PLD (ca. wie 22V10), USB, I2C, 2xUART, : JTAG-ISP, Supervisor, 8bit AD-Wandler, PWM-Unit, : 7 IO-Ports uvm., TQFP-80 Geh?use, kostet deutlich : unter 10Euro (100Stk.)

Unterstuetzt aber wohl nur USB 2.0 low-speed Mode (1.5Mb/s)...

--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Reply to
Uwe Bonnes

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.