Как задать / изменить точность DS18B20

Датчики 18b20 имеют регистр resolution с помощью которого можно задать разрешение преобразования температуры в диапазоне 9-12 бит. Как это сделать для подключенных к Wirenboard датчиков? Какой модуль / драйвер используется для работы с 1wire датчиками?

Вчера обсудили этот вопрос в https://t.me/wirenboard. Для истории скопирую оттуда:

Lefskiy, [05.05.20 16:00]
[In reply to Евгений Богер]
это для 12ти битной версии? а снизить разрядность можно в настройках до 10 бит?

Евгений Богер, [05.05.20 16:01]
через интерфейсик точно нет. Можно ли это сделать в линуксе - не помню, надо почитать в документации на линуксы

Lefskiy, [05.05.20 16:01]
[In reply to Евгений Богер]
а. это родной драйвер 1wire?

Евгений Богер, [05.05.20 16:01]
да-да

Евгений Богер, [05.05.20 16:02]
Writing a value between 9 and 12 to the sysfs w1_slave file will change the
precision of the sensor for the next readings. This value is in (volatile)
SRAM, so it is reset when the sensor gets power-cycled.

To store the current precision configuration into EEPROM, the value 0
has to be written to the sysfs w1_slave file. Since the EEPROM has a limited
amount of writes (>50k), this command should be used wisely.

Евгений Богер, [05.05.20 16:02]
https://www.kernel.org/doc/Documentation/w1/slaves/w1_therm

Lefskiy, [05.05.20 16:03]
[In reply to Евгений Богер]
скриптом в кроне всем девайсам пристарте писать надо похоже

Евгений Богер, [05.05.20 16:03]
так видимо можно один раз в жизни для датчика это сделать, судя по второму абзацу

Спасибо, все получилось.
Поскольку датчиков у меня не сильно много, запустил команды вручную для каждого.
echo 10 >/sys/bus/w1/devices/28-0301a2790a52/w1_slave
echo 0 >/sys/bus/w1/devices/28-0301a2790a52/w1_slave

1 лайк