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

Материал из Wiren Board
Строка 6: Строка 6:




=== Main channels ===
== Основные каналы==
7 channels are exposed to terminal blocks. See [[Hardware_Overview_rev._2.8#Terminal_blocks]] for details.
7 каналов выведены на клемники, см. [[Список GPIO]]
На основных каналах стоят резисторные делители 12K/33K. Поэтому входное напряжение для каждого канала вычисляется как 1.364 * <измеренное напряжение>.  


The main channel have 12K/33K dividers. Thus the input voltage for each channel is 1.364 * <measured voltage>. Maximum measuring voltage - 5 V
Максимальное измеряемое напряжение 5В.


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.
Часть каналов АЦП выведена на клеммы паралельно с транзисторами управления низковольтной нагрузки.  
 
Убедитесь, что вы явно закрыли соответствующий FET помощью GPIO перед использованием АЦП.


=== Input voltage measuring ===
=== Input voltage measuring ===

Версия 11:48, 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, обратитесь к нам, если вам нужна эта возможность).


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

7 каналов выведены на клемники, см. Список GPIO На основных каналах стоят резисторные делители 12K/33K. Поэтому входное напряжение для каждого канала вычисляется как 1.364 * <измеренное напряжение>.

Максимальное измеряемое напряжение 5В.

Часть каналов АЦП выведена на клеммы паралельно с транзисторами управления низковольтной нагрузки.

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

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>. Maximum measuring voltage - 26 V

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:Измерение сопротивлений