www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB - Schnittstelle Eigenbau


Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: hans dieter 2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
igor usb alda

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo hans dieter 2

> igor usb alda

was meinst Du damit ?


Bernhard

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich würde denken er meint Igor USB....

bye

Frank

Autor: Hein (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sebastian H (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kauf ein fertigen RS232 zu USB Konverter, dass ist billiger und
funktioniert

Autor: schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorher genauer durchlesen.
Er hat geschrieben, dass er keinen FT benutzen will.

Autor: Mighty (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mighty:
Die Sourcen von Igors Software gibts immer noch auf seiner Webseite.

Autor: Bernhard S. (bernhard)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: arc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mighty:

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

Gruss Andi

Autor: Mighty (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Digenius (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hubert.G (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.