Цитата(GetSmart @ Jul 1 2010, 10:01)

FIFO можно отключать полностью, по крайней мере я на LPC213x отключал и работал без косяков. Но на 470 кбодах. То есть аппаратура работать будет, а вот программе при этом будет тяжко. Однако, в настройках FIFO есть уровень срабатывания флагов/прерываний. Чего-то там 1,..,8,14 символов. В данном случае можно выставить глубину реакции в 1 символ и включить FIFO. И флаги должны устанавливаться сразу же, без всяких таймаутов.
При включённом FIFO должно работать. Даже когда глубина реакции = 1, можно забивать полное FIFO (16 байт).
Может тормоза из-за непонятных пока ошибок (в регистре статуса). Было бы неплохо анализировать другие биты в резистре UxLSR и сигнализировать чем-то еденичные биты в флагах ошибок.
Прерывания сами по себе съедают полторы микросекунды - от них я отказался в слейве, где делается попытка ловить внешний сигнал на максимальной частоте (думали что удасться добится 1 МГц, реально получается вроде хуже, но ненамного)
Мысль о анализе ошибок надо думать. ведь надо городить огород вместо
while (!(U3LSR & 0x20));
и включать четность, которую обычно не включают.
Но похоже что это актуально, потому как ошибки передачи у меня изредко встречаются и пришлось рожать и передавать crs
Цитата(zltigo @ Jul 1 2010, 09:32)

Забрасывание порции в FIFO не глядя cовершенно нормально работает, на то оно и FIFO.
А что уставы говорят о порядке забрасывания, паузы между байтами нужны или не нужны ?
Повторю, что речь идет о максимальной частоте UART'а