Прикол с АЦП у msp430f149??? :(
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено stranger 04 апреля 2004 г. 12:51

Наблюдается странная аномалия с 12-битным АЦП на MSP430F149 если использовать внешнее опорное напряжение VR+=VeREF+ (10-я нога микроконтроллера) и VR-=AVss, т.е. когда биты SREF установлены в значение 2 или 3. Заключается эта аномалия в том, что когда конвертируемое напряжение находится в интервале 0.46..0.5 VeREF+, результат всегда получается 2051 (т.е. ~0.5 VeREF+). При других значениях конвертируемого напряжения результат всегда получается правильный. Это явление не зависит от конкретных величин опорного и конвертируемого напряжений, главное чтобы они были связаны указанным выше соотношением. Т.е получается "выпадает" интервал возможных результатов 1883..2051. :( Других закономерностей найти не удалось. Это проверялось на различных источниках сигнала. Могу добавить, только, что при использовании внутренней опоры (например AVcc, когда SREF=0), этого не наблюдается.

Кто-нибудь сталкивался с такой фигней? Где копать - в микросхеме, правильной настройке АЦП, в кривых руках, etc?

Преобразование делаю так:

unsigned int convert_A1(void) {
unsigned int result;
// configure ADC12
P6DIR&=~0x02; // Use pin P6.1 (A1) for input
P6SEL|=0x02; // Select A/D function for pin P6.1 (A1)
ADC12CTL0=ADC12ON+SHT0_2; // Turn on ADC12, set sampling time
ADC12CTL1=CSTARTADD_1+SHP; // Use sampling timer
ADC12MCTL1=SREF_2+INCH_1; // Vr+ = VeREF+ (external)
// start sample-n-hold and conversion
ADC12CTL0|=ENC; // Enable conversions
ADC12CTL0|=ADC12SC; // Start single conversion
while ((ADC12IFG&BIT1)==0);
result=ADC12MEM1;
// stop/detach ADC12 from used pins
ADC12CTL0&=~(ADC12SC+ENC+ADC12ON); // Disable sample-and-hold/conversion, turn off ADC12
P6SEL&=~0x02; // Select I/O function for pin P6.1 (A1)
return result;
}

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru