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
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.
kauf ein fertigen RS232 zu USB Konverter, dass ist billiger und funktioniert
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
Vorher genauer durchlesen. Er hat geschrieben, dass er keinen FT benutzen will.
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).
@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 ;-)
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
@Mighty: Die Sourcen von Igors Software gibts immer noch auf seiner Webseite.
@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
Es waere in der Tat moeglich den USB-Host zu zerstoeren. Ob das in der Praxis auch passiert ist natuerlich eine andere Frage. Olaf
@Mighty: Igors USB Sourcen sind sogar als offizielle AVR Application-Note veröffentlicht, mit englischen Kommentaren! Siehe AVR:309 Gruss Andi
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.
>>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.
>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
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
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.