Forum: Mikrocontroller und Digitale Elektronik USB - Schnittstelle Eigenbau


von Bernhard S. (bernhard)


Lesenswert?

Hallo alle zusammen,

gerne möchte ich mit einfachen Bauelementen und einem µC (Atmegaxx)
eine USB-Schnittstelle realisieren.

Diese USB-Schnittstelle soll als RS232-Schnittstelle auf einem PC
erkannt werden.

Hat sich schon mal jemand tiefgründiger mit diesem Thema auseinander
gesetzt?

Wie müsste die Hardware relisiert werden?

Wie muss das Datenprotokoll aufgebaut werden?

Natürlich könnte man als Bsp. einen FT232 o.ä. verwenden, aber ich
möchte diesen Weg nicht beschreiten.

Danke

Bernhard

von hans dieter 2 (Gast)


Lesenswert?

igor usb alda

von Bernhard S. (bernhard)


Lesenswert?

Hallo hans dieter 2

> igor usb alda

was meinst Du damit ?


Bernhard

von Frank (Gast)


Lesenswert?

ich würde denken er meint Igor USB....

bye

Frank

von Hein (Gast)


Lesenswert?

Der FT 232 wäre natürlich die beste Lösung (zumal der Windows Treiber
schon fertig ist), aber wenn du den nicht benutzen willst, dann
beschäftige dich schon mal mit:

USB Signalen: Codierung, Aufbau der Frames (Addressierung,
Fehlerkorektur),

Ach lies dir erstmal diesen Artikel durch:

http://de.wikipedia.org/wiki/Universal_Serial_Bus

Schätz, dann wirst du davon Abstand nehmen.

von Sebastian H (Gast)


Lesenswert?

kauf ein fertigen RS232 zu USB Konverter, dass ist billiger und
funktioniert

von schlumpf (Gast)


Lesenswert?

Wenn du das unbedingt selber bauen willst, dann denk ich, dass du´s mit
diesem Chip am einfachsten haben wirst:
http://www.unitronic.de/ftdi/ftdi.htm

Wobei ich auch der Meinung bin, dass du mit allem drum und dran teuerer
bist, als wenn du dir so nen Wandler fertig kaufst

von Fred (Gast)


Lesenswert?

Vorher genauer durchlesen.
Er hat geschrieben, dass er keinen FT benutzen will.

von Mighty (Gast)


Lesenswert?

http://www.obdev.at/products/avrusb/index.html

is wenigstens GPL dh. du kannst kritisches timing
im controller unterbringen was du im gegensatz zu igors
binary only firmware nicht kannst.
Im netz schwirren noch die sources zu igors version rum
als er sich noch keine gedanken über lizensierung gemacht
hatte. Die verwendung dessen ist allerdings fragwürdig.
Ausserdem sind die in Tschechisch kommentiert und
reines assembler (bei obdev ist der nur der kern asm,
ausserdem f. avr-gcc und nicht wie igor usb avrstudio).

von schlumpf (Gast)


Lesenswert?

@Fred:
Ups, hab ich überlesen....
Naja, dann kann man ihm nur viel Spass beim Basteln wünschen... frei
nach dem Motto: "Warum einfach, wenn es auch kompliziert geht". Aber
in manchen Projekten ist auch einfach der Weg das Ziel ;-)

von Olaf (Gast)


Lesenswert?

Ich weiss ja nicht was ein einfaches Bauelement ist. Nur mit
Transistoren wird es schwierig. :-)
Aber ich hab schon ein USBN9604 an einem AVR und einem R8C
angeschlossen und kann damit problemlos Daten ueber USB uebertragen.
Mach uebrigens viel mehr Spass als diese halbgaren FTDI-Loesungen.

Wie uns der gute Igor gezeigt hat geht es ja auch ganz in Software.
Wuerde ich aber von abraten. Zum einen ist das ein ziemlicher Aufwand,
zum anderen ist der Prozessor damit gut ausgelastet und man will
schliesslich noch was anderes machen als nur USB oder?

Ich hab uebrigens gesehen es gibt seit kurzem auch einen neuen USB
Interface-chip von Maxim, aber der USB9604 ist IMHO verbreiter und kann
sich seine 3.3V selber erzeugen. Ich glaub sogar Reichelt hat den
inzwischen. .-)

Olaf

von Markus (Gast)


Lesenswert?

@Mighty:
Die Sourcen von Igors Software gibts immer noch auf seiner Webseite.

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

@alle


ich danke Euch für die zahlreichen und sehr interessanten Hinweise.

Momentan bin ich noch beim ein-sammeln und sortieren von
Informationen.

Aber

Die Hardware wäre relativ einfach, ein µC (Bsp. ATmega8) er wird mit
3,3Volt betrieben.

D+ ===>  AIN0
D- ===>  AIN1

Was ich aber nicht verstehe, bzw. nicht nachvollziehen kann, dass der
Pegel an D+ und D- nicht 3,3 Volt überschreiten darf.

Zerstört man dadurch den USB-Anschluss des PC?

Oder können die High / Low Zustände durch den PC nicht mehr registriert
werden?


Benhard

von Olaf (Gast)


Lesenswert?

Es waere in der Tat moeglich den USB-Host zu zerstoeren. Ob das in der
Praxis auch passiert ist natuerlich eine andere Frage.

Olaf

von arc (Gast)


Lesenswert?


von Andi (Gast)


Lesenswert?

@Mighty:

Igors USB Sourcen sind sogar als offizielle AVR Application-Note
veröffentlicht, mit englischen Kommentaren! Siehe AVR:309

Gruss Andi

von Mighty (Gast)


Lesenswert?

Hey danke, das ist mir entgangen.
Die Sources waren lange Zeit auf Igors seite nichtmehr verfügbar
und es wurde einiges gemunkelt. Hab die ursprünglichen Sources aus
anderer Quelle bekommen und mich total drüber aufgeregt
(weil ich leiiider kein Tschechisch kann o_0).

Nuja, obdev is wie gesagt für avr-gcc zu haben; wer kein
AVR Studio mag...

Sonst, ne feine Sache das.

von Digenius (Gast)


Lesenswert?

>>Was ich aber nicht verstehe, bzw. nicht nachvollziehen kann, dass der
>>Pegel an D+ und D- nicht 3,3 Volt überschreiten darf.
>>Zerstört man dadurch den USB-Anschluss des PC?

Nein, der USB Anschluss verträgt auch 5 Volt.
Anhand der 3,3 Volt kann der Master die USB Busgeschwindigkeit
entsprechend dem Slave anpassen. 3,3 Volt = USB 1.1 Standart.

Ausprobiert habe ich übrigens "Igor USB" und "AVR-CDC von
www.obdev.at".
Wobei Igor's Version 2 Nachteile hat.
1. Die "geliehene" Vendor ID von ATMEL.
2. Es ist nur sehr schwer möglich, den Code nach eigenen Bedürfnissen
anzupassen.

Wenn du nur einen USB-serial Wandler willst und im Bezug auf die
Geschwindigkeit keine Ansprüche stellst, sieh dir den "AVR-CDC" an.

Ich benutze jetzt aber doch einen FTDI Chip, da die Softwarevarianten
im Vergleich dazu elendig langsam sind.

von Andreas B. (Gast)


Lesenswert?

>Was ich aber nicht verstehe, bzw. nicht nachvollziehen kann, dass der
>Pegel an D+ und D- nicht 3,3 Volt überschreiten darf.
>Zerstört man dadurch den USB-Anschluss des PC?

Mein USB Anschluss hat sogar ein Kurzschluss unbeschadet überlebt,
scheint ziemlich zäh zu sein... (Da ich das ganze selber gelötet hatte
hatte ichs sicherheitshalber an einer USB Karte angeschlossen. Das
würde ich denen die Experimentieren auch empfehlen, USB Karte ist
günster als ein neues Board...)


mfg Andreas

von Paul Baumann (Gast)


Lesenswert?

Ich habe hier die Schaltung von Igor im Einsatz (IgorUSB). Es
funktioniert tadellos. Ich arbeite mit TTL Pegeln. Auf einer russischen
Seite (VGA ?.ru) fand ich ein Programm, was eine virtuelle
serielle Schnittstelle in Windows zur Verfügung stellt, da bei Igor
nur eine Testroutine dabei war.

MfG Paul

von Bernhard S. (bernhard)


Lesenswert?

@alle

ich habe erfahren, dass ein sehr interessanter Artikel über die
USB-Problematik in der

Zeitschrift "Elektronik" Ausgabe 12 vom 13.06.2006 verfasst wurde.


Kennt jemand von Euch diesen Artikel?

Leider ist diese Ausgabe hier nicht mehr erhältlich, könnte mir jemand
weiter helfen?

Bernhard

von Hubert.G (Gast)


Lesenswert?

Es gibt mehr die sich mit USB beschäftigen. Hier ein interessanter Link
zu einem USB-Projekt mit Bootloader
www.arduino.cc/

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.