ADC:Измерение сопротивлений - технические детали/en: различия между версиями

Материал из Wiren Board
(Новая страница: «Use wb-adc-set-mux to select a channel(ADC)»)
(Новая страница: «=== Setting output current ===»)
Строка 24: Строка 24:




=== Установка выходного тока ===
=== Setting output current  ===


Установка выходного тока не поддерживается драйвером, поэтому реализуется с помощью userspace-приложения с прямым доступом в память.
Установка выходного тока не поддерживается драйвером, поэтому реализуется с помощью userspace-приложения с прямым доступом в память.

Версия 11:15, 24 мая 2019

Другие языки:

The LRADC channel of the processor that the Wiren Board uses to operate the ADC has an integrated current source. This allows to measure the resistance of the load connected to the outputs of the ADC, i.e., to read values of resistive sensors.

See also the description in the documentation on the processor, p. 1334

Resistance measurement is implemented in the wb-homa-adc driver, see ADC.


The measuring procedure in the manual mode

Make sure the wb-homa-adc daemon is unloaded

Disable output

(only for Wiren Board rev. 2.8)


Channel selection

Use wb-adc-set-mux to select a channel(ADC)


Setting output current

Установка выходного тока не поддерживается драйвером, поэтому реализуется с помощью 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.