I am working on MCF52233CAF60 80 pin. I have configured the UART 0 to work at 115200 baud rate for MODBUS RTU application. I am using MAX3232 from TI for UART0. The MODBUS master sends the same data to the slave(implemented on MCF52233) every second. While receiving this data, though there is no problem most of the times, I notice an error in receiving bit 1 around 25 times an hour.
eg. the master sends a query with 8 bytes the first byte being hex byte 0x05. Although i receive all other bytes correctly, the first byte received is hex byte 0x04.If the first byte is 0x03, I receive 0x02.
Hence, if an error occurs it is in the first bit of the first byte.
I would appreciate any help.
how do you have your clocks configured? I.e., are you hitting 115200 exactly, or is it off a bit? Generally you're OK up to about a 1% deviation (sometimes more or less), but I found on an 80 MHz MCF52259 that I had to drop the system clock to 76.8 MHz, or I was outside the 1% window at 115.2k.
The 1st bit of the 1st byte is where I'd expect to see timing intolerances exposed.