Está en la página 1de 9

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA

Y TECNOLGIAS AVANZADAS – IPN

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 05

Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.

Profr. M. en C. Juan Manuel Madrigal Bravo

MATERIA

Dispositivos Programables

ALUMNO

Apellido1 Apellido2 Nombre1 Nombre2

TEMA

Uso de las unidades funcionales ADC y GPIO del


STM32F103R6: Entrada analógica y salida a display de 7
segmentos y su simulación en Proteus.

Grupo 4TM1/4TV1 Equipo N/A Práctica No. 5


Fecha de asignación 9/11/20
Fecha de entrega 12/11/20 21:00 hrs

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

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 05

Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.

Profr. M. en C. Juan Manuel Madrigal Bravo

Objetivo: Hacer uso de las unidades funcionales en el STM32F103R6, 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 M3
Teoría sobre funcionamiento del ADC y tipos de ADC (Aproximaciones sucesivas, sigma-delta, Flash, etc.)
Colocar esquemas.

El STM32F103R6, cuenta con 2 ADC’s:

ADC1: 16 entradas

(Tomado de STM32CubeMX)

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

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 05

Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.

Profr. M. en C. Juan Manuel Madrigal Bravo

ADC2: 16 entradas

(Tomado de STM32CubeMX)

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

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 05

Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.

Profr. M. en C. Juan Manuel Madrigal Bravo

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

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

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 05

Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.

Profr. M. en C. Juan Manuel Madrigal Bravo

Material y equipo

Proteus 8.8
MikroC for ARM 6.0

Indicaciones

Subir a Microsoft Teams. Tomar sus debidas precauciones para que cualquier situación inesperada agote la
fecha y hora límite.
No se recibirá por ningún otro medio.

Desarrollo

1. Crear un proyecto con nombre: DSP05_ADC_DISPLAY_PROTEUS.

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(), podemos transformar la variable adc_value a voltaje con la siguiente fórmula:

volt=adc_value*3.3/X;

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

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 05

Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.

Profr. 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
en MikroC. Seleccionar la casilla: ADC y C_Math.

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

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 05

Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.

Profr. 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.

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

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 05

Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.

Profr. M. en C. Juan Manuel Madrigal Bravo

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Ω.

13. El voltaje que se leerá a través de la entrada analógica debe ser truncado a valores enteros para poder
exhibirse en el display, el cual solo deberá mostrar los valores: 0, 1, 2, 3. Complete 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.

14. Crear un proyecto en Proteus DSP05_ADC_DISPLAY_PROTEUS y simular el comportamiento.

(7 puntos)

15. Modifique el programa de tal forma que en tres displays se muestren los siguientes valores:

0.00, 0.10,… 0.99


1.00, 1.10,… 1.99
2.00, 2.10,… 2.99
3.00,… 3.20. dependiendo del voltaje que estén introduciendo con el potenciómetro.

(3 puntos)

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

PROCESADORES DIGITALES DE SEÑALES


Práctica No. 05

Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.

Profr. M. en C. Juan Manuel Madrigal Bravo

Cuestionario

1. ¿Cuántos puertos GPIO y de cuantos pines tiene el STM32F103R6?


2. ¿Qué es una salida open drain? Coloque un esquema.
3. ¿Qué es una salida en colector abierto? Coloque un esquema
4. ¿Qué es una salida push-pull? Coloque un esquema.
5. ¿Cuántas y cuales frecuencias de muestreo maneja el ADC del STM32F103R6?

Observaciones

Bibliografía

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

[2] UM1727 User Manual. Getting started with STM32 Nucleo board software development tools. January
2016.

[3] RM0008 Reference manualSTM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and


STM32F107xx advanced ARM®-based 32-bit MCUs. November 2015.

Entregables

Carpeta nombrada: Apellido1Apellido2Nombre1Nombre2


 PDF del reporte, con antecedents, cuestionario, conclusions, captura de pantalla con
los esquemáticos de las dos partes de la práctica.
( DSP05_ADC_DISPLAY_PROTEUS.pdf)
 Archivo en código fuente del punto 15 (DSP05_ADC_DISPLAY_PROTEUS.c)
 Archivo .hex del punto 10 (DSP05_ADC_DISPLAY_PROTEUS.hex)
 Archivo de proteus del punto 10 (DSP05_ADC_DISPLAY_PROTEUS.pdsprj)

9/9

También podría gustarte