Forum: Mikrocontroller und Digitale Elektronik FTDI direkt an ATMEGA


von NobbH (Gast)


Lesenswert?

Hallo,

habe einen ATMEGA88, den ich via RX/TX über einen 
RS232-Schnittstellenbaustein mit nachgeschaltetem FTDI FT232RL
an die USB-Schnittstelle meines PCs angeschlossen habe um Daten zu 
übermitteln. Dies funktioniert so auch einwandfrei.

Möchte aber, um Bauelemente zu sparen (Platzbedarf und Leistungverlust),
den ATMEGA88 direkt mit dem FT232RL verbinden. Wenn ich dies mit der
oben genannten Hardware ohne RS-232-Wandler mache, erhalte ich auf dem 
PC allerdings nur Nonsens. Das hat mit meinen vorherigen Daten (mit 
RS232-Baustein) nichts gemein. Wo liegt die Ursache?

PS: Verwende 19200 Baud asl Geschwindigkeit, Quarz am ATMEL hat 16MHz.

Gruss
NobbyH

von Ralf (Gast)


Lesenswert?

> habe einen ATMEGA88, den ich via RX/TX über einen
> RS232-Schnittstellenbaustein mit nachgeschaltetem FTDI FT232RL
> an die USB-Schnittstelle meines PCs angeschlossen habe um Daten zu
> übermitteln. Dies funktioniert so auch einwandfrei.
Mit der o.g. Beschreibung MUSS es rauchen. Hast du ZWEI RS232-Treiber 
dran?

Normalerweise wird bei einer richtigen Direktverbindung Tx vom FTDI 
mit RX vom AVR verbunden und umgekehrt. GND etc. natürlich auch.

Was heisst es kommt "nonsens" an? Etwas genauer bitte, Schaltplan, 
"Nonsens", etc.

Ralf

von NobbH (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

danke für Feedback. Warum soll es rauchen?

Aber schon richtig. Bilder sagen mehr als tausend Worte.
Ich habe "Schaltung.gif", die ich mit "Adapter.gif" an USB betreibe und 
den vom ATMEL gelieferten Datenstring in meinem Terminalprogramm
einwandfrei empfange.
Möchte jedoch den MAX232 und die SUB-D Buchse entfallen lassen und 
direkt auf den FTDI Chip in "Adapter.GIF" gehen. (Siehe Schaltung 
"final.gif)
Die 0-Ohm Widerstände dienen nur als Leitungsüberquerungen, damit ich 
nur eine einseitige Platine ohne Drahtbrücken benötige.

Dann erhalte ich nicht den Datenstring des ATMEL (gleiche ATMEL Hardware 
wie oben) sondern nur Zeichen, die mit dem gesendeten String nichts 
gemein haben.

So, ich denke jetzt ist meine Frage klarer formuliert. Das muss doch so 
gehen wie ich es geplant habe. Eventuell Schaltungsfehler?

NobbyH

von Justus S. (jussa)


Lesenswert?

NobbH schrieb:
> Eventuell Schaltungsfehler?

wie schon von Ralf geschrieben:

> Normalerweise wird bei einer richtigen Direktverbindung Tx vom FTDI
> mit RX vom AVR verbunden und umgekehrt. GND etc. natürlich auch.

von NobbH (Gast)


Lesenswert?

So, habe die Schaltung nun wie vorgeschlagen verbunden.

ATMEL RX auf TX FT232RL und ATMEL TX auf RX FT232RL

Gesendet wird vom ATMEL der String:
02 71 11 91 11 01 41 81 81 41 01 51 01 91 A1 81 F1 01 03

Erhalte aber bei Direktanschluss (ohne RS 232-Chip) en Datenstring
7F 47 FD BA BA F4 FA F4 E8 E8 D1 BA FA BA E9 E9 E8 D2 F2 00

Nicht das, was ich erwarte

NobbyH

von Falk B. (falk)


Lesenswert?

@  NobbH (Gast)
ertiert.
>      final.gif

>danke für Feedback. Warum soll es rauchen?

Weil der MAX232 +/-12V ausgibt, der FTDI aber gern mit 3,3V/0V arbeitet. 
Du hast mehr Glück als Verstand, denn der MAX bringt nicht viel Strom 
und somit hast du den nicht gekillt.

>Aber schon richtig. Bilder sagen mehr als tausend Worte.

In der Tat.

>Möchte jedoch den MAX232 und die SUB-D Buchse entfallen lassen und
>direkt auf den FTDI Chip in "Adapter.GIF" gehen. (Siehe Schaltung
>"final.gif)

RX und TX sind FALSCH. Die müssen gekreuzt werden!

>Dann erhalte ich nicht den Datenstring des ATMEL (gleiche ATMEL Hardware
>wie oben) sondern nur Zeichen, die mit dem gesendeten String nichts
>gemein haben.

Wenn die Schaltung mit MAX232 vorher WIKLICH lief, dann hast du 
wahrscheinlich den FTDI per MPROG umkonfiguriert und RX und TX intern 
invertiert. Das musst du natürlich rückgängig machen.

MFG
Falk

von NobbyH (Gast)


Lesenswert?

@ Falk,

> Weil der MAX232 +/-12V ausgibt, der FTDI aber gern mit 3,3V/0V arbeitet.
> Du hast mehr Glück als Verstand, denn der MAX bringt nicht viel Strom
> und somit hast du den nicht gekillt.

Richtig, hab ich mir zum Testen nicht wirklich Gedanken drüber gemacht. 
Hat auch bei allen angeschlossenen RS-232 Schnittstellen funktioniert.
Korrekt wäre es natürlich die Pegel anzupassen.

> RX und TX sind FALSCH. Die müssen gekreuzt werden!

Hatte ich in meiner Verkabelung schon angepasst, allerdings nicht im 
Schaltbild.

> Wenn die Schaltung mit MAX232 vorher WIKLICH lief, dann hast du
> wahrscheinlich den FTDI per MPROG umkonfiguriert und RX und TX intern
> invertiert. Das musst du natürlich rückgängig machen.

Richtig, die Schaltung läuft mit MAX232 und ja, ich habe den FTDI 
umprogrammiert und RX und TX invertiert.
Auch das hatte ich eben schon rückgängig gemacht, hatte aber immer noch 
einen falschen Datenstring.

Was ich allerdings nicht wusste, ist die Tatsache, dass die 
Umprogrammierung anscheinend erst nach einem Reset (Power OFF und Power 
ON) wirksam wird.
Es funktioniert nun. Recht herzlichen Dank an alle für die Hilfe.

NobbyH

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.