La diferencia entre uno y otro es que el ADCSx, es el tiempo de conversion, es decir internamente cuando ya posee un voltaje el capacitor de sampleo, el tiempo de conversion por cada bit debe ser mayor que el minimo especificado en las caracteristicas electricas, Sino es como si estuvieras tratando de hacer correr algo a mayor velocidad de lo que puede. Digamos que a un trabajador le toma 60 minutos armar algo, y vos estas intentando que lo arme en 45 min. Y eso esta entendido.
El otro es el tiempo de adquisicion, es cuando todavia NO se cargo el capacitor de sampleo, sino el tiempo que necesita para cargarse al voltaje de entrada, entonces influye todo lo que este conectado al pin.
Si vos tenes una resistencia de 1Mohm en el pin, va a circular muy poca corriente y para que llegue la tension del capacitor de sampleo a igualar la de la entrada es mucho tiempo.
Ahora vos podes tener otros valores de entrada. Pero tenes que asegurarte que el capacitor se cargo correctamente antes de iniciar la conversion. Esto se puede lograr de 2 formas.
Si por ejemplo sampleo continuamente, una detras de otro. Entonces tengo que asegurarme que el tiempo de adquisicion alcance para cargar el capacitor. Normalmente la conversion el tiempo es asi:
|----------------Taq----------------------|--------------------------------------Tconv------------------------------------|Taq que seria el tiempo de adquisicion, va a variar segun lo que pongas ahi, Cada ves que inicies la conversion va a esperar cierta cantidad de ciclos antes de desconectar el capacitor de sampleo de la entrada y ponerse a convertir el valor a digital.
Como te decia se puede hacer de 2 formas, otra forma seria hacer algo asi:
delay_ms(1);
Iniciar_conversion_ADC();
El concepto es el mismo, nomas que ahora la demora para que se cargue el capacitor esta realizado por software y no por hardware.
La idea de esto es que la lectura no se agreguen errores.
¿Como calcularlo?
Depende mucho de lo que tenes conectado a la entrada. Existen 3 coeficientes:
TACQ = Amplifier Settling Time + Holding Capacitor Charging Time + Temperature Coefficient
TACQ = TAMP + TC + TCOFFEs decir, TAMP, TC y TOFF. Los cuales 2 no depende de lo que tengas conectado.
TAMP deberia estar en el datasheet, pero al menos el que tengo lo toma como 0.2us (fijo)
TCOFF depende de unicamente de la temperatura de trabajo:
(Temp – 25°C)(0.02 μs/°C)
El coeficiente ( 0.02 us/ºC ) realmente no se de donde sale, tal ves exista un documento con mas informacion, pero deberia listarse dentro de los parametros del ADC. Que para menos de 25ºC se toma como 0. Tal ves tenga que ver con el coeficiente del mismo conductor que lleva la corriente al capacitor de sampleo, el cual aumente su resistencia con la temperatura.
Y finalmente el mayor de todos suele ser el tiempo que tarda el capacitor en cargarse por culpa de las resistencias. Suponiendo un error de 1/2 LSB, Por eso el 2048, el tiempo que tardaria en cargarse/descargarse de VREF a VREF/2048 , esta dado por esta funcion:
VHOLD = (VREF – (VREF/2048)) * (1 – e(-TC/CHOLD(RIC + RSS + RS)))Por si las dudas, te dejo la formula del voltaje de un capacitor ( una red RC serie )
https://upload.wikimedia.org/math/a/8/f/a8f76fb4f37fa2420ca342cc5787212f.png
O que tambien lo podes poner como (Asi queda parecida a la primera):
Vc = (Vf - Vi) * e^(t/(R*C))La R esta compuesta por varias partes ( es la suma de todas las resistencias en serie ), la RSS que es la resistencia del switch que abre el circuito analogico al moemnto de la conversion, y que depende del voltaje de alimentacion. La RIC que es la resistencia de la misma conexion desde el PIN a ese switch. Y finalmente la resistencia exterior que seria la RS.
Si despejas la t, de la anterior formula , o TC de la formula de VHOLD, te queda asi:
TC = -(CHOLD)(RIC + RSS + RS) ln(1/2048)Que es el tiempo que le toma cargarse al capacitor con todas esas resistencias, hasta un error que es 1/2 LSB. Reemplazando luego eso, En el cual:
CHOLD = 25uF ( deberia ser dado en los parametros electricos pero lo da en la explicacion)
RIC = 1Kohm maximo. Valor Fijo, dado nuevamente en el modelo del pin de entrada del ADC.
RSS = Valor que depende del voltaje de alimentacion, donde esta el modelo suele existir un pequeño grafico. Asi obtenes el valor.
Y finalmente la resistencia externa RS.
Sumando todos los tiempos dados, obtenes el TAQC, el cual si uno quisiera samplear uno detras de otro y no agregar ninguna pausa en software, debera ser como maximo 20TAD. Si supera eso o modificas la resistencia de entrada, o podes esperar para convertir otra ves, sino el resultado que vas a leer va a ser erroneo.
Todo esto derivado de entender como esta conformado el PIN de entrada analogico, el cual deberias ver el datasheet el modelo para darte cuenta que todo termina siendo representado por un simple RC serie.