ADC:Измерение сопротивлений - технические детали: различия между версиями
(Подготовка страницы к переводу) |
м |
||
Строка 4: | Строка 4: | ||
Это делает возможным измерение сопротивлений нагрузки, подключенной к выходам АЦП, т.е. снятие показаний с резистивных датчиков. | Это делает возможным измерение сопротивлений нагрузки, подключенной к выходам АЦП, т.е. снятие показаний с резистивных датчиков. | ||
См. также описание в [[ | См. также описание в [[Freescale i.MX233|документации на процессор]], стр. 1334. | ||
Измерение сопротивлений реализовано в драйвере wb-homa-adc, см. [[ | Измерение сопротивлений реализовано в драйвере wb-homa-adc, см. [[ADC|ADC]]. | ||
Строка 17: | Строка 17: | ||
(только для Wiren Board rev. 2.8) | (только для Wiren Board rev. 2.8) | ||
* Для клеммников 2-7: закрыть транзистор. См [[ | * Для клеммников 2-7: закрыть транзистор. См [[Список GPIO|Список GPIO]], [[Управление низковольтной нагрузкой|Управление низковольтной нагрузкой]]. | ||
* Для клеммника 9: установить GPIO 2 в режим ввода ([[ | * Для клеммника 9: установить GPIO 2 в режим ввода ([[Работа с GPIO|Работа с GPIO]]) | ||
=== Выбора канала === | === Выбора канала === | ||
С помощью wb-adc-set-mux выберите канал ([[ | С помощью wb-adc-set-mux выберите канал ([[ADC|ADC]]) | ||
Версия 10:55, 24 мая 2019
Канал LRADC процессора, который в Wiren Board используется для работы АЦП имеет встроенный источник тока. Это делает возможным измерение сопротивлений нагрузки, подключенной к выходам АЦП, т.е. снятие показаний с резистивных датчиков.
См. также описание в документации на процессор, стр. 1334.
Измерение сопротивлений реализовано в драйвере wb-homa-adc, см. ADC.
Порядок измерений в ручном режиме
Убедитесь, что демон wb-homa-adc выгружен
Отключение выхода
(только для Wiren Board rev. 2.8)
- Для клеммников 2-7: закрыть транзистор. См Список GPIO, Управление низковольтной нагрузкой.
- Для клеммника 9: установить GPIO 2 в режим ввода (Работа с GPIO)
Выбора канала
С помощью wb-adc-set-mux выберите канал (ADC)
Установка выходного тока
Установка выходного тока не поддерживается драйвером, поэтому реализуется с помощью userspace-приложения с прямым доступом в память.
Команда lradc-set-current (https://github.com/contactless/wirenboard/tree/master/utils/adc/resistance).
root@wirenboard:~# lradc-set-current Set output current for LRADC1 channel USAGE: ./lradc_current <uA>|off Available currents: 0uA, 20uA, ..., 280uA, 300uA Use "off" to switch off current source. 0uA setting could result in some current
Максимальный ток - 300 мкА. Ток устанавливается с шагом в 20 мкА.
Установка тока в 100 мкА:
root@wirenboard:~# lradc-set-current 100
Отключение источника тока:
root@wirenboard:~# lradc-set-current off
Необходимо установить такое как можно большее значение выходного тока, при котором напряжение на LRADC не зашкаливает за 1.85V, т.е. сырой результат не равен 4095.
В примере 40 мкА - оптимальный ток:
root@wirenboard:~# lradc-set-current 100 root@wirenboard:~# wb-adc-get-value 4095 root@wirenboard:~# lradc-set-current 20 root@wirenboard:~# wb-adc-get-value 1663 root@wirenboard:~# lradc-set-current 60 root@wirenboard:~# wb-adc-get-value 4095 root@wirenboard:~# lradc-set-current 40 root@wirenboard:~# wb-adc-get-value 3154
Вычисление результата
Сопротивление вычисляется по формуле:
r = 1.0/(I/V - 1/R1) - R2
r - измеряемое сопротивление, R2 - последовательное сопротивление канала
R1 - параллельное сопротивление (плечо делителя/токи утечки).
V - напряжение на входе LRADC, измеряемое процессором:
V = N / 4095 * 1.85V
где N - сырые показания LRADC, I - выходной ток.
Для разных версий:
- Wiren Board 5 (клеммники R1-R2): R2 = 3150 Ohm, R1 = 1000kOhm.
- Wiren Board 4 (клеммники R1-R2): R2 = 3570 Ohm, R1 = 120kOhm.
- Wiren Board Smart Home rev. 3.5 (клеммники R1-R4): R2 = 600 Ohm, R1 = 93kOhm.
- Wiren Board rev. 2.8. R2 = 12kOhm, R1 = 33.0 kOhm.