ADC: различия между версиями
Matveevrj (обсуждение | вклад) (Отметить эту версию для перевода) |
(→WB4) |
||
(не показано 69 промежуточных версий 6 участников) | |||
Строка 1: | Строка 1: | ||
== Как получить напряжение с АЦП из веб-интерфейса == | |||
#Выберите клемму, к которой можно подключить ваш источник, исходя из максимального допустимого напряжения (смотрите таблицу ниже). | |||
#Большинство клеммников с функциями АЦП могут выполнять две функции: АЦП и управление низковольтной нагрузкой. Перед тем, как измерить напряжение на АЦП, поставьте соответствующий выход управления низковольтной нагрузкой в положение "выключено". Например, если вы подключаетесь к клемме A1, выключите в веб-интерфейсе A1_OUT (раздел Relays & FETs). | |||
#:Подробнее смотрите [[Мультиплексирование портов]] | |||
#Подключите ваш источник к клемме, напряжение с него сразу появится в веб-интерфейсе. | |||
== Технические детали реализации АЦП == | |||
Wiren Board имеет 8 каналов АЦП, которые мультиплексированы в один канал процессора (LRADC1). | |||
===Опорное напряжение=== | |||
Опорное напряжение LRADC составляет 1.85V. Возможна программная установка делителя 2:1 внутри канала | |||
== | === Основные каналы=== | ||
== | Часть каналов АЦП выведена на клеммы параллельно с транзисторами управления низковольтной нагрузки. | ||
Убедитесь, что вы явно закрыли соответствующий FET помощью GPIO перед использованием АЦП. | |||
=== | === Перевод значений === | ||
На канале должен стоять делитель на два (пока нет). | |||
< | Формула для перевода: | ||
<pre> | |||
V_measured = N / 4095 * 1.85V * (R1+R2)/R2 | |||
</pre> | |||
=== Списки АЦП для разных устройств === | |||
</ | ==== WB4 ==== | ||
== | {| border="1" | ||
=== | | клеммник || Делитель || Формула для пересчета || Итоговая формула (без делителя) || V макс. измеряемое (с делителем) || комментарии | ||
|- | |||
| A1-A3 || 100k/100k || N / 4095 * 1.85V * 2 || V = N * 0.903 mV || 7.4V || | |||
|- | |||
* | | A4-A5 || 100k/12k || N / 4095 * 1.85V * 9.33 || V = N * 4.21 mV || 34.4V || | ||
* | |- | ||
| R1-R2 || 3k15/1M || N / 4095 * 1.85V * 1.003 || V = N * 0.453 mV || 3.7V || | |||
</ | |- | ||
| li_pol || 100k/100k || N / 4095 * 1.85V * 2 || V = N * 0.903 mV || - || на аккумуляторе | |||
|- | |||
| Vin || 33k/4k53 ||N / 4095 * 1.85V * 8.28 || V = N * 3.74 mV || 30.6V || входное напряжение, iio channel 0 | |||
|- | |||
|} | |||
==== WB3.5 ==== | |||
{| border="1" | |||
| клеммник || Делитель|| Формула для пересчета || Итоговая формула || 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 | |||
|- | |||
|} | |||
==== WB2.8 ==== | |||
{| border="1" | |||
| клеммник || Делитель|| Формула для пересчета || Итоговая формула || комментарии | |||
|- | |||
| A1-A7 || 12K/33K|| V = N / 4095 * 1.85V * 1.364 || V = N * 0.616 mV || | |||
|- | |||
|} | |||
== Software == | |||
АЦП мультиплексор подключен к порту LRADC1. | |||
В ручном режиме (убедитесь, что демон wb-homa-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> | |||
=== Проблема со звуковым драйвером === | |||
Процессор может мультиплексировать источник MIC BIAS на вывод LRADC1. Такое поведение по-умолчанию включено в драйверах звука. | |||
Отключается патчем [https://github.com/contactless/linux/commit/2b13b2ee1dd936902ce5c71f192001c9513a7dbb], который применён к ядру из поставки Wiren Board. | |||
== Измерение сопротивлений == | |||
См. [[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/ |
Версия 20:32, 13 апреля 2015
Как получить напряжение с АЦП из веб-интерфейса
- Выберите клемму, к которой можно подключить ваш источник, исходя из максимального допустимого напряжения (смотрите таблицу ниже).
- Большинство клеммников с функциями АЦП могут выполнять две функции: АЦП и управление низковольтной нагрузкой. Перед тем, как измерить напряжение на АЦП, поставьте соответствующий выход управления низковольтной нагрузкой в положение "выключено". Например, если вы подключаетесь к клемме A1, выключите в веб-интерфейсе A1_OUT (раздел Relays & FETs).
- Подробнее смотрите Мультиплексирование портов
- Подключите ваш источник к клемме, напряжение с него сразу появится в веб-интерфейсе.
Технические детали реализации АЦП
Wiren Board имеет 8 каналов АЦП, которые мультиплексированы в один канал процессора (LRADC1).
Опорное напряжение
Опорное напряжение LRADC составляет 1.85V. Возможна программная установка делителя 2:1 внутри канала
Основные каналы
Часть каналов АЦП выведена на клеммы параллельно с транзисторами управления низковольтной нагрузки. Убедитесь, что вы явно закрыли соответствующий FET помощью GPIO перед использованием АЦП.
Перевод значений
На канале должен стоять делитель на два (пока нет). Формула для перевода:
V_measured = N / 4095 * 1.85V * (R1+R2)/R2
Списки АЦП для разных устройств
WB4
клеммник | Делитель | Формула для пересчета | Итоговая формула (без делителя) | V макс. измеряемое (с делителем) | комментарии |
A1-A3 | 100k/100k | N / 4095 * 1.85V * 2 | V = N * 0.903 mV | 7.4V | |
A4-A5 | 100k/12k | N / 4095 * 1.85V * 9.33 | V = N * 4.21 mV | 34.4V | |
R1-R2 | 3k15/1M | N / 4095 * 1.85V * 1.003 | V = N * 0.453 mV | 3.7V | |
li_pol | 100k/100k | N / 4095 * 1.85V * 2 | V = N * 0.903 mV | - | на аккумуляторе |
Vin | 33k/4k53 | N / 4095 * 1.85V * 8.28 | V = N * 3.74 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 |
WB2.8
клеммник | Делитель | Формула для пересчета | Итоговая формула | комментарии |
A1-A7 | 12K/33K | V = N / 4095 * 1.85V * 1.364 | V = N * 0.616 mV |
Software
АЦП мультиплексор подключен к порту LRADC1.
В ручном режиме (убедитесь, что демон wb-homa-adc не запущен):
- Выбор канала :
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)
- Чтение показаний:
root@wirenboard:~# cat /sys/bus/iio/devices/iio\:device0/in_voltage1_raw 3838
или
root@wirenboard:~# wb-adc-get-value 3838
- Чтение показаний c предварительной установкой канала:
wb-adc-read-channel <A1|A2|A3|A4|R1|R2|R3|R4> (для WB Smart Home, опции аналогичны wb-adc-set-mux)
Пример
- Устанавливаем ADC на измерение напряжения на клеммнике A3:
root@wirenboard:~# wb-adc-set-mux A3
- Считываем сырое значение ADC:
root@wirenboard:~# wb-adc-get-value 2523
- Конвертируем значение
V = 2523 * 4.97 mV = 12539 mV = 12.54 V
Проблема со звуковым драйвером
Процессор может мультиплексировать источник MIC BIAS на вывод LRADC1. Такое поведение по-умолчанию включено в драйверах звука. Отключается патчем [1], который применён к ядру из поставки Wiren Board.
Измерение сопротивлений
См. ADC:Измерение сопротивлений
Напряжение аккумулятора
cat /sys/bus/iio/devices/iio:device0/in_voltage7_raw
для преобразования в вольты: значение/ 4095.0 * 1.85 * 4 .
см.