I'm trying to communicate with an old device that operates at 1200 baud only. The tablet I'm using to control the old device will only go as low as 2400 baud. Any ideas on how to bridge this gap would be greatly appreciated.
Most processors can do almost any baudrate (within reasonable limits) - so the driver vendor might create a list of standard baudrates instead of allowing the user to specify arbitrary baudrates.
So you might get a driver with a parameter: 0: 300 baud 1: 600 baud 2: 1200 baud ... even if the hardware could do 75 baud or 5350 baud.
Most newer processors starts from a very high clock frequency, allowing a quite big divisor to span a large baudrate range. And lots of newer processors also have fractional baudrate support, to allow them to divide that input clock with 4.55 if that is what it takes to get a perfect output baudrate.
So I'm pretty sure it's a driver limitation and not a hardware limitation that the tablet doesn't do 1200 baud. It is normally split-speed (different baudrate for transmit and receive), or a specific number of data bits in combination with number of stop bits in combination with even/odd/mark/space/none parity where there may be actual hardware limitations because of the bit fields used to configure the UART.
For older processors, it was common that you had to select specific clock crystals to be able to get "correct" baudrates, but in a world of PLL-driven hardware that is quite uncommon today.
I'm aware of a couple of chips where the width of the baud rate divider would be insufficient to get the APB clock down far enough to get to 1200 or 600 baud. One might be able to slow the APB down to a point it works but that would slow down a lot of other peripherals in the process.
Supporting 30 year old equipment is a bit niche at this point.
Thank you gentlemen. It seems clear to me now that the processor is not the probable issue. I will now pursue a driver based solution, with or without the vendor, to reach the necessary speed. Sorry that I jumped ahead about 4 mental pages when initially addressing this problem. All the help has been greatly appreciated. Thank you all again.