|
я синхронизируюсь по таймауту.
на слэйве линия клоков подвязана к внешнему прерыванию. Таймаут запускаю по приходу первого клока. Сбрасывается таймаут по приходу байта, выключается по приходу всей посылки. Далее готовиться ответ и ждется начало получения запроса от мастера сколь угодно долго.
Следовательно, чтобы гарантированно засинхронизироваться мастеру нужно послать один байт и выждать время таймаута. Но синхронизацию вначале проводить не стоит, лучше послать посылку получить ответ. И если ответ не правильный(CRC), тогда синхронизироваться.
Есть в обмене еще одна доп веревка для подтверждения слэйвом возможности принять байт. Это необходимо для обеспечения макс. возможной скорости обмена. От этой веревки можно избавиться, но тогда нужно подбирать задержки.
Всего, Иван.
E-mail: info@telesys.ru