diferenciales sobre al canal1 MUX B para el diferencial, MUX A para el simple Se puede hacer de forma alternada simple/diferencial (bit ALTS de ADCON2) Convertidor A/D, tiempos
Proceso de conversión
Tiempo de Tiempo de conversión muestreo
El tiempo de muestro es el que está
conectado el S/H A continuación, se produce la conversión propiamente dicha Convertidor A/D, registros ADCON1: Registro de control configuración general ADCON2: Registro de control configuración buffer ADCON3: Registro de control configuración tiempos ADCHS: Configuraciones modo simple/diferencial ADPCFG: Configuración del puerto A/D para modo analógico ADCSSL: Selección de los canales a muestrear
y TRISB como entrada (después de un RESET ya están así) Configurar las referencias de tensión (bits VCFG de ADCON2) Convertidor A/D, configuración
Inicio del muestreo:
1ª forma: ASAM=1, (comienza el muestreo automáticamente después de cada conversión) 2ª forma: ASAM=0, el muestreo se hace de forma manual con el bit SAMP: Poner a uno SAMP para iniciar el muestreo Borrar SAMP para finalizar el muestreo e iniciar la conversión SAMP y ASAM están en ADECON1 Convertidor A/D, configuración
Inicio de la conversión, bits SSRC:
1ª forma: a mano con bit SAMP 2ª forma: automático empleando un contador interno cuando este contador acaba comienza la conversión bits SAMC de ADCON3 (fijado por TAD ) 3º mediante Timer3 Otras formas, cuando un flanco en INT0, etc. SSRC está en ADECON1 Convertidor A/D, configuración El tiempo de muestreo (ver manual y fórmula) 1-4 µs Reloj asociado al convertidor TAD Tcy ( ADCS + 1) TAD = TAD se fija a partir del ciclo de 2 instrucción Tcy y los bits es decir ADCS de ADCON3. TAD debe ser mayor de 714ns 2T ADCS = AD − 1 La conversión consume 14 Tcy veces TAD (al menos 10 µs) Convertidor A/D, configuración Los resultados van a un buffer de 16 posiciones (ADCBUFx, donde x va de 0 a F) Los canales indicados en ADCSSL se muestrean y almacenan en el buffer. En los bits SMPI se indica cada cuantos datos almacenados en el buffer se genera una interrupción. Para leer, por ejemplo, la posición 5 se emplearía ADCBUF5. El buffer vuelve automáticamente a ADCBUF0 al producirse una interrupción.