Ответ: А в чем может быть дело, если на вход UART идет непрерывная последовательность данных (от многих источников) и через некоторое время прием прекращается - UART "затыкается".
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Vach
22 ноября 2006 г. 11:29
В ответ на:
Дело в том, что если программная реализация небрежная, т.е. не учитывает всех нюансов, то и сброс автомата будет происходить гораздо реже, и самосинхронизация наступит позже и туже, и протоколу в итоге уже нечего будет разгребать
отправлено =AVR= 22 ноября 2006 г. 04:02
UART - в сети RS-485, данные приходят от многих источников и не синхронизированы.
Составить ответ
|||
Конференция
|||
Архив
Ответы
а к чему этот UART приделан? поди буфер переполняется.
—
pau62
(22.11.2006 11:47
88.86.64.164
,
пустое
)
Ответ: UART приделан к контроллеру MOPS ф. Kontron. Включение или выключение буфера не изменяет характера затыка. Принимается несколько десятков байт и глохнет, затем переинициализация UART и снова можно принять несколько десятков байт.
—
Vach
(22.11.2006 14:49
62.244.12.24
, 162 байт)
сам UART тут точно ни при чем
—
Тумблер
(22.11.2006 11:39
194.190.161.241
, 610 байт)
Ответ: Согласен, но 1) почему для продолжения приема помогает переинициализация UART; 2) почему на входе UART остаются данные, а прием пропадает 3) сам контроллер мы не дергаем для продолжения приема.
—
Vach
(22.11.2006 15:03
62.244.12.24
,
пустое
)
Ну например у PIC16f877 UART не помню уже при каких ошибках при приеме вставал раком и не принимал ничего до выключения/включения (програмного)
—
pau62
(22.11.2006 16:16
88.86.64.164
,
пустое
)
То же самое будет и в других семействах МК - и в документации это описано. Нужно обязательно читать (и иногда сбрасывать) ВСЕ флаги, а не только флаг приема, да и регистр данных в иных МК нужно читать несколько раз подряд - до очистки иначе не доступного FIFO
—
=AVR=
(22.11.2006 16:22
80.92.96.19
,
пустое
)
Ерунда. При грамотном и корректном коде никакая "ситуация постоянной ошибки" не возможна, а уж собственно UART тут абсолютно ни при чем, и паузы ему нужны как мертвому припарки
—
=AVR=
(22.11.2006 12:24
80.92.96.19
,
пустое
)
А ты сам - пробовал посмотреть..
—
Тумблер
(22.11.2006 14:32
194.190.161.241
, 145 байт)
Не только "пробовал посмотреть", но и сам делал UARTы и на МК, и на CPLD - никаких пауз не требовалось. А чтобы исключить такие ситуации, как с "U", нужно код писать так, как я упоминал выше
—
=AVR=
(22.11.2006 14:46
80.92.96.19
,
пустое
)
это часто так бывает.
—
Тумблер
(22.11.2006 17:47
62.33.241.14
, 65 байт)
Если я - студент, то в этих "лабах" я уже живу, на них же езжу, ими же кормлюсь, на них отдыхаю и т.п. И теорию могу качественно преподать многим профессорам :)
—
=AVR=
(22.11.2006 18:31
80.92.96.19
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
Тема (обязательно):
Сообщение:
Ссылка на URL:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание