|
АЦП в PIC 16F876A, Нестабильные результаты |
|
|
|
Jan 8 2008, 09:37
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Jan 8 2008, 10:24
|
Частый гость
 
Группа: Участник
Сообщений: 111
Регистрация: 8-01-08
Пользователь №: 33 892

|
Да нету никакой схемы, собирается на коленке  Датчик давления измеряет давление от 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В). Почему?
|
|
|
|
|
Jan 8 2008, 11:35
|
Местный
  
Группа: Свой
Сообщений: 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  А схемы рисовать нужно. Как минимум - перед тем, как задавать вопросы. Иначе вас не поймут (даже если захотят пытаться понимать без схемы).
|
|
|
|
|
Jan 8 2008, 12:11
|
Частый гость
 
Группа: Участник
Сообщений: 111
Регистрация: 8-01-08
Пользователь №: 33 892

|
О, спасибо, эту табличку я почему-то даже и не смотрел. Значит, проблема в том, что у меня не соблюдается Max Vref - = Vref+ - 2.0V. Спасибо большое! А кто подскажет как получить -5 В из +5В  Ой, уже оффтопик.
|
|
|
|
|
Jan 10 2008, 15:53
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 24-01-07
Пользователь №: 24 741

|
Цитата(Antarius @ Jan 8 2008, 15:11)  О, спасибо, эту табличку я почему-то даже и не смотрел. Значит, проблема в том, что у меня не соблюдается Max Vref - = Vref+ - 2.0V. Я думаю проблема не в этом. Учитывая что превышение у Вас небольшое, это немного влияет на линейность работы АЦП, но не более. Проблема скорее всего в питании, возможно есть смысл увеличить емкости по питанию.
|
|
|
|
|
Jan 10 2008, 20:11
|
Местный
  
Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667

|
Цитата(Энтомолог @ Jan 10 2008, 17:53)  Я думаю проблема не в этом. Учитывая что превышение у Вас небольшое, это немного влияет на линейность работы АЦП, но не более. Проблема скорее всего в питании, возможно есть смысл увеличить емкости по питанию. Я в своем посте не имел в виду, что проблема нестабильных показаний - в величинах опорных напряжений. Просто указал, что заданы они неверно. Прошу прощения - не акцентировал внимания на этой мысли. Но не сказать, что "превышение небольшое": разница между верхней и нижней опорами около 300 мВ при требуемом "не менее 2000 мВ". А болтанка АЦП - да, от нее избавиться трудно. И вопрос не только в стабильности питания. Там могут и просто посторонние пульсации попадать на вход АЦП.
|
|
|
|
|
Jan 11 2008, 18:13
|
Частый гость
 
Группа: Свой
Сообщений: 178
Регистрация: 19-09-07
Из: М.О. г.Фрязино
Пользователь №: 30 656

|
Цитата(Antarius @ Jan 11 2008, 11:03)  Что касается времени заряда конденсатора, я опрашиваю датчик в цикле, между опросами задержка 20 мс. Этого достаточно для заряда? Пробовал 50 мс, разницы не заметил, но утверждать на 100% не буду. Если Вы не трогаете входной коммутатор, то и 20 мкс достаточно для заряда УВХ...
|
|
|
|
|
Jan 11 2008, 19:43
|
Частый гость
 
Группа: Участник
Сообщений: 111
Регистрация: 8-01-08
Пользователь №: 33 892

|
Цитата(Марк_Я @ Jan 11 2008, 21:13)  Если Вы не трогаете входной коммутатор, то и 20 мкс достаточно для заряда УВХ... Входной коммутатор - это регистр ADCON? Я его один раз перед циклом опросов трогаю, но потом жду 100 мс.
Сообщение отредактировал Antarius - Jan 11 2008, 19:45
|
|
|
|
Сообщений в этой теме
Antarius АЦП в PIC 16F876A Jan 8 2008, 09:37  Tanya Цитата(Antarius @ Jan 8 2008, 13:24) Да н... Jan 8 2008, 10:48   Antarius Ну не разрабатывал я схему.
Приходит идея - ищетс... Jan 8 2008, 11:30    Tanya Цитата(Antarius @ Jan 8 2008, 15:11) О, с... Jan 8 2008, 12:22       Tanya Цитата(Antarius @ Jan 11 2008, 11:03) Спа... Jan 11 2008, 08:43 volodya Для получения +-5(+-15) двыхполярных можно DC/DC к... Jan 9 2008, 06:14 amw Цитата(Antarius @ Jan 8 2008, 11:37) Поче... Jan 10 2008, 15:34 Марк_Я Попробую и я помочь автору топика. Хочу ему... Jan 11 2008, 06:16 Энтомолог Хочу добавить, на резисторы, которыми вы получаете... Jan 11 2008, 12:26 Antarius Извините чайника, а между какие выводами конденсат... Jan 11 2008, 17:40 Энтомолог Цитата(Antarius @ Jan 11 2008, 20:40) меж... Jan 11 2008, 20:30 XVR Добавлю свои 5 коп. автору темы:
ОЧЕНЬ рекомендуе... Jan 15 2008, 14:48 dac Цитата(XVR @ Jan 15 2008, 18:48) ОЧЕНЬ ре... Jan 16 2008, 07:11  Antarius Спасибо!
Попробую.
Правда никогда не сталкивал... Jan 16 2008, 08:29   Tanya Цитата(Antarius @ Jan 16 2008, 11:29) Спа... Jan 16 2008, 08:43    dac еще пара моментов
вы в курсе что в этом диапазоне... Jan 16 2008, 10:09   XVR Цитата(Antarius @ Jan 16 2008, 11:29) Спа... Jan 16 2008, 12:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|