1-Wire в Wiren Board 2.8: различия между версиями

Материал из Wiren Board
(Подготовка страницы к переводу)
Строка 1: Строка 1:
'''Внимание! Эта страница относится только к очень старой версии устройства. Для всех новых смотрите статью [[1-Wire]].'''
<languages/>
<translate>
'''Внимание! Эта страница относится только к очень старой версии устройства. Для всех новых смотрите статью [[Special:MyLanguage/1-Wire|1-Wire]].'''
 
==Подключение==
==Подключение==
1-wire датчики можно подключать к линиям GPIO Wiren Board.
1-wire датчики можно подключать к линиям GPIO Wiren Board.


Существует два типа подключения датчиков: обычный и с использованием паразитного питания:
Существует два типа подключения датчиков: обычный и с использованием паразитного питания:
* обычное подключение датчиков: подключите линию GND к земле, линию DATA к [[Список GPIO|GPIO]], линию VCC к питанию +3.3V или +5V
* обычное подключение датчиков: подключите линию GND к земле, линию DATA к [[Special:MyLanguage/Список GPIO|GPIO]], линию VCC к питанию +3.3V или +5V
* подключение с использованием паразитного питания: подключите линию GND к земле, линию DATA к GPIO. Линия VCC должна быть соединена с линией GND.
* подключение с использованием паразитного питания: подключите линию GND к земле, линию DATA к GPIO. Линия VCC должна быть соединена с линией GND.


В любом случае рекомендуется использование внешнего подтягивающего резистора номиналом 2-10 кОм между линией DATA и напряжением питания +3.3V или +5V.
В любом случае рекомендуется использование внешнего подтягивающего резистора номиналом 2-10 кОм между линией DATA и напряжением питания +3.3V или +5V.






==Настройка Device Tree==
==Настройка Device Tree==
После подключения 1-wire сети к какому-либо GPIO необходимо внести соответствующие изменения в файл Device Tree. См. [[Пересборка Device Tree]]
 
После подключения 1-wire сети к какому-либо GPIO необходимо внести соответствующие изменения в файл Device Tree. См. [[Special:MyLanguage/Пересборка Device Tree|Пересборка Device Tree]]


<pre>
<pre>
Строка 22: Строка 28:


Соответствующую запись необходимо добавить внутри корневой секции.
Соответствующую запись необходимо добавить внутри корневой секции.
Параметр <b>gpios</b> указывает на используемый GPIO. В данном примере это GPIO номер <b>2</b> т.е. клеммник номер 9 (см. [[Список GPIO]]). Подробнее про формат поля <b>gpios</b>: [[Работа с GPIO]]
Параметр <b>gpios</b> указывает на используемый GPIO. В данном примере это GPIO номер <b>2</b> т.е. клеммник номер 9 (см. [[Special:MyLanguage/Список GPIO|Список GPIO]]). Подробнее про формат поля <b>gpios</b>: [[Special:MyLanguage/Работа с GPIO|Работа с GPIO]]




Строка 50: Строка 56:


По-умолчанию сканирование шины происходит раз в 10 секунд.
По-умолчанию сканирование шины происходит раз в 10 секунд.






==Работа с температурными датчиками==
==Работа с температурными датчиками==
За работу с датчиками температуры отвечает модуль ядра w1_therm.  
За работу с датчиками температуры отвечает модуль ядра w1_therm.  


Строка 91: Строка 99:
99 01 4b 46 7f ff 07 10 79 t=25562
99 01 4b 46 7f ff 07 10 79 t=25562
</pre>
</pre>
</translate>

Версия 16:45, 24 апреля 2019

Внимание! Эта страница относится только к очень старой версии устройства. Для всех новых смотрите статью 1-Wire.

Подключение

1-wire датчики можно подключать к линиям GPIO Wiren Board.

Существует два типа подключения датчиков: обычный и с использованием паразитного питания:

  • обычное подключение датчиков: подключите линию GND к земле, линию DATA к GPIO, линию VCC к питанию +3.3V или +5V
  • подключение с использованием паразитного питания: подключите линию GND к земле, линию DATA к GPIO. Линия VCC должна быть соединена с линией GND.

В любом случае рекомендуется использование внешнего подтягивающего резистора номиналом 2-10 кОм между линией DATA и напряжением питания +3.3V или +5V.



Настройка Device Tree

После подключения 1-wire сети к какому-либо GPIO необходимо внести соответствующие изменения в файл Device Tree. См. Пересборка Device Tree

	onewire@0 {
		compatible = "w1-gpio";
		gpios = <&gpio0 2 0>;
	};

Соответствующую запись необходимо добавить внутри корневой секции. Параметр gpios указывает на используемый GPIO. В данном примере это GPIO номер 2 т.е. клеммник номер 9 (см. Список GPIO). Подробнее про формат поля gpios: Работа с GPIO


==Работа с 1-wire в Linux Для работы используется ядерный интерфейс в /sys/bus/w1/:

root@wirenboard:~# ls /sys/bus/w1/
devices  drivers  drivers_autoprobe  drivers_probe  uevent
root@wirenboard:~# ls /sys/bus/w1/devices/
28-000002dc22b0  28-000004a7d3f9  28-000004d01255  28-000004d11d72  w1_bus_master1  w1_bus_master2  w1_bus_master3

Здесь 28-000002dc22b0 - идентификаторы обнаруженных устройств на шине, а w1_bus_master1 - ведущие устройства 1-wire, каждый из которых соответствует одному GPIO.

Список обнаруженных устройств можно также посмотреть командой:

root@wirenboard:~# cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves
28-000004a7d3f9
28-000002dc22b0
28-000004d11d72
28-000004d01255

По-умолчанию сканирование шины происходит раз в 10 секунд.



Работа с температурными датчиками

За работу с датчиками температуры отвечает модуль ядра w1_therm.

Загрузим модуль (автозагрузка отключена намеренно):

root@wirenboard:~# modprobe w1_therm

Теперь в директориях устройств-термометров появляется файл w1_slave:

root@wirenboard:~# ls  /sys/bus/w1/devices/28-000004a7d3f9/
driver	id  name  power  subsystem  uevent  w1_slave

С его помощью можно считывать показания термометра:

root@wirenboard:~# cat  /sys/bus/w1/devices/28-000004a7d3f9/w1_slave 
93 01 4b 46 7f ff 0d 10 32 : crc=32 YES
93 01 4b 46 7f ff 0d 10 32 t=25187

Здесь t=25187 температура в тысячных долях градусов Цельсия, т.е. 25.187C.


Последовательно прочитаем показания всех термометров на шине:

root@wirenboard:~# for i in /sys/bus/w1/devices/28-*; do cat $i/w1_slave; done
c4 01 4b 46 7f ff 0c 10 3b : crc=3b YES
c4 01 4b 46 7f ff 0c 10 3b t=28250
97 01 4b 46 7f ff 09 10 1c : crc=1c YES
97 01 4b 46 7f ff 09 10 1c t=25437
9a 01 4b 46 7f ff 06 10 78 : crc=78 YES
9a 01 4b 46 7f ff 06 10 78 t=25625
99 01 4b 46 7f ff 07 10 79 : crc=79 YES
99 01 4b 46 7f ff 07 10 79 t=25562