I have a data acquisition project which has a bottleneck at a parallel->serial shift over the USART, and I was wondering what the fastest baud rate anyone’s gotten one of these to go in practice, assuming pretty much what all the chip does is load the USART transmit buffer and then prep its next batch of data while it waits for the buffer to clear.
I intend to use an asynchronous flow to the receiving device, and the receiver will be located very close to the transmitter.
You say you plan to use Asynchronous serial (UART mode)…
Then the speed is simply the baud rate that you program the chip to do. That rate is limited by
The crystal or ceramic resonator you chose. Lower frequencies means lower baud rates, mostly due to the baud rate error due to the divisor you need. Baud rate error also applies to the receiving end. The error is calculated for you by tools like “avrcalc” - freeware.
The UART data transmission media, i.e., RS232 versus TTL, length of wire, etc.
In AVRs newer than the 8515, 115Kbps asynch is not uncommon, for limited distances
If the distance is short, you can use SPI or I2C for much higher speeds, though a bit more complex. I’ve used SPI at 8Mbps with the mega128
I designed a USB to serial converter using a MEGA4820 and was able to transfer serial data at 920kbps with no data loss. So it should be possible. Just make sure to put some hardware flow control (RTS/CTS) in to keep from getting swamped.
stevech lists two limits on UART rate. There’s a third: the rate at which data can be generated or consumed by the microcontroller. At the highest available baud rates (UBRR=0, U2X=1, 8N1), there are just 80 clock cycles per byte.