We have been developing code for the AT91RM9200 and have found problems with the UART when running the USART 1.5% slower than the selected boaud rate. A natural consequence with certain clocks and the available divisors available. The problem is that framing errors are not correctly detected. i.e for 115200 we have a 18.432 MHz crystal clock, and processors runs at 179.712MHz, main clock=59.904MHz, UART and the baud rate divisor is set to 33 (5990400/(16x115200). The calculated divisor value would be 32.5 and using the Atmel Uart code which rounds up sets it to 33, 1.5% error ,which should be OK for RS232. If we set USART to 8N and send it 7N data we should get framing errors but we don't. If we set divisor to 32 it then works. This is 1.5% error which should be OK. This problem occurs for any baud rate that is low by
1.5%. Since the receive data source could be off baud by 1.5% then this is a serious problem as this products does coms analysis. Could anybody offer any advice on this problem?- posted
17 years ago