Sehr geringe Baudrate ein Problem für Windows?

OP #5146091
Guten Tag,

ich versuche gerade mit einer sehr geringen Baudrate (~38) Daten von 
einem µC zum PC zu übertragen, da der Controller selber kein UART 
unterstützt, hab ich versucht, das in Assembler nachzubauen. Mit Logic 
messe ich eine Bitdauer von ca. 26ms, der Async Serial Analyzer erkennt 
die übertragene Zahl 11 bei einer Baudrate von 38, von daher ging ich 
davon aus, das Windows das auch so erkennen würde, allerdings zeigt mir 
RealTerm und mein C#-Program entweder 0 oder 240 an? Kann Windows 
mit so geringen Baudraten nicht umgehen?
Angehängte Dateien:
Moderator
Welchen UART nutzt du auf dem PC? Evtl. kann  der die 38bit/s schon rein
hardwaremäßig nicht. Der klassische Mainboard-UART sollte diese Bitrate
zwar hinbekommen, da ist dann nur die Frage, ob sie auch vom Treiber
unterstützt wird. Ein USB-Serial-Converter mit dem FT232R bspw. geht nur
bis 183bit/s hinunter, da hilft dann auch der beste Treiber nichts.
Persönliche Seite
A. K. schrieb:
> Fernschreiber mit 5-Bit Codierung hatten oft 50 und 75.

Die Standard-UART im PC, 8250 bzw. 16550, verwendet im 
Baudratengenerator einen Takt mit 1.8432 MHz, der durch einen Prescaler 
von 16 und dann durch das Baudratenteilerregister weiter heruntergeteilt 
wird.

Dadurch ergibt sich die bekannte Maximalbaudrate von 115200 Baud, und 
jede andere durch ganzzahlige Teilung aus diesem Wert ableitbare 
Baudrate.

Für 50 Baud beträgt der Baudratenteiler 2304, für 75 Baud 1536. Auch 
niedrigere Baudraten sind möglich.


Da aber die Hardwarearchitektur der üblichen USB-UART-Bridges eine 
komplett andere Baudratenerzeugung vorsieht, muss man sich an das 
Datenblatt der verwendeten USB-UART-Bridge halten, sofern es denn eines 
gibt. Von den CHS-Uarts habe ich bislang nur vage aus dem chinesischen 
übersetzte Beschreibungen, aber keine ernstgemeinten Datenblätter 
gesehen.
Moderator
S. R. schrieb:
> Ich staune. DOS hat mir damals nichts langsamer als 110 Baud angeboten,

DOS hat fast überhaupt nichts angeboten, was eine sinnvolle Nutzung der
seriellen Schnittstellen erlaubt hätte (vermutlich wollte Microsoft, wie
so oft, die User nicht unnötig verwirren :)). Deswegen hat praktisch
jedes Programm, das seriell kommunizierte, direkt auf die UART-Hardware
zugegriffen, was letztendlich auch nicht viel schwieriger war, als die
komischen DOS-Software-Interrupts zu verwenden.
Gast
S. R. schrieb:
> Die kleinsten (mir bekannten) Standardbaudraten sind 110 und 300 bps,
> dabei sollte letztere eigentlich überall funktionieren.

Lange vorher waren 45.45, 50 und 75 Bd gebräuchlich - schneller war die 
Mechanik damals nicht ;-)
Max M. schrieb:
> ich versuche gerade mit einer sehr geringen Baudrate (~38) Daten von
> einem µC zum PC zu übertragen, da der Controller selber kein UART
> unterstützt, hab ich versucht, das in Assembler nachzubauen.

Warum so extrem langsam?
Bei meinen I2C-Sniffer auf dem ATtiny85 erreiche ich problemlos mit der 
SW-UART 460800 Baud (Assembler) bzw. 115200 Baud (C).
Rufus Τ. F. schrieb:
> Steuert man den Baustein selbst an, kann man seine Möglichkeiten
> auch ausnutzen.

Ich hab auch mal den 16550 bare metal über seine IO-Adressen 
programmiert.
Und der Witz ist, daß Programm funktioniert heute noch in DOSbox unter 
W7/64Bit an einem USB-RS232 Umsetzer. Da war ich echt verblüfft.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.