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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> АЦП в PIC16F882, проблемы с точностью
dinam
сообщение Dec 13 2009, 12:18
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Спаял небольшую платку, на ней меряю сопротивление резистора по отношению к образцовому. И получется что АЦП врет на 5 единичек, значение стабильное. Усреднение по 128 отсчетам. Раньше пробовал на PIC16F876A, т.к там вообще не было разницы. На днях спаяю ещё одну платку, может там будет получше. А кто подскажет про регистр ANSEL? В datasheet про него вообще что попало написано. Пробовал его менять и так и сяк разницы не заметил.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 13 2009, 12:48
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(dinam @ Dec 13 2009, 15:18) *
А кто подскажет про регистр ANSEL? В datasheet про него вообще что попало написано. Пробовал его менять и так и сяк разницы не заметил.

Совершенно определенно написано, что для цифровых входов надо выставить "0" в соответствующих битах ANSEL и ANSELH, иначе всегда будет читаться "0" (по умолчанию там "1", т.е. входы считаются аналоговыми)
Go to the top of the page
 
+Quote Post
dinam
сообщение Dec 14 2009, 02:09
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Понятно, а вот как насчет точности? Кто-нибудь может сказать?
Go to the top of the page
 
+Quote Post
bolt
сообщение Dec 14 2009, 13:58
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 11-03-09
Пользователь №: 45 975



АЦП измеряет не сопротивление, а напряжение. Точность ~5mV
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 14 2009, 14:37
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(dinam @ Dec 14 2009, 05:09) *
Понятно, а вот как насчет точности? Кто-нибудь может сказать?

Схема не показана, настройки портов не показаны... Что тут можно обсуждать ? Параметры ADC из даташита ?
Go to the top of the page
 
+Quote Post
dinam
сообщение Dec 15 2009, 02:19
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Цитата(bolt @ Dec 14 2009, 19:58) *
АЦП измеряет не сопротивление, а напряжение. Точность ~5mV
Странно, у меня код на выходе АЦП говорит о величине измеряемого сопротивления по отношению к образцовому. И вы не поверите я даже не знаю какое у меня Vref (только примерно). cool.gif
Цитата(rx3apf @ Dec 14 2009, 20:37) *
Схема не показана, настройки портов не показаны... Что тут можно обсуждать ? Параметры ADC из даташита ?
Измеряю сопротивление RK1 в Sleep, необходимые времена для зарядки CHOLD и между измерениями выдерживаю. Приведенное сопротивление измеряемой цепи ко входу АЦП порядка 7.5 кОм. Напряжение питания около 4.6B. Vref чуть меньше из-за падения на порту RA2. Даже не знаю что ещё добавить. В datashеet я укладываюсь, но надеялся на меньшие величины.
Меня интересует какой разброс по точности у подобных АЦП. Может кто-нибудь выпускает тысячами-десятками тысяч устройств и подскажет?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
bolt
сообщение Dec 15 2009, 10:23
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 11-03-09
Пользователь №: 45 975



Похоже Вы температуру пытаетесь измерить, только питание довольно странно подключили. laughing.gif
Поскольку АЦП сопротивления не измеряет, то через RK1 должен протекать некий ток. Этот ток создаст падение напряжения которое Вы уже и сможете измерить.
Погрешность измерения, напряжения ес-но, можно узнать из dsh. Для 16 серии она ~5mV. Это изготовитель чипов обещает. Он такие устройства миллионами штук выпускает.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 15 2009, 11:14
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(dinam @ Dec 15 2009, 05:19) *
В datashеet я укладываюсь, но надеялся на меньшие величины.

Не, ну если ошибка в 5 дискретов против ожидаемой - то это уже и в даташит не вписывается. Точнее, не вписывается в типовые значения, максимальные в моей версии (2007 год) не оговорены (а тащить новый лениво). Надо исследовать, искать причину. Я бы начал с того, что сделал бы делитель из двух одинаковых резисторов (лучше бы, конечно, термостабильных) в диапазоне 1...2К, и посмотрел бы, что на таком делителе получится. Даже не обязательно подгонять их по равенству лучше 0.1% (хотя тоже неплохо бы), достаточно пары измерений, меняя их местами. Ну и "до кучи" посмотреть отклик ADC при соединении входа с "землей" и ref. Хотя бы проблему смещения можно было бы исключить. Если не смещение, то дальше уж исследовать линейность (опять же пару резисторов, но различающихся раз в пять). 5 дискретов - это все ж многовато. А если дело в смещении - то, наверное, надо подумать о начальной калибровке-компенсации.
Go to the top of the page
 
+Quote Post
dinam
сообщение Dec 15 2009, 12:07
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Цитата(bolt @ Dec 15 2009, 16:23) *
Похоже Вы температуру пытаетесь измерить, только питание довольно странно подключили. laughing.gif
Поскольку АЦП сопротивления не измеряет, то через RK1 должен протекать некий ток. Этот ток создаст падение напряжения которое Вы уже и сможете измерить.
Погрешность измерения, напряжения ес-но, можно узнать из dsh. Для 16 серии она ~5mV. Это изготовитель чипов обещает. Он такие устройства миллионами штук выпускает.
Не знаю чего тут такого странного, это обычное решение - подавать импульсное напряжения на датчик. Чтобы исключить саморазогрев терморезистора. Спаял ещё одну плату - точно такие же показания, либо я где-то накасячил, либо... Всем спасибо, буду разбираться в чем дело.
Go to the top of the page
 
+Quote Post
bolt
сообщение Dec 15 2009, 12:17
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 11-03-09
Пользователь №: 45 975



Цитата
Не знаю чего тут такого странного,

-5V на Vss, обычно это GND
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Dec 15 2009, 14:57
Сообщение #11


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(dinam @ Dec 15 2009, 07:07) *
Не знаю чего тут такого странного, это обычное решение - подавать импульсное напряжения на датчик. Чтобы исключить саморазогрев терморезистора. Спаял ещё одну плату - точно такие же показания, либо я где-то накасячил, либо... Всем спасибо, буду разбираться в чем дело.

А почему вы думаете, что ошибка в измерениях? Вы с чем сравниваете?
Go to the top of the page
 
+Quote Post
dinam
сообщение Dec 16 2009, 03:20
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Цитата(bolt @ Dec 15 2009, 18:17) *
-5V на Vss, обычно это GND
PIC ещё симистором управляет smile.gif. И это так исторически сложилось в схемах управления симисторами из-за меньшего тока управления во II и III квадрантах, а точнее из-за большего тока управления в IV квадранте. Похоже нащупал проблему, где-то ошибка в программе. Пока ещё не понял где, но при больших временах симуляции она проявляется.
Go to the top of the page
 
+Quote Post
bolt
сообщение Dec 16 2009, 09:24
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 11-03-09
Пользователь №: 45 975



Полагаю что всему виной большой коэффициент ускорения удельного сопротивления при медленной симуляции. Замена синего резистора на холодный поможет справиться с проблемой. Успехов! biggrin.gif
Go to the top of the page
 
+Quote Post
dinam
сообщение Dec 17 2009, 09:04
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Радость моя оказалась преждевременной. В программе всё впорядке. При замыкании на -Vref на выходе 0h. При подаче +Vref на вход, на выходе 3FDh. Хотя Gain Error 1 LSb по datasheet. Менял напряжение питание, показания стабильные. Смотрел показания без усреднения все очень близко ложаться, т.е разброса почти нет. Но ошибка всё равно составляет 5 LSb. На плате вроде нигде не накосячил. В общем уже голову поломал. В Microchip похоже остаётся только написать sad.gif.
Go to the top of the page
 
+Quote Post
Herz
сообщение Dec 17 2009, 17:28
Сообщение #15


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(dinam @ Dec 17 2009, 11:04) *
Но ошибка всё равно составляет 5 LSb. На плате вроде нигде не накосячил. В общем уже голову поломал.


Какая всё-таки ошибка? Вы так ничего и написали о том, с чего Вы взяли, что ПИК ошибается.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:05
Рейтинг@Mail.ru


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