Sehr geringe Baudrate ein Problem für Windows?

OP #5146091
Lesenswert?

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 #5146116
Lesenswert?

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 #5146305
Lesenswert?

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 #5146510
Lesenswert?

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.
#5146521
Lesenswert?

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).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren