Hallo zusammen, ich möchte in einem Projekt erstmals einen FT232RL verwenden um darüber Daten zwischen PC und µC über einen virt. Comport auszutauschen. Muss ich hierbei wie bei einer echten seriellen Verbindung über MAX232 ebenfalls auf einen zur Baudrate passenden Quarz achten, oder ist das bei Verwendung des FTDI-Controllers unkritisch? Da bei dem Projekt das sonstige Timing unwichtig ist, würde ich gerne auf einen externen Quarz ganz verzichten. Wird ohne Quarz die Kommunikation über den virt. Com-Port problemlos funktionieren? Mit was für Einschränkungen muss ich rechnen? Danke und Gruß Dominique Görsch
>Da bei dem Projekt das sonstige Timing unwichtig ist, würde ich gerne >auf einen externen Quarz ganz verzichten. Wird ohne Quarz die >Kommunikation über den virt. Com-Port problemlos funktionieren? Mit was >für Einschränkungen muss ich rechnen? Mit denselben Einschränkungen die dein uC ohne den Quarz bisher hatte. Das Problem bleibt das gleiche. Int RC Osci ist zu ungenau. Der FT232RL braucht keinen Quarz.
Der interne 12MHz Oszillator des FT232RL reicht in der Regel aus. Du kannst sogar die intern erzeugte Frequenz an den CBUS0 bis CBUS3 Ausgängen im Bereich von 48MHz bis 6MHz ausgeben. z.B. als Takt für den Prozessor etc.
Der FT232*R* funktioniert gänzlich ohne Quarz, aber du musst natürlich für den angeschlossenen Controller trotzdem eine Quarzfrequenz wählen, die es ermöglicht, die üblichen Baudraten wie 9600, 19200 etc. zu generieren. Eine Ausnahme hiervon ist, wenn du den FT232 direkt über Software (also per DLL-Zugriff) und nicht über die VCP-Treiber ansprichst, dann brauchst du theoretisch nicht mal am µC einen Quarz, weil du die CBUS-Pins des FT232 auf Taktausgabe (in festen Werten) schalten und somit den µC takten kannst. Bei der direkten Ansteuerung kannst du dann auch krumme Baudraten generieren. Und als Schmankerl gibt es noch die Möglichkeit, auch über die VCP-Treiber krumme Baudraten zu erzeugen. Das ganze nennt sich Aliasing und ist in diesem Dokument beschrieben: http://www.ftdichip.com/Documents/AppNotes/AN232B-05_BaudRates.pdf Einziger Nachteil ist, dass du halt im VCP-Treiber eine andere Baudrate einstellst, als du eigentlich haben willst (ein Alias eben), also entsprechen dann halt eingestellte 115200 Baud z.B. einer realen Baudrate von 512000 Baud. Ralf
Da ich mit einer Software kommuniziere die normal über eine serielle Verbindung arbeitet, bin ich auf den Treiber für den virt. Com-Port angewiesen. Bietet mir hierfür der FT232R eine passende Frequenz an, die ich an einem der CBUS-Pins herausführen kann, und meinem µC an XTAL2 spendiere? //EDIT: niedrige Baudrate würde vollkommen ausreichen!
> Bietet mir hierfür der FT232R eine passende Frequenz an, die ich an > einem der CBUS-Pins herausführen kann, und meinem µC an XTAL2 spendiere? Der FT232R bietet soweit ich weiss 6, 12, (24 bin ich nicht sicher) und 48 MHz an. Da das Vielfache von 6 MHz sind, solltest du dann die höchstmögliche für deinen Controller wählen (es sei denn, du bist auf Batteriebetrieb). Ob das eine für deinen µC passende Frequenz ist, weiss ich nicht, da du nicht geschrieben hast, welchen µC du anschließen willst. Üblicherweise wird ein UART mit dem 16-fachen der Baudrate getaktet. Du musst dir halt eine Baudrate raussuchen, die Formel des UART-Taktes deines µC entsprechend bei einer der o.g. Frequenzen berechnen, und gucken, ob die berechnete Baudrate nicht mehr wie 3% vom Soll abweicht (3% wird soweit ich weiss toleriert). Ralf
Also erst mal verarbeitet der FT232 natürlich alle Standard-Baudraten. Desweiteren steht im Datenblatt nach welcher Formel die anderen berechnet werden. Du kannst also gerne auch mit 1 MBaud glatt oder sonstwas fahren. Wenn du auf der PC-Seite dein Programm selber schreibst, kannst du der DCB auch alle krummen Baudraten übergeben, die gibts auch nur dem FTDI Treiber und der kümmert sich um die Einstellung. Allerdings ist mit einem RC-Oszialltor am µC damit immer noch kein Blumentopf gewonnen, denn desse temperatur- und Spannungsschwankungs bedingten Schwankungen der Baudrate kann der FT232 natürlich nicht ausgleichen.
Ralf wrote: > Der FT232R bietet soweit ich weiss 6, 12, (24 bin ich nicht sicher) und > 48 MHz an. Da das Vielfache von 6 MHz sind, solltest du dann die > höchstmögliche für deinen Controller wählen (es sei denn, du bist auf > Batteriebetrieb). Nein, kein Batteriebetrieb, allerdings Bus-powered. Den µC wollte ich dabei über PWREN# solange im Reset halten, bis der FT232R komplett enumeriert ist. > Ob das eine für deinen µC passende Frequenz ist, weiss ich nicht, da du > nicht geschrieben hast, welchen µC du anschließen willst. Üblicherweise > wird ein UART mit dem 16-fachen der Baudrate getaktet. Oh sorry, ich wollte einen ATmega16 nehmen, somit wären 12MHz wohl angebracht und für meine Anwendung auch mehr als ausreichend. Eine andere Frage kam mir allerdings noch gerade auf, als ich anfing die Schalung zu entwerfen. In den Beispielschaltungen im Datenblatt ist eine Drossel zwischen USB-Stecker und Vcc für FT232R sowie µC. Wofür ist die genau da? Dann ist in Plan einmal ein 10nF Elko zwischen Vcc und GND direkt am USB-Stecker und weiter unten im Plan stehen noch einmal 4,7µF Elko und 100nF Kerko die generell in die Stromversorgung sollen. Wo platziere ich das am Ende am Besten auf dem Board? 10nF Elko direkt an der USB-Buchse? 100nF + 4,7µF nah an Vcc des FT232R? Und die obligatorischen 100nF an Vcc und Reset des µC? Gruß Dominique Görsch
Die Drossel hilft gegen niederfrequente Störungen. Die werden wahrscheinlich vom Rechner kommen, und die Drossel soll sie ruhigstellen. Den 10nF direkt zwischen Buchse und Spule, das ganze nicht über ewig lange Strecken verteilt, das gleiche gilt für D+/D-, die sollten so kurz wie möglich und vor allem schön parallel laufen, nach Möglichkeit sogar auf die gleiche Länge achten. Interpretier da nicht zuviel rein, ich hab auch schon 50mm Weg von der Buchse zum FT232 gehabt, das geht, aber übertreiben muss man es ja auch nicht ;) Den 4,7µF würd ich so nah wie möglich am FT232R platzieren, ebenso die üblichen 100nF. Ich würd sogar auch dem VCCIO eine 4,7µF spendieren. Also jeder VCC-Pin hat einen "großen" und einen "kleinen" Kondensator. Denk dran, im Layout die Stromversorgung so zu legen, dass eine Verbindung vom Pin zum Kondensator geht, und erst ab dort in die VCC-Fläche, sonst bringt der Kondensator nix, wenn der Pin direkt an VCC geht. Falls du Eagle verwendest, musst du evtl. mit kleinen TopRestrict-Flächen arbeiten, um den Pin von der Fläche auszusparen. Den Reset des µC kannst du mit 100nF (wobei ich hier eher kleinere Werte nehmen würde) entkoppeln, der Kondensator muss dann so nah wie möglich zum µC. Rechne aber damit, dass PWREN evtl. mehrmals toggeln könnte, bevor er stabil ist, ich hab's noch nie nachgemessen, aber mal irgendwo was gelesen, dass das passieren kann, ist wohl Rechner-abhängig. Wichtig ist das dann, wenn dein µC nach dem Einschalten irgendwas schaltet, z.B. ein Relais oder so, das würde dann halt ein paar mal Klacken. Notfalls eine Startverzögerung in die Software einbauen. Wenn du dich an die USB-Spec halten willst und die Schaltung mehr 100mA zieht, musst du sowieso mit PWREN einen FET schalten. Ralf
Ralf wrote: > Die Drossel hilft gegen niederfrequente Störungen. Die werden > wahrscheinlich vom Rechner kommen, und die Drossel soll sie > ruhigstellen. > > Den 10nF direkt zwischen Buchse und Spule, das ganze nicht über ewig > lange Strecken verteilt, das gleiche gilt für D+/D-, die sollten so kurz > wie möglich und vor allem schön parallel laufen, nach Möglichkeit sogar > auf die gleiche Länge achten. Interpretier da nicht zuviel rein, ich hab > auch schon 50mm Weg von der Buchse zum FT232 gehabt, das geht, aber > übertreiben muss man es ja auch nicht ;) Danke für die ausführliche Antwort. Ich hab nun von anderer Seite gehört, dass man die Drossel und den 10nF an der Buchse ruhig weglassen könnte und statt des 4,7µF auch ein 22µF (kleinste was ich bei Reichelt finden konnte - "VF 22/6,3 C-B") durchaus ok ist. Leitungswege werden von den Lötpads aus (keine Buchse, sondern 4 Pads für VCC, GND, D+ und D-) recht kurz zum FT323R sein. > Den 4,7µF würd ich so nah wie möglich am FT232R platzieren, ebenso die > üblichen 100nF. Ich würd sogar auch dem VCCIO eine 4,7µF spendieren. > Also jeder VCC-Pin hat einen "großen" und einen "kleinen" Kondensator. Kann ich den 22µF dann auch für den VCCIO nehmen? > Denk dran, im Layout die Stromversorgung so zu legen, dass eine > Verbindung vom Pin zum Kondensator geht, und erst ab dort in die > VCC-Fläche, sonst bringt der Kondensator nix, wenn der Pin direkt an VCC > geht. Falls du Eagle verwendest, musst du evtl. mit kleinen > TopRestrict-Flächen arbeiten, um den Pin von der Fläche auszusparen. Ich nutze zwar Eagle, aber Route von Hand, daher ist das kein Problem. > Den Reset des µC kannst du mit 100nF (wobei ich hier eher kleinere Werte > nehmen würde) entkoppeln, der Kondensator muss dann so nah wie möglich > zum µC. Rechne aber damit, dass PWREN evtl. mehrmals toggeln könnte, > bevor er stabil ist, ich hab's noch nie nachgemessen, aber mal irgendwo > was gelesen, dass das passieren kann, ist wohl Rechner-abhängig. Wichtig > ist das dann, wenn dein µC nach dem Einschalten irgendwas schaltet, z.B. > ein Relais oder so, das würde dann halt ein paar mal Klacken. Notfalls > eine Startverzögerung in die Software einbauen. Da hängt nichts dran, was nicht ohne Befehl vom PC etwas tun würde. > Wenn du dich an die USB-Spec halten willst und die Schaltung mehr 100mA > zieht, musst du sowieso mit PWREN einen FET schalten. Hab ich im Datenblatt gelesen. Mehr als 100mA werd ich zwar wohl entnehmen, aber das nicht direkt nach dem Einstecken, sondern erst wenn vom PC entsprechender Befehl kommt, was unwahrscheinlich ist, solange noch nicht enumeriert. ;) Gruß Dominique Görsch
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.