Hallo, ich hab ein merkwürdiges Problem und wollte mal fragen ob jemand schon ähnliches durch hat... Ich habe ein Atmega168 auf meinem STK500 stecken und betreibe ihn mit einem 16MHz Quarz... die Freqenz passt soweit... Das ganze wird mit einem USB-Serialadapter verbunden... später im Projekt wird das selbe durch ein FTI232 getan... Ich benutzte die UART Lib von Peter Fleury, die bisher immer funktionierte. Laut diesem Rechner: http://www.gjlay.de/helferlein/avr-uart-rechner.html Könnte ich die Baudraten 38.4k, 76.8k und 250k benutzen... Die erste Baudrate funktioniert tadellos, nur leider ist sie für meine Anwendung zu langsam. Die letzte (250k) funktioniert beim Empfangen von Daten vom µC ohne Probleme, aber wenn ich was sende, kommt nur Müll an?! Und die Baudrate mit 76.8k funktioniert anschneiend überhaupt nicht... da kommt nicht mal ein Zeichen an... und die wäre genau die richtige für mich... Achso und 115.2k hab ich auch testweise probiert... aber bei 3% Fehler kommen immer mal wieder das falsche Bytes durch... (klar) Ich versteh einfach nicht, warum es bei 76.8k zu solchen Problemen kommt, wenn sich alle anderen Baudraten wie erwartet verhalten (bis auf das senden mit 250k). Liegt es etwa an dem USB-Serial Wandler? MfG Basti
Wäre die Frage, welche Baudraten der PC-Adapter unterstützt. 76800 ist keine klassische PC-Baudrate.
könnte man tun... Ich verwende nur gern die 16MHz weil ich dann einen Timerinterrupt aller 1,02ms Aufrufen kann und das ziemlich nützlich für mich ist... deswegen wollte ich erstmal nicht den Quarz wechseln und das eher als letzte Möglichkeit ansehen. Außerdem würde das das Phänomen mit den 76.8k nicht erklären...
Situation 1. Es ist unbekannt, für welche Baudraten und Genauigkeiten der USB-Seriell-Adapter spezifiziert ist. 2. Unabhängig davon, ist Typ und Hersteller des USB-Seriell-Adapters unbekannt, so das kein Vergleich mit den Erfahrungen von anderen möglich ist.
Basti schrieb: > Das ganze wird mit einem USB-Serialadapter verbunden... später im > Projekt wird das selbe durch ein FTI232 getan... Basti schrieb: > Die letzte (250k) funktioniert beim Empfangen von Daten vom µC ohne > Probleme, aber wenn ich was sende, kommt nur Müll an?! Da stellt sich für mich die Frage: kann dein RS232-Treiber überhaupt die hohe Baudrate? bzw. wie lang ist Dein Kabel? Basti schrieb: > Achso und 115.2k hab ich auch testweise probiert... aber bei 3% Fehler > kommen immer mal wieder das falsche Bytes durch... (klar) Ich komme (mit Bit Baudratenverdoppelung gesetzt) nur auf 2,1% Fehler. Bei 57600 Baud würdest Du mit Baudratenverdoppelung unter 1% Fehler haben. Gruß Anja
http://www.delock.de/produkte/gruppen/USB+Adapter/Delock_USB_11_Seriell_Adapter_61392.html Dieser... Kann da leider keine Informationen finden, welche Baudraten das Teil unterstützt und welche nicht... Nächste Woche sollte meine Platine kommen, dann werde ich die 76.8k nochmal mit dem FT232 probieren und wenns nicht is, dann muss ich halt zum Baudraten Quarz greifen
Basti schrieb: > Kann da leider keine Informationen finden, welche Baudraten das Teil > unterstützt und welche nicht... Du wirst doch beim Anstöpseln des Adapters sehen welcher Treiber aktiviert wird. Laut Download ist es ein PL2303. Warum testest Du das ganze nicht mit einem USB-Adapter mit FTDI. z.B. dem hier? http://www.reichelt.de/?ACTION=3;ARTICLE=78847;PROVID=2402 Gruß Anja
> Kann da leider keine Informationen finden, welche Baudraten das Teil > unterstützt und welche nicht... [..] 76.8k [..] Der angebotene Treiber legt nahe dass da ein PL2303 drin ist. Der wiedrum kann laut Datenplatt keine 76k8. Spar Dir die vergliche Liebesmüh und nimm einen Baudratenquartz.
Ja Anja du hast recht, ich sollte mal in einen neuen Adapter investieren... wenn ich immer den FT232R verbaue, dann sollte man auch mit einem solchen Adapter Debugen... das ergibt Sinn und deswegen liegt das Teil jetzt im Warenkorb... ;) @G456 Danke für die Info... dann brauch ich mich nicht wundern...
Die so genannten "Baudratenquarze" sind auch nur die halbe Miete, da die USB-Seriell-Umsetzer üblicherweise mit 48 MHz oder 96 MHz betrieben werden, so dass letztendlich nur solche Baudraten exakt darstellbar sind, die ganzzahlige Teiler von 3 MBaud (FTDI), 6 MBaud (PL2303X, PL2303HX) oder 12 MBaud (PL2303HXD) sind. Die meisten Standardbaudraten werden also auch von den USB-Chips nur näherungsweise erreicht, aller- dings ist der Fehler wegen des hohen Grundtakts meist vernachlässigbar. Für die gewünschten 76800 Baud ist der Fehler beim 16-MHz-AVR exakt gleich groß wie bei den o.g. USB-Chips, so dass ein Baudratenquarz in diesem Fall keine Verbesserung, sondern eher eine Verschlechterung bringen würde. Zusätzlich muss man aber beachten, dass auf PC-Seite durch das Betriebs- system meist nur eine kleine Auswahl der mit dem USB-Chip theoretisch möglichen Baudraten unterstützt wird. Bei Windows findet diese Ein- schränkung in den Treibern, bei Linux im Betriebssystem-API statt. 76800 kBaud sind ohne Umgehung des Standard-APIs weder unter Windows noch unter Linux möglich. "Saubere" Baudraten für die Kommunikation zwischen einem 16-MHz-AVR mit USB-Seriell-Umsetzer und einem Linux-PC sind 500 kBaud und 1 MBaud. Solch hohe Baudraten setzen natürlich voraus, dass der USB-Chip direkt auf der Mikrocontrollerplatine sitzt.
@ Yalu X. (yalu) (Moderator) >USB-Seriell-Umsetzer üblicherweise mit 48 MHz oder 96 MHz betrieben >werden, so dass letztendlich nur solche Baudraten exakt darstellbar >sind, die ganzzahlige Teiler von 3 MBaud (FTDI), 6 MBaud (PL2303X, >PL2303HX) oder 12 MBaud (PL2303HXD) sind. Klares Jain. FT232 & Co können gebrochenrationale Teilerverhältnisse, ähnlich dem MSP430. Sprich, der FT232, kann Teilerfaktoren mit 1/8 Takt Auflösung. Damit sind auch mit 12MHz, was keine klassische Baudratenfrequenz ist, mit geringem Fehler die normalen Baudraten erzeugen. MfG Falk
Stimme ich Falk zu... Hab heute folgendes App Note von FTI gelesen... (AN232B-05) http://www.google.de/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http%3A%2F%2Fwww.ftdichip.com%2FDocuments%2FAppNotes%2FAN232B-05_BaudRates.pdf&rct=j&q=AN232B-05&ei=iLGYTYDmGM7esgaotbXICA&usg=AFQjCNHB1_lIQQiWhe3ljy5XDpxbie6dAQ&sig2=dzKJkWqNFhiQY9_JXiGmvA&cad=rja Wenn ich das richtig verstanden habe, dann kann man gerade bei niedrigen Baudraten nahezu jede beliebige Baudrate unter 3% Fehler einstellen... hab mal nen Beispiel durchgerechnet... Hm, obs Windows mit macht? Der Virtuelle Com Port treiber von FTI wird doch hoffentlich die funktionen des Chips nicht blockieren?!
Falk Brunner schrieb: > FT232 & Co können gebrochenrationale Teilerverhältnisse, ähnlich dem > MSP430. Stimmt, danke für den Hinweis. Da ich an hohen Baudraten üblicherweise nur 230,4 kBaud und 500 kBaud benutze und man bei diesen die gebrochenen Teilverhältnisse nicht braucht, hatte ich bisher auch gar nicht den Bedarf nach so einem Feature :) Basti schrieb: > Wenn ich das richtig verstanden habe, dann kann man gerade bei niedrigen > Baudraten nahezu jede beliebige Baudrate unter 3% Fehler einstellen... Nicht nur bei den niedrigen. Für alle Baudraten bis 1,54 MBaud beträgt der Fehler maximal 3,03%, bis 115200 kBaud sogar weniger als 0,24%.
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.