ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
9 ноября
1553166 Топик полностью
LightElf (Сегодня, 16:39, просмотров: 23) ответил pavel2000 на Открыл для себя новое в UART - "break condition", когда линия/шина удерживается в состоянии "0" на время, большее времени передачи символа. Но сначала увидел вариант, когда передача "неправильного" стоп-бита, и, соответственно, возникновение frame error на приемнике, используется мастером как признак конца передачи. На диаграмме логического анализатора это выглядит так (снимаемый сигнал инвертирован):
Это не от архитектуры проца зависит, а от конструкции конкретного UART. Обычно эта способность называется LIN-совместимостью. Бо протокол LIN эту штуку широко использует. 

1) Прием.

Некоторые UART умеют детектировать состояние Break и сигнализировать отдельным битом/прерыванием. Остальные отдадут нулевой байт и Frame Error.

2) Передача.

Если UART не поддерживает формирование Break аппаратно, то либо рукопашное шевеление ножкой по таймеру, либо уменьшить в полтора раза скорость UART и отправить нулевой байт. По завершении передачи этого байта скорость вернуть на место и передавать данные. Удобно, потому что UART сам таймером работает.

Не надо делать мне как лучше, оставьте мне как хорошо