Forum: Mikrocontroller und Digitale Elektronik FT232RL - Bit 2 immer 0


von Tobias (Gast)


Lesenswert?

Hallo zusammen,

ich möchte für mein µC-Projekt einen FT232 benutzen und habe mir für die 
ersten Tests einen Chip mit DIP-Adapter besorgt, um das ganze auf dem 
Steckbrett zu testen.
Ich betreibe den FT232 in der Self-powered Variante in genau der 
gleichen Schaltung, wie es im Datenblatt beschrieben wird (ohne 
CTS/RTS). Es funktioniert in Richtung UART->USB auch alles einwandfrei.
Wenn ich aber Daten über das Terminal am PC an den FT232 sende (ich 
benutze hterm), ist Bit 2 (bei Bit 0 beginnend) immer 0. Aus 4 wird also 
0, aus 5 eine 1, aus 6 eine 2, aus 7 eine 3 aber 8 ist wieder richtig. 
Das hab ich auch schon ausgiebig getestet. Es ist immer dieses Bit und 
nur in die Richtung USB->UART.
Es bleibt auch bei allen Baudraten identisch.

Den µC habe ich ausgeschlossen, indem ich auf der UART-Seite ein 
AnalogDiscovery 2 von Digilent an TX/RX anklemme und über die 
Waveshare-Software direkt Daten sende und empfange. Der µC ist hier also 
komplett außen vor.

Beim ersten Aufbauversuch habe ich mich einmal in den Pins verzählt und 
der IC ist kurz ein bischen warm geworden. Ich habe ihn dann sofort von 
der Versorgung getrennt und die Schaltung korrigiert.
Weiss hier jemand, ob es sein kann, dass diese kurze Fehlschaltung zu so 
einem (dauerhaften) Fehler führt? Oder fällt jemandem vielleicht noch 
eine andere Möglichkeit ein?
Die Treiber habe ich auf die aktuelle Version überprüft und mit hterm 
hat ja sonst auch noch niemand Probleme gehabt.
Wenn es nichts anderes sein kann, dann muss ich mir wahrscheinlich einen 
Ersatzchip besorgen.

Vielen Dank schon mal!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Tobias schrieb:
> Wenn ich aber Daten über das Terminal am PC an den FT232 sende (ich
> benutze hterm), ist Bit 2 (bei Bit 0 beginnend) immer 0. Aus 4 wird also
> 0, aus 5 eine 1, aus 6 eine 2, aus 7 eine 3 aber 8 ist wieder richtig.
Wie merkst du das?

> ist Bit 2 (bei Bit 0 beginnend) immer 0. Aus 4 wird also 0, aus 5 eine
> 1, aus 6 eine 2, aus 7 eine 3 aber 8 ist wieder richtig.
Wie kommst du auf 8 Bits?

Was passiert, wenn du auf der RS232 Seite TX und RX verbindest?

> Weiss hier jemand, ob es sein kann, dass diese kurze Fehlschaltung zu
> so einem (dauerhaften) Fehler führt?
Kann schon sein. Das ist, wie wenn du mit dem auto einmal kurz auf den 
Randstein gefahren bist. Was dabei passiert hängt also ein wenig vom 
Anfahrwinkel ab, von der Geschwindigkeit und der Höhe des Randsteins. 
Mit ein wenig Glück ist nur die Felge zerkratzt. Mit ein wenig Pech 
verzieht es dir das Fahrwerk...

: Bearbeitet durch Moderator
von Tobias (Gast)


Lesenswert?

Lothar M. schrieb:
> Wie merkst du das?

Das sehe ich auf der Waveshare-Software im protocol watcher. Ich sende 
quasi über hterm und empfange über das Digilent.

Lothar M. schrieb:
>> ist Bit 2 (bei Bit 0 beginnend) immer 0. Aus 4 wird also 0, aus 5 eine
>> 1, aus 6 eine 2, aus 7 eine 3 aber 8 ist wieder richtig.
> Wie kommst du auf 8 Bits?

Mit 8 meinte ich dezimal 8. Das stimmt wieder, weil das Bit 2 da ja 
sowieso 0 ist.

Rx und Tx habe ich noch nicht verbunden. Das werde ich aber mal 
versuchen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tobias schrieb:
> Mit 8 meinte ich dezimal 8.

Es sind aber nicht 8, denn es gibt noch ein Startbit, potentiell ein 
Paritybit und danach noch mindestens ein Stopbit.

Zeig mal einen Screenshot o.ä. Deines Digilent-Dingens, auf dem man den 
kompletten Signalverlauf sehen kann.

von Tobias (Gast)


Lesenswert?

Naja dass es Start- und Stopbit etc. gibt weiss ich auch. Ich bin jetzt 
nicht blöd oder sowas...nur Student.
Ich bin im Moment nicht im Labor, deswegen kann ich keinen Screenshot 
machen.
Bei dem Digilent-Dingens handelt es sich um ein 
USB-Oszilloskop/LogicAnalyzer/Funktionsgenerator. An dieses Gerät wird 
Rx/Tx, die aus dem FT232 rauskommen angeklemmt und in der zugehörigen 
Software ein Serialport betrieben. Hier wird genauso wie in hterm die 
Baudrate, Stopbits, Parität etc. eingestellt.
 Im Grunde betreibe ich zwei Terminals am PC, die über den FT232 
kommunizieren.

An diesem Digilentgerät liegt es aber mit Sicherheit nicht. Das gleiche 
tritt eben auch mit µC auf, wenn ich die vom PC gesendeten Daten z.B. 
auf einem LCD anzeigen lasse.

Wenn es mit etwas zu beheben wäre, das in den tausend anderen 
FT232-threads schon besprochen worden ist, würde ich hier keinen neuen 
aufmachen.
Wahrscheinlich wird es auf einen neuen Chip hinauslaufen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Tobias schrieb:
> Im Grunde betreibe ich zwei Terminals am PC, die über den FT232
> kommunizieren.
Wie gesagt:
Schritt 1: TX und RX auf der RS232 Seite verbinden und schauen,  ob die 
gesendeten Zeichen wieder ankommen.
Und zum Test diese Verbindung auch mal auftrennen, dann darf nichts mehr 
kommen (Test auf lokales Echo).

: Bearbeitet durch Moderator
von S. R. (svenska)


Lesenswert?

Tobias schrieb:
> Wenn ich aber Daten über das Terminal am PC an den FT232 sende (ich
> benutze hterm), ist Bit 2 (bei Bit 0 beginnend) immer 0.

Klingt, als ob du das Bit 2 irgendwo mit Masse verbunden hast oder der 
Chip einen Schaden hat.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

S. R. schrieb:
> Klingt, als ob du das Bit 2 irgendwo mit Masse verbunden hast

Das ist bei einer seriellen Schnittstelle allerdings nicht gerade 
einfach ...

von S. R. (svenska)


Lesenswert?

Rufus Τ. F. schrieb:
> Das ist bei einer seriellen Schnittstelle allerdings nicht gerade
> einfach ...

You win. ;-)

von Dieter F. (Gast)


Lesenswert?

Tobias schrieb:
> Ich bin jetzt
> nicht blöd oder sowas...nur Student.

Diskutiert ihr so etwas immer ohne Schaltplan? Ich vermute mal nicht, 
dass HTERM ein Bit unterschlägt, wenn das

Tobias schrieb:
> Digilent-Dingens

korrekt angeschlossen ist wird das wohl auch nicht die Ursache sein.

Also wohl Schaltung, FT232.. oder MC - in dieser Reihenfolge.

von Soul E. (Gast)


Lesenswert?

S. R. schrieb:

> Klingt, als ob du das Bit 2 irgendwo mit Masse verbunden hast oder der
> Chip einen Schaden hat.

In diesem Fall dürfte sich der Fehler auch beim Loopback-Test zeigen. 
Digilent abklemmen, RxD mit TxD verbinden und schauen ob das, was Du in 
Hterm tippst auch zurückkommt.

Um das defekte Bit zu reparieren reicht ein handelsüblicher FIB-Cutter: 
http://occam.utoronto.ca/instrumentation/nb5000-precise-cutting-and-observation-tool/

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.