Forum: Mikrocontroller und Digitale Elektronik Übertragungsfehler mit dem FT232RL


von Sebastian W. (code)


Angehängte Dateien:

Lesenswert?

Ich habe ein großes Problem mit dem FT232RL von FTDI.
Bisher habe ich schon erfolgreich mit anderen USB Wandlern wie dem
CP2102 von Silaps oder dem TUSB3410 von Ti gearbeitet.

Der FT232RL bringt mich aber zum verzweifeln.
Ich habe den Chip laut Datenblatt Bus-Powered angeschlossen.
Den Ferrit und den 10nF Elko habe ich aber weggelassen.
Desweiteren habe ich den FT232RL an einen Atmel ATTINY2313 angeschlossen 
und ein Testprogramm reingeladen. Wenn ich also etwas über dem Comport 
zum Controller sende, sendet er mir das gesendete wieder zurück. Damit 
prüfe ich immer meine Datenübertragungen. Baudrate ist 19200 bei einem 
8MHz Quarz.

Der FT232RL wird von Windows einwandfrei erkannt.
Sende ich aber den String "test", antwortet mir der Controller 
"td``?????".
Die Datenübertragung ist also total verstümmelt.

Schließe ich an die RX,TX Pins des Atmels einen TUSB3410 oder einen 
CP2102 an, funktioniert die Übertragung wunderbar. Ich muss also mit dem 
FT232RL irgendwas falsch gemacht haben. Am FT232RL selber scheint es 
nicht zu liegen, da ich den Effekt auch bei einem weiteren Layout mit 
einem Atmega16 habe. Desweiteren habe ich auch den neuesten Treiber und 
andere Pcs versucht. Überall sind die Daten verstümmelt. Kann mir jemand 
weiterhelfen? Brauche ich den Ferrit vielleicht doch zwingend?

mfg
code

von MichiB (Gast)


Lesenswert?

Hi,

ich habe bisher immer 4µ7 verwendet und hatte nie Probleme.

Ich denke, dass das LC-Glied benötigt wird.

von Sebastian W. (code)


Lesenswert?

Mit 4,7uF meine ich 4µ7. Das passt ja.
Aber warum sollte man den Ferrit zwingend brauchen?
Die USB Schnittstelle ist doch nicht so schlimm gestört.
Oder ist der Chip so empfindlich? Wenn ja, ist das doch ein Witz.

von Falk B. (falk)


Lesenswert?

@  Sebastian Weidmann (code)

>Den Ferrit und den 10nF Elko habe ich aber weggelassen.

Kann man erstmal machen.

>prüfe ich immer meine Datenübertragungen. Baudrate ist 19200 bei einem
>8MHz Quarz.

>Der FT232RL wird von Windows einwandfrei erkannt.
>Sende ich aber den String "test", antwortet mir der Controller
>"td``?????".
>Die Datenübertragung ist also total verstümmelt.

Falsche Baudrate.

>Schließe ich an die RX,TX Pins des Atmels einen TUSB3410 oder einen
>CP2102 an, funktioniert die Übertragung wunderbar.

Masse auch verbunden?

http://www.mikrocontroller.net/articles/AVR_Checkliste#UART.2FUSART

>weiterhelfen? Brauche ich den Ferrit vielleicht doch zwingend?

Nein.

MFG
Falk

von Benedikt K. (benedikt)


Lesenswert?

Sebastian Weidmann schrieb:

> Sende ich aber den String "test", antwortet mir der Controller
> "td``?????".
> Die Datenübertragung ist also total verstümmelt.

Es kommen mehr als doppelt soviele Bytes an wie gesendet werden. Das 
lässt darauf schließen, dass die Baudrate falsch ist.

> Brauche ich den Ferrit vielleicht doch zwingend?

Ich habe den bisher noch nie verwendet, und auch noch keine echten 
Probleme gehabt. Nur bei EMV Test sieht es dann sehr schlecht aus.

von Anja (Gast)


Lesenswert?

hallo,

ich habe bei mir den RESET# auf +5V liegen.
Ein floatender Eingang könnte die Ursache sein.
Den Ferrit lasse ich meist auch weg.

von Benedikt K. (benedikt)


Lesenswert?

Laut Datenblatt darf man Reset offen lassen. Fest verdrahtet macht die 
Sache natürlich Störunempfindlicher.

von Sebastian W. (code)


Angehängte Dateien:

Lesenswert?

Die Baudrate passt, ansonsten würde der TUSB3410 auch nicht 
funktionieren. Das hab ich schon überprüft.

Massen sollten sauber verbunden sein(siehe Schaltplan)

von Holger (Gast)


Lesenswert?

Der Ausgang des FTDI ist OpenDrain ????
Der Pull-Up sorgt das der LowPegel durchschalten kann.




Ich vermute da fehlt der PULL-UP am Ausgang, TXD (10K Ohm)
Der Rxd Eingang des ATMELS Pullt nicht ????

----<StartBit____X(8)Data Stop


Schau dir mal die MAX232 Innenbeschaltung an.
(Da sind Pull-UPS 400K Ohm drin)

Mach eine Max-232 dran,und damit RX-TX Verbindung an den Max232-Pins.
Somit kannst du den FTDI-Via.PC Solo testen.
   Tx--------Tx-FTDI-------------MAX232----TTL-- ATMEL
   PC_rx        Rx(V24,-/+12V)-------------)


(Loopback-Test)

Gruss Holger.

von Einhart P. (einhart)


Lesenswert?

Hallo Sebastian,

ich habe einige Boards mit FT232RQ und AVRmega32 laufen. Mein Schaltplan 
sieht eigentlich genauso aus wie deiner. Reset offen RxD, Txd direkt 
ohne Pullup am AVR. Ich schaue morgen 'mal ob ich ein L oder R in der 
Versorgung vom USB bestückt habe.

Eigentlich sollte aber L,R oder Brücke funktionieren. Ich kann mir nicht 
denken, dass die Induktivität wirklich notwendig ist - ist 
wahrscheinlich aus EMV-Gründen drinnnen.

Du könntest 'mal einen konstanten String von Controller ausgeben lassen. 
Dann kannst du sehen ob das Problem auf der Sende- oder Empfangsseite 
sitzt.

von Sebastian W. (code)


Lesenswert?

Wenn ich einen konstanten String "test" vom Controller sende, 
funktioniert das sporadisch mal.

Von 5mal Connect/Disconnect funktioniert die Übertragung vielleicht 1mal 
richtig.

Ich versteh das nicht. Normalerweise würde ich auch die Baudrate/Taktung 
sofort als Übeltäter vermuten.

Der Controller ist aber sicher auf 8MHz externen Quarz umstellt.
Im Sourcecode, Compiler ist 8MHz mit 19200 Baud eingestellt.
Mit anderen Baudraten wie 9600 oder 38400 klappts auch nicht.
Am Pc verwende ich Hterm und dort ist auch die Baudrate richtig 
eingestellt.

Der Controller macht auf jedenfall alles richtig, denn wenn ich mal 
schnell einen TUSB3410 oder CP2102 an den Controller löte, funktioniert 
die Übertragung fehlerfrei.

NACHTRAG:
Übrigens ist der String der fehlerhaften Übertragung konstant!
Bei "test" kommt immer genau "td``?????" zurück.

von asdf (Gast)


Lesenswert?

Ein elektrisches Problem am USB kann ich mir als Ursache nur schwer 
vorstellen, da dort zu den eigentlichen Datenbytes die irgendwie zu 
Paketen zusammengefasst werden ja noch Header, CRC etc. dazukommen. Dass 
alles passt und nur die Daten beschädigt werden halte ich für eher 
unwahrscheinlich.

Ist der AT90S2313 auch Bus-Powered, d.h. steckt der Jumper und es gibt 
keine weitere Versorgung?

Passt der Baudrate-Divider gaaaaaaanz sicher 1000%ig? Nicht dass durch 
eine falsche Rundung bei der Berechnung das Register UBRR den falschen 
Wert hat und es bei anderen Bausteinen zufällig noch gerade passt (wie 
sieht denn die Formel aus?)...

von Benedikt K. (benedikt)


Lesenswert?

Lass mal den AVR weg und verbinde RXD und TXD vom FT232.
Wenn dann der gesendete Text richtig zurückkommt, liegt es zu 99,9% an 
der Baudrate.

von Sebastian W. (code)


Lesenswert?

Wenn ich RXD und TXD ohne AVR verbinde, kommt garnichts zurück.
Am Oszi messe ich auch keinerlei Signale.

von Anja (Gast)


Lesenswert?

Dann liegts vermutlich am Terminal-Programm. (verwendet vermutlich 
Hardware-Handshake)
Verbinde mal RTS+CTS und DTR+DSR.

von Falk B. (falk)


Lesenswert?

@  Anja (Gast)

>Dann liegts vermutlich am Terminal-Programm. (verwendet vermutlich
>Hardware-Handshake)
>Verbinde mal RTS+CTS und DTR+DSR.

Schlaue Leute würden einfach die FLusskontrolle aus "Keine" schalten . . 
.
Ausserdem verstümmelt Flußkontrolle keine Einzelzeichen.

Ich tippe mal auf schlechten elektrischen Aufbau mit kalten Lötstellen 
etc.
Oder gar Steckbrett? :-0

MfG
Falk

von Sebastian W. (code)


Lesenswert?

Nö!

Flusskontrolle ist aus!
RTS+CTS und DTR+DSR hab ich auch schon versucht! Siehe Schaltplan 
(Jumper)

Wenn ich den FT232R ohne AVR anschließe, liegt am RX und TX
0V an! Beim TUSB3410 liegen da z.B. 3,3V an.
Versorgungsspannung ist aber OK und der 3V3OUT Pin hat auch seine 3,3V.


Ich bin immer noch der Meinung, dass da was am FT232R nicht stimmt.
Schließlich klappts mit einem anderen Wandler ja perfekt. Wäre schon ein 
lustiger Zufall, wenn ich immer beim FT232R die Benutzung des 
Terminal-Programms verlerne.
Vielleicht ist ja auch der FT232R kaputt (ESD,...). Es ist einer von 3 
Mustern, die ich von einem Händler bekommen hab.

Wenn der CP2102 nicht so beschi***en zu löten wäre und der TUSB3410 
nicht tausend Widerstände, Quarz,... bräuchte, dann wär der FT232R schon 
längst in der Mülltonne.

von Benedikt K. (benedikt)


Lesenswert?

Sebastian Weidmann schrieb:

> Wenn ich den FT232R ohne AVR anschließe, liegt am RX und TX
> 0V an! Beim TUSB3410 liegen da z.B. 3,3V an.
> Versorgungsspannung ist aber OK und der 3V3OUT Pin hat auch seine 3,3V.

Und an VCCIO?
Mess mal nach, ob da auch wirklich 5V anliegen.

> Ich bin immer noch der Meinung, dass da was am FT232R nicht stimmt.

Ja, irgendwas passt da nicht, aber ich tippe zu 99% auf einen 
Schaltungfehler.

> Vielleicht ist ja auch der FT232R kaputt (ESD,...).

Meiner Erfahrung nach ist der FT232R in diesem Punkt sehr robust, ich 
hatte schon welche die am Rauchen waren, funktionieren aber weiterhin...

von Sebastian W. (code)


Angehängte Dateien:

Lesenswert?

VCCIO hat 5V anliegen.

Ich finde keine Schaltungfehler.
Hier mal das Layout.

Im Moment habe ich den Jumper für VCC am AVR entfernt und habe nur
noch den FT232R über USB dran. RX, TX 0V

von Benedikt K. (benedikt)


Lesenswert?

Das Layout ist, sagen wie mal verbesserungsfähig.
Vor allem die Kondensatoren sind alle etwas weit von den ICs weg.
Ansonsten sehe ich keinen Fehler.

von Sebastian W. (code)


Lesenswert?

Wer hat gesagt, dass ich Profi im layouten bin ;-)

von Benedikt K. (benedikt)


Lesenswert?

Hier mal ein paar Tipps für die nächste Version:
- Versuche D+ und D- möglichst gleich lang zu machen, also nicht diese 
riesige Schleife rund um die Befestigungslasche der USB Buchse.
- Die Schleife GND-Kondensatoren-Vcc ist sehr groß. Diese kann man 
deutlich kleiner machen.

Irgendeinen Grund muss es haben, dass TXD 0V hat. Messe mal die Spannung 
an CBUS3 (PWEREN), hier sollten 0V anliegen.

von Sebastian W. (code)


Lesenswert?

Danke für die Tipps, ich werds mir merken.

An CBUS3 messe ich 0V.

von Sebastian W. (code)


Lesenswert?

Also!
Ich hab jetzt mal den FT232RL gewechselt und siehe da, es geht!
Meiner Meinung nach sind die Muster defekt.

Hab mir nämlich von zwei Lieferanten jeweils 3 Muster schicken lassen.
Jetzt hab ich mal ein Muster vom zweiten Lieferanten bestückt und da 
funktioniert alles wunderbar. An RX, TX liegt jetzt auch Spannung an.

Vielen Dank an euch alle für eure Hilfe!!!!!!!

von Sebastian W. (code)


Lesenswert?

Hmmm könnte aber auch eine kalte Lötstelle gewesen sein, die ich durch 
den Wechsel behoben habe. Naja auf jedenfall gehts jetzt.

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.