PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : USB zu RS232 Wandlers mit FT232RL



Alex444
08.02.2009, 19:20
Hallo,

ich möchte mich gerne an den Bau eines USB zu RS232 Wandlers machen.
Habe dabei schon hier im Forum diverse threads gelesen und wollte abschließend noch ein paar Fragen loswerden. https://www.roboternetz.de/phpBB2/images/smiles/eusa_think.gif

Ich habe vor, als Neuling in der Materie zuerst das Tutorial über den AVR durchzuarbeiten ( https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht ).
Nun habe ich wie viele nur einige USB-Anschlüsse und das wars.

Interessant finde ich den Chip FT232RL und habe mir mal das Datenblatt dazu angeguckt. ( http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=0;INDEX=0;FILENAME=A200%252FF T%2520232RL.pdf;SID=28QKJ1O6wQARwAAEKeeeU5d054260a 8259111be837c73e89f6da7 ) und finde die Schaltung unter 8.1 auf Seite 23 recht gut. Und ich bilde mir ein, dass ich zum Beispiel das RN-Control dor anschließen kann.

Nun habe ich das Problem, dass die Level-Converter bei Conrad und Reichelt nicht angeboten werden. Es wurde schon hier und da vom MAX232 geredet, aber ich weiß nicht, kann ich ich ihn nehmen und wenn ja welchen der vielen?

Letztlich möchte ich die Schltung gleich als USB-Stecker-Platine auslegen (also ohne Kabel zwischen Laptop und Konverter) und bevorzuge daher SMD.

Als Ferrit möchte ich gerne den L-0805F 10µ von Reichelt nehmen ( http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=B511;GROUPID=3178;ARTICLE=72 960;START=0;SORT=user;OFFSET=16;SID=28QKJ1O6wQARwA AEKeeeU5d054260a8259111be837c73e89f6da7 ).

Welche Softwareseitigen Hindernisse habe ich zu erwarten?
Treiber von FTDI Ltd: http://www.ftdichip.com/Drivers/CDM/CDM%202.04.06%20WHQL%20Certified.zip

Ich hoffe Ihr könnt mir weiterhelfen und ein paar Tips geben.

Ich freue mich auf jeden Fall über zahlreiche Antworten.
Und danke auf jeden Fall schon mal.

Liebe Grüße Alex :-k[shadow=red:ccd46104e4][/shadow:ccd46104e4]

drew
08.02.2009, 20:04
Hallo Alex,
was willst Du denn mit dem USB-RS232 Wandler machen? Wenn Du Daten, die Du auf der RS232 von Deinem Controller sendest, empfangen willst (oder anderst rum ;-)) dann bist Du mit dem FTDI genau richtig. Du brauchst dann auch nicht mal einen Pegelwandler. Der FTDI kommt mit dem 5V Pegel des Controllers sehr gut zurecht!

Wenn Du damit einen einfach-ISP-Programmer bauen willst wird das nicht so einfach hin hauen.:-(

Zu der Software/Treiber auf dem PC kann ich nur sagen: 1A. Ich habe zuvor einen fertigen USB-RS232 Wandler auf E-Bay gekauft und bis jetzt nicht zum Laufen gebracht. Mit dem FTDI war das kein Problem. Treiber installiert und fertig. Ich habe auch noch etwas mit dem Borland Turbo C++ rum gespielt und auch keine Problem bekommen.
Mein Tipp: schau Dir die Downloadseite auf der FTDI-Homepage gut durch. Vorallem das M-Prog hat bei mir gute Dienste getan.

Der Ferit war bei mir auch ein Probelm. Ich hab da schon etwas im Internet suchen müssen, bis ich was passendes gefunden hab. Ich bin auf einige beiträge gestoßen, die den Ferit weg gelassen haben.(0 Ohm Widerstand rein) Das soll wohl ohne Problem funktionieren. (Es geht ja "nur" um die Sicherheit des USB-Ports.;-)) Ich werd nochmal nachschauen, was ich dann eingebaut habe. Die Reichelt Bestellung muß noch irgendwo rum liegen.

Wenn Du "richtige" RS232-Pegel haben willst, bist Du mit dem MAX232 schon richtig. Welchen Du nimmst ist wohl egal. Nimm den billigsten. Du solltest aber darauf achten, dass Du das richtige Datenblatt hast. Ich glaube, die wollen teilweise unterschiedliche Kondensatoren.
Du solltest auch wissen, dass Du mit dem RS232 nur 2 Sende-Leitungen und 2 Enpfangsleitungen wandeln kannst. Meißt braucht man nur RXD und TXD. Dann reicht ein MAX232 aus. Wenn Du aber alle Steuerleitungen auch noch wandeln willst brauchst Du mehrere MAX232 oder einen größernen MAX.

Gruß
Drew

Alex444
08.02.2009, 20:39
Danke für Deine schnelle Antwort

Wenn ich dann den MAX weglsse, kann ich dann auch das Tutorial ( https://www.roboternetz.de/wissen/in.....R-Einstieg_leicht_gemacht ) machen und das RN-Control anschließen?

Bigfoot
09.02.2009, 07:33
Ja, aber du musst dann direkt aus dem FT232RL mit RxD und TxD auf dein RN-Control.
Der Controller müsste die Signalpegel können, da es nur einfache TTL-Signale sind. Der MAX232 wandelt die TTL-Signale nur in die "passenden" Seriellen Signale für die Serielle Schnittstelle.

Zusätzlich kann der FT232RL auch noch den Handshake-Modus. Dafür verbindest du einfach noch RTS des FT232RL mit CTS des Controllers auf deinem Board und umgekehrt. Mit dieser Funktion wird zuerst beim anderen Controller angefragt, ob überhaupt Daten empfangen/gesendet werden können. Ansonsten musste du beim FT232RL diese beiden Ausgänge einfach nur miteinander verbinden.


Viel Spaß mit dem Wandler ;-)

oberallgeier
09.02.2009, 08:21
... möchte mich gerne an den Bau eines USB zu RS232 Wandlers machen ...
... und finde die Schaltung unter 8.1 auf Seite 23 recht gut ...Der Levelconverter ist für die Rs485!

Ich hatte mit dem gleichen Vorhaben - U5B an Controller, sozusagen an 232TTL (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=392996#392996) - angefangen, leider bei der Inbetriebnahme den FT verheizt - und im Moment ist das bei mir leider im Standby.

Von der 10µH in 0805 hatte ich mir gleich eine Handvoll gekauft - die sollten zu jedem Controller an AVCC ... steht aber in den Datenblättern.

Bigfoot
09.02.2009, 08:37
Zuerst muss Alex444 wissen/sagen, ob er eine RS232-Schnittstelle oder nur die beiden Datenleitungen benötigt.
Falls er nur die Datenleitungen benötigt, besteht die einzige Schaltung aus der Verschaltung des FT232RL!
Der USB-Port wird an den Baustein angeschlossen. Es folgen noch die externen Beschaltungen und zum Schluss einfach nur die Datenleitungen RxD und TxD mit dem Controller auf dem Board verbinden!
Falls jedoch eine richtige Schnittstelle gewünscht ist, was jedoch -glaub ich nicht der Fall ist-, dann sollte darauf geachtet werden, welcher weiteren Baustein verwendet wird, um aus den Datenleitungen die entsprechende Schnittstelle zu bekommen.
Für eine RS232-Schnittstelle folgt auf den FT232RL ein MAX232.
Für eine RS485-Schnittstelle weiß ich es im Moment grad nicht genau.

Für solche Schaltungen gibt es sehr viele Beispiele bei Google.
Kannst dir zusätzlich auch mal folgende Schaltung mit Aufbauanleitung zu Gemüte führen...
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=19054&highlight=protobedusb

Ich hoffe, das hilft dir weiter!

oberallgeier
09.02.2009, 08:50
Hi,

genau wie Bigfoot sagt und bei mir steht ja oben auch 232TTL:
im Doc FT232R UsB UART I.C. Datasheet Version 1.03 unter 8.1 UsB to Rs232 Converter Configuration auf Seite 22 oder z.B. auf Seite 18 7.1 Bus Powered Configuration, wenn TTL-Pegel reicht.

Alex444
09.02.2009, 21:15
Salut


Zuerst muss Alex444 wissen/sagen, ob er eine RS232-Schnittstelle oder nur die beiden Datenleitungen benötigt.

Also ich muss gestehen, dass ich ziemlich neu bin in der Controllerwelt und von daher nicht den riesen Durchblick habe.

Da ich anfangs mit dem AVR Tutorial starten möchte benötige ich laut der Schaltung aus dem Tutorial die Leitungen: MOSD, VCC, HC, RESET, SCK, MISO. (Also ein USB -> RS232 -> ISP :-k )

Die Leitungen RXD und TXD sind hier noch unbeschaltet. Wäre jedoch nicht von Nachteil, wenn diese trotzdem bereitstehen würden. Dann könnte ich einen zweiten Adapter bei späteren Anwendungen sparen.
Ich möchre auch gerne Wer auf den FT232RL legen, da er die aktuellere Modifikation zum FT232B darstellt.

Ich hoffe die Info macht meine Frage konkreter.

Gruß Alex

Alex444
09.02.2009, 22:27
Hallo nochmal

ich habe bei meinen Recherchen etwas gefunden, was dem entspricht, was ich mir vorstelle: Atmel USB ISP-Programmer MKII (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=201 )

Nur kommt mir das ganze für meine Verhältnisse recht teuer und mag sowas gerne selber bauen mit diesen Möglichkeiten (und dem FT232RL im Herzen).

Kennt jemand die Software? Ich bin ein kleiner C++ Frund und würde gerne Erfahrungen dazu hören.

Gruß

Bigfoot
10.02.2009, 07:35
Also...
Die Datenleitungen die du bestimmt benötigt, sind MOSI, MISO, Clock (SCK), etc. Das hab ich verstanden. Dies bedeutet, dass du auch eine Serielle Schnittstelle benötigst. Also zu dem FT232RL einen MAX232.
Der wandelt dir einfach diese beiden Datenleitungen RxD und TxD zu den entsprechenden MISO MOSI etc.

Oder du sparst dir den MAX232 und gehst aus dem FT232RL direkt hinter den (Bestimmt auf dem Board befindlichen) MAX232. Der wandelt dir nämlich wieder die Signale in die für den Controller passenden Signale (RxD und TxD).

Wegen dem Durchblick...mach dir mal da keine Gedanken...des Kind bekommen wir schon geschaukelt ;-)

Was genau meinst du mit unbeschaltet? Die anschlüsse vom Controller?
Oder meinst du, dass die Leitungen auf dem Board vorhanden sind, aber halt direkt zum Controller laufen und nicht rausgeführt sind? Oder sind sie gar nicht vorhanden?

Ob nun FT232RL oder FT232B oder auch FT232M ist egal. Der FT232M ist -soweit ich weiß- die gleiche Variante nur mit Blei.

Also wenn du die Schaltung mit deinem FT232RL aufbaust (und eventuell noch mit dem MAX232) und zusätzlich die Datenleitungen RxD und TxD aus deiner Schaltung seperat rausführst, dann hast du genau dieses Ding.
Dann kannst du an deine Schaltung mit USB zuerst über ne seriellle Schnittstelle einen Controller programmieren oder direkt über die beiden Datenleitungen RxD TxD.

Ich persönlich kenn jedoch die Software nicht. Die benötigte Software für den FT232RL findest du jedoch unter der Homepage von Texas Instruments. -Hast bestimmt schon gesehen/gelesen-

Bei Fragen grad melden^^
Ich hoff, dir hat die Antwort ein wenig weitergeholfen.

drew
10.02.2009, 11:44
Hallo,
mit den Leitungen MOSI, MISO, SCK, ... Leitungen, sind die Namen des ISP-Adapters gemeint. Das entspricht einem SPI-Bus. Die Pegel sind hierbei 5V.
Leider ist die SPI-Schnittstelle nicht kompatibel mit der RS232. Bei einer "echten" RS232 (nicht über USB) kann man direkt auf die Steuerleitungen zugreifen und somit den SPI-Bus simulieren. (Darum sind RXD und TXD auch gar nicht bestückt.)

Leider kannst Du mit dem USB-RS232-Wandler nicht den einfachen Programmer verwenden! (zumindest nicht mit standard Software)

Als Alternative ist dier ISP MK2 ok. Ich bin mir aber recht sicher, dass es noch günstigere Alternativen gibt. -> Googlen!!

Ich habe noch raus gesucht, welchen Ferit ich genommen habe:
Reichelt BestNr: L-1206AS 100N.
Funktionieren tut's. Ich weiß aber nicht ob das nach allen Regeln der Kunst passt.

Alex444
10.02.2009, 16:10
Hallo ihr beide,

Ich versuche das mal für mich zusammenzufassen.
Ich nehme den FT232RL und verbinde ihn über ein Flachbandkabel mit dem ATMega 32:

Guckt mal in den Anhang

(Den Elko mit 10nF gibt es ja garnicht - der scheint eine zu geringe Kazität zu haben.)

Bigfoot
11.02.2009, 07:47
Nein, du hast einen kleinen Fehler!
Erstmal: willst du noch zusätzlich den ISP-Stecker? Dann musst du von den Datenleitungen RxD und TxD an einen MAX232 ran! Von dort kannst du dann die Aus/Eingänge von MISO und MOSI etc. verbinden.
Du kannst nicht einfach RxD und TxD mit MISO und MOSI verbinden! Die können unterschiedliche Pegel besitzen!

Bei den Leitungen von DSR#, DSD# und RI# weiß ich nicht, was das genau für Ausgänge sind => Datenblatt nachlesen!
Ich glaube, dass du die nicht mit den µC (deinem ATMega 32) einfach verbinden kannst!
Außerdem: warum hast du noch n Level-Converter da drin???
Du kannst direkt aus dem FT232RL raus und in den µC rein!

ACHTUNG! Vcc vom USB und Vcc von deiner Steckerleiste (ISP) kann unterschiedlich sein! Ebenso kann man mittels USB nur bis zu 500mA betreiben!!! Reicht grad aus, um ein paar wenige IC und µC zu betreiben, aber keine "extrem große" Schaltung!

Du brauchst auch noch einen Clock (Quarz) für den FT232RL und verbinde den Reset# über einen 1,5k mit USBDP.

Die beiden LEDs sind nur ein Zusatz...die musst du auch nicht nehmen...
Oder du kannst auch eine daraus machen...einfach die beiden Ausgangspins verbinden und dann auf eine LED und auf einen Widerstand und an Vcc (5V)

Hoffe dir helfen die Hinweise...
Bei Fehlern meinerseits entschuldige ich mich und bitte um Verbesserung ;-)

drew
11.02.2009, 14:06
Hallo Alex,
wenn ich Dich richtig verstanden habe, willst Du Deinen ATMega über ISP programmieren?
Um das zu tun brauchst Du neben Deinem Controller-Board (wie im ersten Anhang) mit ISP Stecker.
Dann brauchst Du ein Programmierkabel. Anscheinend willst Du das über den FTDI machen. Das ist abernicht so einfach!
Der FTDI kann als USB-RS232-Wandler betrieben werden. In diesem Modus hast Du keine Chance. In einem anderen Modus kannst Du jede Leitung einzeln ansteuern (also High oder Low schalten / bzw einlesen.) Das geht aber nur, wenn Du die Ansteuerung mit C++, Delphi, ... über die DLL von FTDI selbst machst. Du müstest also eine SPI Schnittstelle nachbilden und die Pragrammier Kommandos dann übertragen. Das ist sehr Aufwendig.
Ich würde Dir raten ein fertiges programmierkabel zu kaufen. (Vielleicht auch einen Bausatz?) Dann wird auch die Programmiersoftware mitgeliefert. Oder Du kannst das Programmieren schon über das AVR Studio machen.

In Deiner Schaltung muß unbedingt noch Reset und SCK angeschlossen werden. Den Pegelwandler brauchst Du nicht (Wie Bigfoot schon gesagt hat.) er stöhrt aber auch nicht, weil Du Deine Signale vor dem Wandler abgeifst.

Ich frage mich gerade, ob der ATMega32 nicht sogar mit einem Flashloader ausgeliefert wird. Dann bräuchtest Du nicht mal über die ISP-Schnittstelle gehen? Weiß das jemand?

Drew

Alex444
11.02.2009, 23:33
Hallo drew, hallo Bigfoot

Es wird immer verwirrender. Ich muss meinen Kopf erstmal wieder in einige Dokumentationen stecken.
Ansich möchte ich ja gerne einen ISP-Programmer mit USB bauen.
Das heiß USB-Anschluss auf der einen Seite und ISP-Kabel auf der anderen Seite.
Eben so, dass ich das Tutoral aus Anhang 1 machen kann und später auch andere Projekte damit realisieren kann.

Aber wenn ich euch richtig verstanden habe könnte ich auch die Ausgänge RXD und TXD gleich mit dem Atmega32 an Pin 15 & 16 verbinden!?

(Ich bin verwirrt)

Danke aber für eure Gedult mit mir und eure Tips :-)
Gruß
Alex

Bigfoot
12.02.2009, 07:51
Okay...das sagt schon mehr aus...
Dann kann ich dir nicht so viel weiterhelfen was das ISP-Kabel betrifft.
Jedoch Fragen zum FT232RL kann ich gerne so gut es mir möglich ist beantworten...Dachte du willst RS232-Schnittstelle...aber dann wird das vergessen^^....wir wollen dich ja nicht noch mehr verwirren ;-)

Ja, du kannst die Leitungen so verbinden...daher heißen die Pins ja au so...
Aber vorsicht: es sind 14 und 15! Und RxD mit TxD und TxD mit RxD verbinden, aber das ham wir dir ja auch schon gesagt und wusstest bestimmt schon. Aber sicher ist sicher^^...

Noch was zu deiner Schaltung...ich hab am Ausgang von 3V3out einen 3,3N verwendet, aber ich geh mal davon aus, dass dein 100n da auch ned so schlimm ist.
Ebenso waren vor den Eingängen an USBDM und USBDP jeweils 270 Ohm Widerstände. Auch da muss ich leider passen, warum ich das so gemacht hab. Hatte bestimmt einen Grund, doch im Moment fällt er mit nicht mehr ein. Habs bestimmt vllcht auch iwo mal gesehen.

Aber sonst müsste deine Schaltung mit dem FT232RL auch stimmen...also diesen Schritt hast du schon mal gemeistert!... ;-)

Bitte gerngeschehen...wofür gibt es denn Foren?^^
Gruß
Bigfoot

BlackDevil
12.02.2009, 08:22
http://www.usb-projects.net/cwiki.php

Ich empfehle noch diese kleine Seite. Im grunde scheint USB gar nich so schwer zu sein ... will ich mir auch noch mal ansehen.

Grüße

oberallgeier
12.02.2009, 08:38
... Es wird immer verwirrender ... Ansich möchte ich ... einen ISP-Programmer mit USB bauen ...Dann schau vielleicht hierher:
https://www.roboternetz.de/phpBB2/viewtopic.php?p=424266#424266
http://www.ulrichradig.de/home/index.php/avr/usb-avr-prog

hier wirst Du (vielleicht, bestimmt) geholfen

Alex444
12.02.2009, 22:09
Hallo,

=; der Tip von oberallgeier mit der Site:
http://www.ulrichradig.de/home/index.php/avr/usb-avr-prog

war echt Gold wert. So habe ich mir das zumindest für den Anfang vorgestellt. Schön auch, dass wir in der vorgegangenen Diskussion schon sehr nahe dran waren.

Was ich leider noch nicht ganz weiß ist, wozu ich den DTR#-Anschluss (Data Terminal Ready Control Output / Handshake signal.) nehmen soll.

Ich würde das jetzt mal testen. Was meint ihr?

Gruß Alex \:D/

Bigfoot
13.02.2009, 07:08
Erstmal noch was vorneweg...ist das jetz deine Schaltung? Dann hast du immernoch den Reset# vergessen...
Leg ihn einfach an Versorgerspannung vom FT232RL.
Ebenso ist auch noch kein Takt angeschlossen, also würde so auch noch nix funktionieren!...Anschluss OSCI und OSCO!
Mhm...ich kenn den Handshake nur mit verbundenen RTS# und CTS#. Was jetz jedoch DTR# macht..weiß ich nicht. Kannst ja mal aufbauen und mit nem Oszi anschauen, was aus dem Pin rauskommt (zeitlicher Verlauf). Vllcht ist es ja sowas wie CTS# einfach ein Signal für den anderen nachfolgenden Teilnehmer (in deinem Fall der ATMega), damit dieser weiß, dass jetzt Daten kommen oder von ihm Daten empfangen werden können...
Ich glaub nicht, dass was kaputt geht, wenn du die Verdrahtung von DTR# so lässt. Es könnte höchstens sein, dass halt die Übertragung nicht funktioniert, also der ATMega keine Daten vom FT232RL bekommt.
Dann weißt du vllcht bescheid, woran es liegen könnte

oberallgeier
13.02.2009, 08:11
Ich vermute ja, dass ihr alle diese Abkürzungen (http://de.wikipedia.org/wiki/EIA-232#Verkabelung_und_Stecker) kennt - und nur über die Anwendung beim SPI/ISP-Protokoll diskutiert.

Bigfoot
13.02.2009, 08:32
Joa, mehr oder weniger.
Jedenfalls war dein Link hilfreich. ;-)

Aber unbedingt notwendig ist die DTR# Verbindung nicht, oder? Es würde auch ohne funktionieren?!?

Alex444
14.02.2009, 16:47
Hier ein neuer Entwurf:

Bitte reichlich Meinungen dazu hierlassen [-o<

Bigfoot
16.02.2009, 07:23
Dein Clock fehlt immernoch!
Und noch was...ich seh, dass du 2 Spannungsversorgungen haben kannst...zum einen die USB-Schnittstelle und auch noch deine 5V externes Netzteil. Du musst die beiden Versorgungsspannungen vor Kurzschlüssen schützen! Kann beim Anschließen des USB-Kabels oder sonst passieren. Mach daher sicherheitshalber einfach ne Diode direkt nach der USB-Buchse an die Spannungsversorgung und auch an dein externes Netzteil.
Ansonsten seh ich auf den ersten Blick grad nix am FT232RL. Wie gesagt, mit ISP kenn ich mich ned so aus...

Alex444
16.02.2009, 17:09
Danke auf jeden für Deine Tips. Ich denke wir nähern uns jetzt schon dem Ziel :-)

Bigfoot
17.02.2009, 07:00
Bitte, glaub ich auch^^...kann ja nicht mehr lange dauern bis es fertig ist ;-)
Ach ja...ich hab noch vor den Eingängen USBDM und USBDP jeweils einen 270 Ohm Widerstand in Reihe geschalten. Frag mich aber grad ned warum...