Forum: Mikrocontroller und Digitale Elektronik FT232R zieht zuviel Strom über RXD/TXD


von Dennis R. (reiden)


Lesenswert?

Hallo,

ich habe hier einen FTDI FT232R an einem Atmega8 als USB<->RS232 
Wandler. Beide Chips arbeiten in einer Batterieschaltung, der FT232 soll 
nur über USB versorgt werden.
Die Leitungen RXD und TXD des FT232 sind mit den enstprechenden Pins des 
Atmega verbunden. RTS# und CTS# habe ich gemäß Datenblatt auf VCC (high) 
gelegt, GND des FT und des ATMEGA liegen zusammen.

Im Normalbetrieg benötigt meine Schaltung ca. 5mA. Ist jedoch kein 
USB-Kabel am FT232 angeschlossen und wird die Schaltung eingeschaltet 
zieht dieser jedoch dauerhaft 35 bis 40mA. Das ganze lässt sich nicht 
direkt reproduzieren, ist das USB-Kabel einmal eingesteckt und wird 
wieder abgezogen bleibt der Stromverbrauch normal. Das Verhalten zeigt 
sich auch bei angeschlossenem Kabel wenn der Rechner neu bootet - muss 
also auch was mit dem Treiber zu tun haben.

Der FT232R sitzt auf einem USB -> RS232_TTL Modul von Ulrich Radig 
(http://www.ulrichradig.de/home/uploads/File/USB_RS232/USB_TTLRS232.zip). 
Die Schaltung entspricht in etwa der auf Seite 30 des FT232R-Datenblatts 
"7.4 USB to MCU UART Interface". Nur das RTS# und CTS# auf VCC (High) 
liegen, PWREN# nicht verbunden ist (ist ja eh optional) und der Takt 
nicht genutzt wird.

Nach mehrfacher Konsultation des Datenblatts gehe ich mal davon aus, 
dass man mit dem FTDI-Mprog-Tool irgendeinen Parameter (PullUps) 
umstellen muss. Aber welchen? Oder gibts für dieses Problem eine andere 
bekannte Ursache?

von holger (Gast)


Lesenswert?

>Oder gibts für dieses Problem eine andere
>bekannte Ursache?

Ja, sowas kommt davon wenn man sich nicht zwischen Buspowered
und Selfpowered entscheidet und dann eine Mischung
von beidem versucht.

von Dennis R. (reiden)


Lesenswert?

>Ja, sowas kommt davon wenn man sich nicht zwischen Buspowered
>und Selfpowered entscheidet und dann eine Mischung
>von beidem versucht.

Das Radig RS232_TTL Modul führt nur die 5 Anschlüsse TXD, RXD, CTS#, 
RTS# und GND auf eine Stiftleiste. Dieser "Mischbetrieb" ist quasi von 
vorneherein so vorgesehen.

Buspowered heißt doch nicht zwangsläufig, dass der komplette Rest der 
Schaltung ebenfalls über USB versorgt werden muss? Solange die TTL Pegel 
zwischen FT232 und Atmega8 stimmen sollte doch alles ok sein.

von holger (Gast)


Lesenswert?

>Buspowered heißt doch nicht zwangsläufig, dass der komplette Rest der
>Schaltung ebenfalls über USB versorgt werden muss?

Stimmt, dafür gibt es ja Selfpowered. Die Beschaltung am FT sieht
dafür aber anders aus.

>RTS# und CTS# habe ich gemäß Datenblatt auf VCC (high)
>gelegt,

Da ist eins von deinen Problemen. Der FT hat keinen Saft von
USB und du gibst ihm über diese Pins parasitär Strom. Also
RTS und CTS offen lassen.

Das nächste ist der TX Pin vom Atmega. Den musst du entweder
auf Eingang schalten wenn der FT nicht an USB hängt, oder
vieleicht einen 10k Widerstand in die Leitung machen.

von M. G. (looking)


Lesenswert?

Dennis Reichenbach schrieb:
> RTS# und CTS# habe ich gemäß Datenblatt auf VCC (high)
> gelegt

RTS# ist doch ein Output des FT232, weshalb legst Du den an VCC?

von Dennis R. (reiden)


Lesenswert?

>RTS# ist doch ein Output des FT232, weshalb legst Du den an VCC?

Das steht im folgenden Thread als Lösung:

Beitrag "FT232R sendet Mist wenn COM aktiviert"

Zusammenfassung: lässt man RTS# und CTS# unbeschaltet erhält man beim 
Senden/Empfangen nur Datenmüll. Als Lösung wird vorgeschlagen beide 
Ports auf Vcc zu legen - was dann auch funktioniert.

Nachteil ist natürlich die parasitäte Versorgung des FT232R

von M. G. (looking)


Lesenswert?

Dennis Reichenbach schrieb:
>>RTS# ist doch ein Output des FT232, weshalb legst Du den an VCC?
>
> Das steht im folgenden Thread als Lösung:
>
> Beitrag "FT232R sendet Mist wenn COM aktiviert"
>
> Zusammenfassung: lässt man RTS# und CTS# unbeschaltet erhält man beim
> Senden/Empfangen nur Datenmüll. Als Lösung wird vorgeschlagen beide
> Ports auf Vcc zu legen - was dann auch funktioniert.
>
> Nachteil ist natürlich die parasitäte Versorgung des FT232R

Ich glaub, da liegt ein Missverständnis vor.
So steht das da nicht dirn, dass beide Ports auf VCC gelegt werden 
sollen.
Diese Aussage aus dem Thread wäre korrekt:
> Normalerweise wird dann RTS mit CTS und DTR mit DSR verbunden, wenn man
> das HW-Handshake vorgaukeln will.
Also Verbindung von RTS und CTS
sowie Verbindung von DTR mit DSR, aber nicht an VCC legen.
Auf keinen Fall sollte ein Ausgang des FT232R an VCC gelegt werden.
Das würde auch Dein Stromproblem erklären.

von Dennis R. (reiden)


Lesenswert?

Das man einen Ausgang des FT232R nicht auf VCC legen sollte leuchtet mir 
ja ein.

Allerdings habe ich jetzt wie vorgeschlagen RTS mit CTS sowie DTR mit 
DSR verbunden. Das Problem bleibt in diesem Fall jedoch: sobald das 
USB-Kabel angesteckt wird werden alle Daten die der Mikrocontroller 
(ATmega88) über TX sendet über RX wieder empfangen.

Schließt man das Oszilloskop an RX und TX sieht man, dass auf beiden 
Kanälen die gleichen Pegel/Signale anliegen. Die RX und TX Leitungen 
sind jedoch nirgends vertauscht - die Übertragung hat ja bisher 
funktioniert. Zudem kommen in der Terminalanwendung auch alle Zeichen 
richtig an, sie werden jedoch scheinbar direkt wieder "gesendet".

Ich habe auch schon unterschiedliche PCs mit unterschiedlichen 
Betriebsysystemen (XP/Vista/7) und verschiedene Terminalanwendungen 
(Hyperterminal, Putty, Hterm) probiert - bei allen das gleiche Ergebnis.

Den verwendeten Bascom-Code hänge ich heute abend mal an, vielleicht 
fällt ja noch wem was ein.

Verzweifelter Gruß, Dennis

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Dennis Reichenbach schrieb:
> Den verwendeten Bascom-Code hänge ich heute abend mal an, vielleicht
> fällt ja noch wem was ein.

Wenn du sicher gehen willst, dass alles ok ist, würde ich eine reine 
self-powered Lösung empfehlen:

1) Löte mal am RESET-Pin des FT232RL zwei Widerstände als 
Spannungsteiler an die +5V der USB-Schnittstelle ein, so wie es im 
Datenblatt beschrieben ist.

2) VCC und VCCIO dann an die Versorgungsspannung des ATmegas (aus der 
Batterie).

In unseren Geräten haben wir damit noch keine Probleme im Betrieb 
gehabt. Die Handshake-Leitungen sind offen und werden nicht benutzt.

von Dennis R. (reiden)


Lesenswert?

> 1) Löte mal am RESET-Pin des FT232RL zwei Widerstände als
> Spannungsteiler an die +5V der USB-Schnittstelle ein, so wie es im
> Datenblatt beschrieben ist.
>
> 2) VCC und VCCIO dann an die Versorgungsspannung des ATmegas (aus der
> Batterie).

Ok, das werde ich heute abend mal probieren, einen Chip habe ich ja 
noch. Da es sich bei den Modulen um fertige Platinen handelt ist das mit 
dem umlöten allerdings nicht so einfach.

Was eventuell noch eine Rolle spielen könnte: ich nutze den internen 
Takt des Atmega88 (Standardmäßig 8MHz, runtergeteilt auf 1MHz 
[Standard-Fuses]). Führt das eventuell zu Problemen mit dem FT232R? 
Eingestellte/gewünschte Baudrate liegt bei 2400bps.

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.