|
АЦП в PIC16F882, проблемы с точностью |
|
|
|
Dec 14 2009, 13:58
|
Участник

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

|
АЦП измеряет не сопротивление, а напряжение. Точность ~5mV
|
|
|
|
|
Dec 15 2009, 02:19
|
Профессионал
    
Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898

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

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

|
Похоже Вы температуру пытаетесь измерить, только питание довольно странно подключили. Поскольку АЦП сопротивления не измеряет, то через RK1 должен протекать некий ток. Этот ток создаст падение напряжения которое Вы уже и сможете измерить. Погрешность измерения, напряжения ес-но, можно узнать из dsh. Для 16 серии она ~5mV. Это изготовитель чипов обещает. Он такие устройства миллионами штук выпускает.
|
|
|
|
|
Dec 15 2009, 11:14
|
Гуру
     
Группа: Участник
Сообщений: 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 дискретов - это все ж многовато. А если дело в смещении - то, наверное, надо подумать о начальной калибровке-компенсации.
|
|
|
|
|
Dec 15 2009, 12:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898

|
Цитата(bolt @ Dec 15 2009, 16:23)  Похоже Вы температуру пытаетесь измерить, только питание довольно странно подключили. Поскольку АЦП сопротивления не измеряет, то через RK1 должен протекать некий ток. Этот ток создаст падение напряжения которое Вы уже и сможете измерить. Погрешность измерения, напряжения ес-но, можно узнать из dsh. Для 16 серии она ~5mV. Это изготовитель чипов обещает. Он такие устройства миллионами штук выпускает. Не знаю чего тут такого странного, это обычное решение - подавать импульсное напряжения на датчик. Чтобы исключить саморазогрев терморезистора. Спаял ещё одну плату - точно такие же показания, либо я где-то накасячил, либо... Всем спасибо, буду разбираться в чем дело.
|
|
|
|
|
Dec 15 2009, 12:17
|
Участник

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

|
Цитата Не знаю чего тут такого странного, -5V на Vss, обычно это GND
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|