USB - Schnittstelle Eigenbau

OP #356361
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
Gast #356369
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).
Gast #356370
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 ;-)
Gast #356371
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
OP #356373
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
Angehängte Dateien:
Gast #356377
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.
Gast #356378
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.
Gast #356379
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
Gast #356380
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
OP #356381
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren