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!
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...
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.
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.
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.
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).
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.
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 ...
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.
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/