реклама на сайте
подробности

 
 
> АЦП в PIC 16F876A, Нестабильные результаты
Antarius
сообщение Jan 8 2008, 09:37
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 8-01-08
Пользователь №: 33 892



Сразу прошу прощения, если что - это мое первое сообщение в ваш форум.
Я - абсолютный чайник в электронике, и это мое первое устройство вообще (даже радио в детстве не собирал). Просто решил осуществить детскую мечту и собрать своими руками какое-либо электронное устройство. Решил сделать метеостанцию для начала.

Проблема следующая.
Нужно оцифровать значения датчика давления MPX 4115A с помощью АЦП в PIC16F876A.

Датчик подключен согласно даташиту на него, есть все конденсаторы, указанные в нем.
Выход датчика давления напрямую подключен к пику, между выходом и землей есть керамический конденсатор.

Интересующий диапазон давления датчика соответствует напряжению на его выходе от 3,785 до 4,205 вольт. Поэтому на АЦП контроллера я подвел два напряжения минимум - 3,785 и максимум 4,205В. Чтобы весь интересующий меня диапазон уложился в 1024 отсчета АЦП. Напряжения задал многооборотными переменными резисторами. Напряжения стабильны и со временем не меняются.

Вся схема (и датчик и контроллер) питается от м/сх REF195, имеющая на выходе довольно стабильные 5,00 В. REF также подключена с двумя электролитическими конденсаторами, согласно даташиту.
Да, схема собрана на макетной плате (я только учусь), причем на плате в которую втыкается, а не паяется.

И в принципе все работает и все устраивает, но...
Почему-то, когда напряжение на выходе датчика стабильно, например 3,975В, с АЦП идет не стабильный ответ, допустим (просто для примера) 375, 376, 372, 373, 375... Что для моих целей неприемлимо, ибо дает плохую повторяемость результатов (получается больше чем 0,1 атм давления, а надо меньше). Пришлось опрашивать АЦП в цикле, делать множество замеров и находить среднее значение. Со средним все отлично, можно мерить даже с точностью в сотые доли атм.

В чем причина нестабильности? Что можно сделать, чтобы опрашивать датчик один раз, а не в цикле и получать стабильный результат?
Заранее спасибо.

Сообщение отредактировал Antarius - Jan 8 2008, 09:41
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 25)
Энтомолог
сообщение Jan 11 2008, 12:26
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 147
Регистрация: 24-01-07
Пользователь №: 24 741



Хочу добавить, на резисторы, которыми вы получаете опорные напряжения надо тоже "повесить" конденсаторы.
Go to the top of the page
 
+Quote Post
Antarius
сообщение Jan 11 2008, 17:40
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 8-01-08
Пользователь №: 33 892



Извините чайника, а между какие выводами конденсатор вешать?
Между регулируемым выводом и землей? А зачем?
Go to the top of the page
 
+Quote Post
Марк_Я
сообщение Jan 11 2008, 18:13
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 178
Регистрация: 19-09-07
Из: М.О. г.Фрязино
Пользователь №: 30 656



Цитата(Antarius @ Jan 11 2008, 11:03) *
Что касается времени заряда конденсатора, я опрашиваю датчик в цикле, между опросами задержка 20 мс. Этого достаточно для заряда? Пробовал 50 мс, разницы не заметил, но утверждать на 100% не буду.


Если Вы не трогаете входной коммутатор, то и 20 мкс достаточно для заряда УВХ...
Go to the top of the page
 
+Quote Post
Antarius
сообщение Jan 11 2008, 19:43
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 8-01-08
Пользователь №: 33 892



Цитата(Марк_Я @ Jan 11 2008, 21:13) *
Если Вы не трогаете входной коммутатор, то и 20 мкс достаточно для заряда УВХ...

Входной коммутатор - это регистр ADCON?
Я его один раз перед циклом опросов трогаю, но потом жду 100 мс.

Сообщение отредактировал Antarius - Jan 11 2008, 19:45
Go to the top of the page
 
+Quote Post
Энтомолог
сообщение Jan 11 2008, 20:30
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 147
Регистрация: 24-01-07
Пользователь №: 24 741



Цитата(Antarius @ Jan 11 2008, 20:40) *
между какие выводами конденсатор вешать?
Между регулируемым выводом и землей? А зачем?


Именно так - между регулируемым выводом и землей. Для уменьшения пульсаций опорных напряжений. При выборе емкости учитывайте время заряда вашей RC цепочки, т.е. чем больше емкость конденсатора, тем лучше (при прочих равных), но при этом увеличивается время выхода устройства в рабочий режим после подачи питания.
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 15 2008, 14:48
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Добавлю свои 5 коп. автору темы:

ОЧЕНЬ рекомендуется (а при вашем диапазоне входных напряжений и вообще обязательно smile.gif ) переводить процессор в режим SLEEP во время измерения напряжения - ядро процесора довольно заметно шумит, его остановка позволяет от этого шума избавится.
Go to the top of the page
 
+Quote Post
dac
сообщение Jan 16 2008, 07:11
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482



Цитата(XVR @ Jan 15 2008, 18:48) *
ОЧЕНЬ рекомендуется (а при вашем диапазоне входных напряжений и вообще обязательно smile.gif ) переводить процессор в режим SLEEP во время измерения напряжения - ядро процесора довольно заметно шумит, его остановка позволяет от этого шума избавится.


в свое время проводил эксперименты, даже усреднение на 4 полностью устраняет шум от ядра (по крайней мере небыло разницы между SLEEP и нормальным режимом, в обоих случаях +- 0,5 младшего разряда), гораздо больше зависит от правильной разводки и качества опоры. например при использовании двухвыводных ион (по типу стабилитронов, LM285, tl431) очень сказывается ток через этот стабилитрон, чем меньше ток тем больше шум. Поэтому конденсатор в опору однозначно необходим (между выводом опоры и землей).
При выборе делителя также необходимо учитывать требуемый ток потребляемый пиком от опоры, а лучше включить ОУ в режиме повторителя м/у делителем опорного и входом опоры пика.

еще грабли - в нормальном режиме (не SLEEP) нельзя тактировать от RC-генератора, правильно только делением основного, при RC шум больше, что то связаное с интерфенцией или несинхронным переключением

еще один момент - если Вы собираетесь ставить промежуточный инстр усилитель, тогда однозачно стоит поднять опору до 5В а низ опоры заземлить, точноть при этом так же лучше будет (см. даташит на пик)
Go to the top of the page
 
+Quote Post
Antarius
сообщение Jan 16 2008, 08:29
Сообщение #23


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 8-01-08
Пользователь №: 33 892



Спасибо!
Попробую.
Правда никогда не сталкивался с режимом Sleep.
Как я понимаю, это режим пониженного энергопотребления.
Но программа все равно выполняется, правильно?
И опрос ацп мне вести в этом режиме?
А как потом вывести контроллер из этого режима, прерыванием от таймера, запущенного перед циклом опросов?

Опорное напряжение от REF195.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 16 2008, 08:43
Сообщение #24


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Antarius @ Jan 16 2008, 11:29) *
Спасибо!
Попробую.
Правда никогда не сталкивался с режимом Sleep.
Как я понимаю, это режим пониженного энергопотребления.
Но программа все равно выполняется, правильно?
И опрос ацп мне вести в этом режиме?
А как потом вывести контроллер из этого режима, прерыванием от таймера, запущенного перед циклом опросов?

Опорное напряжение от REF195.

Да не мучайтесь... Вы же атмосферное давление измеряете - оно не скачет... Можете хоть за 10 секунд накапливать-усреднять.... Тем более, что усилитель у Вас уже есть.. (?).
Важнее правильно запитать все это хозяйство - должен получиться мост... Второе плечо из потенциометра проволочного. Опорное на АЦП с питания моста. Оно может быть и не сильно стабилизированным, наверное... от датчика зависит...
Go to the top of the page
 
+Quote Post
dac
сообщение Jan 16 2008, 10:09
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482



еще пара моментов

вы в курсе что в этом диапазоне датчик обеспечивает 5,5 разрядную точность?

MPX4115 по даташиту обеспечивает стабильность 0,5% от рабочего диапазона т.е. 25мВ) в требуемом диапазоне 3,8...4,2В (даже считая что вы его правильно усилили и оцифровали) сам датчик обеспечит точность всего в 45 единиц
(4,2-3,8)/0,025 = 45 - результат округленно, но это ваша реальная стабильность от датчика,
без учета основной точности в 1,5% sad.gif
даже если вы и получите стабильные цифры, они мало общего будут иметь с реальным давлением

так что имхо не стоит огород городить, оцифровывайте напрямую и работайте с полученным результатом, либо меняйте датчик

есть еще один вариант, именно по оцифровке, искусственно получить 12 битный результат по принципу: сделать 16 десятибитных измерения, затем поделить на 4. Но это не повысит реальную точность датчика, хотя может позволить избежать применения дополнительных элементов, сохранив разрядность, примерно 9 бит в диапазоне 3,8...4,2В.

а потом еще нужное кол-во таким образом полученных 12битных результатов усреднить на любом интервале времени

и по усреднению - лучше всего делать 16 отсчетов за 20мс , т.е. с интервалом 1,25мс - в этом случае вы хорошо отфильтруете помеху 50Гц или в принципе, с любым интервалом кратным 10мс - получите тот же результат
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 16 2008, 12:13
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Antarius @ Jan 16 2008, 11:29) *
Спасибо!
Попробую.
Правда никогда не сталкивался с режимом Sleep.
Как я понимаю, это режим пониженного энергопотребления.


Угу, совсем пониженного smile.gif Ядро останавливается

Цитата
Но программа все равно выполняется, правильно?
Нет

Цитата
И опрос ацп мне вести в этом режиме?
Да

Цитата
А как потом вывести контроллер из этого режима, прерыванием от таймера, запущенного перед циклом опросов?
Прерыванием от АЦП по окончанию преобразования
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01476 секунд с 7
ELECTRONIX ©2004-2016