Устарело: низкоуровневая работа с ADC в Wiren Board 2, 3 и 4: различия между версиями
(Отметить эту версию для перевода) |
Fizikdaos (обсуждение | вклад) |
||
Строка 6: | Строка 6: | ||
<!--T:2--> | <!--T:2--> | ||
Опорное напряжение LRADC составляет 1.85V. Возможна программная установка делителя 2:1 внутри канала | Опорное напряжение LRADC составляет 1.85V. Возможна программная установка делителя 2:1 внутри канала | ||
=== Работа === <!--T:3--> | === Работа === <!--T:3--> | ||
Строка 48: | Строка 47: | ||
wb-adc-read-channel <A1|A2|A3|A4|R1|R2|R3|R4> (для WB Smart Home, опции аналогичны wb-adc-set-mux) | wb-adc-read-channel <A1|A2|A3|A4|R1|R2|R3|R4> (для WB Smart Home, опции аналогичны wb-adc-set-mux) | ||
</pre> | </pre> | ||
=== Пример === <!--T:11--> | === Пример === <!--T:11--> | ||
Строка 71: | Строка 68: | ||
V = 2523 * 4.97 mV = 12539 mV = 12.54 V | V = 2523 * 4.97 mV = 12539 mV = 12.54 V | ||
</pre> | </pre> | ||
=== Перевод значений === <!--T:15--> | === Перевод значений === <!--T:15--> | ||
Строка 83: | Строка 77: | ||
V_measured = N / 4095 * 1.85V * (R1+R2)/R2 | V_measured = N / 4095 * 1.85V * (R1+R2)/R2 | ||
</pre> | </pre> | ||
== Напряжение акуумулятора == <!--T:17--> | == Напряжение акуумулятора == <!--T:17--> | ||
Строка 100: | Строка 91: | ||
<!--T:20--> | <!--T:20--> | ||
Смотрите тему на [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/ форуме]. | Смотрите тему на [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/ форуме]. | ||
<!--T:21--> | <!--T:21--> | ||
Для Wiren Board 5 аналогичным образом получается напряжение на рейке 4В. | Для Wiren Board 5 аналогичным образом получается напряжение на рейке 4В. | ||
</translate> | </translate> |
Версия 16:28, 24 мая 2020
Опорное напряжение
Опорное напряжение LRADC составляет 1.85V. Возможна программная установка делителя 2:1 внутри канала
Работа
(убедитесь, что демон 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
Перевод значений
На канале должен стоять делитель на два (пока нет). Формула для перевода:
V_measured = N / 4095 * 1.85V * (R1+R2)/R2
Напряжение акуумулятора
Для WB 2.8 и WB 3.5:
cat /sys/bus/iio/devices/iio:device0/in_voltage7_raw
Для преобразования в вольты: значение/ 4095.0 * 1.85 * 4 .
Смотрите тему на форуме.
Для Wiren Board 5 аналогичным образом получается напряжение на рейке 4В.