DSP03 Ago2020 - Dic2020
DSP03 Ago2020 - Dic2020
DSP03 Ago2020 - Dic2020
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
Objetivo: Modificar el programa de la Práctica 2 y poder usar los registros de funciones especiales de
configuración de puerto, en vez de usar las funciones de configuración de MikroC y simular el
comportamiento en Proteus para el STM32F103R6.
1/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
2/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
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)
3/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
4/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
https://unicrom.com/amplificador-contrafasico-o-push-pull/
Cuando la señal de entrada es grande y lo que se necesita es ampliar la capacidad de entrega de corriente, se
utiliza un amplificador contrafásico o push – pull. (amplificador de potencia).
https://rh6stzxdcl1wf9gj1fkj14uc-wpengine.netdna-ssl.com/wp-
content/uploads/2017/07/Open-vs-Drain-Collector.png
5/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
https://circuitdigest.com/forums/embedded/difference-between-open-drain-and-push-pull
En Open drain, si el Vin se pone en bajo, y entonces Vout se conecta a tierra significando que se drena
corriente. Si el Vin se pone en alto, la salida queda flotante.
6/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
7/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
8/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
9/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
10/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
Material y equipo
Desarrollo
1. Crear un proyecto con nombre: DSP02_GPIO_REGISTROS con la siguiente configuración:
11/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
2. Después de oprimir Next aparecerá la siguiente pantalla, en la cual no se deberá escribir nada.
3. Después de oprimir Next aparecerá la siguiente pantalla, en la cual se debe marcar la casilla: Include None
(Advanced)
12/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
13/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
void Conf_maq();
void Ini_var();
void Proceso();
void main() {
Conf_maq();
Ini_var();
while(1) //Bucle principal
Proceso();
}
void Conf_maq()
{
// ===========PRIMERA FORMA USANDO FUNCIONES DE MIKROC
//GPIO_Digital_Input(&GPIOC_BASE,_GPIO_PINMASK_13); //Entrada con Pullup usando el botón de usuario (PC13)
//(Entrada normalmente en alto y el botón se activa en bajo)
//GPIO_Digital_Input(&GPIOB_BASE,_GPIO_PINMASK_5); //Entrada externa flotante usando el pin PB5 como botón de entrada
// Si conectamos una R=1000 ohms a 3.3 v hacemos una entrada en pull-up
//(Entrada normalmente en alto y el botón se activa en 0V)
// Si conectamos una R=1000 ohms a 0 v hacemos una entrada en pull-down
//(Entrada normalmente en bajo y el botón se activa en 3.3V)
//GPIO_Config(&GPIOB_BASE,
// _GPIO_PINMASK_5,
// _GPIO_CFG_MODE_INPUT | _GPIO_CFG_PULL_UP); //Entrada con Pullup usando el pin PB5 como botón
//(Entrada normalmente en alto y el botón se activa en bajo)
//GPIO_Config(&GPIOB_BASE,
// _GPIO_PINMASK_5,
// _GPIO_CFG_MODE_INPUT | _GPIO_CFG_PULL_DOWN); //Entrada con Pulldown usando el pin PB5
//como botón
//(Entrada normalmente en bajo y el botón se desactiva en 3.3V)
//GPIO_Digital_Output(&GPIOA_BASE,_GPIO_PINMASK_5); //Salida con push pull
14/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
void Ini_var()
{
LED=0;
}
void Proceso()
{
if(BOTON==0) //Entrada en Pull-down: if (BOTON==0) (Si el boton no se oprime entra) if (BOTON==1) (Si el boton se oprime
entra)
{
LED=~LED;
Delay_ms(500);
}
}
15/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
10. Mientras el botón de usuario no esté presionado, cambie los tiempos de conmutación del LED a: 200 ms.
Cuando se presiona el botón de usuario, ya no hay conmutación del LED. (Calificación 6)
11. Usar el pin PB5 (del CN10) como entrada externa y de esta forma colocar un push button en pull-up para
que al oprimir, el led de usuario (PA5) conmute a 200 ms. (Calificación 7)
12. Usar el pin PB6 como entrada externa y de esta forma colocar un push button en pull-down para que al
oprimir, el led de usuario (PA5) conmute a 200 ms. (Calificación 8)
16/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
13. Usar el pin PB5 y PB6 como entradas externas y de esta forma colocar dos push button en pull-down para
que al oprimir el push button 1, cuatro led’s verdes se enciendan de izquierda a derecha con 200 ms de
diferencia. Cuando se oprima el push button 2, cuatro led’s azules se enciendan de derecha a izquierda con
200 ms de diferencia cada uno. La solución a este problema debe hacerse usando operaciones lógicas y
corrimientos en la configuración del registro.
(Calificación 10)
17/18
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
DISPOSITIVOS PROGRAMABLES
Práctica No. 3
Configuración de la unidad funcional de GPIO y funciones especiales mediante registros y simulación en Proteus
Cuestionario
1. En referencia el registro GPIOx_OSPEEDR, investigar en los manuales los cuatro posibles valores de
velocidad que maneja.
2. Cuáles son las funciones adicionales del registro AFR (Alternate Function Register).
Conclusiones
Bibliografía
[2] RM0390 Reference Manual. STM32F446xx advanced ARM –based 32 bit MCUs. January 2016.
Entregables
18/18