Forum: Mikrocontroller und Digitale Elektronik FT232R USB am AVR


von Mike (Gast)


Lesenswert?

Hi,
ich muss über die USB-Schnittstelle eines PC (XP-Anwendung) mit einem
AVR komunizieren. Habe mir den FT232R ausgesucht.

Wer hat so ein Projekt schonmal umgesetzt und kann Starthilfe geben?
Was muss ich auf der AVR-Seite beachten oder schicke ich die Daten
"einfach" über die serielle Schnittstelle, nur das anstatt eines
MAX232 ein FT232R angelötet ist?

Danke für Hilfe

Mike

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

.
   "oder schicke ich die Daten "einfach" über
   die serielle Schnittstelle ..."

Genau so ist es. Auch auf der PC-Seite wird nach wie vor mit einer
seriellen Schnittstelle (über den FTDI-VCP-Treiber) kommuniziert.
Sofern kein zu abstruses Timing verwendet wird und auch die
Baudratenerzeugung im AVR präzise genug ist ("Baudratenquarz"?), geht
es einfach so.

von Alex (Gast)


Lesenswert?

Zur letzten Frage: Ja.

Einfach das Datenblatt vom FT232RL beachten, dort sind x
funktionierende Schaltungsvarianten abgebildet. Funktioniert gewöhnlich
auf Anhieb und ist damit zu recht die einfachste Möglichkeit, USB an
einen MC zu bekommen.

von Mike (Gast)


Lesenswert?

Das Datenblatt des FT232R ist 29 Seiten dünn. Der FT232R bietet lt.
Datenblatt konfigurierbare Pins, man kann Takt-Frequenzen ausgeben
lassen und das interne EEPROM mit Daten beschreiben...

...wie wird der FT232R 'parametriert'? Im Datenblatt gibt es keine
Register etc....

Mike

von Hanshans (Gast)


Lesenswert?

Das Thema interessiert mich ebenfalls. Das mit der Einstellung, z.B. der
CBUS-Pins ist mir auch schleierhaft.

Wie wird der FT232R über Windows angesprochen? Es gibt sogenannte VCP
Treiber und den D2xxx-Treiber. Wozu benötigt man welchen??

von Mike (Gast)


Lesenswert?

Ich bin überfragt, was den unterschied der Treiber angeht. Ist aber mit
Sicherheit wichtig welchen man nimmt! Bestimmt gibt es hier Tüftler die
das schonmal gemacht haben und helfen können. Irgendwie muss man ja das
EEPROM verändern können. Habe gelesen es gibt dafür ein Tool von FTDI.
Habe ich aber nicht im Web gefunden.

Ich arbeite mit VisualBasic DotNet 2005 und Bascom.

von Andi Weber (Gast)


Lesenswert?

Guten Abend,
ich habe aus dem FTDI Datasheet 1.04 die Schaltung unter Kapitel 8.4
USB to MCU UART Interface aufgebaut. Leider wird der nicht vom PC
erkannt. Habe auch keine Möglichkeit gefunden CBUS0 auf 12Mhz µC-Clock
zu stellen? Hat jemand VB.net Code oder sonstige positive Erfahrungen
gemacht?

Viele Grütze!!

Andreas

von Uwegw (Gast)


Lesenswert?

Das Tool nennt sich MProg. Man findet es bei ftdichip.com unter
Ressources->Utilities.

von Mike (Gast)


Lesenswert?

@Rufus
Danke für die Info. Ich will nur ein paar Bytes hin und her schubsen.
Kein High-Speed oder sonstiger Schnick-schnack.

Du sagst der VCP-Treiber muss verwendet werden. Hast du eine Ahnung wie
der FT232R "parametriert" wird (CBUS-Funktionen enstellen, EEPROM
lesen/schreiben, Seriennummer auslesen etc.)?

Mike

von Bjoern B. (tishima)


Lesenswert?

Moin!

Die Konfiguration des FT232R erfolgt ueber ein Tool Mprog von FTDI.
Dafuer muss der D2XX  Treiber installiert werden.
So dinge wie VID/PID Stromverbrauch, CBUS Pin Sonderfunktionen
Seriennummer etc.
Wird nur ein FT232 pro PC betrieben kann er sogar unveraendert mit den
Com Port Treibern genutzt werden.
Vorsicht mit herumspielen der VID/PID werden diese veraendert muss die
INI Datei der Treiber von FTDI angepasst werden.
Will man den FTDI Chip direkt ansprechen Bit Bang Mode etc. geschieht
dies in Verbindung mit dem D2xx Treiber und der zugehörigen DLL.
Programmbeispiele sind eigentlich fuer die gaengigen
Programmiersprachen auf der FTDI Homepage erhaeltlich, sowie alle
weiteren nötigen Informationen.

Nicht nur das Datenblatt lesen !!

gruß,
Bjoern

von Bernd (Gast)


Lesenswert?

Muss Björn beipflichten,
war ebend auf der FDTI-Seite. Sourcen für div. Sprachen, muss man sich
nur durchwühlen. Trotzdem gibt es immer wieder Fragen.

Der Code ist allerdings nicht immer übersichtlich.

Bernd

von Mike (Gast)


Lesenswert?

@Björn,
was meinst du mit '...den FTDI Chip direkt ansprechen Bit Bang Mode
etc.'?

von Andi Weber (Gast)


Lesenswert?

Also, habe ich das richtig verstanden?

- Schaltung wie im Datasheet aufbauen
- FTDI-Chip über MPROG 'einrichten'
- AVR sendet 100% identisch an FT232R anstatt an MAX232
- PC holt Daten über die mittels FTDI Treibers ab

Richtig?




Welchen der beiden Treiber benötigt man für was?

von Hanshans (Gast)


Lesenswert?

Es gibt den sogenannten VCP Treiber und den D2xxx-Treiber. Wozu benötigt
man welchen??

Könnte mir denken, dass der Virtual Com Port - Treiber einen (wie der
Name sagt) virtuellen COM-Port erstellt. Der PC hat dann vielleicht
einen weiteren COM-Port Nr.12 oder so. Der kann dann über die
PC-Software angesprochen werden.

Der D2xxx-Treiber spricht vielleicht den FT232R direkt an (wo auch
immer der unterschied liegt?). Dann wird noch eine DLL erwähnt. Was
macht das gute Stück in den Puzzle?

Scheint doch nicht ganz so einfach zu sein wenn mehrere Leute das
Problem haben (oder wir sind alles 'Unwissende'  ;o))

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wo ist jetzt das Problem? Die Vermutungen von HansHans sind korrekt:

Der VCP-Treiber richtet eine zusätzliche serielle Schnittstelle ein,
die von jedem Windows-Programm exakt so wie eine normale serielle
Schnittstelle angesprochen werden kann.

Der D2xxx-Treiber ermöglicht über die zugehörige DLL Programmen direkt
und mit erweiterter Funktionalität ("bitbanging" etc.) mit dem
Baustein zu kommunizieren.

von Mario Schrenk (Gast)


Lesenswert?

Der aktuelle D2xx-Treiber (http://www.ftdichip.com/Drivers/D2XX.htm)ist
ein kombinierter Treiber, der auch den VCP-Part enthält. Damit läßt
sich der FT232R sowohl als virtuelle serielle Schnittstelle ansprechen
wie auch per MProg programmieren.

von Oli K. (waldmeister)


Lesenswert?

Hallo Zusammen!
ich habe in diesem Zusammenhang ein anderes Problem. und zwar habe ich
von meinem ft232 (TXD an T1in und RXD an R1out) an den Max232
angeschlossen. Nun möchte ich einen Hardwarehandshake machen, sprich
muss ich RTS und CTS von der ft232 beide an meinen µC legen oder reicht
nur einer aus? Muss ich beide auch and den Max232 setzen, oder ist das
nur optional? ich habe zwar das www durchforstet, komme aber auf keinen
grünen Zweig! Was meiner Schaltung am nächsten kommen würde, ist auch
unter diesem Link: http://www.holger-klabunde.de/usb/usb.htm
Wäre super, wenn ich da Antworten bekommen würde!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn Du einen µC mit einem FT232 verbindest, hat ein MAX232 nichts in
der Schaltung verloren.

Wenn Du Hardwarehandshake implementieren willst, empfiehlt es sich,
auch beide Handshakeleitungen zu verwenden, sonst funktioniert der
Handshake nur ein einer Richtung (PC kann µC Empfangsbereitschaft
mitteilen oder umgekehrt) - sinnvoll ist natürlich ein bidirektionaler
Handshake.

von Oli K. (waldmeister)


Angehängte Dateien:

Lesenswert?

@rufus
oki, ich möchte gern zwischen rs232 und usb switchen können. Wäre das
nicht möglich? Mein Problem ist, dass es dieses Projekt sowohl rs232
als auch usb vorsieht, wobei die serielle Schnittstelle schon auf der
Platine war. Mir schwebt auch eine Jumperlösung im Kopf herum, die über
den µC geht. Vllt. bin ich auch noch ein wenig irritiert, da ich mich
evtl. zu sehr an obigen Link festhalte.
habe mal noch als Anhang die rs sowie usb beschaltung mit drinnen!

von Oli K. (waldmeister)


Lesenswert?

habe gerade noch gemerkt, dass bei dieser Version cts nicht beschaltet
ist. rts geht an meinen µc und cts hängt quasi noch in der luft. in der
anderen version geht rts und cts noch an meinen rs232 sowie rts an
meinen µc, um den handshake zu machen! aber wie rufus oben schon
geschrieben hat, is das wohl bullshit! was für vorschläge habt ihr, um
beide (rs232, sowie usb) unter einen Hut zu bekommen?

von michael (Gast)


Lesenswert?

@Mario Schrenk: stimmt. am anfang hat es mich auch noch sehr iritiert
weil es zwei seperate seiten für VCP und D2xx treiber auf der ftdi
homepage gibt, welche aber auf die selbe datei gelinkt sind. es reicht
also die installation des kombi treibers und dann kanns losgehen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Vier dreipolige Jumper, jeweils alle gleichzeitig auf 1-2 bzw- 2-3
gesteckt. An die Mittelreihe der Jumper die vier Leitungen RXD, TXD,
RTS und CTS des µC, an die eine Außenreihe die korrespondierenden
Signale des FT232, an die andere Außenreihe die korrespondierenden
Signale (mit TTL-Pegel) des MAX232.

von Uwegw (Gast)


Lesenswert?

Statt nem MAX232 den MAX3222 verwenden. Der kann über einen Steuerpin
seine IOs hochophmig schalten, sodass sie die Kommunikation zwischen
FT232 und AVR nicht stören. Das Umschalten könnte man z.B. über die
Spannung vom USB lösen: wenn dort Spannung anliegt, ist USB angesagt,
ansonsten RS232.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das klingt sehr gut.
Schön, daß mal wer über den Tellerrand des uralten MAX232 hinwegblickt
...

von Oli K. (waldmeister)


Lesenswert?

danke für die tipps. ich werde wohl die lösung mit den jumpern wählen,
da auf der paltine schon ein max232 ist. soweit ich das sehe, sollte
das auch mit dem hardhandshke klappen, oder habe ich da ein detail
übersehen?!

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.