ADC:Измерение сопротивлений - технические детали: различия между версиями
Fizikdaos (обсуждение | вклад) |
|||
(не показано 9 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
Канал LRADC процессора, который в Wiren Board используется для работы АЦП имеет встроенный источник тока. | Канал LRADC процессора, который в Wiren Board используется для работы АЦП имеет встроенный источник тока. | ||
Это делает возможным измерение сопротивлений нагрузки, подключенной к выходам АЦП, т.е. снятие показаний с резистивных датчиков. | Это делает возможным измерение сопротивлений нагрузки, подключенной к выходам АЦП, т.е. снятие показаний с резистивных датчиков. | ||
См. также описание в [[Freescale i.MX233|документации на процессор]], стр. 1334. | |||
См. также описание в документации на процессор, стр. 1334 | |||
== Порядок измерений == | |||
=== Отключение выхода === | |||
== Порядок измерений | |||
=== Отключение выхода === | |||
(только для Wiren Board rev. 2.8) | (только для Wiren Board rev. 2.8) | ||
* Для клеммников 2-7: закрыть транзистор. См [[ | * Для клеммников 2-7: закрыть транзистор. См [[Список GPIO]], [[Управление низковольтной нагрузкой]]. | ||
* Для клеммника 9: установить GPIO 2 в режим ввода ([[ | * Для клеммника 9: установить GPIO 2 в режим ввода ([[Работа с GPIO]]) | ||
=== Выбора канала === | |||
С помощью wb-adc-set-mux выберите канал ([[ADC]]) | |||
=== Установка выходного тока === | |||
=== Установка выходного тока === | |||
Установка выходного тока не поддерживается драйвером, поэтому реализуется с помощью userspace-приложения с прямым доступом в память. | Установка выходного тока не поддерживается драйвером, поэтому реализуется с помощью userspace-приложения с прямым доступом в память. | ||
Команда <b>lradc-set-current</b> (https://github.com/contactless/wirenboard/tree/master/utils/adc/resistance). | Команда <b>lradc-set-current</b> (https://github.com/contactless/wirenboard/tree/master/utils/adc/resistance). | ||
<pre> | <pre> | ||
root@wirenboard:~# lradc-set-current | root@wirenboard:~# lradc-set-current | ||
Строка 49: | Строка 27: | ||
</pre> | </pre> | ||
Максимальный ток - 300 мкА. Ток устанавливается с шагом в 20 мкА. | Максимальный ток - 300 мкА. Ток устанавливается с шагом в 20 мкА. | ||
Установка тока в 100 мкА: | Установка тока в 100 мкА: | ||
<pre> | <pre> | ||
root@wirenboard:~# lradc-set-current 100 | root@wirenboard:~# lradc-set-current 100 | ||
</pre> | </pre> | ||
Отключение источника тока: | Отключение источника тока: | ||
<pre> | <pre> | ||
Строка 66: | Строка 40: | ||
</pre> | </pre> | ||
Необходимо установить такое как можно большее значение выходного тока, при котором напряжение на LRADC не зашкаливает за 1.85V, т.е. сырой результат не равен 4095. | Необходимо установить такое как можно большее значение выходного тока, при котором напряжение на LRADC не зашкаливает за 1.85V, т.е. сырой результат не равен 4095. | ||
В примере 40 мкА - оптимальный ток: | В примере 40 мкА - оптимальный ток: | ||
<pre> | <pre> | ||
root@wirenboard:~# lradc-set-current 100 | root@wirenboard:~# lradc-set-current 100 | ||
Строка 88: | Строка 59: | ||
</pre> | </pre> | ||
=== Вычисление результата === | |||
=== Вычисление результата === | |||
Сопротивление вычисляется по формуле: | Сопротивление вычисляется по формуле: | ||
<pre> | <pre> | ||
r = 1.0/(I/V - 1/R1) - R2 | r = 1.0/(I/V - 1/R1) - R2 | ||
</pre> | </pre> | ||
<b>r</b> - измеряемое сопротивление, <b> R2 </b> - последовательное сопротивление канала | <b>r</b> - измеряемое сопротивление, <b> R2 </b> - последовательное сопротивление канала | ||
<b>R1</b> - параллельное сопротивление (плечо делителя/токи утечки). | <b>R1</b> - параллельное сопротивление (плечо делителя/токи утечки). | ||
<b> V </b> - напряжение на входе LRADC, измеряемое процессором: | <b> V </b> - напряжение на входе LRADC, измеряемое процессором: | ||
<pre> | <pre> | ||
V = N / 4095 * 1.85V | V = N / 4095 * 1.85V | ||
</pre> | </pre> | ||
где N - сырые показания LRADC, I - выходной ток. | где N - сырые показания LRADC, I - выходной ток. | ||
Для разных версий: | Для разных версий: | ||
* Wiren Board 4 (клеммники R1-R2): <b>R2 = 3500 Ohm, R1 = 1MOhm</b>. | |||
* Wiren Board 4 (клеммники R1-R2): <b>R2 = | |||
* Wiren Board Smart Home rev. 3.5 (клеммники R1-R4): <b>R2 = 600 Ohm, R1 = 93kOhm</b>. | * Wiren Board Smart Home rev. 3.5 (клеммники R1-R4): <b>R2 = 600 Ohm, R1 = 93kOhm</b>. | ||
* Wiren Board rev. 2.8. <b>R2 = 12kOhm, R1 = 33.0 kOhm</b>. | * Wiren Board rev. 2.8. <b>R2 = 12kOhm, R1 = 33.0 kOhm</b>. | ||
Версия 20:24, 26 марта 2015
Канал LRADC процессора, который в Wiren Board используется для работы АЦП имеет встроенный источник тока. Это делает возможным измерение сопротивлений нагрузки, подключенной к выходам АЦП, т.е. снятие показаний с резистивных датчиков.
См. также описание в документации на процессор, стр. 1334.
Порядок измерений
Отключение выхода
(только для 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 4 (клеммники R1-R2): R2 = 3500 Ohm, R1 = 1MOhm.
- 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.