ADC: различия между версиями

Материал из Wiren Board
Метка: visualeditor
Строка 8: Строка 8:
Специальный драйвер wb-homa-adc транслирует значение в систему [[MQTT]], и его можно получать оттуда.
Специальный драйвер wb-homa-adc транслирует значение в систему [[MQTT]], и его можно получать оттуда.


Также значение можно получать в ручном режиме (убедитесь, что демон wb-homa-adc не запущен):  
Также значение можно получать в ручном режиме: [[Низкоуровневая работа с ADC]].
 
*Выбор канала  :
 
<pre>
wb-adc-set-mux <номер канала>
или
wb-adc-set-mux <A1|A2|A3|A4|R1|R2|R3|R4> (для WB Smart Home)
или
wb-adc-set-mux tb<номер клеммника> (для WB2.8)
или
wb-adc-set-mux vin  (для WB2.8)
</pre>
 
*Чтение показаний:
 
<pre>
root@wirenboard:~# cat /sys/bus/iio/devices/iio\:device0/in_voltage1_raw
3838
</pre>
или
 
<pre>
root@wirenboard:~# wb-adc-get-value
3838
</pre>
 
*Чтение показаний c предварительной установкой канала:
<pre>
wb-adc-read-channel <A1|A2|A3|A4|R1|R2|R3|R4> (для WB Smart Home, опции аналогичны wb-adc-set-mux)
</pre>
 
 
=== Пример ===
* Устанавливаем ADC на измерение напряжения на клеммнике A3:
<pre>
root@wirenboard:~# wb-adc-set-mux A3
</pre>
 
* Считываем сырое значение ADC:
<pre>
root@wirenboard:~# wb-adc-get-value
2523
</pre>
 
* Конвертируем значение
<pre>
V = 2523 * 4.97 mV = 12539 mV = 12.54 V
</pre>
 


== Измерение сопротивлений ==
== Измерение сопротивлений ==
Строка 71: Строка 22:




В ручном режиме (для WB 2.8 и WB 3.5):
В ручном режиме: см. [[Низкоуровневая работа с ADC]].
<pre>
 
cat /sys/bus/iio/devices/iio:device0/in_voltage7_raw
</pre>
Для преобразования в вольты: значение/ 4095.0 * 1.85 * 4 .


Смотрите тему на [http://contactless.ru/forums/topic/%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81-%D0%B0%D0%BA%D0%BA%D1%83%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%B0-%D0%B2-linux/ форуме].


== Технические детали реализации АЦП ==
== Технические детали реализации АЦП ==
Wiren Board версий 2,3 и 4 имеет 8 каналов АЦП, которые мультиплексированы в один канал процессора (LRADC1). Каналы мультиплексирования указаны в таблице [[Wiren Board 4:Список GPIO]]
 
===Опорное напряжение===
Wiren Board версий 2,3 и 4 имеет 8 каналов АЦП, которые мультиплексированы в один канал процессора (LRADC1). Каналы мультиплексирования указаны в таблице [[Wiren Board 4:Список GPIO]].
Опорное напряжение LRADC составляет 1.85V. Возможна программная установка делителя 2:1 внутри канала
 
Wiren Board 5 использует 8 различных каналов АЦП, которые подключены к отдельным каналам процессора. Рейка 4В подключена к каналу BAT (LRADC7), кроме этого измеряется
напряжение на 2-х резистивных входах, 4 универсальных входах A1-A4 и входное напряжение (см. таблицу ниже).
 
Каналы ADC, обслуживающие входы R1 и R2 имеют встроенный независимый источник тока, который используется для измерения сопротивления, подключенного к каналу.
Точность источника тока: 5%. См. [[Калибровка аналоговых входов]].
 
 
 
 
=== Основные каналы===
=== Основные каналы===
Часть каналов АЦП выведена на клеммы параллельно с транзисторами управления низковольтной нагрузки. '''Убедитесь''', что вы явно закрыли соответствующий FET помощью GPIO перед использованием АЦП. Подробнее смотрите [[Мультиплексирование портов]]
Часть каналов АЦП выведена на клеммы параллельно с транзисторами управления низковольтной нагрузки. '''Убедитесь''', что вы явно закрыли соответствующий FET помощью GPIO перед использованием АЦП. Подробнее смотрите [[Мультиплексирование портов]]
=== Перевод значений ===
 
На канале должен стоять делитель на два (пока нет).
Формула для перевода:
<pre>
V_measured = N / 4095 * 1.85V * (R1+R2)/R2
</pre>
=== Списки АЦП для разных устройств ===
=== Списки АЦП для разных устройств ===
==== WB5 ====
==== WB5 ====
{| border="1"
{| border="1"

Версия 22:02, 7 ноября 2015

Как получить напряжение с АЦП

  1. Выберите клемму, к которой можно подключить ваш источник, исходя из максимального допустимого напряжения (смотрите таблицу ниже).
  2. Большинство клеммников с функциями АЦП могут выполнять две функции: АЦП и управление низковольтной нагрузкой. Перед тем, как измерить напряжение на АЦП, поставьте соответствующий выход управления низковольтной нагрузкой в положение "выключено". Например, если вы подключаетесь к клемме A1, выключите в веб-интерфейсе A1_OUT (раздел Relays & FETs).
    Подробнее смотрите Мультиплексирование портов
  3. Подключите ваш источник к клемме. Значение напряжения сразу появится в веб-интерфейсе в устройстве ADCs. Также значение транслируется в систему сообщений MQTT.

Использование значения из внешних программ

Специальный драйвер wb-homa-adc транслирует значение в систему MQTT, и его можно получать оттуда.

Также значение можно получать в ручном режиме: Низкоуровневая работа с ADC.

Измерение сопротивлений

См. ADC:Измерение сопротивлений - технические детали

Входное напряжение

Демон wb-homa-adc транслирует значение в очередь сообщений MQQT в топик /devices/wb-adc/controls/Vin . Таким образом, значение отображается в веб-интерфейсе как канал Vin устройства ADCs

Напряжение аккумулятора

Демон wb-homa-adc транслирует значение в очередь сообщений MQTT в топик /devices/wb-adc/controls/BAT . Таким образом, значение отображается в веб-интерфейсе как канал BAT устройства ADCs


В ручном режиме: см. Низкоуровневая работа с ADC.


Технические детали реализации АЦП

Wiren Board версий 2,3 и 4 имеет 8 каналов АЦП, которые мультиплексированы в один канал процессора (LRADC1). Каналы мультиплексирования указаны в таблице Wiren Board 4:Список GPIO.

Wiren Board 5 использует 8 различных каналов АЦП, которые подключены к отдельным каналам процессора. Рейка 4В подключена к каналу BAT (LRADC7), кроме этого измеряется напряжение на 2-х резистивных входах, 4 универсальных входах A1-A4 и входное напряжение (см. таблицу ниже).

Каналы ADC, обслуживающие входы R1 и R2 имеют встроенный независимый источник тока, который используется для измерения сопротивления, подключенного к каналу. Точность источника тока: 5%. См. Калибровка аналоговых входов.



Основные каналы

Часть каналов АЦП выведена на клеммы параллельно с транзисторами управления низковольтной нагрузки. Убедитесь, что вы явно закрыли соответствующий FET помощью GPIO перед использованием АЦП. Подробнее смотрите Мультиплексирование портов

Списки АЦП для разных устройств

WB5

клеммник Делитель Канал АЦП Формула для пересчета Итоговая формула (без делителя) V макс. измеряемое (с делителем) комментарии
A1-A4 88k7/12k 1,2,3,4 N / 4095 * 1.85V * 8.39 V = N * 3.80 mV 31V
R1-R2 6k/33k 6,0 N / 4095 * 1.85V * 1.18 V = N * 0.535 mV 3.7V
4В/li_pol - 7 N / 4095 * 1.85V * 4 V = N * 1.807 mV - на линии 4 В
Vin 88k7/12k 5 N / 4095 * 1.85V * 8.39 V = N * 3.80 mV 31V входное напряжение, iio channel 5

WB4

клеммник Делитель Формула для пересчета Итоговая формула (без делителя) V макс. измеряемое (с делителем) комментарии
A1-A3 100k/90.9k N / 4095 * 1.85V * 2.100 V = N * 0.949 mV 7.4V
A4-A5 100k/11.86k N / 4095 * 1.85V * 9.43 V = N * 4.26 mV 34.4V
R1-R2 3k15/1M N / 4095 * 1.85V * 1.003 V = N * 0.426 mV 3.7V
li_pol 100k/90.9k N / 4095 * 1.85V * 2.100 V = N * 0.949 mV - на аккумуляторе
Vin 33k/4k51 N / 4095 * 1.85V * 8.32 V = N * 3.76 mV 30.6V входное напряжение, iio channel 0

WB3.5

клеммник Делитель Формула для пересчета Итоговая формула V max комментарии
A1-A4 220k/22k V = N / 4095 * 1.85V * 11 V = N * 4.97 mV
R1-R4 - V = N / 4095 * 1.85V V = N * 0.452 mV
Vin 33k/4k53 N / 4095 * 1.85V * 8.28 V = N * 3.74 mV 30V входное напряжение, iio channel: 0


WB NETMON-1

клеммник Делитель Формула для пересчета Итоговая формула (без делителя) V макс. измеряемое (с делителем) комментарии
A1-A8 31k/4.68k N / 4095 * 1.85V * 7.627 V = N * 3.446 mV 20V
Vin 12k/1k N / 4095 * 1.85V * 13 V = N * 5.873 mV входное напряжение


WB2.8

клеммник Делитель Формула для пересчета Итоговая формула комментарии
A1-A7 12K/33K V = N / 4095 * 1.85V * 1.364 V = N * 0.616 mV