Hallo Ich versuche mit einem Sainsmart Mega2560 und Arduino eine Baudrate von 230400 zu bekommen. Der Standart Quarz von 16 MHZ konnte dies Baudrate nicht Erfüllen. Also habe ich Kurzer Hand einen 11,0592 MHZ Quarz eingesetz. Der Quarz sollte Laut Datenblatt des 2560 mit 230400 Bud laufen. Nun habe ich den Bootloader und die Boards.txt der Ardino Software Angepasst. Habe ein Test Programm Geschrieben und Drauf geschoben. void setup() { Serial.begin(9600); Serial.println("\r\r Test Baudrate"); delay(5000); } mit bis zu 115200 geht alles super. Aber sobald ich darüber komme ist vorbei. Ich bekomme keine Daten mehr bzw. nur noch Hieroglyphen. Was mache ich Falsch.? ich nehme die auf dem Board befindliche USB/Serielle schnittstelle die auch bis 230400 kann laut datenblatt. MFG: Andre
Ein 16550 kann keine 230.400 Baud. Wie schließt du das Gerät an den PC an?
S. R. schrieb: > Ein 16550 kann keine 230.400 Baud. Deutlicher: Die Onboard-Schnittstellen von PCs können nicht mit mehr als 115200 Baud betrieben werden. Das ist eine Hardwarebeschränkung. Höhere Baudraten sind nur mit anderen Schnittstellen möglich, also welchen, die auf einer PCI/PCIe-Karte oder als USB-Seriell-Bridge untergebracht sind. Was irgendwelche Programme in ihren Auswahllisten für Baudraten anbieten, hat garnichts mit den von der angeschlossenen Hardware tatsächlich unterstützten Baudraten zu tun, das sind i.d.R. mehr oder weniger willkürlich von den Programmierern zusammengestellte Listen mit verbreiteten Baudratenwerten. -- Der 16550 kann ebenso wie sein Urahn 8250 natürlich auch mehr als 115200 Baud, aber dafür müsste er mit einem anderen Baudratentakt als den standardisierten 1.8432 MHz betrieben werden. Das aber ist im PC weder ohne weiteres möglich noch ratsam (ersteres, weil kein separater Quarzoszillator mehr für diese Aufgabe verwendet wird, letzteres, weil die Devicetreiber nichts vom geänderten Quarz wissen, man also "falsche" Baudraten einstellen müsste).
:
Bearbeitet durch User
Rufus Τ. Firefly schrieb: > Das aber ist im PC weder ohne weiteres möglich ... Der serielle Chip in seiner ursprünglichen Form wird garnicht mehr existieren, seine vom User sichtbaren Register werden in irgendeinem Chipset/MultiIOchip nur noch emuliert MfG Klaus
Klaus schrieb: > seine vom User sichtbaren Register werden in irgendeinem > Chipset/MultiIOchip nur noch emuliert Emuliert wird da nichts, da ist einfach ein 16550-IP-Core verbaut.
Hallo @ S. R. (svenska) Ich schliese ihn über USB an den PC an. Auf dem Arduino Board ist eine USB Schnittstelle mit der man die Sketche drauf läd. und darüber kann man auch die Serielle Schnittstelle nutzen. das Wandeln von USB/Seriell macht ein Mega8U2. @Rufus Τ. Firefly (rufus) Ich nutze doch Aber USb nicht PCI/PCIe. Das dürfte dann doch aber gehen. oder sehe ich das Falsch. MFG Andre
Also die FTDI Chipsätze können auch krumme und höhere Baudraten.
250k hab ich zum Beispiel in einer Anwendung.
>das Wandeln von USB/Seriell macht ein Mega8U2.
Kommt halt drauf an, was der unterstützt
Rufus Τ. Firefly schrieb: > Emuliert wird da nichts, da ist einfach ein 16550-IP-Core verbaut. Wenn dir denn diese Formulierung lieber ist .... MfG Klaus
Sowohl der FTDI FT232RL Treiber V2.8.23.0 W7/32 als auch der Prolific PL232HX Treiber 3.3.5.122 W7/32 unterstuetzen 232400 als Baudrate mit einem vom WXP ausgeborgtem Hyperterm. Getestet mit einem (Soft-)UART auf einem kleinen PIC12F683 bei 8 MHz.
> 232400
Das sollten natuerlich 230400 sein.
Zusammen mit TeraTermPro 4.67 funktioniert es natuerlich auch.
Andre schrieb: > Also habe ich Kurzer Hand einen 11,0592 MHZ Quarz eingesetz. > Der Quarz sollte Laut Datenblatt des 2560 mit 230400 Bud laufen. Hast du auch den Quarz des ATmega8 ersetzt? Bist du sicher, dass die Software auf dem ATmega8 höhere Baudraten als 115200 unterstützt? Woher weiß die Software auf dem ATmega2560 und dem ATmega8, dass der Quarz eine andere Frequenz hat? Vielleicht weiß sie es überhaupt nicht, und du musst statt der 230400 Baud 230400·16000000/11059200=333333 Baud einstellen.
Ich habe den bootloader des Mega2560 bzw. der, der für das arduino da ist im makefile angepasst und auch in der c Datei die dazu ist. Und die boards.txt habe ich auch angepasst. Sonst könnt ich keine Sketche auf das arduino Board schieben. Das der mega8 keinen 11..... Quarz hat habe ich vergessen zu erwähnen, und ist mir eben erst selbst aufgefallen. Heißt er kann es am Ende nicht. Ich habe noch einen ftdi USB/seriell Adapter da. Der zeigt mir beim installieren unter win7 eine baudrate von 230400 an. Der kann auch höher. Hintergrund der Geschichte ist, das ich ein gps Modul habe was standart auf 9600 baud läuft. Aber da an dem Modul noch ein mainboard hängt sagt das mainboard dem gps Modul das es auf 230400 Baudenkmäler senden soll. Somit kann ich mit standart seriellen Geschwindigkeiten nichts machen. Lg: Andre
Wenn du nur lauschen willst was da passiert könntest auch direkt mit deinem ftdi drangehen (auf die Spannungslevel natürlich achtend).
Lauschen und via avr auf sd mit loggen. Die Idee mit dem ftdi hatte ich auch. Aber nütz nicht viel wenn man loggen möchte. Lg Andre
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.