Escolar Documentos
Profissional Documentos
Cultura Documentos
Resumen- En este informe se desarrollarán las aplicando los conocimientos adquiridos en las
prácticas de laboratorio de microcontroladores. prácticas anteriores, para enviar y visualizar
En la primera practica se observa y se guía acerca información.
de la instalación del programa que será necesario
para la programación de la tarjeta Abstract- In this report, the laboratory practices of
STM32F746ZGTx, posterior a esto se microcontrollers are developed. In the first
desarrollará la segunda practica en la que se practice it is observed and approaches the
muestra un programa sencillo de encender LED´s installation of the program that is necessary for
de la STM. En la práctica 3 se pretende afianzar the programming of the STM32F746ZGTx card,
la creación de una clase en C que permite after this the second practice is developed in which
configurar las principales características de a simple LED lighting program of the STM is
cualquier pin del microcontrolador a usar a lo shown. In practice, 3 allows the creation of a
largo del curso, a su vez. En la cuarta práctica se category in C that allows you to configure the main
pretende implementar el timer SysTick al dividir la characteristics of any pin of the microcontroller to
frecuencia del reloj para obtener un periodo de use throughout the course, in turn, allows you to
1ms, de tal manera que al presionar un interruptor consult and adjust the logical state of low and high
cambie la duración de los tiempos entre cada output of the pines; to then implement it in a simple
secuencia que se determine para los LED´s. En la application. In the fourth practice, the SysTick
quinta practica se pretende configurar un teclado timer is applied when dividing the clock frequency
matricial, teniendo en cuenta las 16 posibles to obtain a period of 1 ms, in such a way that when
opciones se visualiza un código binario sobre los a switch is pressed, the duration of the times
LED´s de la tarjeta. En la sexta práctica se between each sequence that determines the LEDs
pretende principalmente implementar el concepto changes. In the fifth practice you want to configure
de visualización dinámica con la creación de una a matrix keyboard arbitrarily and find out the key
clase en C++ para visualizar sobre un display 7 pressed; taking into account the 16 possible
segmentos de cuatro dígitos un contador options, a binary code is displayed on the LEDs of
ascendente o descendente dependiendo de la the card. In the sixth practice practice, it is mainly
interrupción producida. En la séptima práctica se recommended to implement the concept of
pretende principalmente manipular la dynamic visualization with the creation of a class
visualización en una LCD, cuyos pines y cantidad in C ++ to visualize on a display 7 segments of
de bits a usar puedan ser modificados, para four digits to an ascending or descending counter
visualizar determinada información. En la octava depending on the interruption produced. In the
práctica se pretende principalmente implementar seventh time it is mainly an LCD screen, whose
la comunicación serial UART, aplicando los prices and number of bits can be modified, to
conocimientos adquiridos en las prácticas visualize certain information. In the eighth, the
anteriores, para enviar, recibir y visualizar most effective practice is UART serial
información proveniente de un teclado matricial o communication, applying the knowledge acquired
del teclado del computador. En la novena práctica in previous practices, to send, receive and
se pretende principalmente implementar y visualize the information derived from a matrix
configurar los Timers que posee la tarjeta, keyboard or the computer keyboard. In the ninth
1
practice, it is mainly intended to implement and
configure the stamps that have the card, applying DAC:
the knowledge acquired in the previous Es un dispositivo para convertir un código
applications, to send and view information. digital (generalmente binario, compuesto de
ceros y unos) a una señal analógica (corriente,
voltaje o carga eléctrica). Hay distintos
componentes que pueden intervenir en este
Palabras clave- STM32F4xx núcleo 144, ARM, proceso, como interruptores simples, red de
periféricos, microcontroladores, LCD, timers, resistores, fuentes actuales o condensadores.
comunicación serial, C++.
TIMMER:
Key words- STM32F4xx core 144, ARM, La mayoría de los microcontroladores tienen
peripherical, microcontrollers, LCD, timers, serial uno o varios timers. Serán muy útiles para medir
communications, C++. el tiempo que ha pasado entre dos eventos,
establecer tareas para ejecutarse a intervalos
regulares, etc. Dependiendo del modelo los PICs
I. INTRODUCCION cuentan con un número variable de timers.
IV. PROCEDIMIENTO
Fig. 6: Registro SR
Fig. 1: Registro AHB1ENR
En la figura 7 se muestra el registro ARR el cual se
En la figura 2 se muestra el registro MORDER el utiliza para configurar el valor de auto recarga del
cual se utiliza para encender los puertos que se van timer, en este caso se configura para 1mS.
a utilizar en este caso GPIOB y GPIOC.
3
Fig. 8: Registro CNT
1. Entorno de desarrollo:
Se descargar e instalar el compilador, con el fin de Imagen 2. (Tipo de tarjeta)
que se pueda realizar las actividades adicionales e
independientes fuera de los laboratorios asignados.
El aplicativo puede ser descargado de,
www.keil.com donde se encontrará el link MDK- Archivo de programa: en la imagen anterior
ARM (Keil, 2015). Una vez instalado el aplicativo, (Img.2), se selecciona el tipo de archivo en el que
se debe crear un nuevo proyecto, se realizara la programación de la tarjeta
previamente seleccionada.
[1]. Entorno de desarrollo; Los
microcontroladores requieren de un entorno de
desarrollo a nivel de software, este se relaciona 2. Tarjeta de desarrollo
como una herramienta que permite programar las
instrucciones del procesador en un lenguaje de Se descargar e instalar el compilador, con el fin de
bajo nivel como el ensamblador, o de alto nivel que se pueda realizar las actividades adicionales e
como C, C++, Basic, C#, Java, etc. independientes fuera de los laboratorios asignados.
El aplicativo puede ser descargado de,
[2]. Entorno de desarrollo: a continuación, se www.keil.com donde se encontrará el link MDK-
mostrará la imagen del entorno de desarrollo en él ARM (Keil, 2015). Una vez instalado el aplicativo,
computador. se debe crear un nuevo proyecto.
4
programación del microcontrolador, este funciona Compilación: Se compila el programa y se carag a
con la interfaz ST-Link V2 (ST Microelectronics, la tarjeta para ejecutar la acción programada
2015). (Parpadeo de Led).
Conexión de la tarjeta: A continuación, se deben
hacer las conexiones pertinentes para garantizar la
comunicación entre el ordenador y la tarjeta 3. Dominio de pines
STM32FXX, simplemente se debe conectar por
medio de un cable mini USB [1] Se debe desarrollar una clase en C++
(Ceballos, 2009), que permita configurar cualquier
Entorno de desarrollo: Se realiza la configuración pin del microcontrolador, para este fin se deben
del sistema de comunicación y depuración de la hacer definiciones de pines, y nuevos archivos de
tarjeta STM32F4 Discovery, para este fin se pulsa librería y fuente, *.h, *.cpp. Se propone que estos
el botón Options for target del software uVision documentos se llamen Pines.cpp y Pines.h. Para
(Keil, 2015) realizar esta acción se hace necesario que se
estudie la estructura GPIO_TypeDef, definida en
el archivo stm32f4xx.h. La clase debe permitir por
medio de sus métodos y las definiciones realizadas
por el estudiante, que el pin se pueda configurar
como entrada o salida digital, con las opciones de
push pull u open drain, con o sin resistencias pull
up, y pull down, y por último velocidades de reloj.
Imagen 6. (Librerías)
4. Manejo de tiempos
Se descargar e instalar el compilador, con el fin de
que se pueda realizar las actividades adicionales e Imagen 7. (variables)
independientes fuera de los laboratorios asignados.
El aplicativo puede ser descargado de,
www.keil.com donde se encontrará el link MDK- Interrupciones: Se configura una interrupción (
ARM (Keil, 2015). Una vez instalado el aplicativo, void SysTick_Handler), con el propósito de
se debe crear un nuevo proyecto. interrumpir una acción por un tiempo.
6
Fig. 1. Variables volátiles
Figura 4. AuxLectura
5. Teclado matricial
Como primer paso se realiza la creación de un En la Figura 6 observamos la clase teclado que
nuevo proyecto de acuerdo con lo establecido en la tiene 6 parámetros y dos métodos, los cuales son
guía de laboratorio 1, 2, y 3. leer y configurar.
Se crea un Delay con una variable Time, y una Figura 6. Clase teclado.
variable TimingDelay, las cuales al ser declaradas
como __IO no requieren ser optimizadas ya que
pueden cambiar fuera del compilador. [6] El
unit32_t significa unsigned int de 32 bits.[4] Esto
se observa en la Figura 1.
7
Programa:
Como se ve en la Figura 1, en esta parte del
programa se hace la declaración de las diferentes
variables que se usan en el programa, por ejemplo
VPortD1 es un vector que acoge los puertos a los
que van conectado los diodos del display, luego
VNPinD1 es un vector que acoge los pines de los
respectivos puertos que se conectan a los diodos
del display, el vNPinControl habilita los diferentes
Como se ve en la Figura 7, el método configurar pines de los transistores que habilitan los displays.
recibe dos vectores los cuales tienen la posición de numero_display es la variable global que se
la conexión física del teclado ocupando 8 pines y modifica cuando se llama a la función
se configuran como entrada o salida “pasa_a_lenguaje_pin”. También se declaran las
respectivamente. funciones que se usan más adelante.
Figura 7. Definición de pines. Figura 1. Declaración de variables
6. Visualización dinámica
Como primer paso se realiza la creación de un
nuevo proyecto de acuerdo con lo establecido en la
guía de laboratorio 1, 2 y 3.
Posteriormente se crea la clase que permite
configurar los pines y la visualización de cada
dígito.
8
Para la figura 3, los dos métodos configuran los
pines según su uso ya sea como habilitadores del
display o como los on/off de los diodos del display.
Figura 5. Interrupción
7. LCD
Como primer paso se realiza la creación de un
nuevo proyecto de acuerdo a lo establecido en la
guía de laboratorio 1, 2 y 3.
9
enviar la instrucción, y en el intermedio de esta se
envía al puerto de datos las instrucciones de
memoria de la DDRAM donde se desea escribir.
Posteriormente, cómo se ve en la Figura 3, se crea
la clase llamada lcd, con los métodos configurar,
instrucciones, escribir y cursor, que serán Figura 5. Función instrucciones de control
explicados más adelante.
10
Para configurar la posición del cursor deseada, se
crea el método cursor, que se observa en la Figura
7, el cual, devuelve un valor hexadecimal de la
posición de la memoria DDRAM que equivale a la
posición de cada celda del display.
Figura 3. UART_IRQHandler
8. UART
Como primer paso se realiza la creación de un
nuevo proyecto de acuerdo a lo establecido en
las guías de laboratorio desarrolladas hasta el
momento.
Figura 2. Funcion nn
12
De acuerdo a lo visto en clase, y al programa de
guía dado por el docente, se buscaron los registros
pertinentes para la programación del acelerómetro
y el módulo USART para poderlos usar de manera
correcta para lograr el objetivo del proyecto.
13
Por último, cómo se observa en la Figura 8, en la
función main se realiza la llamada de las funciones
anteriormente creadas, además en esta función
también se realiza el ciclo infinito con lo que se
desea en este caso la toma de datos que se requiere
Para la lectura de cada uno de los ejes, se hace uso medir y el envió de estos al puerto serial.
de la función leer, que se ve en la Figura 6. Cuyos
valores a escribir en el registro ya están ya
establecidos en el datasheet. Figura 8. Función main
V. CONCLUSIONES
Se configura el sistema de interrupciones de la
STM, como herramienta para aprender a utilizar el
manejo de tiempos, en múltiples aplicaciones más
complejas, que requieran un manejo del tiempo
más preciso, que el utilizado genéricamente en las
anteriores prácticas, generados con la estructura
Mediante la función que se ve en la Figura 7, for, Además de comprender el funcionamiento de
las interrupciones, como herramienta de control de
Data_Prompt, es posible visualizar en el puerto
procesos que el microcontrolador está llevando a
serial los valores obtenidos.
cabo, al darle el estímulo correcto, en este caso el
pulsador.
14
deben mantener por un periodo determinado y pantalla, adquirir información de movimiento y
luego dar un tiempo de espera para que ese vibración del dispositivo, y para el gran mercado
comando sea tomado como uno valido, al igual que de aplicación y juegos que estos dispositivos
para el envió de datos; todo este manejo estricto brindan, las cuales hacen uso de este tipo de
del tiempo se logra gracias a la herramienta sensores adecuado con micro controladores.
Systick, que se ya se había implementado en los
primeros laboratorios. Finalmente el desarrollo de cada uno de los
El uso del tiempo, como ya se ha mencionado, algo laboratorio y el cumplimiento de cada uno de los
de alta importancia, la STM brinda otra objetivos planteado, permiten al estudiante
herramienta, para dicho fin que son los timers, los adquirir capacidades para desarrollar código para
cuales le permiten al usuario manejar la frecuencia la configuración de múltiples herramientas, y
del reloj de cada uno de estos simultáneamente, de otorgando al estudiando la habilidad para integrar
forma muy precisa, dividiendo la frecuencia del el uso de todos aquellas herramientas en
reloj a la deseada para la aplicación requerida, en aplicaciones más completas y complejas, bastante
este caso ele de dos contadores visualizados útiles para para su uso en otras materias y
gracias a las herramientas anteriormente proyectos, en el campo de microcontroladores,
configuradas en laboratorios anteriores. dado que es un campo gigante de aplicación en
muchos ámbitos.
Uno de las aplicaciones más interesantes de los
laboratorios propuesto fue realizar un piano VI. REFERENCIAS
estableciendo las frecuencias de las notas,
haciendo el uso del módulo Timmers de la STM, [1] Keil. (20 de febrero de 2017). uVision Sofware
además de la reproducción de una melodía
de desarrollo. Obtenido de Keil tools by ARM
realizada previamente por software y siendo
Web site: www.keil.com
posible escucharlas por un pequeño parlante,
según el pulsador del teclado matricial donde en [2] Ceballos, J. (2009). Enciclopedia del lenguaje
cada uno de los casos se programó una nota y en el C++. Mexico: Alfaomega. Pags.19- 123
resto melodías.
[3]ST Microelectronics. (20 de febrero de 2017).
El uso de los Modulo ADC y DAC tiene bastante Manual de referencia RM0385. Obtenido de ST
impacto ya que hace posible la implementación de Microelectronics. Sitio Web:
múltiples sensores si importar del tipo que sean www.st.com/web/en/resource/technical/document
análogo o digitales, controlados por un
/reference_manual.pdf. Págs.: 195-214
microcontrolador el cual es capaz de procesar toda
l información recibida en tiempo real con el lapso
de tiempo que el diseñador lo desee y poder tomar
decisiones respecto a la información otorgada por
los sensores, lo cual ya es visible en múltiples
dispositivos como Smartphones o Tablets donde
un acelerómetro es el encargado de girar la
15
16