Forum: Mikrocontroller und Digitale Elektronik USB -> RS232 mit AVR?


von Igor M. (bastel-wastel)


Lesenswert?

Guten Abend miteinander.

Für diverse Projekte bräuchte ich eine USB zu RS232 Umsetzung. Auf 
fertige externe Wandler oder einen FT232 würde ich gerne verzichten. 
Mittlerweile gibt es ja eine Vielzahl von USB-Einbindungen in AVR-µCs. 
Gibt es da auch schon einen fertigen Umsetzer? Hierbei ist egal ob 
RS232-Pegel oder TTL. Die Geschwindigkeit ist für mich auch zweitrangig. 
Wichtig wäre es, dass in Windows ein virtuellen COM-Port bereitstellt 
wird, auf den ich mit Software wie Terminal-Programm, LabVIEW, etc.. 
zugreifen kann. Hier liegt - so weit ich gelesen habe - noch das 
Hauptproblem. Da ich von der Vielzahl von USB-Projekten/Programmern 
mittlerweile erschlagen bin, frage ich hier mal nach: Kennt jemand ein 
passendes Projekt für mich?

Nochmals zusammengefasst:
- USB -> RS232 auf AVR-µC Basis (TTL-Pegel würde reichen)
- virtueller COM-Port in Windows
- möglichst Nutzung von in Windows integrierten Treibern (nice to have)

von Matthias L. (matze88)


Lesenswert?

Hi!

Schau dir mal das IgorPlug an. Dürfte das sein, was du suchst. Warum 
denn kein FT232? Der bietet wesentlich mehr Komfort und Möglichkeiten...

Matze

[edit] Ohne Treiber wirst du allerdings nichts finden, jeder virtuelle 
Comport benötigt einen Treiber, Windows stellt dafür keinen bereit, der 
ein USB Device benutzt. [/edit]

von Igor M. (bastel-wastel)


Lesenswert?

Stimmt - mit dem Treiber hast du Recht. Windows hat ja auch keine 
Treiber für externe USB-RS232 Umsetzen. Hab ich nicht dran gedacht.

Das Projekt von Igor hab ich mir schonmal angeschaut. Ich meine gelesen 
zu haben, dass es noch keinen Treiber gibt, der hierbei einen virtuellen 
COM-Port in Windows bereitstellt. Hast du andere Infos/hab ich was 
verwechselt?
Möchte eigentlich keine Hardware aufbauen, um danach zu merken, dass 
mein Vorhaben gar nicht funktionieren kann...

FT232 ist relativ klein. Meine Belichtungs-und Ätzeinheiten geben (noch) 
keine Leiterplatten in dieser Auflösung/Genauigkeit her. Die Preise an 
sich sind auch nicht so niedrig. Eine Lösung mit nem µC und etwas 
Vogelfutter wäre daher viel idealer für mich.

von Falk B. (falk)


Lesenswert?

@ Igor Metwet (bastel-wastel)

>sich sind auch nicht so niedrig. Eine Lösung mit nem µC und etwas
>Vogelfutter wäre daher viel idealer für mich.

Du irrst. Kauf dir für nen Zehner ne fertige FTDI-Platine bei Ebay oder 
sonstwo in einem Shop. Das ist ideal für dich.

http://shop.embedded-projects.net/product_info.php?info=p54_USB-zu-RS232-Wandler--TTL-Pegel-0-und-5-V-.html

Gibts aber anderswo AFAIK billiger.

MFG
Falk

von Igor M. (bastel-wastel)


Lesenswert?

Vom Preis her ist das sich nicht so perfekt für mich. Außerdem würde ich 
den Umsetzer gerne auf meiner Leiterplatte integrieren.
Bestätigt deine Aussage meine Annahme, dass es noch keinen solchen von 
mir geforderten Umsetzer gibt?

von Falk B. (falk)


Lesenswert?

http://cgi.ebay.de/USB-RS232-Konverter-TTL-Pegel-f-virtuelles-COM-Port_W0QQitemZ360076437310QQihZ023QQcategoryZ131901QQssPageNameZWDVWQQrdZ1QQcmdZViewItem

@ Igor Metwet (bastel-wastel)

>Vom Preis her ist das sich nicht so perfekt für mich. Außerdem würde ich
>den Umsetzer gerne auf meiner Leiterplatte integrieren.

Dann musst du halt besser ätzen.

>Bestätigt deine Aussage meine Annahme, dass es noch keinen solchen von
>mir geforderten Umsetzer gibt?

Doch, der FTDI erfüllt alle.

>- USB -> RS232 auf AVR-µC Basis (TTL-Pegel würde reichen)
>- virtueller COM-Port in Windows

Macht er.

>- möglichst Nutzung von in Windows integrierten Treibern (nice to have)

Gibt es nicht, ist auch nur nice to have.

MFG
Falk

von Igor M. (bastel-wastel)


Lesenswert?

Falk Brunner wrote:

> Dann musst du halt besser ätzen.

Hab ich vor ;-)

>>Bestätigt deine Aussage meine Annahme, dass es noch keinen solchen von
>>mir geforderten Umsetzer gibt?
>
> Doch, der FTDI erfüllt alle.

Den FT232 kenne ich.

Ich fragte nach einer Lösung mit AVR-µC. Der FT232 ist sich ein 
ordentliches Teil und würde die besten Ergebnisse liefern - allerdings 
nicht vom Preis und nicht von der Benutzerfreundlichkeit her.(Dies 
betrifft das Ätzen/Löten). Die Lösung mit dem FT232 habe ich aber 
bereits in meinem ersten Post ausgeschlossen. Ich weiß aus anderen 
Threads, dass ein Falk Brunner auf professionelle Lösungen setzt. Ich 
benötige den Umsetzer aber für private "Batelarbeiten" und da kann man 
auch mal auf unkonventionelle Alternativen setzen.

von Εrnst B. (ernst)


Lesenswert?

Hier, nur mit AVR:

http://www.recursion.jp/avrcdc/

ist aber dann halt nur ein Serielles "CDC" Device, und kein COM-Port. 
Für die meisten Programme sollts aber egal sein.

von Igor M. (bastel-wastel)


Lesenswert?

Danke,

werd mich mal einlesen. Noch ne Frage:
In verschiedenen Programmen kann man für die Kommunikation verschiedene 
"COM" Ports auswählen. Wie läuft das mit diesem "CDC" Device ab?

von spess53 (Gast)


Lesenswert?

Hi

Wie wäre es mit AT90USBxyz. Must halt etwas Programmierung reinstecken, 
für AVR und für PC (Treiber). Irgendwie ist dir nicht bewusst, das 
hinter USB einiges mehr dahinter steckt, als hinter einer seriellen 
Schnittstelle, die es schon seit Jahrzehnten gibt.
Übrigens sind sind die Controller auch nicht ätz- und lötfreundlicher, 
als der FTDI.

MfG Spess

von Εrnst B. (ernst)


Lesenswert?

Das CDC Device ist unter Windows auch als COM-Port sichtbar.

Allerdings ist der Serielle CDC-Teil ursprünglich dafür gedacht, Modems 
über USB an den PC anzuschliessen, und alles was für Modems nicht 
wichtig ist wurde halt weggelassen.
Z.B hast du kein Flow-Control mehr, das wird ja schon vom USB eine Ebene 
tiefer erledigt.
Baudrateneinstellungen gehen auch nicht mehr (der Treiber akzeptiert 
die, aber ignoriert die Einstellung), der Transfer PC->Device geht halt 
immer mit voller USB-Geschwindigkeit.

Sind alles mehr esoterische Unterschiede, wie gesagt, fast jede Software 
wird mit dem CDC-Comport auch glücklich werden.

von Igor M. (bastel-wastel)


Lesenswert?

spess53 wrote:
> Hi
>
> Wie wäre es mit AT90USBxyz. Must halt etwas Programmierung reinstecken,
> für AVR und für PC (Treiber). Irgendwie ist dir nicht bewusst, das
> hinter USB einiges mehr dahinter steckt, als hinter einer seriellen
> Schnittstelle, die es schon seit Jahrzehnten gibt.
> Übrigens sind sind die Controller auch nicht ätz- und lötfreundlicher,
> als der FTDI.
>
> MfG Spess

Hmm - einerseits legst du mir die Progammierung von Treiber und 
USB-Implementierung von µCs ans Herz und andernseits unterstellst du 
mir, dass ich nix von USB verstehe....
Ich weiß, dass USB sehr viel komplexer als RS232 ist, Vorteile und 
Nachteile bietet und dass es eigentlich fast nicht vergleichbar ist. Da 
es zur Zeit jedoch so viele USB-AVR-Programmer gibt, erschien mir die 
Realisierung einer Umsetzung auf RS232 als realistisch. Für meine 
eigents programmierten µC Schaltungen will ich aus genau diesen Gründen 
mit RS232 kommunizieren. Wie schon gesagt - es fehlt hauptsächlich ein 
passender Treiber für Windows.
PS: µCs im DIP Gehäuse sind wesentlich ätz- und lötfreundlicher als die 
FTDI - die es nur in SMD-Bauweise gibt! - oder meintest du was anderes?

@Ernst Bachmann:
Danke, das wollte ich hören ;-)
Ich werde dann mal einen Hardware-Aufbau machen. Ist ja wirklich nicht 
viel dran. Hoffentlich klappt die Kommunikation mit HPTerm und LabVIEW - 
mehr brauche ich vorerst nicht.

von spess53 (Gast)


Lesenswert?

Hi

>PS: µCs im DIP Gehäuse sind wesentlich ätz- und lötfreundlicher als die
>FTDI - die es nur in SMD-Bauweise gibt! - oder meintest du was anderes?

Nein, nur das die USB-AVR nicht besser als die FTDI sind.

>Da es zur Zeit jedoch so viele USB-AVR-Programmer gibt, erschien mir die
>Realisierung einer Umsetzung auf RS232 als realistisch.

Und die basieren zu grössten Teil auf FTDI oder analogen Chips.

MfG Spess

von Igor M. (bastel-wastel)


Lesenswert?

Ich meinte die AVRs, bei denen USB komplett in Software realisiert 
wurde.
- USB AVR
- AVR-Doper
- etc.
Ist gibt ja ne relativ große Menge von solchen Sebstbau-Programmern.

>Und die basieren zu grössten Teil auf FTDI oder analogen Chips.
nöö, siehe oben.

Das sind alles herkömmliche µCs (ATMega8, etc.) ohne USB-Hardware

von spess53 (Gast)


Lesenswert?

Hi

Atmel ist dein bester Freund: Appnote AVR309 (Atmel Webseite). Basiert 
auf dem schon genannten IgorPlug. Ist aber in Assembler.

MfG Spess

von Igor M. (bastel-wastel)


Lesenswert?

Danke.

Die Appnote hab ich gestern Abend auch noch gefunden. Hätte sie ja hier 
reingestellt, aber du warst schneller ;-)

Software kann man ja auch fertig downloaden:
http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm#Download

Ich werde bei Zeit mal ein kleines Layout erstellen und das ganze 
testen.

von Paúl Baumann (Gast)


Lesenswert?

Hallo Igor

Hier:
http://www.recursion.jp/avrcdc/
ist eine japanische Seite (auf Englisch), wo ein solcher Wandler 
beschrieben ist.

MfG Paul

von Igor M. (bastel-wastel)


Lesenswert?

Danke!

Genau solche Projekte habe ich gesucht.

Ich denke, dass ich zuerst IGORPLUG testen werde. Damit kann man 
verschiedene Baudraten fahren - wenns denn auch funktioniert.

Danke nochmals an alle!

von Igor M. (bastel-wastel)


Lesenswert?

Also - IGORPLUG war für mich der falsche Ansatz. Es wird kein virtueller 
COM-Port angezeigt, sondern ein USB zu RS232 Umsetzer von ATMEL. Mit 
Terminalprogrammen kann man diese Schnittstelle so nicht nutzen.

Hab jetzt noch das Projekt von Osamu Tamura aufgebaut:
http://www.recursion.jp/avrcdc/

Hab die Kombination AVR-CDC mit ATMEGA8 gewählt. Hab ne kleine Platine 
mit MAX232 erstellt. Zum Testen habe ich die SUB-D Stecker vom 
aufgebauten Schnittstellenwandler über ein Nullmodemkabel (1,8m) mit 
meiner RS232 Schnittstelle vom Mainboard verbunden. Der Treiber für den 
Umsetzer stellt im Gerätemanager einen COM-Port bereit. Mit zwei 
Terminalprogrammen habe ich dann mal Daten (ASCII-Zeichen) übertragen. 
Das ganze funktioniert wunderbar. Allerdings habe ich maximal 30-40 
Zeichen direkt hintereinander übertragen, und das auch jeweils immer nur 
in eine Richtung - also kein Vollduplex ausgenutzt. Für einen genaueren 
Test müsste ich mir mal noch ein Testprogramm schreiben. Bisher gabs 
noch keine Fehler. Wäre natürlich interessant zu wissen, wie stabil sich 
das ganze bei hohem Datenaufkommen in beide Richtungen verhält.
Achja: Die Baudraten, mit denen ich getestet habe waren: 9600, 19200, 
57600 und 115200 Baud. Find das Ganze bis jetzt ganz ordentlich.

Wenn es sich im Betrieb als stabil herausstellen sollte, wäre es auf 
jeden Fall ne Alternative zu den FTDI-Chips.

Korrektur: 11500 Baud sind dem Umsetzer beim Empfangen zu viel. Da 
verschluckt er Zeichen.

von Falk B. (falk)


Lesenswert?

@ Igor Metwet (bastel-wastel)

>Wenn es sich im Betrieb als stabil herausstellen sollte, wäre es auf
>jeden Fall ne Alternative zu den FTDI-Chips.

Warum? FTDI raucht keine Programmierung.

>Korrektur: 11500 Baud sind dem Umsetzer beim Empfangen zu viel. Da
>verschluckt er Zeichen.

;-)
FTDI hat 128(?) Byte Puffer in beiden Richtungen.

MFG
Falk

von Igor M. (bastel-wastel)


Lesenswert?

Ich weiß, dass der FTDI in fast jedem Punkt dieser Selbstbaulösung 
überlegen ist. Der Vorteil von diesem Teil beschränkt sich auf Preis und 
DIP-Gehäuse (für manche ist das ein Vorteil ;-)  )

>Warum? FTDI raucht keine Programmierung.

Es versteht sich, dass diese Lösung in keinem kommerziellen Gerät 
eingesetzt wird. Für den Privatanwender ist die Programmierung eines 
zusätzlichen µCs jedoch kein Problem. In der Regel braucht man einen 
solchen Umsetzer wenn man sowieso nen µC auf der LP sitzen hat.

von Bernd K. (viper)


Lesenswert?

Hallo.

Ich bin auch nicht so wirklich der prof. Ätzer oder Belichter, aber der 
FTDI ist weder teuer noch schwer zu löten und wenn du jetzt mehrere 
Schaltungen ausprobierst, hätteste dir schon eine Platine mit FTDI ätzen 
und löten können.

Aber das muss jeder für sich entscheiden.

Ich hatte mir hier vor einiger Zeit den AVR910-USB Progger von 
www.avr-projekte.de aufgebaut und hat richtig gut funktioniert (meine 
erste SMD Platine). Learning by Doing. ;)

von Peter D. (peda)


Lesenswert?

Warum denn diese Abneigung gegen fertige USB-RS232 Umsetzer?
Mit unter 10,-€ finde ich die nicht zu teuer.
Bis 460800 Baud hab ich sie schon getestet.

Vorteilhaft finde ich, daß ich sie am PC dran lassen kann, auch wenn der 
AVR abgeschaltet wird. Manche Software reagiert ja ziemlich allergisch, 
wenn man ihr den COM-Port unterm Hintern wegzieht.


Peter

von Igor M. (bastel-wastel)


Lesenswert?

Ich habe doch nichts gegen fertige Umsetzer - benutze ja selbst einen. 
Ich hab doch nichts Gegenteiliges geschrieben.
Mir geht es darum, dass ich eine Lösung will, die auf der Leiterplatte 
unterkommt, so dass nur ein USB-Kabel benötigt wird.

Es soll eine Schaltung ergeben, die auch von ungeübten Personen 
nachgebaut werden kann. Mit RS232 kann man an neueren PCs mit der Zeit 
dank Wegrationalisierung der Schnittstelle ja leider nichts mehr 
anfangen ;-(
SMD ist ungeübten Lötern nicht zumutbar.

Aber die Geschwindigkeit von 460800 Baud deines Umsetzers finde ich 
schon beeindruckend. Wie sah die Gegenseite zum PC aus? µC Schaltung? 
Falls ja: Hast du einen Standard-Treiber verwendet? Kann ein MAX232 so 
viel?
Brauche für ein anderes Projekt nämlich ne hohe 
Übertragungsgeschwindigkeit zwischen PC und µC ;-)

von Peter D. (peda)


Lesenswert?

Igor Metwet wrote:

> Aber die Geschwindigkeit von 460800 Baud deines Umsetzers finde ich
> schon beeindruckend.

Man kann ja bis 921600 Baud einstellen (Hyperterminal).


> Wie sah die Gegenseite zum PC aus? µC Schaltung?
> Falls ja: Hast du einen Standard-Treiber verwendet? Kann ein MAX232 so
> viel?

Beim Max232 aufm STK500 sah es schon arg verschliffen aus.

Ich hab bei meinem I2C-Sniffer auch direkt den AVR benutzt, geht dann 
aber nur per SW-UART oder man schaltet noch nen Inverter (74HC04) 
dazwischen.


Peter

von Igor M. (bastel-wastel)


Lesenswert?

Hab deinen Sniffer gefunden - werd ich mir mal zu Gemüte führen.
Danke.

von Buzii (Gast)


Lesenswert?

Hi Igor, wie sieht es eigentlich jetzt mit der AVR-CDC Lösung aus, ist 
sie zu empfehlen? Stehen die Daten dann als TTL oder RS232 zur Verfügung 
(1=0V o. 1=5V)?

Ich verstehe die ganze Diskussion hier nicht, der Igor hat gleich oben 
in seiner Frage den FTE-Chip ausgeschlossen, wieso versuchen die Leute 
ihn trotzdem dazu zu überreden? Ja IHR habt recht, der FT232 kann alles, 
aber er kann auch 100 Sachen die für die meisten Anwender nicht nötig 
sind, wieso sollen wir auch dafür bezahlen? Für die meisten Anwendungen 
reicht ein reiner USB zu RS232 TTL Umsetzter, ohne Handshake und und 
und, aus. Ein ATTINY 45 kostet bei Reichelt im DIP8 Gehäuse 1,85eur der 
FTE232 4,95eur, ich finde das ist ein großer unterschied. Ja, es ist 
möglich SMD zu löten, aber wieso soll man sich die Arbeit machen, Routen 
der Platine und Löten, wenn es eine andere, einfachere, günstigere für 
den bedarf genügende, Möglichkeit gibt? Außerdem hat jeder von uns noch 
ein paar Atmels zu hause herumliegen! Wozu also die Diskusionen???

Grüße Denis

von Igor M. (bastel-wastel)


Lesenswert?

Hallo Buzii,

Die AVR-CDC Methode kann ich nur empfehlen. Hohe Übertragungsraten 
(115200 Baud) würde ich bei Voll-duplex jedoch vermeiden. Sonst kann es 
sein, dass Zeichen verschluckt werden. Für meine einen Test mit 57600 
Baud habe ich vom PC ununterbrochen Zeichen über den selbstbau "ATMEGA 
USB zu RS232 Wandler" an einen anderen µController geschickt, welcher 
wiederum die Signale über den selbsbau Wandler zurück an den PC 
geschickt hat. Hierbei traten bei mir keine Fehler auf. Der Autor vom 
CDC nennt eine Baudrate von 38400 für den ATMEGA8. Die Tinys sind hier 
langsamer. Wenn man die Geschwindigkeit nicht braucht, sollte man also 
etwas tiefer gehen.

Ansonsten bin ich schon sehr zufrieden mit der Lösung. Funktionieren 
tuts.

PS: Wenn man genug Platz hat, kann man auch einen ATMEGA 8 für 1,25€ 
(Reichelt) nehmen ;-)  Dazu das bisschen Hühnerfutter außen rum.

Die RS232 Signale werden direkt am ATMEGA8 bzw. ATiny45 abgegriffen, 
welcher mit ca. 3,4V läuft. Man kann jedoch auch den Schaltplan von 
Igorplug benutzen, dann läuft der ATMEGA mit 5V, so dass man TTL zur 
Verfügung hat.
Ansonsten muss noch ein Pegelwandler nachgeschaltet werden. Eine 1 
sollte 0V ausgeben (RS232 Standard halt). Ein MAX232 ist natürlich auch 
schnell angeschlossen, so dass genormte RS232 Pegel mit positiven und 
negativen Spannungen generiert werden.


Zur Diskussion bzgl. dem FT232:
Manche Leute hier verstehen es halt nicht, dass es Leute hier gibt, die 
andere Bedürfnisse haben. Für meine privaten Schaltungen würde ich 
persönlich eine µController-Lösung dem FT232 vorziehen. Gründe wurden 
(auch von dir) schon genug genannt. Für gewerbliche Elektronik nimmt man 
natürlich keine Bastellösung, sondern setzt auf bewährte Bauteile, mit 
den ebenfalls genannten Vorteilen.

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.