Sunteți pe pagina 1din 12

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA

Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

Objetivo: Hacer uso de las unidades funcionales en el STM32F446RE, en específico el ADC para introducir
una entrada analógica y GPIO como salidas hacia un display de 7 segmentos.

Antecedentes (desarrollar por el estudiante)

 Arquitectura ARM córtex M4

DIAGRAMA A BLOQUES

 Teoría sobre el ADC

El ADC de 12 bits es un convertidor de analógico a digital de aproximación sucesiva. Tiene hasta 19 Canales
multiplexados que le permiten medir señales de 16 fuentes externas, dos internas fuentes, y el canal VBAT. La
conversión A / D de los canales se puede realizar en Modo simple, continuo, escaneo o discontinuo. El
resultado del ADC se almacena en un registro de datos de 16 bits alineado a la derecha. La función de
vigilancia analógica permite que la aplicación detecte si el voltaje de entrada aumenta más allá de los
umbrales definidos por el usuario, más altos o más bajos.

1/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

Principales características de ADC

• Resolución configurable de 12 bits, 10 bits, 8 bits o 6 bits


• Generación de interrupciones al final de la conversión, final de la conversión inyectada y, en caso de
eventos de control o invasión analógica
• Modos de conversión única y continua.
• Modo de escaneo para la conversión automática del canal 0 al canal ‘n’
• Alineación de datos con coherencia de datos incorporada
• Tiempo de muestreo programable por canal
• Opción de disparo externo con polaridad configurable tanto para aplicaciones regulares como inyectadas
conversiones
• Modo discontinuo
• Modo dual / triple (en dispositivos con 2 ADC o más)
• Almacenamiento de datos DMA configurable en modo ADC doble / triple
• Retardo configurable entre conversiones en modo entrelazado dual / triple
• Requisitos de suministro de ADC: 2.4 V a 3.6 V a toda velocidad y hasta 1.8 V a menor velocidad
velocidad
• Rango de entrada ADC: VREF– ≤ VIN ≤ VREF +
• Generación de solicitudes DMA durante la conversión de canal regular

2/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

El botón de usuario B1 está conectado al PC13 (pin 23 del CN7) del STM32F446RE y el led
de usuario está conectado en el PA5(pin 11 del CN10)

Material y equipo

1 Narjeta núcleo 64
Cable mini B USB
1 Protoboard
1 display de 7 segmentos de ánodo común
1 resistencia de 330 Ω

3/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

1 resistencia de 1 KΩ
Jumpers Macho-Hembra
Alambres para puentear
1 potenciómetro de 10 KΩ
1 led’s pequeño azul
1 led pequeño rojo
1 led pequeño verde
1 led pequeño amarillo

Desarrollo

1. Crear un proyecto con nombre: DSP10_ADC_DISPLAY.

2. Dentro de main(), establecer el canal 0 del ADC como entrada analógica con la siguiente función:

ADC_Set_Input_Channel(_ADC_CHANNEL_0);

3. Dentro de main(), inicializar el ADC1 con la siguiente función:

ADC1_Init();

4. Dentro de Config_maq() establecer el pin PA0 como entrada analógica:

GPIO_Config(&GPIOA_BASE,
_GPIO_PINMASK_0,
_GPIO_CFG_MODE_ANALOG | _GPIO_CFG_PULL_NO);

5. Dentro de Config_maq() establecer las salidas PB0-PB6 como salidas digitales que irán conectadas al
display de siete segmentos de la siguiente forma:

GPIO_Config(&GPIOB_BASE, _GPIO_PINMASK_0 | _GPIO_PINMASK_1 | _GPIO_PINMASK_2 |


_GPIO_PINMASK_3
| _GPIO_PINMASK_4 | _GPIO_PINMASK_5 | _GPIO_PINMASK_6,
_GPIO_CFG_MODE_OUTPUT | _GPIO_CFG_SPEED_2MHZ |_GPIO_CFG_OTYPE_PP);

6. Dentro de Procesamiento(), adquirir la muestra del canal 0. Por default estamos recibiendo un ADC de 12
bits con un voltaje de referencia de 3.3 v. Entonces adc_value debe ser declarada como unsigned de forma
global.

adc_value = ADC1_Get_Sample(0);
7. Dentro de Procesamiento(), transformar la variable adc_value a voltaje con la siguiente fórmula:

volt=adc_value*3.3/X;

4/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

¿Cuánto debe valer X?


¿Cómo debe ser declarado volt?

Debido a que volt es un valor de tipo flotante, debemos truncarlo a valores enteros para que puedan
desplegarse en el display de 7 segmentos.

num=floor(volt);

¿Cómo debe ser declarado num?

8. Una vez que conocemos el valor entero de volt, lo enviamos hacia el elemento DISPLAY previamente
declarado con la directiva #define.

DISPLAY = segmentos[num];

9. El siguiente es el núcleo del código. Complételo de forma adecuada.

#define DISPLAY GPIOB_ODR


#define CERO 0XC0
#define UNO 0XF9
#define DOS 0XA4
#define TRES 0XB0

//Declara variables globales


const unsigned short int segmentos[]={CERO,UNO,DOS,TRES};

void Conf_maq();
void Procesamiento();

void main() {
Conf_maq();
while(1) //Bucle principal
Procesamiento();
}

void Conf_maq()
{

}
void Procesamiento()
{

10. Siguiendo la secuencia View → Library manager, se desplegará el manejador de librerías del dispositivo.
Seleccionar la casilla: ADC y C_Math.

5/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

10. Conecte un display de ánodo común: segmento a-GPIO.B0(CN6), segmento b- GPIO.B1(CN6), segmento
c- GPIO.B2(CN6), segmento d- GPIO.B3(CN6), segmento e- GPIO.B4(CN6), segmento f- GPIO.B5(CN6),
segmento g- GPIO.B6(CN6).

11. El ánodo común del display debe tener una resistencia de 330 Ω a Vcc.

12. En la entrada PA0, que ya fue configurada como entrada analógica, colocar un voltaje variable de 0-3.3
volts con el potenciómetro de 10 KΩ.

6/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

13. Compile el proyecto y cargue directamente en la memoria flash del dispositivo con el ícono: Build and
Program y en el display deben mostrarse los siguientes valores: 0,1,2,3 dependiendo del voltaje que estén
introduciendo con el potenciómetro. (Calificación 8)

Actividades:

14. Modifique el programa de tal forma que para cada valor entero mostrado en el display se ponga a flashear
cada 200 ms un led de diferente color. (Calificación 10)

Cuestionario

1. ¿Qué librerías entran en juego y por qué?


2. ¿Cuántos puertos GPIO y de cuantos pines tiene el STM32F446RE?

Cada uno de los pines GPIO puede configurarse por software como salida (push-pull o drenaje abierto, con o
sin pull-up o pull-down), como entrada (flotante, con o sin pull-up o pull-down) Como función alterna. La
mayoría de los pines GPIO son compartidos con digitales o analógicos. funciones alternativas. Todos los
GPIO tienen capacidad de alta corriente y tienen una selección de velocidad para mejorar Gestionamos el
ruido interno, la potencia y la emisión electromagnética. La configuración de E / S se puede bloquear si es
necesario siguiendo una secuencia específica para Evite la escritura falsa en los registros de E / S. Manejo
rápido de E / S que permite una conmutación máxima de E / S de hasta 90 MHz

7/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

3. ¿Qué es una salida open drain? Coloque un esquema.

La configuración open drain se basa en la conectividad de dos de las terminales del mosfet, el pin de source
de aterriza a Gnd, gate es el pin polarizado y el drain se queda solo conectado al pin de salida, como al “aire”.
Esto hace que cuando gate es polarizado, la salida en drain se vuelva 0 lógico, pero cuando no lo es se vuelve
un estado desconocido, en estos casos se deben usar resistencias pull up, para colocar la salida de 1 lógico.

8/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

El open drain significa lo mismo que el colector abierto, con la excepción del tipo de dispositivo (dispositivo
FET o BJT / transistor bipolar).

Significa que hay un sumidero de corriente, pero en un dispositivo FET, por ejemplo, un MOSFET. (Un
MOSFET es como un transistor que puede manejar voltajes más altos, pero funciona de la misma manera).

4. ‘Qué es una salida en colector abierto? Coloque un esquema

Es aquel cuya salida esta externalizada, es decir abierta o sin resistencia en el colector del transistor de salida.
Al utilizar este tipo de circuito integrado, se deja la posibilidad de utilizar el valor de resistencia apropiado
según sus necesidades.

4. ¿Qué es una salida push-pull? Coloque un esquema.

Una salida en contrafase o salida push-pull es un tipo de circuito electrónico que puede impulsar
una corriente eléctrica positiva o negativa en una carga. Las salidas push-pull están presentes en circuitos
lógicos digitales TTL y CMOS y en algunos tipos de amplificadores. Se implementan usualmente como un
par complementario de transistores, uno en modo sumidero (sink), es decir disipando o drenando corriente
desde la carga hacia tierra o una fuente de poder negativa, y el otro en modo fuente (source), es decir
alimentando o suministrando corriente hacia la carga desde una fuente de poder positiva.
Debido a la forma como se dibujan esquemáticamente, con dos transistores apilados, uno encima del otro,
normalmente con un diodo o una resistencia de protección entre ellos, las salidas en contrafase se denominan
también salidas totem-pole, pero esta denominación se reserva generalmente para TTL y familias lógicas
relacionadas. Una etapa de salida convencional que no sea push-pull se denomina con frecuencia una salida
de terminación sencilla (single-ended) para distinguirla de una salida en contrafase. Esta designación se aplica
principalmente a circuitos analógicos.

9/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

5. ¿Qué registros se configuraron de manera indirecta? Para responder esta pregunta, puede preguntar al
facilitador.

6. ¿Cuantos ADC’s y de cuantos canales cada uno dispone el STM32F446RE?

Se incorporan tres convertidores de analógico a digital de 12 bits y cada ADC comparte hasta 16 Canales
externos, realizando conversiones en modo single-shot o scan. En modo escaneo. La conversión automática se
realiza en un grupo seleccionado de entradas analógicas.

Las funciones lógicas adicionales integradas en la interfaz ADC permiten:

• Muestra simultánea y retención.


• Muestra intercalada y retención.

El controlador DMA puede atender el ADC. Una función de vigilancia analógica permite muy Monitorización
precisa de la tensión convertida de uno, algunos o todos los canales seleccionados. En la interrupción se
genera cuando el voltaje convertido está fuera de los umbrales programados. Para sincronizar la conversión
A / D y los temporizadores, los ADC pueden ser activados por cualquiera de TIM1, Temporizador TIM2,
TIM3, TIM4, TIM5 o TIM8.

7. ¿Cuántas y cuales frecuencias de muestreo maneja el ADC del STM32F446RE?

Precisión estática ADC a fADC = 18 MHz


Precisión estática ADC a fADC = 30 MHz

10/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

Precisión estática ADC a fADC = 36 MHz


Precisión dinámica de ADC a fADC = 18 MHz - condiciones de prueba limitadas
Precisión dinámica de ADC a fADC = 36 MHz - condiciones de prueba limitadas
frecuencia de reloj ADC de fADC

Observaciones y conclusiones (Individuales y escritas a mano)

Alondra Nájera Velásquez

________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________

Alexis Rocha Negrete

________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________

Ingrid Alitzel Sánchez Elguea

________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________

Bibliografía

[1] UM1724 User Manual. STM32 Nucleo-64 board. January 2016.

[2] RM0390 Reference Manual. STM32F446xx adbanced ARM –based 32 bit MCUs. January 2016.

[3] STM32F446xC/E Datasheet. September 2016.

11/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 10

Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos

Prof. M. en C. Juan Manuel Madrigal Bravo

12/6

S-ar putea să vă placă și