Amigos del foro, TODOPIC.
Tengo un problema con la lectura del ADC del PIC18F46K22 en CCS C y el problema es el siguiente:
Estoy realizando la medición del adc a 10 bits
y los fuses asi:
#fuses HSH,NOPLLEN,PRIMARY_ON,NOWDT,PUT,NOBROWNOUT,NOPBADEN,MCLR,PROTECT,NOLVP,NOSTVREN,NODEBUG
a 20 Mhz con un crystal fisicop externo de 20Mhz
#use delay(clock=20000000, crystal=20000000)
dentro del el main:
setup_adc_ports (sAN0 | VSS_VDD); // setup_adc_ports (sAN0 | VSS_VDD); para 18f46k22
setup_adc(ADC_CLOCK_INTERNAL | ADC_TAD_MUL_0);
set_adc_channel(0);
Bueno, pues resulta sin tener nada conectado en la entrada AN0 del 18F46K22 (deberia de ser 0V cd), me muestra una lectura de 0.82 Vcd medidos con el multimetro (Esta medición la tomo rápido por que casi al momento de medirla cae el voltaje a cero). Coloco mi dedo en la entrada del adc y cae ese voltaje a cero, lo cual es lo que debería de ser correcto, quito mi dedo y ese voltaje de 0.82 vuelve a aparecer como si fuera ruido o no se pero ya me esta volviendo loco
.
Ese mismo código, claro solo cambiando los #fuses para que compile el programa con el PIC18F4550 funciona de maravilla, es decir, aquí sin tener nada conectado marca 0 Volts, la cuestion es que ya tengo unas pcb ensambladas y no quisiera cambiar de Pic por presupuesto.
No se que es y me da vueltas la cabeza podría ser:
1.- Configuración de los #fuses que es lo único que cambio del pic 18F46K22 al PIC18F4550 (El 4550 funciona al 100).
2.- Ruido eléctrico.
3.- El adc del 18F46K22 no esta funcionando bien o el compilador de CCS para este pic esta fallando con algún bugs.
4.- Configurar el ADC de otra manera o por registros.
5.- Impedancia de entrada del ADC para este pic.
6.- Los extraterrestres me quieren hacer la vida de cuadritos
Por favor alguien a me podría aclarar esto, o alguna ayuda.
Gracias.
Olvidaba decir que ese voltaje de 0.8 o mas ya que varia un poco, lo estoy convirtiendo a porcentaje, el cual muestro en el LCD.
La dinámica en la LCD es que a 0V =% y a 5V 100%.
En la imagen, la lcd muestra 14% y no tengo nada conectado en la entrada del AN0.