Isn't it great to have a datasheet for a complex chip like the 8266 that's less than 40 pages long, instead of the 900+ pages for a SAMD21? Perhaps not ![]()
I couldn't find anything that told me much about the uart bitrates.
The datasheet says:
The data transmission speed via UART interfaces reaches 115200 x 40 (~4.5 Mbps).
I can't figure out how they get a limit of 115200*40 from the nominal max clock of 160MHz.
The arduino core code for ESP8266 says:
USD(uart->uart_nr) = (ESP8266_CLOCK / uart->baud_rate);
I'm not sure whether that CLOCK is the 80MHz/160MHz number, or the crystal frequency (which is lower.)
I would THINK that with "standard gate-level uart definitions", which is almost certainly what the esp8266 uses, you'd be good at any bit rate where ESP8266_CLOCK/16/baud_rate has a fractional part that is small compared to the total value. But you may have to experiment to make sure. Experimentation may be necessary.
Historically, this is a major problem with chips from overseas (including Japan, so not just "developing countries".) Published documentation (especially in English) is not what we're used to - there's much more "word of mouth" communications between chip producers and their (large, corporate) customers. Bunnie Huang has written pretty extensively on some of the cultural differences, I think This Article is one of the definitive ones.
(The ESP8266 and ESP32 have an unprecedented level of information sharing. It's just ... not that much.)