Всем привет! Прошу помочь в одном вопросе.
Есть контроллер RS232>1-Wire DS2480B, подключённый к микроконтроллеру AVR. Компилятор - WinAVR (это к тому, что у него нет библиотеки для работы с 1-Wire).
К нему подключён термодатчик (в принципе не важно какой) DS18B20 с уже известным серийным номером (который 8 байт).
Сейчас понадобилось подключать к этой шине таблетку DS1990A для охранных функций.
Но для её идентификации нужно сначала её запомнить в микроконтроллере для последующих сравнений. Но таблетка эта - не единственная. Т.е. серийный номер заранее не известен.
Термодатчик для программирования таблетки отключать не предполагается.
Алгоритм нужен примерно такой: периодически опрашивается термодатчик. Тут прикладывают таблетку. Микроконтроллер считывает её номер и что-то делает в зависимости от того, совпал он с уже хранящим е ЕЕПРОМ или нет, при этом возобновляется опрос термодатчика.
В другом случае, когда нужно запомнить новую таблетку, предполагается так: периодически опрашивается термодатчик. Тут нажимают кнопку программирования и в течении 5 секунд микроконтроллер ждёт прикладывания новой таблетки. После того как её приложили и считали её номер или по прошествии 5 секунд возобновляется опрос термодатчика.
Искал в документации на DS2480B и в описаниях стандартов 1-Wire команду для "временного отключения от шины с последующим включением", не нашёл. А она в данном случае очень пригодилась бы.
Единственный вариант, который придётся использовать - поиск устройств на шине. Но как раз им не хочется заморачиваться, ибо plug&play на шине 1-Wire ещё не освоил и кажется будет много возни с ним.
Вопрос: есть ли ещё варианты такой совместной работы кроме того, в котором придётся реализовывать поиск устройсв на шине? Например, может сущствует какия-то команда временного отключения известного устройства от шины?