Übertragungsfehler mit dem FT232RL

#1456084
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
Angehängte Dateien:
#1456130
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
#1456133
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.
Gast #1456181
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.
#1456248
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.
#1456279
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.
Gast #1456304
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?)...
#1457178
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
#1457192
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.
#1457202
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...
#1457227
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.
#1457826
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!!!!!!!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren