• No se han encontrado resultados

CAPÍTULO 3 DESARROLLO DEL DISPOSITIVO

3.3 Etapa 3: Procesamiento de la señal eléctrica

3.3.2 Convertidor Analógico-Digital (ADC)

3.3.2.4 Modos de conversión

En la figura 3.39 se puede observar las etapas involucradas en los modos de conversión del módulo ADC10.

El estado inicial de los registros en el MSP430 es cero (0), entonces si se configura la conversión de un canal analógico, por defecto el modo de conversión será CONSEQx = 00, es decir el modo “conversión individual de un canal”, el que

está en amarillo sombreado. A continuación se detallan los diagramas de bloques del msp430g2xxx family guide para los cuatro modos de conversión:

CONSEQx MODO

00 Un solo canal, una sola conversión

01 Secuencia de canales, secuencia de conversiones. 10 Un solo canal, múltiples conversiones 11 Secuencia de canales, múltiples conversiones.

Tabla 3.3 Modos de conversión para configuración del CONSEQx.  Primer modo de conversión.

El primer modo “conversión individual de un canal” (Single Channel Single- Conversión) se configura con el bit CONSEQx = 00, donde la conversión se realiza de la siguiente manera: cuando se activa el módulo ADC10 con ADC10ON = 1, el ADC10 se mantiene esperando la habilitación de la conversión (ENC = flanco de subida) mientras apunta al canal seleccionado por INCHx, cuando hay flanco de subida en ENC, el ADC10 espera del trigger para iniciar la conversión, también puede iniciar directamente usando el bit ADC10SC (flanco de subida), por ambos caminos se llega a la etapa de muestreo del canal de entrada y luego del tsync + tsample llega a la etapa Conversión que dura 12 ciclos del ADC10CLK más 1 ciclo cuando termina la conversión (total 13 ciclos) y el resultado de la conversión se muestra en el buffer ADC10MEM. Luego se debe poner en nivel bajo el bit ADC10BUSY para estar seguros de aplicarle un flanco de bajada al bit ENC e iniciar otra conversión. Notar que colocar un 0 en el bit ENC antes de llegar al final, termina con el proceso regresando al principio de este modo de conversión. En la figura 3.40 se propone una representación gráfica del funcionamiento del primer modo de conversión.

Figura 3.40 Diagrama de flujo del primer modo de conversión del ADC.

 El segundo modo de conversión

El segundo modo de conversión “conversión individual de una secuencia de canales” (Sequence of Channels) se configura con CONSEQx = 01, donde la conversión de una secuencia de canales comienza con el canal seleccionado mediante INCHx hasta llegar al canal A0, y se realiza de la siguiente manera: cuando se activa el módulo ADC10 con ADC10ON = 1, el ADC10 se mantiene

Conversión Muestreo, Canal de entrada Conversión completa Resultado en ADC10MEM, ADC10IFG activada Espera al Trigger X = INCHx

esperando la habilitación de la conversión (ENC = flanco de subida) mientras apunta al canal seleccionado por INCHx, cuando hay flanco de subida en ENC, el ADC10 queda a la espera del trigger para iniciar la conversión, también puede iniciar directamente usando el bit ADC10SC (flanco de subida), por ambos caminos se llega a la etapa de muestreo del canal de entrada y luego del tsync + tsample llega a la etapa Conversión que dura 12 ciclos del ADC10CLK más 1 ciclo cuando termina la conversión (total 13 ciclos) y el resultado de la conversión se muestra en el buffer ADC10MEM. Luego lo que continúa depende del bitMSC (multi sample & conversión) donde, si MSC = 1 (rama izquierda) significa que el primer flanco de subida de la señal SHI bastará continuar con las demás conversiones sin necesidad de esperar más triggers para todas las conversiones de la secuencia (desde INCHx hasta A0), mientras que si MSC = 0 (rama derecha) cada conversión de la secuencia necesitará de un flanco de subida de la señal SHI (ya sea manual con el ADC10SC o esperando los timers del TA1). Cuando se llega a convertir el voltaje del canal A0 termina el flujo y se vuelve al principio. Poner a cero el bit ENC durante el proceso de secuencias simplemente detiene la conversión al final de la secuencia. En la figura 3.41 se propone una representación gráfica del funcionamiento del segundo modo de conversión.

Figura 3.41 Diagrama de flujo del segundo modo de conversión del ADC. Espera al Trigger X = INCHx Muestreo, Canal de entrada A1 Conversión Conversión, completada, Resultado en ADC10MEM, ADC10IFG

 Tercer modo de conversión.

El tercer modo “conversión repetitiva de un canal” (Repeat Single Channel) que permite repetir de forma automática la conversión de un canal analógico, se configura con CONSEQx = 10, donde la conversión se realiza de la siguiente manera: cuando se activa el módulo ADC10 con ADC10ON = 1, el ADC10 se mantiene esperando la habilitación de la conversión (ENC = flanco de subida) mientras apunta al canal seleccionado por INCHx, cuando hay flanco de subida en ENC, el ADC10 espera del trigger para iniciar la conversión, también puede iniciar directamente usando el bit ADC10SC (flanco de subida), por ambos caminos se llega a la etapa de muestreo del canal de entrada y luego del tsync + tsample llega a la etapa de conversión que dura 12 ciclos del ADC10CLK más 1 ciclo cuando termina la conversión (total 13 ciclos) y el resultado de la conversión se muestra en el buffer ADC10MEM. Luego lo que continúa depende del bit MSC (multi sample & conversion) donde, si MSC = 1 (rama izquierda) significa que el primer flanco de subida de la señal SHI bastará continuar con conversiones del mismo canal sin necesidad de esperar otros triggers, mientras que si MSC = 0 (rama derecha) cada conversión de la secuencia necesitará de un flanco de subida de la señal SHI (ya sea manual con el ADC10SC o esperando los timers del TA1). Poner a cero el bit ENC durante el proceso simplemente detiene la conversión al final de la conversión y retorna el proceso al principio del flujo. En la figura 3.42 se propone una representación gráfica del funcionamiento del tercer modo de conversión.

Figura 3.42 Diagrama de flujo del tercer modo de conversión del ADC.

 Cuarto modo de conversión.

El cuarto modo de conversión “conversión repetitiva de una secuencia de canales”

(Repeat Sequence of Channels) muestrea y convierte de forma repetitiva una secuencia de canales, la cual se configura con CONSEQx = 11, donde la conversión de una secuencia de canales comienza con el canal seleccionado mediante INCHx hasta llegar al canal A0, y se realiza de la siguiente manera:

X = INCHx Espera al Trigger Muestreo, Canal de entrada Ax Conversión Conversión, completada, Resultado en ADC10MEM

cuando se activa el módulo ADC10 con ADC10ON = 1, el ADC10 se mantiene esperando la habilitación de la conversión (ENC = flanco de subida) mientras apunta al canal seleccionado por INCHx, cuando hay flanco de subida en ENC, el ADC10 queda a la espera del trigger para iniciar la conversión, también puede iniciar directamente usando el bit ADC10SC (flanco de subida), por ambos caminos se llega a la etapa de muestreo del canal de entrada y luego del tsync + tsample llega a la etapa de conversión que dura 12 ciclos del ADC10CLK más 12

ciclos cuando termina la conversión (total 13 ciclos) y el resultado de la conversión se muestra en el buffer ADC10MEM. Luego lo que continúa depende del bit MSC (multi sample & conversión) donde, siMSC = 1 (rama izquierda) significa que el primer flanco de subida de la señal SHI bastará continuar con las demás conversiones sin necesidad de esperar más triggers para todas las conversiones de la secuencia (desde INCHx hasta A0, y vuelve a comenzar de INCHx), mientras que si MSC = 0 (rama derecha) cada conversión de la secuencia necesitará de un flanco de subida de la señal SHI (ya sea manual con el ADC10SC o esperando los timers del TA1). Cuando se llega a convertir el voltaje del canalA0, vuelve a comenzar de INCHx. Poner a cero el bit ENC durante el proceso de secuencias simplemente detiene la conversión al final de la secuencia reiniciando todo. En la figura 3.43 se propone una representación gráfica del funcionamiento del cuarto modo de conversión.

Figura 3.43 Diagrama de flujo del cuarto modo de conversión del ADC.

Para cerrar con los modos de conversión, en la figura 3.44 se presenta los bits y registros involucrados en la configuración de esta etapa:

X = INCHx Conversión Conversión, completada, Resultado en ADC10MEM, ADC10IFG activada Muestreo, Canal de entrada Ax Espera al Trigger

Figura 3.44 Registros involucrados para la configuración de los modos de conversión.

Esta funcionalidad del ADC10 es similar al DMA (Direct Memory Access) presente en muchos microcontroladores. Consiste en llevar el resultado de una conversión alojado en el buffer de salida ADC10MEM, hacia alguna posición de memoria dentro del chip MSP430. Y lo puede hacer de dos formas: Transferencia de un bloque (ONE BLOCK TRANSFER) y Transferencia de dos bloques (TWO BLOCK TRANSFER).

En el modo de transferencia de un bloque, se puede almacenar “n” resultados de

conversiones analógicas cuando son cargadas en el registro ADC10MEM a partir de una dirección en la memoria de datos que se tiene que especificar. Dicho almacenamiento puede ser continuó (una vez que termina de almacenar los “n”

MSC BIT 7 Múltiple muestreo y múltiple conversión, valido solo para el modo de secuencia repetida.

0 El muestreo requiere de una flanco de subida SHI.

1 En el primer flanco de subida del SHI, la señal comienza con el muestreo.

ADC10ON BIT 4 ADC10 encendido.

0 ADC10 apagado

1 ADC10 encendido.

ENC BIT 1 Habilitar conversión

0 ADC10 deshabilitado

1 ADC10 habilitado

CONSEQ BIT 2-1 Modo de secuencia de conversión.

00 Un solo canal, una sola conversión.

01 secuencia de canales

10 Un solo canal, múltiples conversiones

11 Múltiples canales, múltiples conversiones.

ADC10BUSY BIT 0 ADC10 Ocupado. Este bit indica un muestreo activo o operación de conversión

0 Ninguna operación activa

resultados, vuelve a cargarlos) o esperar a que se reinicie cuando se escribe la dirección donde se guardaran los “n” datos otra vez.

Este modo se selecciona con el bit ADC10TB = 0. El número “n” se especifica en

el registro de 8 bits ADC10DTC1, por lo cual mientras sea igual a 0 (cero) no comienza la transferencia, y puede variar desde 1 hasta 255. Automáticamente el microcontrolador hace una petición para ingresar la dirección de inicio en el registro ADC10SA que es una dirección de la memoria de datos. A partir de ahí

realizará las “n” transferencias tras verificar que el registro ADC10MEM contenga

el valor de una nueva conversión analógica y al final cambia el valor a ADC10IFG = 1. Luego continuará realizando más transferencias siempre y cuando esté en 1 (uno) el bit ADC10CT. De lo contrario esperará a que se escriba otra vez una dirección de memoria en el registro ADC10SA. En la figura 3.45 se propone una representación gráfica del funcionamiento del controlador de transferencia de datos a un bloque de transferencia

Figura 3.45 Diagrama de flujo del controlador de transferencia de datos a un bloque de transferencia.

El modo de transferencia TWO BLOCK TRANSFER trabaja de una forma similar al anterior. Te permite tener dos bloques de transferencia para que trabajes en uno

mientras el otro bloque se va cargando. Son dos bloques de tamaño “n”. Las

direcciones del primer bloque incian en la dirección puesta en ADC10SA. Luego

de “n” transferencias la siguiente posición será ADC10SA + “n”, y después se

reinicia desde ADC10SA.

Preparación Operación ADC10MEM ADC10SA ADC10SA ADC10SA MCLK ADC10MEM

Para seleccionar este modo se configura el bit ADC10TB = 1. El número “n” se

especifica en el registro de 8 bits ADC10DTC1, por lo cual mientras sea igual a 0 (cero) no comienza la transferencia, así mismo se debe resetear el bit ADC10B1 = 0 para especificar que empieze con el bloque 1 de transferencia. Luego pedirá que se ingrese la dirección inicio en el registro ADC10SA que es una dirección de

la memoria de datos. A partir de ahi realizará las “n” transferencias del primer

bloque tras verificar que el registro ADC10MEM contenga el valor de una nueva conversión analógica y al final avisa con ADC10IFG = 1. En este punto también se puede consultar por el bit ADC10B1 pues se seteará a 1 (uno) para indicar que corresponde el bloque 2. Luego continuará realizando el siguiente bloque de transferencias siempre y cuando esté en 1 (uno) el bit ADC10CT. De lo contrario esperará a que se escriba otra vez una dirección de memoria en el registro ADC10SA. . En la figura 4.46 se propone una representación gráfica del funcionamiento del controlador de transferencia de datos a dos bloques de transferencia

Figura 3.46 Diagrama de flujo del controlador de transferencia de datos a dos bloques de transferencia.

En la figura 3.47 se muestran los registros que se configuran para utilizar el controlador de transferencia de datos además de los bits y registros de los modos de transferencia son:

Preparación

Operación

Canal A0 CPU

Figura 3.47 Bits para configuración del controlador de transferencia de datos.

Documento similar