ADC
Wiren Board содержит 8-канальное АЦП, которые мультиплексированны в один LRADC1-канал i.mx233.
Опорное напряжение
Опорное напряжение LRADC составляет 1.85V. Возможна программная установка делителя 2:1 внутри канала (не реализовано в драйвере Linux, обратитесь к нам, если вам нужна эта возможность).
Основные каналы
Часть каналов АЦП выведена на клеммы параллельно с транзисторами управления низковольтной нагрузки.
Убедитесь, что вы явно закрыли соответствующий FET помощью GPIO перед использованием АЦП.
Перевод значений
На канале должен стоять делитель на два (пока нет). Формула для перевода:
V_measured = N / 4095 * 1.85V * (R1+R2)/R2
WB4
клеммник | Делитель | Формула для пересчета | Итоговая формула (без делителя) | V max | комментарии |
A1-A3 | 100k/100k | N / 4095 * 1.85V * 2 | V = N * 0.903 mV | 7V | |
A4-A5 | 100k/12k | N / 4095 * 1.85V * 9.33 | V = N * 4.21 mV | 30V | |
R1-R2 | 3k15/1M | N / 4095 * 1.85V * 1.003 | V = N * 0.453 mV | 4V | |
li_pol | 100k/100k | N / 4095 * 1.85V * 2 | V = N * 0.903 mV | 7V | на аккумуляторе |
Vin | 33k/4k53 | N / 4095 * 1.85V * 8.28 | V = N * 3.73 mV | 30V | входное напряжение |
WB3.5
клеммник | Делитель | Формула для пересчета | Итоговая формула | комментарии |
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 | 200K/33K | V =N / 4095 * 1.85V * 7.061 | V = N * 3.19 mV | входное напряжение |
WB2.8
клеммник | Делитель | Формула для пересчета | Итоговая формула | комментарии |
A1-A7 | 12K/33K | V = N / 4095 * 1.85V * 1.364 | V = N * 0.616 mV |
Software
АЦП мультиплексор подключен к порту LRADC1.
- Выбор канала:
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 .
см.