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

Материал из Wiren Board
Строка 9: Строка 9:
7 channels are exposed to terminal blocks. See [[Hardware_Overview_rev._2.8#Terminal_blocks]] for details.
7 channels are exposed to terminal blocks. See [[Hardware_Overview_rev._2.8#Terminal_blocks]] for details.


The main channel have 12K/33K dividers. Thus the input voltage for each channel is 1.364 * <measured voltage>
The main channel have 12K/33K dividers. Thus the input voltage for each channel is 1.364 * <measured voltage>. Maximum measuring voltage - 5 V


Some of the ADC channels share terminal blocks with FET. Please make sure you have explicitly closed the corresponding FET using GPIO before using ADC.
Some of the ADC channels share terminal blocks with FET. Please make sure you have explicitly closed the corresponding FET using GPIO before using ADC.

Версия 11:36, 26 ноября 2013

Wiren Board has 8-channel ADC which are multiplexed using analog multiplexer into i.mx233 LRADC1 channel.

Опорное напряжение

Опорное напряжение LRADC составляет 1.85V. Возможна программная установка делителя 2:1 внутри канала (не реализовано в драйвере Linux, обратитесь к нам, если вам нужна эта возможность).


Main channels

7 channels are exposed to terminal blocks. See Hardware_Overview_rev._2.8#Terminal_blocks for details.

The main channel have 12K/33K dividers. Thus the input voltage for each channel is 1.364 * <measured voltage>. Maximum measuring voltage - 5 V

Some of the ADC channels share terminal blocks with FET. Please make sure you have explicitly closed the corresponding FET using GPIO before using ADC.

Input voltage measuring

Channel 5 of the multiplexer is dedicated to measuring input voltage. The channel has 200K/33K divider. Thus the input voltage is 7.061 * <measured voltage>.


Software

АЦП мультиплексор подключен к порту LRADC1.

  • Выбор канала:
 ./adc_set_channel.sh tb<номер клеммника>
или
 ./adc_set_channel.sh vin
или
 ./adc_set_channel.sh <номер канала>

  • Чтение показаний:
root@wirenboard:~# cat /sys/bus/iio/devices/iio\:device0/in_voltage1_raw 
3838

Перевод значений

На канале должен стоять делитель на два (пока нет). Формула для перевода:

V_measured = N / 4095 * 1.85V 

Итого, для напряжения на клеммниках с учётом входного делителя:

V = N / 4095 * 1.85V * 1.364 = 
V = N * 0.61621 mV = N * 0.00061621 V

Для входного напряжения (канал vin)

V = N / 4095 * 1.85V * 7.061 = 
V = N * 3.18900 mV = N * 0.0031900 V


Пример

  • Устанавливаем ADC на измерение напряжения на клеммнике 9:
root@wirenboard:~# /opt/utils/adc/adc_set_channel.sh tb9
set mux c,b,a = 1,1,1
  • Считываем сырое значение ADC:
root@wirenboard:~# /opt/utils/adc/adc_get_value.sh
2523
  • Конвертируем значение
V = 2523 * 0.61621 mV = 1555 mV = 1.555 V

Проблема со звуковым драйвером

Процессор может мультиплексировать источник MIC BIAS на вывод LRADC1. Такое поведение по-умолчанию включено в драйверах звука. Отключается патчем [1], который применён к ядру из поставки Wiren Board.

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

См. ADC:Измерение сопротивлений