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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> АЦП в 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
Tanya
сообщение Jan 8 2008, 10:09
Сообщение #2


Гуру
******

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



Цитата(Antarius @ Jan 8 2008, 12:37) *
Нужно оцифровать значения датчика давления MPX 4115A с помощью АЦП в PIC16F876A.


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

Вот этот кусок текста непонятен. Может схему лучше бы прикрепить? Только не в .bmp
Go to the top of the page
 
+Quote Post
Antarius
сообщение Jan 8 2008, 10:24
Сообщение #3


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

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



Да нету никакой схемы, собирается на коленке smile.gif

Датчик давления измеряет давление от 0 до 120 кпа, что соответствует напряжению на его выходе от 0 до 5 вольт. Я измеряю давление атмосферы, которое изменяется примерно от 90 до 105 кпа, что есть примерно 3,785 - 4,205 В на выходе датчика.
Поэтому если я просто буду оцифровывать с помощью АЦП диапазон 0 - Vdd (+5В), интересующее меня давление будет слабо меняться на выходе АЦП.
Поэтому с помощью регистра ADCON1 я переключаю АЦП в контроллере на работу с напряжениями Vref- и Vref+, вместо 0 - Vdd (см. стр. 128 англ. даташита на PIC 16F876A)
Подаю на Vref- (RA.2) +3.785В, а на Vref+ (RA.3) + 4.205 В. И измеряю уже относительно этих напряжений.

Ответ АЦП не стабилен, хотя напряжение с датчика стабильно (< +/- 0,001В).
Почему?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 8 2008, 10:48
Сообщение #4


Гуру
******

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



Цитата(Antarius @ Jan 8 2008, 13:24) *
Да нету никакой схемы, собирается на коленке smile.gif

Датчик давления измеряет давление от 0 до 120 кпа, что соответствует напряжению на его выходе от 0 до 5 вольт. Я измеряю давление атмосферы, которое изменяется примерно от 90 до 105 кпа, что есть примерно 3,785 - 4,205 В на выходе датчика.
Поэтому если я просто буду оцифровывать с помощью АЦП диапазон 0 - Vdd (+5В), интересующее меня давление будет слабо меняться на выходе АЦП.
Поэтому с помощью регистра ADCON1 я переключаю АЦП в контроллере на работу с напряжениями Vref- и Vref+, вместо 0 - Vdd (см. стр. 128 англ. даташита на PIC 16F876A)
Подаю на Vref- (RA.2) +3.785В, а на Vref+ (RA.3) + 4.205 В. И измеряю уже относительно этих напряжений.

Ответ АЦП не стабилен, хотя напряжение с датчика стабильно (< +/- 0,001В).
Почему?

Схема - это не изделие, а его схема. А мучаете Вы таким образом АЦП напрасно. Удивительно, что еще как-то работает! У Вас диапазон примерно 0.4 вольта. Вам бы его усилить раз в 10. Проще всего - инструментальным усилителем.
Go to the top of the page
 
+Quote Post
Antarius
сообщение Jan 8 2008, 11:30
Сообщение #5


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

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



Ну не разрабатывал я схему.
Приходит идея - ищется деталька, даташит к ней и подключается к микроконтроллеру.
Схему нарисую, когда печатную плату буду делать.

Про инструментальный усилитель думал. Даже купил AD623. Но уткнулся в получение отрицательного напряжения в схеме (-5В), необходимых для него, и готовых решений не нашел, а сам не знаю - чайник же.
А почему я мучаю АЦП? Это же штатный режим работы... Или как?

Кстати, спасибо за ответы!
Еще раз прошу прощения, ибо абс. чайник в электронике.

Сообщение отредактировал Antarius - Jan 8 2008, 11:32
Go to the top of the page
 
+Quote Post
K_AV
сообщение Jan 8 2008, 11:35
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667



Цитата(Antarius @ Jan 8 2008, 12:24) *
Поэтому с помощью регистра ADCON1 я переключаю АЦП в контроллере на работу с напряжениями Vref- и Vref+, вместо 0 - Vdd (см. стр. 128 англ. даташита на PIC 16F876A)
Подаю на Vref- (RA.2) +3.785В, а на Vref+ (RA.3) + 4.205 В. И измеряю уже относительно этих напряжений.
Возьмите даташит на свой микроконтроллер и уточните, какие минимальное и максимальное значения напряжений можно использовать для встроенного АЦП в качестве внешних опорных. Это в табл.17-14 wink.gif
А схемы рисовать нужно. Как минимум - перед тем, как задавать вопросы. Иначе вас не поймут (даже если захотят пытаться понимать без схемы).
Go to the top of the page
 
+Quote Post
Antarius
сообщение Jan 8 2008, 12:11
Сообщение #7


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

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



О, спасибо, эту табличку я почему-то даже и не смотрел.
Значит, проблема в том, что у меня не соблюдается Max Vref - = Vref+ - 2.0V.
Спасибо большое!

А кто подскажет как получить -5 В из +5В wink.gif Ой, уже оффтопик.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 8 2008, 12:22
Сообщение #8


Гуру
******

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



Цитата(Antarius @ Jan 8 2008, 15:11) *
О, спасибо, эту табличку я почему-то даже и не смотрел.
Значит, проблема в том, что у меня не соблюдается Max Vref - = Vref+ - 2.0V.
Спасибо большое!

А кто подскажет как получить -5 В из +5В wink.gif Ой, уже оффтопик.

AD22050 или подобное избавят Вас от второго питания....
Go to the top of the page
 
+Quote Post
volodya
сообщение Jan 9 2008, 06:14
Сообщение #9


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

Группа: Свой
Сообщений: 194
Регистрация: 14-02-07
Из: УКРАИНА
Пользователь №: 25 344



Для получения +-5(+-15) двыхполярных можно DC/DC конвертор использовать например P6CU-0505Z в двух полярн. 5В или их аналоги (хотя хто кому аналог) от разных производителей. Таких море и недоого.
Удачи!!


--------------------
"Для того чтобы избежать критики, надо ничего не делать, ничего не говорить и никем не быть"
"Каждый из нас бывает дураком по крайней мере пять минут в день; мудрость заключается в том, чтобы не превысить лимит." Элберт Хаббард
Go to the top of the page
 
+Quote Post
amw
сообщение Jan 10 2008, 15:34
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



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

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

Вообще-то АЦП всегда болтает. И усреднять всегда надо.
Вам еще повезло, что разброс болтанки меньше 3-4 разрядов при Вашей "схеме".


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
Энтомолог
сообщение Jan 10 2008, 15:53
Сообщение #11


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

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



Цитата(Antarius @ Jan 8 2008, 15:11) *
О, спасибо, эту табличку я почему-то даже и не смотрел.
Значит, проблема в том, что у меня не соблюдается Max Vref - = Vref+ - 2.0V.


Я думаю проблема не в этом. Учитывая что превышение у Вас небольшое, это немного влияет на линейность работы АЦП, но не более. Проблема скорее всего в питании, возможно есть смысл увеличить емкости по питанию.
Go to the top of the page
 
+Quote Post
K_AV
сообщение Jan 10 2008, 20:11
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667



Цитата(Энтомолог @ Jan 10 2008, 17:53) *
Я думаю проблема не в этом. Учитывая что превышение у Вас небольшое, это немного влияет на линейность работы АЦП, но не более. Проблема скорее всего в питании, возможно есть смысл увеличить емкости по питанию.
Я в своем посте не имел в виду, что проблема нестабильных показаний - в величинах опорных напряжений. Просто указал, что заданы они неверно. Прошу прощения - не акцентировал внимания на этой мысли. Но не сказать, что "превышение небольшое": разница между верхней и нижней опорами около 300 мВ при требуемом "не менее 2000 мВ".
А болтанка АЦП - да, от нее избавиться трудно. И вопрос не только в стабильности питания. Там могут и просто посторонние пульсации попадать на вход АЦП.
Go to the top of the page
 
+Quote Post
Марк_Я
сообщение Jan 11 2008, 06:16
Сообщение #13


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

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



Попробую и я помочь автору топика. Хочу ему напомнить, что на входе АЦП стоит УВХ. Поэтому необходимо обеспечить достаточное для заряда конденсатора УВХ (25 пФ) время между выбором канала АЦП (подачей сигнала на его вход) и моментом начала преобразования. В противном случае возможен эффект о котором он пишет...

Сообщение отредактировал Марк_Я - Jan 11 2008, 06:17
Go to the top of the page
 
+Quote Post
Antarius
сообщение Jan 11 2008, 08:03
Сообщение #14


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

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



Спасибо помогающим!

По поводу напряжений все понял. Буду переделывать на инструментальном усилителе, когда найду подходящий по питанию в продаже.

Что касается времени заряда конденсатора, я опрашиваю датчик в цикле, между опросами задержка 20 мс. Этого достаточно для заряда? Пробовал 50 мс, разницы не заметил, но утверждать на 100% не буду.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 11 2008, 08:43
Сообщение #15


Гуру
******

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



Цитата(Antarius @ Jan 11 2008, 11:03) *
Спасибо помогающим!

По поводу напряжений все понял. Буду переделывать на инструментальном усилителе, когда найду подходящий по питанию в продаже.

Что касается времени заряда конденсатора, я опрашиваю датчик в цикле, между опросами задержка 20 мс. Этого достаточно для заряда? Пробовал 50 мс, разницы не заметил, но утверждать на 100% не буду.

А искать можно быстро.. Вот, например...
http://www.efind.ru/icsearch/?search=ad627
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 - 07:27
Рейтинг@Mail.ru


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