PDF de programación - Capítulo 5/11 - ADC10 - A/D Converter – Conversor Analógico / Digital - Curso sobre Microcontroladores

Imágen de pdf Capítulo 5/11 - ADC10 - A/D Converter – Conversor Analógico / Digital - Curso sobre Microcontroladores

Capítulo 5/11 - ADC10 - A/D Converter – Conversor Analógico / Digital - Curso sobre Microcontroladoresgráfica de visualizaciones

Publicado el 31 de Mayo del 2018
572 visualizaciones desde el 31 de Mayo del 2018
252,9 KB
9 paginas
Creado hace 12a (23/10/2011)
Curso sobre Microcontroladores
Familia HC9S08 de Freescale

Por Ing. Daniel Di Lella – EduDevices – www.edudevices.com.ar
e-mail: [email protected]
Responsable Area Educación – ELKO / ARROW – www.elkonet.com
e-mail: [email protected]

Capítulo 5.
Entrega Nº 11
ADC10 - A/D Converter – Conversor Analógico / Digital.
Como se había visto en la entrega número 10, el módulo conversor A/D de la familia
HC9S08 si bien es muy similar al de la familia HC908 posee mayor cantidad de
registros especiales que le dan una mayor funcionalidad al mismo.

A continuación detallaremos cada uno de ellos:

Registro de Estado y Control 2 (ADCSC2).

Veamos ahora bit a bit las funciones del registro de Estado y Control 2.

ADACT:

El “flag” de Conversión Activa es un bit de solo lectura que indica cuando una
conversión está en progreso. Este flag se pone a “1” cada vez que se inicia una
conversión y toma el valor “0” cuando la conversión se ha completado o la misma se ha
abortado.

ADTRG:

Este bit sirve para seleccionar el modo de disparo de una conversión, pudiéndose elegir
entre disparo por software o por hardware para iniciar una conversión.
Cuando se elige disparo por software (ADTRG = 0), una conversión A/D comienza
cuando se escribe en el registro ADCSC1.
Si se elige disparo por hardware (ADTRG = 1), una conversión A/D comienza
cuando el contador de la Interrupción de Tiempo Real (RTI) efectúa un “overflow”.
El período del RTI es configurable vía la frecuencia de entrada del reloj y los bits de
prescaler. De esta forma, el usuario puede realizar conversiones A/D a intervalos
variables de tiempo dependiendo de la configuración del RTI. El uso del disparo por
hardware permite que el usuario pueda iniciar una conversión en los modos RUN,
WAIT o STOP3. Estos dos últimos son fundamentales para mantener al MCU en
un muy bajo consumo y solo despertarlo a intervalos regulares para realizar la
conversión y luego volver al sistema al bajo consumo.

ACFE:

El bit de habilitación de la Función de Comparación A/D, permite habilitar la función
de comparación automática del módulo ADC. La función de comparación toma el
resultado de la conversión y lo suma al “complemento a dos” del valor almacenado en
los registros ADCCVH y ADCCVL. Esta función, en la realidad, efectúa la diferencia
entre el resultado de la conversión y el valor a comparar. Si se cumple la condición de la
comparación, el bit COCO se fuerza a “1” y se genera una interrupción si la misma
había sido habilitada previamente (AIEN = 1). La diferencia entre el resultado de la
conversión y el valor a comparar es almacenada en los registros ADCRH y ADCRL.

ACFGT:

El bit de Función de Comparación Mayor Que (Compare Funtion Greater Than) define
las condiciones de la comparación. Si el bit ACFGT = 0, entonces la función de
comparación solo se activa si el resultado de la conversión es MENOR que el valor
almacenado en los registros ADCCVH y ADCCVL.
Si el bit ACFGT = 1, entonces la función de comparación solo se activa si el resultado
de la conversión es MAYOR o IGUAL que el valor almacenado en los registros
ADCCVH y ADCCVL.

Esta función es ideal para “monitorear” un valor de tensión en modo “background” y
solamente interrumpir al MCU cuando se alcanza un valor crítico.

Los BITs 3 y 2 del ADCSC2 no son usados y siempres se leen como “0”.

Los BITs 1 y 0 del ADCSC2 son bits RESERVADOS y siempre deben
escribirse con “0”.

Registros de Resultado de Datos del ADC (ADC Data Result Registers)
(ADCRH / ADCRL).

ADCRH – Data Result High Register.

ADCRL – Data Result Low Register.

La familia HC9S08 posee un ADC de 10 Bits de resolución que puede ser configurado
para entregar un resultado de 8 Bits o de 10 Bits. El registro ADCRH contiene los dos
bit de mayor peso (superiores) de la conversión a 10 Bits.
Cuando se configura al módulo ADC para una conversión a 8 Bits, los Bits ADR8 y
ADR9 son iguales a “0”.

El registro ADCRL contiene los 8 Bits de menor peso (inferiores) de una conversión a
10 Bits y todos los 8 Bits de una conversión, precisamente de 8 Bits.

Los registros ADCRH y ADCRL se actualizan luego de cada conversión con la
excepción cuando se habilita la función “Compare” y no se alcanza la condición de la
comparación.

En el modo de 10 Bits, se implementa un mecanismo de bloqueo que evita sobre –
escritura en los registros de datos, de esta forma, al leer primero el registro ADCRH
el resultado de las subsecuentes conversiones no se actualiza hasta que no sea leído
en registro ADCRL. Si el registro ADCRL no es leído antes de que se complete la
próxima conversión, este nuevo dato, producto de la nueva conversión, se pierde.

Este mecanismo se denomina “interlocking” y deja de funcionar en el modo de
conversión a 8 Bits, ya que no hay interlocking con el registro ADCRH.

Si la función “Compare” está habilitada y la condición de comparación es verdadera,
el valor de la conversión se suma al “complemento a 2” del valor de comparación
almacenado en los registros ADCCVH / ADCCVL y luego es almacenado en los
registros de Resultado ADCRH y ADCRL. El valor obtenido de esta forma es la
diferencia efectiva entre el resultado de la conversión y el valor a comparar.

Registros de Valores de Comparación del ADC (ADC Compare Value Registers)

(ADCCVH / ADCCVL)

Estos registros mantienen el valor a comparar de 10 Bits para la función “Compare”.
El registro ADCCVH mantiene los 2 bits más pesados (superiores) del valor a
comparar, mientras que el registro ADCCVL los 8 más bajos (inferiores) del mismo
valor, la totalidad de los 8 bits cuando el valor a comparar en de 8 bits.

El registro ADCCVH no se usa durante el modo de comparación a 8 Bits.

ADCCVH – Compare Value High Register.

ADCCVL – Compare Value Low Register.

Registro de Configuración del ADC (ADC Configuration Register) (ADCCFG).

El registro ADCCFG se utiliza para seleccionar las configuraciones de velocidad, de
consumo, la fuente de reloj, el divisor del reloj y el tiempo de muestreo del módulo
ADC.

ADLPC:

Este bit de configuración de Bajo consumo (Low Power Control) permite controlar la
velocidad y el consumo del ADC. Cuando el bit ADLPC = 0, el ADC se configura para
correr al mode de alta velocidad. Cuando el bit ADLPC = 1, el ADC se configura para
correr en modo bajo consumo. La configuración de bajo consumo reduce la velocidad
máxima del reloj en relación de mantener bajo el consumo de energía.
En el modo de alta velocidad, la frecuencia máxima del reloj es de 8 Mhz, mientras
que en el modo bajo consumo, la frecuencia máxima se reduce a 4 Mhz.

ADIV:

Los bits de selección del divisor del reloj, permiten la selección del valor del divisor
que el ADC utilizará como oscilador interno (ADCK). En la siguiente tabla se
muestran los valores del divisor en función de los valores de los bits de selección.

ADLSMP:

El bit ADLSMP (Long Sample Time Configuration) de configuración de tiempo de
muestreo largo, permite ajustar el tiempo de muestreo.

Si el bit ADLSMP = 1, el ADC se configura para tiempos de muestreo largos, lo que
otorga una mayor precisión en la conversión. Si el bit ADLSMP = 0, el ADC se
configura para tiempos de muestreo cortos, lo que le confiere una alta velocidad de
conversión.

MODE:

Estos bits de selección de MODO, permiten elegir entre en modo de operación a 8 bits
o 10 bits del ADC.

Configurando los bits MODE a “00” se selecciona el modo de conversión a 8 Bits.
Configurando los mismos bits a “10” se selecciona el modo de conversión a 10 Bits.
Todas las otras combinaciones de bits están reservadas y no pueden ser utilizadas.

ADICLK:

Los bits de selección del reloj de entrada, definen la fuente del reloj de entrada a utilizar
para generar el reloj interno del módulo ADC.
En el módulo ADC de la familia HC9S08, se pueden elegir 4 diferentes fuentes de reloj
(clocks).

- ALTCLK: Reloj Externo.
- ADACK: Reloj Interno Asincrónico Propio.
- Bus Clock: La frecuencia de Bus (FBUS) como referencia.
- Bus Clock / 2: FBUS / 2 como referencia.

Registros de Control de los Pines del ADC (ADC Pin Control Registers)
(APCTL1 / APCTL2 / APCTL3).

APCTL1 – ADC Pin Control Registers

APCTL2 – ADC Pin Control Registers.

APCTL3 – ADC Pin Control Registers.

Seleccionar un canal de entrada analógico para efectuar la conversión A/D en el
registro ADCSC1 utilizando los bits de selección de canal ADCH no es suficiente
para asegurar que se podrá convertir la tensión presente en el pin del puerto
asociado con el canal A/D a utilizar. Se necesita efectuar 2 tareas para asegurar
ello:

1) Deshabilitar el control del MCU del puerto I/O que está siendo utilizado como

entrada analógica.

2) Configurar dicho pin para ser utilizado como canal A/D del ADC.

Para efectuar estas tareas, solo hay que escribir un “1” en el bit correspondiente al
pin a utilizar en el registro de control del pin apropiado. Esta acción asegura que el
pin elegido solo sea utilizado como entrada analógica por el módulo ADC
independientemente de la configuración del puerto como I/O.

Calculando el Tiempo de Conversión.

El tiempo total de conversión del módulo ADC depende de las configuraciones de
ADLSMP, MODE y la frecuencia de referencia del ADC (ADCK).

Una vez que se ha elegido la fuente de entrada de reloj, se puede calcular la cantidad de
tiempo que se toma una conversión simple. Para ello se determina la cantidad de ciclos
de reloj en completar la conversión y se dividen estos por la frecuencia de reloj
empleada.
El proceso de conversión comienza después de escribir el registro ADCSC1, un evento
de disparo por hardware (RTI Timeout) o la transferencia del resultado a los registros de
datos cuando se ha elegido el mode de conversión continuo.

El número de ciclos empleados para cada modalidad y configuración se puede obtener
de una tabla del manual téc
  • Links de descarga
http://lwp-l.com/pdf11470

Comentarios de: Capítulo 5/11 - ADC10 - A/D Converter – Conversor Analógico / Digital - Curso sobre Microcontroladores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad