Цитата(yashok @ Mar 22 2011, 09:08)

Для какого именна NXP это код??
Код
U0FDR = 0x000000E5; /* DIVADDVAL = 5, MULVAL = 8 */
Предпологаю, что в строке ошибочный коомент. MULVAL = 14, поэтому подсчеты ошибочны.
Код
U1DLL = Fdiv % 256;
Попробуйте просто
Код
U1DLL = Fdiv
Еще бы не плохо было бы явно настраивать рабочую частоту для модулей UART. Что бы точно было 72 MHz.
Спасибо за поддержку
Запутался в версиях кода, как следствие U0FDR был указан для 60 МГц
Изначально
Резонатор на 16 МГц
Необходимо сделать 72МГц частоту тактирования ядра и периферии
Получается
M = 72
N = 8
ClkDiv = 4
для
Fcco = 288 МГц
Необходимый бодрейт - 921600 б/с
Тогда DIVADDVAL = 5, MULVAL = 8
В итоге получается в районе 740000 б/с при передачи и соотвественно прием на 921600 б/с передатчика заершается с ошибками фрейма
Почитал эррату, там говорится что желательно 72 МГц добиватся при 12 МГц на входе и Fcco = 288 МГц
В итоге настроил какбы на 12 Мгц(при оставшемся кварце 16 Мгц) - M = 12, N = 1, получается теперь почти как нада, дительность бита как на картинке 1
Но прием попрежнему с ошибками, длительность бита передатчика на рис 2
Микроконтролер LPC2387
Сообщение отредактировал addi - Mar 22 2011, 12:17
Прикрепленные файлы
1.bmp ( 146.3 килобайт )
Кол-во скачиваний: 6
2.bmp ( 146.3 килобайт )
Кол-во скачиваний: 4