Estoy haciendo funcionar el ADC de un PIC18F452, y para probarlo le inyecto un voltaje con un potenciometro de 10K, formando un divisor de voltaje con la alimentación del pic.
El problema es que cuando el voltaje del ADC se acerca a 5V, el consumo es de unos 60mA, mientras que con el pin al aire no llega a 10mA. En la simulación en proteus funciona correctamente, y en real si noto diferencia dependiendo de la posición del cursor, pero ese consumo me parece exagerado.
El pic es nuevo, pero no tengo otro para probar, no sé a que se puede deber, la configuración que le pongo es esta:
void Iniciar_adc(void){
ADCS0 = 1; //Seleccion
ADCS1 = 0; //de frecuencia
ADCS2 = 1; //referencia fosc/16
ADON = 1; // turn on the A2D conversion module
ADFM = 1; //Resultado justificado a la derecha.
PCFG0 = 0;//Canal AN0
PCFG1 = 1;//
PCFG2 = 1;//
PCFG3 = 1;//analogico.
}
unsigned short Leer_adc(unsigned char canal){
canal &= 0x07; // truncate canal to 3 bits
ADCON0 &= 0xC5; // clear current canal select
ADCON0 |= (canal<<3); // apply the new channel select
DelayMs (1);
GODONE=1;
while(GODONE)continue;
return( (ADRESH * 256) + ADRESL );
}
Saludos.