http://www.forum.getchip.net/ |
|
Устройства iButton. http://www.forum.getchip.net/viewtopic.php?f=18&t=806 |
Страница 1 из 1 |
Автор: | SVN [ 29 июл 2017, 10:14 ] |
Заголовок сообщения: | Устройства iButton. |
Надеюсь, что в этом топике будут размещаться различные датчики для однопроводной шины. Вот первый рабочий вариант дискретного датчика для однопроводной (1-Wire) шины. Код написан для МК ATtiny13A. Тактируется на частоте 9,6 МГц от внутреннего генератора. Уникальный номер датчика 0xE5000003372FC040. 1.png [ 52.67 КБ | Просмотров: 10217 ] Так как мой код поиска датчиков на шине по уникальным номерам не совершенен, то опытным путём был найден код семейства (0х40) который совместно с датчиками DS18B20 определяется без ошибок. Что касается данного кода семейства, то такой номер не определён для устройств iButton. Таким образом данный номер гарантированно не встретится у других устройств. Схема: 2.png [ 11.73 КБ | Просмотров: 10217 ] К порту РВ0 подключается сухой контакт. К порту РВ1 шина (1-Wire) с подтягивающим резистором (4к7) к положительному потенциалу напряжения питания. К порту РВ4 можно подключить светодиод для индикации состояния контактов. Данный датчик опрашивается так же как и DS18B20… датчик понимает команды РОМ : SEARCH ROM (0xF0) – поиск кода ром; READ ROM (0x33) – чтение ром; MATCH ROM (0x55) – соответствия ром; SKIP ROM (0xCC) – пропуск ром. Из функциональных команд поддерживаются: CONVERT (0x44) – конвертирования значений, и READ MEMORY (0xBE) – чтение памяти датчика. При поступлении команды 0х44, датчик прижимает шину к «земле» и производит опрос входа сухого контакта. В зависимости от состояния контакта производится занесение соответствующего значения в память датчика с вычислением CRC. После выполнении соответствующих процедур шина отпускается. При поступлении команды 0хВЕ, датчик выдаёт 9 байт. Два младших байта, это информация о состоянии контакта датчика (по аналогии значения температуры у DS18B20), девятый байт контрольная сумма CRC вычисленная из первых восьми байт. По аналогии с термометром DS18B20, значение 0,0 «градусов» будет соответствовать разомкнутому контакту. Значение 10,0 «градусов» - соответствует при замкнутом контакте. ![]() Скачиваний: 1274 |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |