Обсуждаем контроллеры компании Atmel.
Ответить

Re: АЦП, делитель с малым током

Ср июн 02, 2021 21:08:19

не нужно.

Re: АЦП, делитель с малым током

Ср июн 02, 2021 21:38:12

Вау, я несколько раз прочиталд перед тем как осознать ;) Идея супер, спасибо!

Идея давно известная. Странно что вчера не заметили, когда вам тоже самое GoldenAndy сразу написал. В инете есть примеры по данной методике, если что.
Последний раз редактировалось NStorm Чт июн 03, 2021 07:04:33, всего редактировалось 1 раз.

Re: АЦП, делитель с малым током

Ср июн 02, 2021 22:10:39

А нужно ли подключать конденсатор к AREF для этой схемы?

Как настроишь. В 861 не помню - настраивается или нет, а в даташит смотреть лень.

Re: АЦП, делитель с малым током

Ср июн 02, 2021 22:43:41

А нужно ли подключать конденсатор к AREF для этой схемы?

Как настроишь. В 861 не помню - настраивается или нет, а в даташит смотреть лень.

Как настраивать, было сказано конкретно, и для этого случая кондер не нужен. Для чего писать не имеющее отношения к делу?

Re: АЦП, делитель с малым током

Ср июн 02, 2021 23:59:28

xido, достаточно старый трюк, который позволяет мерять батарейку, используя встроенный в атмегу опорник. Главное, что для экономии батарейки когда не меряем, можно отключать АЦП.
И нужно помнить, что при включении АЦП надо подождать не помню сколько микросекунд (надо даташит читать), что бы включившийся опорник "разогнался" до своего напряжения. Я обычно жду порядка 500 мкс, потом выполняю холостое измерение. После чего суммирую 16 измерений и беру среднее.
Единственное, примененный метод дает не очень высокую точность, поскольку используется где то треть диапазона АЦП.
Но померять батарейку с точностью до 0.1-0.05 вольта - вполне.
Под катом - расчеты для бортового ИОН 1.1 вольта. Значения АЦП в диапазоне от 200 до 500 соответствуют диапазону питания от 2.25 до 5.6 вольт.
Единственное, поскольку тут обратная зависимость, соответствие напряжения питания значениям АЦП нелинейное.
Для напряжений в районе 5 вольт единица АЦП будет в районе 25 мВ, в районе 2.5 вольт - уже в районе 5 мВ.
СпойлерИзображение


Есть в этом методе подводный камушек. Напряжение встроенного ИОН, особенно в старых мегах, не всегда соответствует даташиту.
Из опыта - для МЕГА8 - достаточно непредсказуемо, +/-0,2в. Для МЕГА328 - достаточно близко к заявленному в ДШ.
Но этот вопрос, в принципе, решается одноразовой калибровкой - измерением, расчетом и сохранением значения ИОН при подаче заведомо известного напряжения питания.
В этом случае, помня, что ADC = Ux * 1023 / Vref и зная, что Ux у нас точно известно, а Vref - встроенный ИОН, можно рассчитать напряжение этого ИОН: Vref = Ux * ADC / 1023

Касательно вывода Aref - просто прицепите его к питанию. Если мне не изменяет память, после сброса АВРки конфигурируются на использование внешнего опорника - вот вы ему батарейку туда и скормите.
Вложения
adc.jpg
(127.02 KiB) Скачиваний: 233

Re: АЦП, делитель с малым током

Чт июн 03, 2021 08:17:44

Спасибо ))
Я даже нашёл апноут про это http://ww1.microchip.com/downloads/en/A ... 02447A.pdf
Там правда написано что схема с транзистором вообще не работает и ест питание. Почему так может быть? Особенность мосфета?

Такс, это я прочитал неправильно, там так не написано))
Последний раз редактировалось xido Чт июн 03, 2021 08:20:22, всего редактировалось 1 раз.

Re: АЦП, делитель с малым током

Чт июн 03, 2021 08:18:14

GoldenAndy писал(а):В этом случае, помня, что ADC = Ux * 1023 / Vref и зная, что Ux у нас точно известно, а Vref - встроенный ИОН, можно рассчитать напряжение этого ИОН: Vref = Ux * ADC / 1023
1024 тут должно быть, а не 1023.

Re: АЦП, делитель с малым током

Чт июн 03, 2021 08:24:05

У меня кстати кусочек от 4 до 3, и судя по графику он почти линейный. Можно убрать деление

Re: АЦП, делитель с малым током

Чт июн 03, 2021 08:31:26

обман зрения, нет там линейности, даже близко.

Re: АЦП, делитель с малым током

Чт июн 03, 2021 09:27:49

Starichok51 писал(а):1024 тут должно быть, а не 1023.

а если быть еще точнее - 2^10
разрядность дака

Re: АЦП, делитель с малым током

Чт июн 03, 2021 09:45:07

Starichok51, slav0n, в даташите написано 1024, согласен. Но почему то все этому верят и не включают голову.
если взять 1024, то при подаче Ux = Vref результат АЦП, согласно формуле, должен быть 1024 = 0x400, а по факту 10 бит - это максимально 0x3FF = 1023. У АЦП 1024 градации, но начиная с нуля. Поэтому я считаю, что в формуле таки должно быть 1023 - максимальное значение, которое может отдать АЦП. Это же обычная пропорция...
Код:
 Ux     ADC
---- = ----
Vref   1023


xido, теоретически да, можно попробовать тот кусочек линеаризовать. Погрешность там будет небольшая. Но стоит ли овчинка выделки?
Да, если вы пишете на ассемблере и у вас расчет батарейного питания - единственное деление, то его можно и убрать. А если на Си и деление на не-константу уже где то есть, то выигрыша вы не получите, ибо подпрограмма деления уже будет в коде.
Как вариант - берете эксель, значение внутреннего опорника из даташита, строите себе табличку значений АЦП, соответствующую нужным вам точкам и сохраняете эти 5-10-20 отчек в константном массиве в памяти программ. Тогда вообще никакой математики - получить значение АЦП, в цикле сравнить его со значениями из массива, определить напряжение батареи. Всё.

Ну и традиционно, кусочек графика для вашего диапазона
СпойлерИзображение

Тут дельта в начале и в конце диапазона тоже есть, это тараканы округления.
Вложения
adc2.jpg
(100.08 KiB) Скачиваний: 121

Re: АЦП, делитель с малым током

Чт июн 03, 2021 09:52:35

Встроенный ИОН необходимо калибровать - это да. Но у встроенного ИОН выходное напряжение зависит от напряжения питания. Поэтому говорить про точность в 0.05 вольта - как-то очень смело. 0.2-0.3 - гораздо ближе к истине.

Re: АЦП, делитель с малым током

Чт июн 03, 2021 11:25:11

GoldenAndy, шо-то это мне напомнило проблему 2000, когда все комповое хозяйство должно было навернуться, но нет...
а 10 бит это именно 1024, а не 1023

Добавлено after 18 minutes 42 seconds:
просто 1024 относительно большое число, а вот если бы ты начал делить, к примеру, вместо 10 на 9, то...

Добавлено after 1 minute 23 seconds:
логарифмическая линейка не врет

Re: АЦП, делитель с малым током

Чт июн 03, 2021 11:37:51

GoldenAndy писал(а):Поэтому я считаю, что в формуле таки должно быть 1023 - максимальное значение, которое может отдать АЦП.
да, это максимальное значение, но максимальное значение равно 1023/1024 от опорного напряжения. поэтому, чтобы привести к опорному напряжению, нужно умножать (или делить) на 1024.

Re: АЦП, делитель с малым током

Чт июн 03, 2021 13:02:12

как же ж нас запутали эти системы исчисления
даже даташиты оспаривают

Добавлено after 55 minutes 43 seconds:
float adc = Ux * 1023.0 / Vref;
return adc - Ux * 1024.0 / Vref;

Re: АЦП, делитель с малым током

Чт июн 03, 2021 13:04:27

Starichok51, согласен.
ДШ говорит, что
The ADC converts an analog input voltage to a 10-bit digital value through successive approximation.
The minimum value represents GND and the maximum value represents the voltage on the AREF pin minus 1 LSB.
Т.е. да, 1024, сорри.
Ответить