Está en la página 1de 6

LABORATORIO #2

UNIVERSIDAD ECCI
Jessica Chacón, Juliana Velasco, Cristhian Amaya, Yonatan Guzmá
(yonatane.guzmano@ecci.edu.co – julianaa.velascob@ecci.edu.co -
jessicaj.chacong@ecci.edu.co - cristhiand.amayab@ecci.edu.co )

Se usará programación estructurada en lenguaje C++


para programar el microcontrolador de la placa de
Abstract. desarrollo, en mayor medida se usarán estructuras de
repetición y condicionales para obtener el
In this practice it is intended to test, with a basic comportamiento deseado.
application the features of the STM32F767ZI card and his
peripherals, the card has a microcontroller and multiple
peripherical modules, in this case it will only be used the
I/O module and the interruption module through the user II. Marco Teórico
push-button that going to initialize a counter when it is
active and going to show his value through a 7segment ¿Qué es un microcontrolador?
display, the count going to grow only when the user push-
button is pressed. For this it will be used some software
tools like "Keil uVision5 '' software that has an IDE and C++
interface to perform code creation and display a sequence,
while confirming that the connection between the card
and the peripherals was successful.

Keywords: STM32F767ZI, peripherals, microcontroller,


Interface, Keil uVision5, C ++, LED, Pushbutton, priority,
interruption.

I. Introducción
https://www.bigtronica.com/centro/sistemas-de-desarrollo/mcu-
En esta práctica se busca mostrar la interacción con una microchip/1732-microcontrolador-microchip-dspic33fj256gp506-smd-
tarjeta de desarrollo STM32F767ZI un pulsador como la 5053212017323.html
entrada del sistema y leds como su salida, haciendo uso
del software Keil uVision 5 para desarrollar el código, Un microcontrolador es un circuito integrado
cuyo principal objetivo será demostrar el funcionamiento programable que alberga todos los componentes
de las interrupciones y sus prioridades. necesarios para el funcionamiento de un
microprocesador digital [1], esto incluye memoria de
Para el desarrollo de esta práctica se va a usar el pulsador acceso rápido, memoria no volátil, y diversos periféricos
de usuario, el pulsador de usuario es donde se va a ubicar orientados a tareas específicas tales como timers,
la prioridad para poder identificar si esta en 1 o en 0. módulo de interrupciones, de comunicaciones, ADC,
PWM, etc.
Cuando el pulsador de usuario se encuentre en 1, se va a
visualizar un conteo ascendente de números Gracias a su tecnología de fabricación que facilita su
hexadecimales en el display 7 segmentos, en este caso se reducido tamaño, permite que en un solo encapsulado
utilizaron leds rojos con la misma ubicación del display. estén empotrados diversos componentes que aumentan
la versatilidad del microprocesador en múltiples
aplicaciones.

Actualmente se usa en las más diversas aplicaciones


como electrodomésticos, comunicaciones,
instrumentación, máquinas industriales, robótica,
domótica,

Entre sus ventajas se puede encontrar su bajo consumo


de potencia, su bajo coste, velocidad adaptable y una https://co.mouser.com/ProductDetail/STMicroelectronics/NUCLEO-
amplia gama de lenguajes e interfaces de programación. F767ZI?qs=7UaJ5Mrpeu0%2F%252BMRranB3%2Fw%3D%
3D

Keil uVision5
Entre sus características se puede encontrar:

● Microcontrolador STM32 en encapsulado


LQFP144, alimentación de placa flexible, 5V mediante ST-
LINK/V2-1 USB VBUS
● Fuentes de alimentación externas de 3,3V y 7V-
12V con conectores ST Zio o ST Morpho, 5V con conector
ST Morpho
● USB OTG o dispositivo de velocidad completa con
conector micro-AB (según compatibilidad con STM32)
● Conector de Ethernet conforme con IEEE-802.3-
https://www.electronicshub.org/setting-up-keil-mdk-for-lpc1768/ 2002 (según compatibilidad con STM32)
● 3 LEDs de usuario, 2 pulsadores (USER y RESET)
de usuario y reinicio
● Oscilador de cristal LSE de 32,768KHz
El software es Keil uVision5. Este emplea varios lenguajes
de programación como; C, C++, Assembler y Header. En
Esta placa de desarrollo es adecuada para una amplia
C++, se utilizan comandos como el RCC->AHB1ENR; que
gama de aplicaciones entre las que se pueden encontrar:
se usa para habilitar puertos. El GPIOx_MODER; se utiliza [2]
para configurar los pines como entradas, salidas, ● Motor drive and application control
análogas o funciones alternas. El GPIOx_OTYPER; es ● Medical equipment
usado para seleccionar el tipo de salida push-pull y open- ● industrial applications: PLC, inverters, circuit
drain. El GPIOx_PUPDR; se utiliza para configurar la breakers
resistencia, según el esquema si es ● Printers, and scanners
● Alarm systems, video intercom, and HVAC
● Home audio appliances
Tarjeta de desarrollo STM32 Nucleo-144 ● Mobile applications, Internet of Things
● Wearable devices: smartwatch
Esta tarjeta STM32 es una placa de desarrollo que
contiene un microcontrolador STM32F767ZI que ofrece
una memoria RAM de 512kB y ROM de 4MB, maneja ¿Qué es una interrupción?
temperaturas de -40°C hasta 85°C, 3 (tres) LEDs de Una interrupción es un llamado al microcontrolador a
usuario, 2 (dos) pulsadores de usuario y 1 (uno) de reset. atender algún evento que se haya desencadenado, por lo
que el microcontrolador detendrá la tarea que está
ejecutando y pasará a ejecutar una rutina de servicio
para atender la interrupción, estas las podemos clasificar
por prioridades, la prioridad de interrupción, es la
relevancia que tiene una función con respecto a otra,
esto nos quiere decir que si se está ejecutando una
secuencia y al mismo tiempo se ejecuta otra secuencia
con mayor prioridad; La primera se queda en espera y
compila la rutina con mayor prioridad, para luego
retomar la rutina que se encontraba en espera.

¿Qué es un LED?

El led es un diodo emisor de luz, hecho con un material


semiconductor con dos terminales, positivo y negativo.

https://mitecnotienda.net/producto/led-naranja-5mm/ Figura [elaboración propia-Diagrama de flujo]

Las diferentes funciones serán las encargadas de


administrar la frecuencia del display.
III. Marco Procedimental

Materiales

● Tarjeta de desarrollo STM32 Nucleo-144


● Software keil uVision5
● Pulsadores
● Leds o display 7 segmentos
● Cables jumper
● Cable mini-USB

Figura [elaboración propia-KeilUVision5]


A continuación se explica el código de forma detallada.
Se asignó nombre a los pines donde están conectados los
Código: leds, para más adelante poder llamarlos
Igualmente se asignó nombres a los números que se van
Tal como se puede observar en el diagrama de flujo esta a mostrar en el display (leds)
práctica se abordó desde una perspectiva de
segmentación en donde se tienen diferentes escenarios,
un pulsador que cambie la frecuencia de los números, y
otro para la visualización de los números en el display.

Figura [elaboración propia-KeilUVision5]

Creación de variables enteras y booleanas


Figura [elaboración propia-KeilUVision5]

Configuración de las interrupciones para la EXTI, realiza


el llamado del reloj de la tarjeta y de acuerdo al valor
indicado en la función Systick, se ejecuta cada periodo
indicado

Cuando la interrupción realiza la lectura del pin de


en esta línea de código se llama a la función que nos
usuario, cambia el numero booleano si el pulsador está
determina los caracteres que se deben enviar a las salidas
en 1 o 0, y es para realizar o para el conteo
de los GPIOC->ODR de acuerdo a la variable contador a
continuación se puede visualizar el comportamiento de
esta función.

Se configuran los puertos y los pines que van a ser


usados, para definir el tipo de entradas pull-up o pull-
down. El GPIOx_OSPEEDER; se utiliza para configurar la
velocidad de registro. El GPIOx_IDR; cumple la función de
leer los pines. El GPIOx_ODR; cumple la función de
escribir. El #include <stdio.h>; es el llamado de la librería.
El #include "stm32f7xx.h"; se utiliza para llamar la tarjeta
a utilizar.
Figura [elaboración propia-KeilUVision5]

Configuración de bus de datos de los puertos Se identifica el número que se va a mostrar en los leds
por medio de un switch case.
V. Conclusiones
IV. Análisis y Resultados
En la unidad de hardware dentro de los Como resultado del anterior laboratorio, es posible
microcontroladores basados en Cortex-M que es concluir la importancia de las interrupciones dentro de
responsable de la administración de interrupciones, por nuestro sistema embebido ya que nos permite ser más
medio de NVIC, se llega al núcleo del procesador y los precisos en las tareas que se quieren realizar
periféricos(externo e internos). Este es responsable de la Por medio de las prioridades poder lograr variedad de
interconexión entre las señales de E/S externas y el actividades para aparentar hacer varias al tiempo,
controlador, es capaz de gestionar las interrupciones aunque también nos puede generar una sobrecarga
dentro del procesador. (suma de instrucciones).
contar con el funcionamiento de un periférico para poder
Mediante la programación realizada se pudo obtener lograr la interrupción ayuda a tener mayor control del
formas más simples de realizar retrasos de tiempo sin sistema, aunque requiere atención del procesador.
necesidad de recurrir a funciones de conteo y poder Teniendo en cuenta que para la familia STM32
brindar una frecuencia específica en este tipo de dependiendo el periférico cuenta con un grado de
retardos. prioridad dentro de la tarjeta.
Las interrupciones que nos permiten configurar el tiempo
Para esta práctica se usó la interrupción SYSTICK la cual de la tarjeta nos proporcionan un mayor control de la
está integrada en la tarjeta y presenta una prioridad alta frecuencia de trabajo, teniendo en cuenta la aplicación
frente a otras interrupciones, permite gestionar la de cada programación.
frecuencia con la que se genera la interrupción con lo
que, por medio de un adecuado manejo, es posible VI. Bibliografia
implementar una función de delay. [1]
https://books.google.com.co/books?hl=es&lr=&id=86uGLMp
4vgAC&oi=fnd&pg=PA1&dq=microcontrolador&ots=LYFxYQyj
Por medio de una interrupción en el pulsador de usuario
PD&sig=_WuFXynUaLnbpJtK3wbp1PhIfnA&redir_esc=y#v=on
se brindó la posibilidad de obtener una respuesta ante epage&q=microcontrolador&f=false pag 11
cualquier cambio, sin suspender la interrupción principal
de tiempo “SYSTICK”. [2] STM32F767xx Datasheet - production data
https://www.alldatasheet.com/view.jsp?Search
Gracias a la información y las pautas dadas en clase se
lograron obtener los resultados deseados y todo lo
propuesto fue ejecutado de forma exitosa.

También podría gustarte