16 885
правок
(Отметить эту версию для перевода) |
(Удалённая из перевода страница) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
'''Внимание! Эта страница относится только к очень старой версии устройства. Для всех новых смотрите статью [[Special:MyLanguage/1-Wire|1-Wire]].''' | '''Внимание! Эта страница относится только к очень старой версии устройства. Для всех новых смотрите статью [[Special:MyLanguage/1-Wire|1-Wire]].''' | ||
==Подключение== | ==Подключение== | ||
1-wire датчики можно подключать к линиям GPIO Wiren Board. | 1-wire датчики можно подключать к линиям GPIO Wiren Board. | ||
Существует два типа подключения датчиков: обычный и с использованием паразитного питания: | Существует два типа подключения датчиков: обычный и с использованием паразитного питания: | ||
* обычное подключение датчиков: подключите линию GND к земле, линию DATA к [[Special:MyLanguage/Список 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. | ||
Строка 20: | Строка 14: | ||
==Настройка Device Tree== | ==Настройка Device Tree== | ||
После подключения 1-wire сети к какому-либо GPIO необходимо внести соответствующие изменения в файл Device Tree. См. [[Special:MyLanguage/Пересборка Device Tree|Пересборка Device Tree]] | После подключения 1-wire сети к какому-либо GPIO необходимо внести соответствующие изменения в файл Device Tree. См. [[Special:MyLanguage/Пересборка Device Tree|Пересборка Device Tree]] | ||
<pre> | <pre> | ||
onewire@0 { | onewire@0 { | ||
Строка 33: | Строка 25: | ||
</pre> | </pre> | ||
Соответствующую запись необходимо добавить внутри корневой секции. | Соответствующую запись необходимо добавить внутри корневой секции. | ||
Параметр <b>gpios</b> указывает на используемый GPIO. В данном примере это GPIO номер <b>2</b> т.е. клеммник номер 9 (см. [[Special:MyLanguage/Список GPIO|Список GPIO]]). Подробнее про формат поля <b>gpios</b>: [[Special:MyLanguage/Работа с GPIO|Работа с GPIO]] | Параметр <b>gpios</b> указывает на используемый GPIO. В данном примере это GPIO номер <b>2</b> т.е. клеммник номер 9 (см. [[Special:MyLanguage/Список GPIO|Список GPIO]]). Подробнее про формат поля <b>gpios</b>: [[Special:MyLanguage/Работа с GPIO|Работа с GPIO]] | ||
==Работа с 1-wire в Linux | ==Работа с 1-wire в Linux | ||
Для работы используется ядерный интерфейс в <b>/sys/bus/w1/</b>: | Для работы используется ядерный интерфейс в <b>/sys/bus/w1/</b>: | ||
<pre> | <pre> | ||
root@wirenboard:~# ls /sys/bus/w1/ | root@wirenboard:~# ls /sys/bus/w1/ | ||
Строка 48: | Строка 37: | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
root@wirenboard:~# ls /sys/bus/w1/devices/ | root@wirenboard:~# ls /sys/bus/w1/devices/ | ||
Строка 54: | Строка 42: | ||
</pre> | </pre> | ||
Здесь <b>28-000002dc22b0</b> - идентификаторы обнаруженных устройств на шине, а <b>w1_bus_master1</b> - ведущие устройства 1-wire, каждый из которых соответствует одному GPIO. | Здесь <b>28-000002dc22b0</b> - идентификаторы обнаруженных устройств на шине, а <b>w1_bus_master1</b> - ведущие устройства 1-wire, каждый из которых соответствует одному GPIO. | ||
Список обнаруженных устройств можно также посмотреть командой: | Список обнаруженных устройств можно также посмотреть командой: | ||
<pre> | <pre> | ||
Строка 67: | Строка 53: | ||
</pre> | </pre> | ||
По-умолчанию сканирование шины происходит раз в 10 секунд. | По-умолчанию сканирование шины происходит раз в 10 секунд. | ||
Строка 73: | Строка 58: | ||
==Работа с температурными датчиками== | ==Работа с температурными датчиками== | ||
За работу с датчиками температуры отвечает модуль ядра w1_therm. | За работу с датчиками температуры отвечает модуль ядра w1_therm. | ||
Загрузим модуль (автозагрузка отключена намеренно): | Загрузим модуль (автозагрузка отключена намеренно): | ||
<pre> | <pre> | ||
Строка 84: | Строка 67: | ||
</pre> | </pre> | ||
Теперь в директориях устройств-термометров появляется файл w1_slave: | Теперь в директориях устройств-термометров появляется файл w1_slave: | ||
<pre> | <pre> | ||
root@wirenboard:~# ls /sys/bus/w1/devices/28-000004a7d3f9/ | root@wirenboard:~# ls /sys/bus/w1/devices/28-000004a7d3f9/ | ||
Строка 93: | Строка 74: | ||
</pre> | </pre> | ||
С его помощью можно считывать показания термометра: | С его помощью можно считывать показания термометра: | ||
<pre> | <pre> | ||
root@wirenboard:~# cat /sys/bus/w1/devices/28-000004a7d3f9/w1_slave | root@wirenboard:~# cat /sys/bus/w1/devices/28-000004a7d3f9/w1_slave | ||
Строка 103: | Строка 82: | ||
</pre> | </pre> | ||
Здесь <b>t=25187</b> температура в тысячных долях градусов Цельсия, т.е. <b>25.187C</b>. | Здесь <b>t=25187</b> температура в тысячных долях градусов Цельсия, т.е. <b>25.187C</b>. | ||
Последовательно прочитаем показания всех термометров на шине: | Последовательно прочитаем показания всех термометров на шине: | ||
<pre> | <pre> | ||
Строка 120: | Строка 97: | ||
99 01 4b 46 7f ff 07 10 79 t=25562 | 99 01 4b 46 7f ff 07 10 79 t=25562 | ||
</pre> | </pre> | ||