Общаться ведущий с ведомым будут по токовой петле – 0/20мА. Сигнал - падение на резисторе 16Ом, падение фиксирую встроенным компаратором. Падение получается 320мВ. При максимальном количестве ведомых (80) сопротивление (без учёта сопротивления проводников) = 1280 Ом. Напряжение на источнике тока для петли получатся 25-27 В.
Компаратор генерирует прерывание по возрастающему и по спадающему фронту. Считаем количество тактов таймера. Если время импульса 125 мкС +/-15% – логическая единица, 250 мкС+/- 15% – логический ноль. Пауза между импульсами 125мкС.
В итоге скорость передачи ~3.2KBs. Вполне хватает, при 80-ти ведомых, что бы всем дать по 5-ти байтной команде за секунду.
Все tiny 2313 тактируется от внутреннего осциллятора.
На макете собрал ведущего и ведомого, воткнул между ними 40 метров витой пары, подавал меандр 4KHz, по прерыванию от компаратора инвертировал один из выходов контроллера, смотрел осциллографом - на выходе тот же сигнал что и подавал, но не всегда, иногда компаратор не срабатывает.
Предыстория: Есть у меня маленький магазин самообслуживания, обслуга не всегда вовремя меняет бумажные ценники, или просто путаются. Штраф большой. Я программист по образованию, на контроллерах всякие штуки делал. С длинными линиями дела не имел, что такое индуктивность и ёмкость линии и как это влияет на работу для меня страшный матан.
Сам вопрос: я на верном пути? Какие подводные камни встретятся? Не повышибает ли выходы контроллера какая-нибудь наводка.
Заранее очень благодарен за ответы.
Схему прилагаю.





