Dispositivos Programables
Dispositivos Programables
Dispositivos Programables
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
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.
DIAGRAMA A BLOQUES
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
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
2/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
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
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
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
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);
ADC1_Init();
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:
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
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
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);
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];
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
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
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
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
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
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
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
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
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
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).
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.
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
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
5. ¿Qué registros se configuraron de manera indirecta? Para responder esta pregunta, puede preguntar al
facilitador.
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.
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.
10/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
Bibliografía
[2] RM0390 Reference Manual. STM32F446xx adbanced ARM –based 32 bit MCUs. January 2016.
11/6
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F446RE: Entrada analógica y salida a un display de 7
segmentos
12/6