Здрасте.
Появилась необходимость определения скорости, принимаемого потока по ЮСАРТ-у.
Не давно работал с расходомером ссылка так вот,
он автоматически подбирает скорость паритет число стоп бит.
А как это можно сделать на Атмеге, хотя бы скорость?
И вообще как это реализуется в крутых контроллерах?
Спасибо..
вообще USART - это синхронный протокол) думаю вы имеете в виду UART)
не знаю как в крутых контроллерах это реализуется)
при обмене данными, отправляющая сторона может ждать положительного ответа от принимающего. пока нет положительного ответа, отправляющая сторона отправляет синхробайт по которому, с помощью, например, внешнего прерывания можно определить скорость передающего.
например при передаче байта 0x80 ножка Tx будет находиться на уровне лог."0" в течение времени 8t, где t - время передачи одного бита. если этот байт принять за синхробайт, можно по нему определить скорость передачи.
Вроде правильно написал Universal Synchronous and Asynchronous serial Receiver and Transmitter (USART)
Универсальный синхронный и асинхронный последовательный приемопередатчик (УСАПП) предназначен для организации гибкой последовательной связи.
Стартовый бит лог 0, потом старший бит 0x80 установит в лог ноль ТХ, и ни как не будет 8 т.
Да точно, 8 т получается, извиняюсь.
Я думал может измерять периоды изменений лог состояний. И после подбора скорости, если нет ошибок кадра приема, оставить эту скорость.