|
Bubble в UART LPC2148 |
|
|
|
Sep 25 2007, 09:59
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 24-08-07
Пользователь №: 30 026

|
Работаю с LPC2148, но никак не могу решить проблему с UART. Осциллятор у меня на 12Мгц из-за USB модуля, второй осциллятор часовой. Понятное дело что битрейт на UART с нулевой ошибкой выставить невозможно. На UART0 реализован обычный текстовый терминал. На UART1 рабочее устройство с которым ведется обмен данными. Так вот в зависимости от степени расхождения в битрейте с устройством на длинных пакетах может произойти какой-то срыв в мозгах у LPC и он начинает "базарить" (bubble) на оба UART как наружу так и вовнутрь, т.е. в течение нескольких секунд я наблюдаю на экране терминала как быстро быстро прет всякая х...ня, тоже самое происходит и вовнутрь, т.е. в течение этого же времени оба модуля активно принимают "левые" данные в основном просто нули. Подчеркиваю, что базарит он на оба модуля одновременно, и так посрет посрет данными и успокаивается и продолжает работать. Раньше bubble вызывал вообще зависание, да такое что внешний ресет не помогал, а помогало только выключение питание или сторожевой таймер, но я поиграл с таймингами MAM и теперь он не всегда зависает. Плюс к этому я выяснил что если во время работы с PLL, устройство что-нибудь ответит в UART, то это bubble с последующим гарантированным зависанием. Раньше эта прога работала на LPC2194 с осциллятором 11059200 и таких проблем не было. Кстати терминал параллельно продублирован на логический канал USB и когда UART0 гадит мусором с свою терминальную программу, то в специальной терминальной программе подключенной через USB в это время все в порядке, так что это точно модуль UART0 сам что-то гонит, а не моя прога что-то сдуру посылает.
|
|
|
|
|
 |
Ответов
|
Sep 25 2007, 10:41
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 24-08-07
Пользователь №: 30 026

|
Дело ещё в том, что разных устройств таких для UART1 много и у каждого свой разработчик и своя ошибка в битрейте, бывает нулевая, бывает большая. Вот сейчас лежит одно и разница у нас с ним в 4%, пока он посылает мне пакеты-ответы длиной в 4 байта всё в порядке, когда длиной в 19 байт, то либо я получаю дополнительный странный довесок в несколько байт, либо в течение 2-3 секунд получаю максимум данных на этом битрейте, но так как дальше 128 байт у меня уже откидывается, то я не знаю сколько точно. Есть другое устройство с точно таким же протоколом связи, только ошибка гораздо меньше, так вот с ним все отрабатывает по протоколу нормально. Кстати это проблемное устройство прекрасно работает по этому протоколу с ПК, а со мной не хочет.
|
|
|
|
|
Sep 25 2007, 10:49
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(3m-soft @ Sep 25 2007, 14:41)  Дело ещё в том, что разных устройств таких для UART1 много и у каждого свой разработчик и своя ошибка в битрейте, бывает нулевая, бывает большая. Вот сейчас лежит одно и разница у нас с ним в 4%, пока он посылает мне пакеты-ответы длиной в 4 байта всё в порядке, когда длиной в 19 байт, то либо я получаю дополнительный странный довесок в несколько байт, либо в течение 2-3 секунд получаю максимум данных на этом битрейте, но так как дальше 128 байт у меня уже откидывается, то я не знаю сколько точно. Есть другое устройство с точно таким же протоколом связи, только ошибка гораздо меньше, так вот с ним все отрабатывает по протоколу нормально. Кстати это проблемное устройство прекрасно работает по этому протоколу с ПК, а со мной не хочет. Если обмениваются устройства с ошибками по скорости - ошибка суммируется. Решение - снижать скорость передачи.
|
|
|
|
Сообщений в этой теме
3m-soft Bubble в UART LPC2148 Sep 25 2007, 09:59 zltigo Цитата(3m-soft @ Sep 25 2007, 12:59)... Sep 25 2007, 10:10 alexander55 Цитата(3m-soft @ Sep 25 2007, 13:59)... Sep 25 2007, 10:16 3m-soft Fractional baud rate generator я использую с самог... Sep 25 2007, 10:21 alexander55 Цитата(3m-soft @ Sep 25 2007, 14:21)... Sep 25 2007, 10:38 _basile Цитата(3m-soft @ Sep 25 2007, 14:41)... Sep 25 2007, 11:07 3m-soft Цитата(alexander55 @ Sep 25 2007, 15:49) ... Sep 25 2007, 11:07 alexander55 Цитата(3m-soft @ Sep 25 2007, 15:07)... Sep 25 2007, 11:13 3m-soft За счет Fractional baud rate у меня ошибка 0,0006%... Sep 25 2007, 11:51 _basile Цитата(3m-soft @ Sep 25 2007, 15:51)... Sep 25 2007, 19:03 3m-soft Не согласится ли кто из умных форума сего посмотре... Sep 25 2007, 13:30 amw Вероятно порблема в том, что передача или прием да... Sep 25 2007, 15:17 3m-soft Цитата(amw @ Sep 25 2007, 20:17) Вероятно... Sep 25 2007, 15:40 Сергей Борщ Цитата(3m-soft @ Sep 25 2007, 18:40)... Sep 25 2007, 19:16 Alechek Цитата(3m-soft @ Sep 25 2007, 21:40)... Sep 26 2007, 12:31 3m-soft Осенило меня совсем отключить MAM, а не как прежде... Sep 26 2007, 11:38 zltigo Цитата(3m-soft @ Sep 26 2007, 14:38)... Sep 26 2007, 11:47 Zdrav http://tech.groups.yahoo.com/group/lpc2000/message... Sep 28 2007, 17:00 Zdrav Посмотрел исходник. У вас каждьй spurrious IRQ три... Sep 29 2007, 04:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|