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

 
 
> Atmega8: АЦП мереет то чего нет.
Spider
сообщение Apr 29 2008, 04:40
Сообщение #1


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Имеем AtMega8 с подключеными на ADC0,ADC1,ADC2 сигналами.
Но измерения мягко говоря странные. ADC0 и ADC2 "близки к нолю", т.е. по сути там делитель "вход" которого "висит" в воздухе. На ADC1 есть напряжение около 3х вольт.
Результат измерения получается 4, 805, 800 (ну +-3 от раза к разу). Ну 4 ладно, это 0,018 вольта, 805 тоже понимаю это где-то 3.8В, но от куда 800? Стою осцилографом на этой шожке и ничего не вижу, а измерение есть...
В коде измеряем значения следующим образом:
Код
#include <avr/io.h>
#define AD_CNT        3
#define AD_CLC        5
volatile uint16_t    ADBuf[AD_CNT][AD_CLC];
volatile uint16_t    ADSum[AD_CNT];
volatile uint8_t    src=0,ad_calc=0;

void init_adc(void) {
    uint8_t i,j;
    for (i=0;i<AD_CNT;i++) {
        for (j=0;j<AD_CLC;j++)
            ADBuf[i][j] = 0;
        ADSum[i] = 0;
    }
    ADCH = 0;
    ADCL = 0;
    ADMUX = _BV(REFS0);
    ADCSRA = _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1) | _BV(ADSC);
}

int main(void) {
    PORTC = 0;
    DDRC = 0;

    ....

    init_adc();

    ....

    while(1) {        
        if (bit_is_clear(ADCSRA,ADSC)) {
            uint16_t ADres=ADC;
          

            ADSum[src] -= ADBuf[src][ad_calc];
            ADBuf[src][ad_calc] = ADres;        // Place new value into Buffer
            ADSum[src] += ADres;

            ad_calc++;
            ad_calc%=AD_CLC;
            if (!ad_calc) {
                src++;
                src%=AD_CNT;
                ADMUX = _BV(REFS0) | src;            
            }
            ADCSRA |= _BV(ADSC);
        }
        ....
    }
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bzx
сообщение Apr 29 2008, 05:40
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



на AREF ёмкость стоит?


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post
Spider
сообщение Apr 29 2008, 08:11
Сообщение #3


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Цитата(bzx @ Apr 29 2008, 12:40) *
на AREF ёмкость стоит?

Да, конечно. 1uF керамика.
Go to the top of the page
 
+Quote Post
Tolyaha
сообщение Apr 29 2008, 11:14
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 116
Регистрация: 2-03-07
Из: Украина
Пользователь №: 25 826



А на AVcc питание подано?
Go to the top of the page
 
+Quote Post
Spider
сообщение Apr 30 2008, 06:05
Сообщение #5


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Цитата(Tolyaha @ Apr 29 2008, 18:14) *
А на AVcc питание подано?

Конечно!

Цитата(bloodden @ Apr 29 2008, 18:08) *
Подтяжка висит. И ещё: там с фузами есть нюанс, только непомню какой и или в м8 или м16.

Эм.. А подтяжка не к земле ли? или речь о внутренней? Так ведь DDRC=0
Фьюзов связанных с ACP не обнаружил.
Go to the top of the page
 
+Quote Post
bloodden
сообщение Apr 30 2008, 19:31
Сообщение #6


Бывалый
***

Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853



Цитата(Alexey Belyaev @ Apr 30 2008, 09:05) *
Конечно!
Эм.. А подтяжка не к земле ли? или речь о внутренней? Так ведь DDRC=0
Фьюзов связанных с ACP не обнаружил.

DDRC=0 - означает что выводы будем юзать входами. А если при этом PORTC=0xFF, то на входах включаются подтяжки к VCC. Я замечал, что если пару входов использовать в качестве входов АЦП и при этом из ТОГО ЖЕ порта использовать выходы, то состояние этих выходов влияет на уровни, которые оцифровываем.


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 22:38
Рейтинг@Mail.ru


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