b-volkov 0 24 сентября, 2020 Опубликовано 24 сентября, 2020 · Жалоба Подходящую специализированную тему не нашел, по этому спрошу здесь, поскольку делаю на МК :) И так, надо подключить несколько DS18b20 к одной шине, а для этого нужен режим MATCH_ROM. Вроде бы все делаю по даташиту. 64-битный код предварительно считал командой READ_ROM и получил вполне правдоподобное значение. Потом дал команду MATCH_ROM, за ней передал полученные ранее 8 байт из ROM и затем команду чтения. Читаются все единицы, т.е. датчик не опознал код и не передал ни каких данных :(. Все перепроверил, записал посылку на осциллограф и разобрал ее побитно - все правильно. В режиме SKIP_ROM все работает нормально. Вот побайтнная последовательность: RESET 0x55 команда MATCH_ROM 0x28 1 байт 64-битного кода 0x2d 0xab 0x29 0x09 0x00 0x00 0x2e 8 байт 64-битного кода (CRC) 0xbe команда READ_RAM 0xff дальше читаются все единицы 0xff... Если кто работал с датчиком в этом режиме - помогите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 24 сентября, 2020 Опубликовано 24 сентября, 2020 · Жалоба Последовательность выглядит правильно. А вот контрольная сумма у адреса судя по https://tomeko.net/online_tools/crc8.php?lang=en и https://crccalc.com одинаково не сходится. Вы ошиблись или при чтении адреса, или при его копировании. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
b-volkov 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба Спасибо! В самом деле неправильно считывал ROM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться