|
АЦП в 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, 10:48
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Antarius @ Jan 8 2008, 13:24)  Да нету никакой схемы, собирается на коленке  Датчик давления измеряет давление от 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. Проще всего - инструментальным усилителем.
|
|
|
|
|
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 8 2008, 12:22
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Antarius @ Jan 8 2008, 15:11)  О, спасибо, эту табличку я почему-то даже и не смотрел. Значит, проблема в том, что у меня не соблюдается Max Vref - = Vref+ - 2.0V. Спасибо большое! А кто подскажет как получить -5 В из +5В  Ой, уже оффтопик. AD22050 или подобное избавят Вас от второго питания....
|
|
|
|
|
Jan 10 2008, 15:34
|
Знающий
   
Группа: Свой
Сообщений: 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.
|
|
|
|
|
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 мВ". А болтанка АЦП - да, от нее избавиться трудно. И вопрос не только в стабильности питания. Там могут и просто посторонние пульсации попадать на вход АЦП.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|