Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: смещение нуля at91sam7s256
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Димон Безпарольный
В нуле у АЦП at91sam7s256 стабильно 8 отсчетов. По пяти каналам. Кто - нибудь сталкивался?
Golikov A.
Стоит или беситься? АЦП в минус мерить умеет?
Димон Безпарольный
Цитата(Golikov A. @ Mar 25 2015, 20:05) *
Стоит или беситься? АЦП в минус мерить умеет?

Стабильно стоит. По всем каналам. При том, что само АЦП нормально измеряет значения. Т.е. измерял от 100 отсчетов 1000. АЦП в минус не измеряет.
Obam
Нечто подобное было: "перебдел" - поставил дроссельки (~200 мкГн) в развязку по ВЧ и питания "цифра-аналог", и земли "цифра-аналог".
Вылечилось заменой дросселя-развязки по земле на перемычку.
Александр С
Цитата(Димон Безпарольный @ Mar 25 2015, 17:57) *
В нуле у АЦП at91sam7s256 стабильно 8 отсчетов. По пяти каналам. Кто - нибудь сталкивался?

Была похожая проблема. При детальном изучении оказался неправильно настроен выход при правильной настройки АЦП.
Димон Безпарольный
Цитата(Obam @ Mar 26 2015, 15:25) *
Нечто подобное было: "перебдел" - поставил дроссельки (~200 мкГн) в развязку по ВЧ и питания "цифра-аналог", и земли "цифра-аналог".
Вылечилось заменой дросселя-развязки по земле на перемычку.


Что касается земли, то дросселей я туда конечно же не ставил, но идея интересная - может просто плохо пропаяна земля. Я чип вручную паял.

Цитата(Александр С @ Mar 26 2015, 15:45) *
Была похожая проблема. При детальном изучении оказался неправильно настроен выход при правильной настройки АЦП.

Выход или вход? О какой настройке идет речь?
Сергей Борщ
Возможно вход настроен на цифровой режим и в нем не отключена подтяжка. Вроде и мизерный там ток, и сопротивление от вывода до точки подключения этой подтяжки небольшое, а набежать может. Может ток какой течет между цифровой и аналоговой землей и приподнимает или опускает потенциал аналоговой земли.
Димон Безпарольный
Цитата(Сергей Борщ @ Mar 26 2015, 16:05) *
Возможно вход настроен на цифровой режим и в нем не отключена подтяжка. Вроде и мизерный там ток, и сопротивление от вывода до точки подключения этой подтяжки небольшое, а набежать может. Может ток какой течет между цифровой и аналоговой землей и приподнимает или опускает потенциал аналоговой земли.

Подтяжки отключены. Но ток, подтягивающий выводы вверх все же течет. Условный ноль (8 отсчетов) наступает при подпайке резистора 20КОм на землю. Меньший резистор не дает реального нуля.

Мож проц дохлый?
Сергей Борщ
Цитата(Димон Безпарольный @ Mar 26 2015, 15:08) *
Подтяжки отключены.
Тогда ой. Посмотрел - аналоговый режим включается автоматически при включении канала в настройках АЦП.
Цитата(Димон Безпарольный @ Mar 26 2015, 15:08) *
Мож проц дохлый?
Может и так. Но слабо верится. Хотя... обещают ошибку смещения не более 2 единизы МЗР. Вы пишете, что такая ошибка по пяти каналам. А по остальным? Впрочем, какая разница - они все на один порт разведены. Смущает, что при 20 кОм наступает некий порог. Проверьте еще разок все ноги земли. Может цифровая земля этого порта отвалилась.
kleverd
Скорее всего косяк в плате(непропай). Надо померить сопротивление между пинами и дорожками.
8 отсчетов, конечно многовато.
А может помеха какая-то навелась. Эксперименты с выключением мобильников и люминесцентных ламп иногда помогают.
А у АЦП никакого режима калибровки нету случаем?
Димон Безпарольный
Косяк на плате я подозревал в первую очередь. Но увы. Ошибка по всем восьми каналам одинаковая. Разводке земли я всегда уделяю много внимания. И это меня еще не разу не подводило. Грешу на процессор. Будут другие платы - отпишусь.
stoker
У вас входной тракт как выполнен? Стоят ли входные буферные усилители, может активные фильтры по каналам?
Димон Безпарольный
Цитата(stoker @ Apr 16 2015, 15:11) *
У вас входной тракт как выполнен? Стоят ли входные буферные усилители, может активные фильтры по каналам?

В двух вариантах - на одном входе AD8628, операционник, на трех - конденсаторы 1мкф керамика и резистивный делитель. Результат один и тот же. В программе приходится вычитать 7 отсчетов. Чтение АЦП по готовности, в прерывании:
Код
__irq void ADC_int(void) {            //Прерывание от АЦП бит DRDY. Время выполнения 2мкс
//Канал 2
    if (*ADC_SR & 4) {                //Проверка готовности канала EOC2
        ADC_ch2 = *ADC_CDR2-7;        //Чтение канала сбрасывает канальный бит прерывания EOC2
        *ADC_CHER =    8;}                //Включить канал 3
//Канал 3
    if (*ADC_SR & 8) {                //Проверка готовности канала EOC3
        ADC_ch3 = *ADC_CDR3-7;        //Чтение канала сбрасывает канальный бит прерывания EOC3
        *ADC_CHER =    16;}            //Включить канал 4
//Канал 4
    if (*ADC_SR & 16) {                //Проверка готовности канала EOC4
        ADC_ch4 = *ADC_CDR4-7;        //Чтение канала сбрасывает канальный бит прерывания EOC4
        *ADC_CHER =    32;}            //Включить канал 5
//Канал 5
    if (*ADC_SR & 32) {                //Проверка готовности канала EOC5.
        ADC_ch5 = *ADC_CDR5-7;        //Чтение канала сбрасывает канальный бит прерывания EOC5
        *ADC_CHER =    64;    }            //Включить канал 6
//Канал 6
    if (*ADC_SR & 64) {                //Проверка готовности канала EOC6
        ADC_ch6 = *ADC_CDR6-7;        //Чтение канала сбрасывает канальный бит прерывания EOC6
        *ADC_CHER =    128;}            //Включить канал 7
//Канал 7
    if (*ADC_SR & 128) {            //Проверка готовности канала EOC7
        ADC_ch7 = *ADC_CDR7-7;        //Чтение канала сбрасывает канальный бит прерывания EOC7
        *ADC_CHER =    4;}                //Включить канал 2
//Общая ветвь
        *ADC_CR=(1<<1);                //Начать преобразование
        *AIC_EOICR = 1;}            //__irq void ADC_int(void)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.