[linux] baudrate 74880 ?
Paul Slootman
paul+nospam op wurtel.net
Di Okt 29 13:59:42 CET 2019
On Tue 29 Oct 2019, paai wrote:
>
> spelende met een esp8266 wilde ik de baud rate op 74880 zetten. Mooi niet.
> Niet via Minicom, niet via de Arduino interface of zelfs met stty.
>
> 'anybaud' gedownloaded, die beweert dat de baud met succes is aangepast,
> maar stty rapporteert 0 baud en de Arduino terminal wil van niets weten.
> Minicom ook niet. Volgens de aanwijzingen op de site heb ik eerst het
> terminal programma gestart en daarna pas de nieuwe baud rate gezet, maar
> nada.
>
> Wat is er mis met dat getal 74880 en hoe kan ik mijn /dev/ttyUSB0 alsnog op
> die snelheid krijgen?
Uit de termios(3) manpage:
cfsetospeed() sets the output baud rate stored in the termios structure pointed to by
termios_p to speed, which must be one of these constants:
B0
B50
B75
B110
B134
B150
B200
B300
B600
B1200
B1800
B2400
B4800
B9600
B19200
B38400
B57600
B115200
B230400
Dit zijn de "standaard" baudrates. stty zal ook geen afwijkende snelheid
kunnen tonen, wat die 0 baud mogelijk verklaart.
Baudrate wordt meestal gezet door een deler in te stellen. Als de jouw
gewenste baudrate daarmee niet in te stellen is, dan houdt het op.
https://electronics.stackexchange.com/questions/314060/how-does-16550-uart-handle-non-integer-baud-rates
The 16550 UART calculates the baud rate using formula 115200 divided by
the 16-bit number obtained by concatinating the High and Low DL
registers. There are several well-known divisors that get you well known
baud rates, and are easy to calculate. A baud rate of 9600 is just
115200/12. 57600 is 115200/2, 300 baud is 115200/384, etc... 115200 has
90 integer divisors.
Nu blijkt een esp8266 een max. baud rate van 4608000 te kennen.
Als ik dat deel door jouw 74880 dan komt daar geen geheel getal uit.
Hoe kom jij aan die 74880? Wat is er mis met 115200 of 57600?
Paul
Meer informatie over de Linux
maillijst