Forum: Mikrocontroller und Digitale Elektronik FT232RL versorgt Atmega8 über RX,TX Spannung


von Sebastian W. (code)


Lesenswert?

Hallo Zusammen,

ich habe folgendes Problem.
Auf einem Atmega8 befindet sich ein Bootloader.
Mit dem FTDI FT232RL möchte ich bei Bedarf die Firmware flashen.
Schließe ich den FT232RL (RX,TX,GND) an den stromlosen Atmega8 an, wird
der Atmega über die RX,TX Pins mit ca. 2V versorgt.
Dadurch antwortet der Bootloader mit wirrem ascicode und will flashen.
Somit kann es vorkommen, dass meine Flashprogramm zerschossen wird.
Ich möchte mit dem Bootloader bzw. USB/RS232 erst kommunizieren, wenn 
der Atmega eingeschaltet wird. Kennt jemand das Problem und eine Lösung?

mfg
code

von Oliver K. (olli_k)


Lesenswert?

hi,
probiers mal mit zwei Dioden in der Rx und der Tx Leitung!

von Sebastian W. (code)


Lesenswert?

Klappt nicht. Der Controller bekommt trotzdem noch Versorgung über die 
FT232RL TX-RX Leitung. RX und TX sind beide beim FT232RL auf High

von Sack (Gast)


Lesenswert?

Brown-out level auf 4V setzen. Eine Diode in der TX-Leitung(FT232) 
sollte auch gehen, der RX Pin ist ein Eingang, der versorgt bestimmt 
nicht den M8.

von Sebastian W. (code)


Lesenswert?

Der Brown-out Level hat schonmal eine Verbesserung gebracht.
Jetzt kommt beim Einstecken kein wirrer ascicode. ABER
der Controller antwortet immer noch und leider richtig.

Mein Bootloader Programm am Pc sendet 123 an den Controller.
Antwortet der Controller auch mit 123 zurück, beginnt das Flashen.
Auch mit einer Diode an TX(FT232) antwortet der Controller trotzdem.

Ich möchte gerne den FT232 an die stromlose Schaltung anschließen, dann 
am Pc auf senden drücken und dann die Schaltung einschalten. So 
funktioniert der Flash. Aber das Pc Programm sendet an die stromlose 
Schaltung bereits 123 bevor ich einschalten kann, bekommt eine Antwort 
und der Flash beginnt. Im Controller entsteht dann ein totales 
durcheinander im Flash.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der FT232 hat einen Pin namens VCCIO, womit hast Du den verbunden?

von H.Joachim S. (crazyhorse)


Lesenswert?

Diode bringt nichts.
Setz mal einen Widerstand (1k) in die Tx-Leitung (ist sowieso besser, 
als mit nem "nackten" Eingang auf nen Steckkontakt zu gehen). Und falls 
das noch nicht reicht, ne LED mit 470R parallel zu Vcc/Gnd.

von Sebastian W. (code)


Lesenswert?

VCCIO am FT232 ist mit VCC am FT232 verbunden.
Ist also mit der USB Spannung verbunden. Die USB Spannung
wird aber nicht mit meiner Atmega Schaltung verbunden.

von (prx) A. K. (prx)


Lesenswert?

Diode bringt schon etwas, wenn richtig herum und dahinter ein Pullup-R 
an die Versorgung vom Zielcontroller. Also so, dass der TX Ausgang vom 
FTDI nur runter ziehen kann.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sebastian Weidmann schrieb:
> VCCIO am FT232 ist mit VCC am FT232 verbunden.

Dann ändere das und verbinde das mit VCC Deines AVRs.

von Gregor B. (Gast)


Lesenswert?

So eingebaut?
                                         VCC
                                          +
                                          |
                                          |
                                         .-.
                                         | |
           FT232                         | |       AVR
            __                           '-'        __
         -o|  |o-     TX              RX  +      -o|  |o-
         -o|  |o-+----------+-|<-+--------+------+o|  |o-
         -o|  |o-                                -o|  |o-
         -o|__|o-                                -o|__|o-
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)


Fast zu spät...

von (prx) A. K. (prx)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Dann ändere das und verbinde das mit VCC Deines AVRs.

FTDI sagt, dass VCCIO aus der gleichen Quelle wie VCC stammen sollte. 
Also dann der gesamte FTDI vom Zielcontroller versorgt werden muss, 
nicht nur die IO.

Aber FTDI ist lernfähig. Bei den FT2232 Varianten waren sie klüger.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

A. K. schrieb:
> FTDI sagt, dass VCCIO aus der gleichen Quelle wie VCC stammen sollte.

Naja, das ist umständlich formuliert, letztlich wird es darauf 
hinauslaufen, daß man zwingend sicherstellen muss, daß an VCCIO nie ein 
höheres Potential als an VCC anliegt. Das dürfte lösbar sein.

von (prx) A. K. (prx)


Lesenswert?

Machbar. Aber Diode ist einfacher. Wers perfekt haben will, der nimmt 
statt dessen einen Transistor und programmiert im FTDI den TX Ausgang 
invers.

von Sebastian W. (code)


Lesenswert?

Hmm das klingt logisch.
Dummerweise ist die Zielschaltung und der FT232 Adapter bereits schön 
getrennt. Da muss ich mir jetzt was einfallen lassen.

Vielen Dank für eure schnelle Hilfe!

von FET (Gast)


Lesenswert?

Ich habe ein ähnliches Problem, ich will die Eingänge des µC/FT232 
schützen, da es vorkommen kann, dass nur eines der beiden Bauteile 
versorgt wird. Kann ich da einfache einen 10k Widerstand in die RX und 
TX Leitungen einbauen?

von (prx) A. K. (prx)


Lesenswert?

Oder das gleiche Spiel mit der Diode in die andere Rechtung.

von FET (Gast)


Lesenswert?

Gibt es bei den beiden Möglichkeiten einen Unterschied bei der max. 
Baudrate, wenn ich bei beiden den Widerstand 10k wähle?
Ich würde die Möglichkeit mit nur 2 Widerständen bevorzugen, da ich die 
leichter im meinem schon bestehendes Layout ergänzen kann. Hat diese 
Variante irgendwelche Nachteile?

von Sebastian W. (code)


Lesenswert?

Hab soeben noch was herausgefunden!
Der BOD Level hat das Problem eigentlich gelöst.

ABER der FT232RL hat ein ECHO, wenn der RX,TX Pin auf GND liegen.
Somit antwortet in ausgeschaltetem Zustand garnicht der Controller, 
sondern der FT232RL gibt sich selber das gesendete zurück!

Mein Bootloader Programm sendet 123 und erwartet 123 zurück.
Der FTDI gibt das echo aus und die Bootloader Software fängt das senden 
an.
Dummerweise hab ich den Source für das Bootloader Pc Programm nicht. 
Sonst könnte ich die Antwort ändern.

Ich müsste somit jetzt das echo vom ft232rl ausschalten.

von Sebastian W. (code)


Lesenswert?

Problem ist gelöst!
Hab den Sourcecode vom Bootloader PC Programm.
Erwarte nun vom Controller eine andere Antwort als die gesendete.

Jetzt klappt auch das Einstecken im ausgeschaltenem Zustand.
Sobald ich einschalte meldet der Controller die richtige Antwort und der 
Flash läuft ohne Probleme.

Beim Bootloader handelt es sich um den MCS Bascom Bootloader.
Pc seitig klappt jetzt mit diesem Programm:
http://evertdekker.com/Joomla/index.php?option=com_content&task=view&id=75&Itemid=84

von FET (Gast)


Lesenswert?

FET schrieb:
> Gibt es bei den beiden Möglichkeiten einen Unterschied bei der max.
> Baudrate, wenn ich bei beiden den Widerstand 10k wähle?
> Ich würde die Möglichkeit mit nur 2 Widerständen bevorzugen, da ich die
> leichter im meinem schon bestehendes Layout ergänzen kann. Hat diese
> Variante irgendwelche Nachteile?

von Harpax (Gast)


Lesenswert?

Hallo,


ich habe leider erst jetzt den Beitrag gelesen - sorry. :-)

Der eigentlich einzig richtige Weg ist eine vollkommene galvanische 
Trennung. Bei Baud-Raten bis 9k6 noch mit Optokoppler möglich, darüber 
mittels ADUM1201 (2 Kanäle; 1x Eingang; 1x Ausgang -> Rx/Tx).

http://such002.reichelt.de/?SID=11Tz6eO38AAAIAAGuRne81521b984e2eb24055f51de65d621743c;ACTION=446


Gruss...Harpax

von H.Joachim S. (crazyhorse)


Lesenswert?

Harpax schrieb:
> Der eigentlich einzig richtige Weg

Das ist eine sehr überzeugende Einstellung :-)

von René B. (reneb)


Lesenswert?

Wenn du Widerstände an Rx/Tx (eigentlich ja nur an FTDI-Tx) anbringst 
und der µC erst einmal in einer Schaltung mit einem zusätzlichen 
Verbraucher sitzt (z.B. Linearregler, LEDs was auch immer), sollte sich 
das erübrigen.
So lange du den µC aber "nackt" betreibst und nur die 
Abblockkondensatoren da sind, wirst du mit der TX-Leitung über die 
Schutzdioden des AVR die Kondensatoren so weit aufladen, dass du über 
das BOD-Level kommst und der Controller losläuft.
Wenn kein Verbraucher drinsitzt, dann bau halt irgendwas halbwegs 
sinnvolles ein wie eine Status-LED oder so. Wenn dir der Stromverbrauch 
zu hoch ist, dann schalte den Verbraucher nach dem Anlauf des µC weg 
(z.B. etwas über einen n-FET+R mit PullUp am Gate und per µC-Port ziehst 
du dann gegen Masse).

Sonst geht tatsächlich auch eine galvanische Trennung. Mit dem 6n137 
kommst du auch weit über die 9,6k hinweg.
Sowohl der AVR kann die 6,3mA für die IR-LED liefern wie auch der FT232. 
Ab Werk sind die Ausgänge des FT232 für 4mA konfiguriert, können aber 
auch auf "high-current-IO" mit Hilfe des FT_Prog von der Homepage für 
12mA konfiguriert werden.

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.