Hi,
ich hätte eine generelle Verständnisfrage zum FT245. Wenn ich den chip
einsetze, muss ich da noch einen Controller ranhängen, oder könnte ich
auch ohne Controller (nämlich mitm windowsprogramm) die I/Os von dem
chip steuern und damit relais betreiben?
danke und gruss
Peise
Wie meinen? Der FT245 hat erstmal keine I/Os, sondern ist ein
elektrischer USB <--> RS232 Wandler.
Klar kann man das mit einem seriellen Port so machen, dann benutzt du
ihn aber nicht als seriellen Port, sondern als einfachen I/O-Port mit
vier Steuerleitungen.
Danke für die Antwort...
Soll schon noch was anderes werden, als schalten, den controller brauch
ich eh, darum "Verständnisfrage"...
An dem ft245 sitzen ja 8 Datenpins die man über den Rechner bzw einer
kleinen Applikation steuern kann. Wäre es nicht möglich mit den 8
Datenleitungen Transistoren für 8 Relais zu treiben, das war eher meine
Frage... hab mich nur falsch ausgedrückt
gruss peise
noch was, was ist eigentlich der unterschied zwischen den ft232 und
ft245??? Besitzt ein Fifo, aber wofür der spass?
Kann der ft245 die aufgaben eines ft232 erfüllen?
nein keine Parallele Leitung vorhanden und würde mich gern in die
Thematik einarbeiten wollen. Aber fragen nach fragen und schlaflose
nächte :-(
9-10V??? Also setzt der 245 die USB auf echte RS232 um?
Und was macht der FT232??? Setzt der USB auf RS232-TTL um??? Ich komm
mit den beiden Chips durcheinander und schmeisse alles zusammen, in
einer APPnote habe ich gesehen, dass beide chips gleich behandelt
wurden.
Hallo,
ist keinem aufgefallen, dass der FT245 keinen UART hat? Da ist nix mit
serieller Schnittstelle! Den FT245 kann man z.B. dafür verwenden, ihn an
einen µC anzuschließen, aber nicht wie den FT232 an die serielle
Schnittstelle, sondern an einen kompletten Port + Steuerleitungen.
Mit beiden kannst I/O-Sachen wie Relais steuern (über Transistor) oder
Eingänge abfragen machen.
Der Unterschied zwischen beiden ist, dass du beim FT245R eben die
Read/Write- sowie Status-Leitungen bedienen/abfragen musst, um Daten zu
senden/empfangen und dass du "nur" acht I/O-Pins hast. Das gilt für die
normale Betriebsart. Im alternativen I/O-Modus werden die internen
Read/Write-Signale ausgegeben, somit steuert dann der FT245 externe
Peripherie wie z.B. Latches.
Der FT232 kann zwar nicht so eingestellt werden, dass er Daten an den
Pins übernimmt, wenn man ihn mit Read/Write-Signalen ansteuern will,
aber er hat den Vorteil, dass er erstens einen UART hat und zweitens
kann man mit ihm 12 I/O-Pins realisieren. Die Funktion des FT245R kann
man mit gewissen Einschränkungen in Software nachbilden.
Fazit: Der FT232R ist eindeutig der flexiblere von beiden, es sei denn,
man will mit einem µC parallel drauf zugreifen, das ist aus meiner Sicht
der einzige Punkt, der für den FT245R spricht, ansonsten ist der FT232R
zu bevorzugen.
Wenn du Fragen zu den Teilen hast, her damit :)
Ralf
Vielen Dank für die aufschlussreichen Antworten... Ich habe einige
ft245er hier möchte halt ein wenig hantieren. Ich würde gern ein paar
sensoren mit dem mega einlesen und an die usb schnittstelle des rechners
schicken um diese daten auf dem rechner zu visualisieren. Da wäre
wahrscheinlich ein ft232 besser geeignet aber ist das auch mit dem 245
möglich?
Danke und gruss
ft232 und ft245 unterstützen einen so genannten bitbang-mode, damit
lassen sich je 8 pins der chips einzeln steuern.
dazu brauchst du in deine windows-anwendung nur die entsprechenden dlls
einbinden.
die pegel sind klarerweise TTL, egal was da oben geschrieben wurde.
sieh dich einfach unter bitbang auf der FTDI seite um, da steht alles
was du brauchst :)
> Da wäre wahrscheinlich ein ft232 besser geeignet aber ist das auch mit dem> 245 möglich?
Ja, das geht. Wenn du die Pin-Anzahl als Kriterium hast, dann brauchst
du im Minimalfall 3 Pins des ATmega, wenn du unidirektional
kommunizierst -> 1x Status, 1x Schreiben, 1x Daten.
Im Maximalfall, also bidirektional, wären es 2x Status, 2x
Schreiben/Lesen, 8x Daten, also 12 Leitungen.
Ralf
vielen Dank für die Antworten...
12 Pins für bidirektional? ich zähle im appnote wenn mich nicht alles
täuscht 13 Pins? Ich möchte mir eigentlich ein universalboard mit dem
mega8, paar optokopplern, eeprom, ft245, display und 1-2 ADC-Pins
aufbauen. 12 oder 13Pins wäre die "vollbelegung des ft245, 2 optokoppler
wären 4Pins, Display (6Pins für 4bitmode) und 2 ADCKanäle wären maximal
25pins, reicht doch für einen tqfp mega8 oder??? so könnte ich uni und
bidirektionale verbindungen aufbauen??
Danke und LG
Peise
> 12 Pins für bidirektional? ich zähle im appnote wenn mich nicht alles> täuscht 13 Pins?
Okay, den PWREN hab ich nicht mit reingerechnet.
> 2 optokoppler wären 4Pins
Warum vier?
> Display (6Pins für 4bitmode)
Wenn du nur lesen machst -> richtig
> wären maximal 25pins, reicht doch für einen tqfp mega8 oder??? so könnte> ich uni und bidirektionale verbindungen aufbauen??
Ich glaub, wir reden bzgl. uni- und bidirektional aneinander vorbei. Mit
uni/bidirektional meinte ich die Kommunikation zwischen PC und AVR. Was
du an den restlichen Pins vom AVR dranhast, ist ja davon unabhängig...
Ralf
Danke Ralf,
aber jetzt hast du mich komplett verwirrt...
>Wenn du die Pin-Anzahl als Kriterium hast, dann brauchst>du im Minimalfall 3 Pins des ATmega, wenn du unidirektional>kommunizierst -> 1x Status, 1x Schreiben, 1x Daten.>Im Maximalfall, also bidirektional, wären es 2x Status, 2x>Schreiben/Lesen, 8x Daten, also 12 Leitungen.
ich dachte halt, dass ich alle benötigten pins des ft245 an den µC
führe. Dann kann ich mich doch immernoch entscheiden ob ich die 3Pins
vom mega8 benutze für uni- oder 12Pins benutze für bidirektional. Was
würdest du für ein Testboard bzw universalboard mit dem mega8 und
genannten komponenten vorschlagen? 4 Pins war falsch, ich meinte 2 pins,
danke für den hinweis... beide anoden an vcc und die kathoden auf den
µC, dann sehe ich vielleicht 4 optos vor... Verstehe dennoch deine
aussage nicht, warum wir aneinander vorbeireden... Übersehe ich was oder
verstehe ich was falsch? Weil ich meinte auch die Verbindung zwischen pc
und µC... würde gerne die möglichkeit haben später einmal sowohl von
rechner daten zu senden als auch von µC. Also bidirektional???
Was genau ist bitbang, ja ein spezieller modus, aber werde aus dem
datenblatt und den appnotes nicht wirklich schlau... Vielleicht mag
einer kurz erläutern worum es da geht
Vielen vielen dank für all eure mühe...
Peise
Aaaalso... Der Vorteil des FT232 ist der, dass er eben nur zwei Strippen
braucht (bidirektional) um mit einem µC zu kommunzieren. Der FT245
braucht in der "üblichen" Schaltung zwölf Strippen: acht für Daten, zwei
für Status und zwei für die Schreib/Leserichtung.
Das heisst, dass dir anderthalb Ports deines AVR flöten gehen, um den
FT245 voll bedienen zu können.
Unter diesem Gesichtspunkt betrachtet, ist der FT232 besser geeignet.
Deine ursprüngliche Frage war, ob du den FT245 ohne Controller betreiben
und Relais o.ä. direkt anschließen kannst. Das ist ohne weiteres
möglich. Dazu musst du dann eben BitBang benutzen. Beim FT232 geht das
gleiche auch, der Unterschied wäre 8 IOs beim FT245, und 12 IOs beim
FT232. Bei beiden musst du für BitBang-Modus mit der FT2xx.dll arbeiten.
Zu erwähnen sei noch, dass nicht alle BitBang-Modi mit dem FT245
funktionieren. Das steht ebenfalls in der ApplicationNote, siehe Anhang.
> Was würdest du für ein Testboard bzw universalboard mit dem mega8 und> genannten komponenten vorschlagen?
Hm... Also doch wieder µC :)
Wenn ich FT245 rumliegen hätte, und nur ein bisschen IO-technisch
experimentieren will, würde ich auf den µC verzichten. Ich würde einfach
vier Taster und vier LEDs an das Ding pappen und gut ist.
Wenn ich ein etwas größeres IO-Monster haben will, würde ich entweder
den FT2232D verwenden(stell dir vor, du mischst den FT232 und den FT245
und packst das ganze zweimal in einen IC) oder, um die größte
Flexibilität zu haben, ich nehme den FT232R, papp den an den UART des µC
meiner Wahl, und der µC erledigt sämtliche IO-Aufgaben. Tastatur,
Display, zig Relais, LEDs usw. sind dann kein Problem.
Der Knackpunkt ist eben der Aufwand, den du entsprechend treiben musst.
Empfehlen würde ich, da du mehrere FT245 hast, einfach mal einen zu
nehmen, die vier Taster und LEDs dran zu kleben, und ein bisschen zu
experimentieren, um ein Feeling für die Schaltung und die Ansteuerung
mittels FT2xx.dll zu bekommen.
Später kannst du ja dann einen FT232 nehmen, einen µC, und ersetzt
einfach die FT2xx.dll durch ganz normale selbstdefinierte Kommandos, die
der µC verarbeitet.
Oder du mischst eben beides, und machst es mit FT245 und µC, dann hast
du von allem etwas.
Ralf
Ralf
Ups, Anhang vergessen, aber soweit ich das sehe, hast du die
BitBang-Appnote ja eh schon.
BitBang bedeutet, dass du die normale Funktion des FT232/FT245
überschreibst, indem du eine direktere Kontrolle über seine Pins
übernimmst.
Ralf
Vielen Dank, hast mir echt weiter geholfen... ich werde mich jetzt noch
ein wenig mit der Materie beschäftigen, Adapterplatine ist auch gerade
fertig geroutet und wird die tage geätzt, dann werde ich mal loslegen.
>Der Vorteil des FT232 ist der, dass er eben nur zwei Strippen>braucht (bidirektional) um mit einem µC zu kommunzieren
so langsam geht mir ein lichtlein auf, mit 2 strippen meinst du
sicherlich Rx/Tx(gekreuzt) und nicht erwähnenswert GND, da ich kein
handshake oder sonst was brauche/erwähnt habe. Also ein stinknormaler
usb zu ttl-seriellwandler, wo ich mein Controller ranhängen kann und
bytes hin und her schicken kann. (klingt schön und einfach, sowas habe
ich gesucht)
>Wenn ich FT245 rumliegen hätte, und nur ein bisschen IO-technisch>experimentieren will, würde ich auf den µC verzichten. Ich würde einfach>vier Taster und vier LEDs an das Ding pappen und gut ist.
Das ist eine sehr gute idee. Vielleicht werde ich das heute noch in
Angriff nehmen :-) mit einer led und einem taster und fliegender
verdrahung eines tqfp32 (wenns klappt) um mich auch mit der Windows
Application auseinander zu setzen. Ich habe ursprünglich
consolenapplikationen unter MS visual studio net in c++ programmiert...
ich hoffe das ich damit klar komme eine stinknormale c++ application zu
schreiben, welche mir einfach per mouseklick einige bits setzt, togglt,
löscht. Wenn du jemand Referenzen hast, die ich bei meiner Recherche
vielleicht übersehen könnte, ich nehme alles an :-)
>Der Knackpunkt ist eben der Aufwand, den du entsprechend treiben musst.
ich liebe knackpunkte, will lernen...
>Empfehlen würde ich, da du mehrere FT245 hast, einfach mal einen zu>nehmen, die vier Taster und LEDs dran zu kleben, und ein bisschen zu>experimentieren, um ein Feeling für die Schaltung und die Ansteuerung>mittels FT2xx.dll zu bekommen.
Empfehlung angenommen, aber mit 1-2 tastern und leds, wenn das klar
geht.
>Später kannst du ja dann einen FT232 nehmen, einen µC, und ersetzt>einfach die FT2xx.dll durch ganz normale selbstdefinierte Kommandos, die>der µC verarbeitet.
Genau das ist mein eigentliches Vorhaben, einfach eine serielle
Verbindung mittels USB über ftXXX zum µC, der dann irgendwelche über USB
empfangenen Daten auswertet und je nach Daten schalt und steuervorgänge
durchführt... Aber da fehlt mir im moment die vorstellungskraft, wie ich
windows bzw meinem compiler beibringe, dass über USB daten gesendet
werden sollen.
Ohne mich jetzt nach quelltexten umgeschaut zu haben gibt es für das
senden und empfangen fertige bibliotheken oder muss man das alles selbst
implementieren??? Wenn bibliotheken vorhanden sind, sollte man die doch
auch in eine Consolenanwendung einbinden können oder?
>BitBang bedeutet, dass du die normale Funktion des FT232/FT245>überschreibst, indem du eine direktere Kontrolle über seine Pins>übernimmst.
Vielen Dank nochmal für alles
Flo
> so langsam geht mir ein lichtlein auf, mit 2 strippen meinst du> sicherlich Rx/Tx(gekreuzt) und nicht erwähnenswert GND, da ich kein> handshake oder sonst was brauche/erwähnt habe. Also ein stinknormaler> usb zu ttl-seriellwandler, wo ich mein Controller ranhängen kann und> bytes hin und her schicken kann. (klingt schön und einfach, sowas habe> ich gesucht)
Genau, so richtig schön einfach :)
> Vielleicht werde ich das heute noch in Angriff nehmen :-) mit einer led> und einem taster und fliegender verdrahung eines tqfp32 (wenns klappt)
Na dann, viel Erfolg. Ist zwar kein DIL-Gehäuse, bei dem zwischen den
Anschlüssen Flugzeuge landen können, aber bei einer ruhigen Hand und
etwas Geduld durchaus machbar. Hier haben die R-Typen den Vorteil, dass
sie kaum externe Bauteile brauchen.
> ich hoffe das ich damit klar komme eine stinknormale c++ application zu> schreiben, welche mir einfach per mouseklick einige bits setzt, togglt,> löscht. Wenn du jemand Referenzen hast, die ich bei meiner Recherche> vielleicht übersehen könnte, ich nehme alles an :-)
Die FT2xx.dll ist in C++ geschrieben, von daher sollte es kein Problem
sein, wenn du bereits weisst, wie man mit DLLs in (V)C++ arbeitet.
Referenzen gibts doch auf der FTDI-Seite jede Menge für C++,
Demosoftware usw. Und die ApplicationNote zeigt ja, wie man die
einzelnen Funktionen verwendet. Über die Qualität der Dokumentation sag
ich jetzt mal nix, da wirst du selbst dahinter kommen, wenn du mal
versuchst, die SPI/I2C/JTAG-Funktionen des FT2232D zu verwenden :)
> ich liebe knackpunkte, will lernen...
Lobenswert :)
Wenn du schon sowas sagst, und dann entsprechend fit auf dem Ding bist,
dann machst du es wie ich, und machst dir mit so einem Teil einen
ISP-Programmer. Dann hast du n Knackpunkt.
> Empfehlung angenommen, aber mit 1-2 tastern und leds, wenn das klar geht.
Von meiner Seite aus geht das klar grins Schließlich musst du ja
selbst wissen, was du brauchst/willst.
> Genau das ist mein eigentliches Vorhaben, einfach eine serielle> Verbindung mittels USB über ftXXX zum µC, der dann irgendwelche über USB> empfangenen Daten auswertet und je nach Daten schalt und steuervorgänge> durchführt... Aber da fehlt mir im moment die vorstellungskraft, wie ich> windows bzw meinem compiler beibringe, dass über USB daten gesendet> werden sollen.
Das ist ja das schöne an den Teilen.
Beispiel: Bei Verwendung des FT232 legt der PC-Treiber einen virtuellen
COM-Port an. D.h. du musst in deiner Applikation einfach den
entsprechenden COM-Port suchen und kannst mit dem Ding reden, im
einfachsten Fall z.B. über HyperTerminal oder ein anderes
Terminal-Programm - was aus der Kommunikation gemacht wird, hängt dann
vom angeschlossenen µC ab.
Wenn du ein bisschen fortgeschrittener als ein absoluter Anfänger bist,
dann stellst du die Kommunikation nicht über den virtuellen COM-Port her
(da kannst du nämlich kein BitBang machen), sondern eben direkt über die
FT2xx.dll.
Die DLL bringt dann recht einfache Funktionen mit wie z.B. das
Ermitteln, welche und wieviele FT2xx-Teile da sind, das Öffnen der
entsprechenden Devices usw. Da lässt sich dann auch BitBang einstellen.
Und du könntest sogar mehrere solcher IO-Baugruppen anschließen und
steuern.
> Ohne mich jetzt nach quelltexten umgeschaut zu haben gibt es für das> senden und empfangen fertige bibliotheken oder muss man das alles selbst> implementieren??? Wenn bibliotheken vorhanden sind, sollte man die doch> auch in eine Consolenanwendung einbinden können oder?
Jepp, wie gesagt, Demos gibt für verschiedene Sprachen auf der
FTDI-Seite.
Und Konsole oder GUI-Anwendung dürfte meines Wissens nach keinen
Unterschied machen.
Wobei eine GUI mit grünen/roten Ämpelchen für den IO-Zustand ja doch
schon was für sich hat :)
Falls du fragen zur Programmierung der Teile hast, werde ich n.M.
versuchen, dich zu supporten. Hab zwar keine Hardware da, um on-the-fly
zu testen, aber dürfte gehen.
Ralf
Martin wrote:
> Vergiss alles was Olli schreibt!
Normalerweise erwidere ich nichts auf solch daemliche Bemerkungen.
Trotzdem haette ich gerne gewusst, was Du auszusetzen hast.
Olli
Hi Olli,
ich vermute mal, er ist der Meinung, da du falsche Angaben gemacht hast,
hättest du es stattdessen bleiben lassen sollen, zu antworten.
Das deckt sich nicht mit meiner Ansicht, dass man ruhig mal
(konstruktive) Falschaussagen treffen darf. Werden die nämlich von
anderen widerlegt, prägen sie sich die Korrekturen viel besser ein :)
> Wie meinen? Der FT245 hat erstmal keine I/Os, sondern ist ein> elektrischer USB <--> RS232 Wandler.
Doch er hat IOs - sowohl in der normalen Betriebsart wie auch per
BitBang-Modus. Und er wandelt nicht nach RS232,das macht der FT232,
aber nicht RS232-Pegel, sondern TTL-Pegel. Daher müsste es USB <>
seriell TTL Wandler heissen. Der FT245 ist in der normalen Betriebsart
ein USB <> 8-Bit-Parallel Wandler, genaugenommen ein
FIFO-Schieberegister.
> Klar kann man das mit einem seriellen Port so machen, dann benutzt du> ihn aber nicht als seriellen Port, sondern als einfachen I/O-Port mit> vier Steuerleitungen.
Naja, das hat man früher so gemacht, als man wirklich noch mehr oder
weniger direkten Zugriff auf die UARTs ala 16C55x nehmen konnte. Geht
heut schon fast nicht mehr (zumindest unter Windows), weil zwar Klassen
dafür da sind (z.B. SerialPort in .NET), aber es ist einfach zeitlich
nicht mehr so genau steuerbar wie früher. Leider auch mit realen
COM-Ports.
Ich würde auf solche krummen Sachen verzichten. Wenn ich einen COM-Port
brauche, betreib ich einen FT232 eben als solchen, ansonsten bang ich
die Bits :)
Ralf
Ralf wrote:
> (konstruktive) Falschaussagen treffen darf. Werden die nämlich von> anderen widerlegt, prägen sie sich die Korrekturen viel besser ein :)
Das stimmt, dann ich auch schneller gemerkt, dass ich den FT245 mit dem
FT232 verwechselt habe. Naja, war schon spaet :-)
Olli
> Vielen Dank für die Mühe und dein Angebot... Werd sicherlich drauf> zurück kommen :-D
Wie gesagt, ich helfe gerne, sofern mir die Zeit reicht und ich grad die
Möglichkeit dazu habe. Bist du hier im Forum registriert?
Ralf
bin leider nicht registriert, geht ja auch ohne, aber bin seit gut einem
3/4 jahr täglich hier... Vielleicht hast du ja codeschnipsel die ich mal
auseinander flücken kann, um zu sehen, wie das mit den dlls genau
funzt... du meintest ja dass ich bei direktem ansprechen des virtuellen
coms kein bitbang benutzen kann, aber das brauche ich ja um den 245 mit
taster und leds zu betreiben oder sehe ich da was falsch?
> Vielleicht hast du ja codeschnipsel die ich mal auseinander flücken kann, > um
zu sehen, wie das mit den dlls genau funzt...
Wie gesagt, Codeschnipsel jibbet auf der FTDI-Seite...
> du meintest ja dass ich bei direktem ansprechen des virtuellen coms kein> bitbang benutzen kann...
Ich meine, mich zu erinnern, dass das nicht geht, weil du eben erstmal
spezielle Kommandos an den Chip setzen musst...
Ralf
> Normalerweise erwidere ich nichts auf solch daemliche Bemerkungen.> Trotzdem haette ich gerne gewusst, was Du auszusetzen hast.
Die Bemerkung war weder dämlich noch böse gemeint. Wie du aber
inzwischen selbst bemerkt hattest, hattest du den falschen Chip im Kopf.
Deswegen waren deine Aussagen von vorne bis hinten falsch. Und selbst
der FT232 gibt keine 9-10V Volt raus.