Столкнулся с непонятным поведением УАРТа LPC1768 rev-. PLL 100 MHz, PCLK делитель УАРТа = 1/4. На скорости 230400, 115200 и менее всё работает отлично. На скоростях 460 кбит и 920 УАРТ работает криво. Точнее канал TX работает корректно, а RX принимает мусор, размером 2 байта вместо одного. Хотя скорости обоих каналов должны быть равны. Если PCLK делитель сделать 1/1, то на всех скоростях (до 920 кбод точно) оба канала работают корректно. Получается, что с делителем (DLM:DLL) 1 или 2 на приём УАРТ не хочет работать. С дробными делителями естественно используется расчётное значение регистра FDR и оно корректно, т.к. TX канал работает.
Кто-нибудь сталкивался? Или это есть в эррате?
-------
УПД
проглядел строчку в мануале
Цитата
Important: If the fractional divider is active (DIVADDVAL > 0) and DLM = 0, the value of
the DLL register must be greater than 2.
Тогда непонятно почему на 460 кбит не работает, т.к. там делитель 3.39. Точнее: делитель PCLK = 1/4, DLM:DLL = 2, FDR = 0xd9, ошибка 0.2%.
Или её необходимо понимать как СТРОГО БОЛЬШЕ, а не БОЛЬШЕ ИЛИ РАВНО ? Странно, на другой периферии часто допускается больше или равно 2. Например на SSP.