• No se han encontrado resultados

Entorno de desarrollo Atollic para la familia de microcontroladores Cortex M3

N/A
N/A
Protected

Academic year: 2020

Share "Entorno de desarrollo Atollic para la familia de microcontroladores Cortex M3"

Copied!
111
0
0

Texto completo

(1)

(2)

(3) UNIVERSIDAD DE ALCALÁ Escuela Politécnica Superior. GRADO EN INGENIERÍA ELECTRÓNICA DE COMUNICACIONES. Trabajo Fin de Grado Entorno de desarrollo Atollic para la familia de microcontroladores Cortex-M3. Autor: Victor Fernández Hermosilla Tutor: José Manuel Villadangos Carrizo. TRIBUNAL: Presidente: Juan Jesús García Domínguez Vocal 1: Sirona Valdueza Felip Vocal 2: José Manuel Villadangos Carrizo. FECHA: 30 de junio de 2019.

(4) VICTOR FERNANDEZ HERMOSILLA. 4.

(5) AgrAdecimientos El proyecto que he realizado se lo tengo que agradecer a todas esas personas que me han apoyado durante el transcurso de la carrera. En especial agradecerles a mis padres la educación que me han dado hasta ahora, y sin la cual no estaría donde me encuentro. Gracias también por apoyarme en mis decisiones y pagar mis estudios. También me gustaría agradecer a mis compañeros de universidad, en especial a mi grupo de amigos, con los que he compartido muy buenos momentos durante la carrera, y sin los cuales el camino habría sido más largo y costoso. Y por supuesto, gracias a ti Sara, por ayudarme y aguantarme estos últimos meses, y por estar a mi lado durante casi todo el transcurso de la carrera. Has sido y eres un gran apoyo para mí. Y, por último, agradecer a mi tutor el apoyo y las indicaciones prestadas durante el transcurso del proyecto, sin las cuales no habría podido desarrollarlo.. VICTOR FERNANDEZ HERMOSILLA. 5.

(6) VICTOR FERNANDEZ HERMOSILLA. 6.

(7) Índice PrinciPAL Resumen ……………………………………………………………………………..…..... 12 Abstract ……………………………………………………………………….…………..…. 13 Palabras clave ………………………………………………….………….………..….. 14 1. Resumen extendido ………………………………………………….…………… 15 2. Atollic TrueSTUDIO ……………………………….……………….…….…….. 18 2.1 Introducción ………………..……………………………………………..….. 18 2.2 Historia ………….………….…………………………………………..……….. 18 2.3 Características …………………………………………….………………….. 19 2.4 Funcionamiento del programa ..………………..……………….…. 22 3. Tarjeta de desarrollo ……………….………….…………………….……….. 44 3.1 Introducción ………………..…………………………………….……………. 44 3.2 Características ………….………….…..……………………….………….. 45 3.3 ST-LINK /V2-1 …………………………………………….……………….…. 47 3.4 Alimentación ……………………………………………….………….………. 47 3.5 Recursos extra ……………………………………………….…..……….…. 48 3.6 STM32CubeMX ……………………………………………….…..…….……. 50 4. Aplicación de domótica …………….…….….…………….…………….…. 55 4.1 Introducción ………………..…………………………………...……………. 55 4.2 Descripción del sistema ………….…………….………….……………. 55 4.3 Hardware ………………….……………………………….……….…………. 59 4.4 Software …………………….……………………………….…………….……. 64 4.5 Análisis de Depuración ……………………………………….…….……. 68 4.6 Conclusiones ………………………………………………….…..……….... 79 4.7 Posibles mejoras ………………………………….………….…..……….. 81 5. Pliego de condiciones …………………….…..………..…………….…… 82 5.1 Requisitos de Hardware ……………………….………….…..………. 82 5.2 Requisitos de Software……….…..….…….………………...………. 82 6. Presupuesto …………………….….………………………………………….…. 83 6.1 Coste de equipamiento …….…………..………………………..…... 83 6.2 Coste de mano de obra ……….…….………………………..……… 84 6.3 Presupuesto total ……….…….……………..………………..……..… 84 7. Manual de usuario ……….….….………………………….………….…... 85. VICTOR FERNANDEZ HERMOSILLA. 7.

(8) 8. Bibliografía …………………….….………….……………………………..….. 89 9. Anexos …………………………….….….………………….………………….….. 91. VICTOR FERNANDEZ HERMOSILLA. 8.

(9) Índice de FigUrAs Figura 1: Atollic v8.1.0 Lite. ……….……………………………..……………………………………….. 22. Figura 2: Versión Lite vs Pro ……….…….………………………..……………………………………….. 23 Figura 3: Perspectivas. …..…………………………………..……………………………………….. 24. Figura 4: Tipos de vista. …………………………………………………..……..…………………….. 24. Figura 5: Crear un proyecto ..……………………………………..……………………………………….. 25 Figura 6: Debug vs Release ………………………………………..……………………………………….. 27 Figura 7: Administrar Configuraciones Figura 8: Ejemplo de compilación Figura 9: Ejemplo de un error. ..…………………………..…………..……………….. 28. …………………….……..……………………………………….. 29. …………………………………..……………………………………….. 29. Figura 10: Configuración de Depuración. …………………………..……………………………….. 31. Figura 11: Configuración de Depuración (2). …………………………..………………………….. 31. Figura 12: Duplicar la depuración. ………..…………………………..……………………………….. 32. Figura 13: Script de la depuración. ………..…………………………..………………………………. 32. Figura 14: Breakpoints. …………………………………………………….……………………………….. 33. Figura 15: Ejemplo del Hard Fault Analyzer Figura 16: Regiones de memoria. ……………………..……………………………….. 35. ……………………………………..……………………………….. 36. Figura 17: Detalles de la memoria. …………………………………..……………….……………….. 36. Figura 18: Ejemplo analizador de pila ………………………………….……………………………….. 37 Figura 19: Puntos de vista SWV Figura 20: Habilitar SWV. ……………….…………………………..…..………………….…………….. 40. Figura 21: Configuración SWV Figura 22: Núcleo-L152RE. ……………………….……………..………………….…………….. 38. ……………….………………………..………………….…………….. 41. ………………………………………………..……………………...……….. 44. Figura 23: Hardware block diagram. ……………………..……………………………………..…….. 46. Figura 24: Pinout NUCLEO-L152RE. …………………………….…..……………………………...….. 49. Figura 25: Seleccionar placa CubeMX. …………………………….…..………………………….…. 51. Figura 26: Pinout y configuración CubeMX. …………………….....…………………….……….. 51. Figura 27: Configuración del reloj CubeMX. ……………………....…………………..………….. 53. VICTOR FERNANDEZ HERMOSILLA. 9.

(10) Figura 28: Gestión de proyecto CubeMX Figura 29: Código generado CubeMX. ………………..….…..………………………….……... 53. ……………………..….…..………………………….……... 54. Figura 30: Diagrama de bloques del sistema de domótica Figura 31: Pantalla LCD ssd1306. ………………………….……... 56. ……………………………..….…..………………………….……... 59. Figura 32: Display de cuatro dígitos TM1637 ….. ……………………..….…..…………………... 60 Figura 33: ESP01 …………………………….. ……………………..….…..………………………….……... 61 Figura 34: Sensor de gas MQ2 ……………..…………………..….…..………………………….……... 61 Figura 35: Potenciómetro deslizante ………….……………..….…..………………………….……... 62 Figura 36: Buzzer KY-012 …..………………………..……………..….…..………………………….……... 62 Figura 37: Fotoresistencia ………………………………………..….…..………………………….……... 63 Figura 38: Regiones de la memoria (Build Analyzer). ………..……..….…..………………... 68. Figura 39: Detalles de la memoria (Build Analyzer). ……………………..….………………... 68. Figura 40: Statick Stack Analyzer. ……………………………………..….………….………………... 69. Figura 41: SWV Data trace (Potenciómetro). ………………………..….….….………..…... 70. Figura 42: SWV Data trace (LM35). ……………………….….………..……………………..... 71. Figura 43: SWV Data trace (MQ2). ……………………..….…..…………………………………... 71. Figura 44: SWV Data trace (PWM). …..……………………..….…..….……………………... 72. Figura 45: SWV Data trace (Timers). ……..……………………..…..…..………………………... 73. Figura 46: SWV Stadistical Profiling ………………..……..….…..………….………………………... 74 Figura 47: SWV Exception Timeline. ……………………..….…..……….…………………………... 75. Figura 48: SWV Exception Timeline (UART) ……………………..….…..…………………………... 76 Figura 49: SWV Exception Timeline (Timers) …………………….…..…..……………………….... 76 Figura 50: SWV Exception Trace Log ………………………………..….…..…………………………... 77 Figura 51: SWV Console (PORT0). …….………….………………..….…..…………………………... 78. Figura 52: TCP Client (APP móvil). ……………..…………..….…..…………………………………... 78. Figura 53: SWV ITM Timeline. ………..….……………………..….…..…………………………... 79. Figura 54: Pantallas LCD iniciales. …………………………..….…..…………………………………... 86. Figura 55: Pantalla LCD Iluminación Figura 56: Pantalla LCD Calendario VICTOR FERNANDEZ HERMOSILLA. ……………………..….…..………………….………………... 86 ……………………..….…..………….……………………... 87 10.

(11) Figura 57: Pantalla LCD Sensores Figura 58: Pantalla LCD Alarma. VICTOR FERNANDEZ HERMOSILLA. ……………………..….………..…………………………………... 87 ……………………..….…..…………………………………………... 87. 11.

(12) resUmen El proyecto que se ha realizado se centra en la descripción de la herramienta Atollic, para la familia de microcontroladores Cortex-M3. En el proyecto se explica el funcionamiento del programa y exponen sus principales recursos, principalmente desde el punto de vista de depuración, uno de los puntos fuertes del programa. El principal objetivo del trabajo es la comprensión del entorno de programación y depuración de Atollic, y la descripción avanzada del mismo. Posteriormente se diseñará una aplicación de domótica mediante el programa, para el microprocesador Nucelo-L152RE, usando también otras herramientas auxiliares como el programa CubeMX.. VICTOR FERNANDEZ HERMOSILLA. 12.

(13) ABstrAct The project that has been carried out focuses on the description of the Atollic tool for the Cortex-M3 family of microcontrollers. The project explains the operation of the program and explains its main resources, mainly from the point of view of purification, one of the strengths of the program. The main objective is the understanding of the Atollic programming and debugging environment, and the advanced description of it. Subsequently, a home automation application will be designed, for the Nucelo-L152RE microprocessor, also using other auxiliary tools such as the CubeMX program.. VICTOR FERNANDEZ HERMOSILLA. 13.

(14) PALABrAs cLAVe Atollic Domótica Nucleo-L152RE CubeMX. VICTOR FERNANDEZ HERMOSILLA. 14.

(15) 1. resUmen extendido El proyecto se centra en el estudio de la herramienta Atollic Truestudio, describiendo todas sus ventajas, características, heramientas… , y explicando el funcionamiento de éste a la hora de diseñar una aplicación . Atollic TrueSTUDIO es un programa muy completo, que dispone de una gran variedad de recursos para realizar un proyecto avanzado sobre programación de microcontroladores. Hasta ahora, el programa que se utiliza en la universidad, en asignaturas como Sistemas Electrónicos Digitales y Sistemas Electrónicos Digitales Avanzados, para la programación del microcontrolador LPC1768, es el Keil uVision4. Atollic Truestudio es un programa muy similar a Keil uVision4, pero con más opciones disponibles. En este proyecto, aunque en principio se iba a utilizar la mini-dk2, se ha optado por utilizar otra tarjeta, la Núcleo-L152RE, debido a problemas con las nuevas versiones de Atollic, las cuales no permitían trabajar con la mini-dk2. Los principales objetivos del proyecto son:    . Comprensión del entorno de programación y depuración Atollic. Descripción avanzada del mismo. Desde cómo crear un proyecto de cero, hasta la depuración de éste. Desarrollo de una aplicación real para el microcontrolador Núcleo-152RE. Explicación de los procesos a seguir en el desarrollo de dicha aplicación real con Atollic.. La primera parte del proyecto se centra en explicar el funcionamiento del programa, sus recursos y herramientas. A su vez se explica paso a paso como generar proyectos tanto desde Atollic, como con la herramienta CubeMx. Atollic TrueSTUDIO es una gran herramienta de desarrollo para aplicaciones de C y C++ para microprocesadores, cumpliendo tanto las funciones de compilación como de depuración sobre una placa de desarrollo.. VICTOR FERNANDEZ HERMOSILLA. 15.

(16) Atollic está basado en estándares abiertos como Eclipse y GNU. El programa es compatible con una gran diversidad de proyectos, por lo que ofrece una gran flexibilidad.. Para la configuración de los recursos de la tarjeta de desarrollo e iniciar los proyectos se utiliza también el programa STM32CubeMX. Es una herramienta gráfica para microcontroladores STM32 con una interfaz muy intuitiva y sencilla, por lo que permite inicializar los proyectos fácilmente.. Tal y como se ha comentado, la tarjeta de desarrollo que se ha utilizado es el NúcleoL152RE, la cual está basada en un microprocesador STM32. Esta placa es muy útil dado que no requiere de ninguna sonda ya integra el depurador ST-LINK/ V2-1, por lo que se puede conectar fácilmente al programa, a través de un puerto USB. Posteriormente se ha diseñado una aplicación real de domótica para el microcontrolador. El principal objetivo de esta aplicación es académico, para así explicar el funcionamiento del programa y realizar depuraciones avanzadas. Aunque como objetivo secundario es crear una buena base para una futura aplicación real de uno domótico. Más allá del objetivo académico, la aplicación permite realizar un control de los diferentes dispositivos electrónicos en el hogar. La aplicación permite realizar un control de la iluminación del hogar, la temperatura interna y externa, sensor de iluminación exterior, y una alarma de detección de gas. Todo esto se visualiza mediante una pantalla LCD y un display de cuatro dígitos que permite la monitorización de la temperatura o la hora. A su vez dispone de un módulo wifi para el control de la aplicación a través de una app móvil.. VICTOR FERNANDEZ HERMOSILLA. 16.

(17) Estructuración de la memoria: Tal y como indica el índice, la memoria se divide en nueve apartados: 1. Resumen extendido: resumen realizado en las páginas previas. 2. Atollic TrueSTUDIO: descripción de las herramientas y recursos del programa, y el uso y manejo de éste. 3. Tarjeta de desarrollo: descripción de la tarjeta utilizada (Núcleo-L152RE), sus características y depurador, y descripción del programa STM32CubeMX. 4. Ejemplo de proyecto real: explicación de la aplicación realizada desde el punto de vista del software y del hardware. A continuación, se realizan unos análisis de depuración con el objetivo de mostrar el funcionamiento del programa. Y por último se exponen conclusiones acerca del proyecto y sus posibles mejoras. 5. Pliego de condiciones: apartado en el que se exponen las condiciones mínimas para la realización del proyecto. 6. Presupuesto para la realización del proyecto. 7. Manual de usuario: en él se explica el funcionamiento de la aplicación a nivel de usuario. 8. Bibliografía utilizada. 9. Anexos: código principal de la aplicación de domótica diseñada, y enlaces relativos a los elementos utilizados.. VICTOR FERNANDEZ HERMOSILLA. 17.

(18) 2. AtoLLic trUestUdio 2.1. Introducción Atollic TrueSTUDIO es una herramienta de desarrollo de aplicaciones en C y C++ para sistemas embebidos, cumpliendo tanto las funciones de compilación como de depuración sobre una tarjeta de desarrollo. Este programa ofrece una gran variedad de herramientas y opciones que facilitan en gran medida el trabajo para la puesta a punto de un sistema embebido desarrollado entorno a un microcontrolador . Atollic TrueSTUDIO está basado en estándares abiertos como Eclipse y GNU. Atollic TrueSTUDIO es compatible con una gran diversidad de proyectos, por lo que ofrece una gran flexibilidad. Aunque las nuevas versiones del programa están orientadas a la familia de microprocesadores ARM, las versiones anteriores permiten realizar proyectos con otros microprocesadores como el LPC1768, pero con ciertas restricciones, por lo que se decidió optar por la placa de desarrollo Núcleo-L152RE.. 2.2. Historia Atollic fue fundada en 2002 de la mano de la experiencia en desarrollo de software de la industria automotriz y aeroespacial de sus fundadores. Al poco tiempo se dieron cuenta que las herramientas de software que disponían se estaban quedando atrás con respecto a las necesidades del momento. Por lo que el IDE de TrueSTUDIO se creó a partir de la necesidad de estas nuevas herramientas de desarrollo, ofreciendo así gran cantidad de posibilidades y características que se describirán a continuación. Ya en 2017 la empresa STMicroelectronics compró Atollic para fomentar el desarrollo de STM32. STM32 es una familia de microcontroladores cuya característica principal es que se basan en el mismo núcleo de procesador, ARM de 32 bits.. VICTOR FERNANDEZ HERMOSILLA. 18.

(19) 2.3. Características Atollic se basa en el marco de trabajo de Eclipse, y este es uno de los marcos IDE más usados en la industria, y contiene gran cantidad de características descritas a continuación: . Asistente/gestión de proyecto: dado que Atollic TrueSTUDIO tiene una gran compatibilidad y flexibilidad de proyectos, esta herramienta de gestión nos permite crear proyectos de una forma sencilla, ya que permite mantener activos varios proyectos a la vez, y establecer las relaciones entre los mismos.. . RTOS y Middleware: la herramienta de trabajo Atollic es compatible con la gran mayoría de sistemas operativos en tiempo real (RTOS), los cuales como su propio nombre indica, son sistemas operativos con aplicaciones integradas en tiempo real. Los principales productos RTOS portados para TrueSTUDIO son: HCC-Embedded eTaskSync, Micrium (uC/OS), CMX (CMX-RTX/CMXTINY+), Express Logic (ThreadX), Realtime Engineers (FreeRTOS), Segger (embOS), HighIntegritySystems/Wittenstein (OpenRTOS/SafeRTOS), Code Time Technologies (Abassi) y Quadros (RTXC).. . Manejo de código: una de las grandes ventajas de trabajar con Atollic, es que ofrece una gran cantidad de herramientas, para la navegación, edición y refactorización de códigos, facilitando así el trabajo del usuario. Algunas de estas herramientas de edición de código son: Resaltado de vínculos e hipervínculos, navegación sencilla y flexible, visualización de jerarquía, acceso a llamadas de funciones, refactorización de código, edición y uso de comandos de acceso rápido…. . Depuración: el depurador de Atollic está basado en un depurador GNU gdb, el cual es un depurador portable que sirve para diversos lenguajes de programación, como C y C++, y se puede usar en diferentes plataformas. El programa funciona para la gran mayoría de sondas de depuración. El depurador es capaz de depurar tanto sistemas de un solo núcleo, como varios núcleos y/o procesadores. Las principales características que ofrece el depurador son: Control de flujo en la depuración, visualización del reloj en tiempo real, análisis de fallos del CPU, análisis y seguimiento en tiempo real, visualización de la pila de llamadas, variables, objetos y registros periféricos, uso de ‘breakpoints’ simples y complejos, vista avanzada de la memoria … Como principal ventaja del depurador, destaca el análisis de fallos de la CPU, el cual permite detectar los posibles errores, principalmente cuando estos errores son difíciles de detectar. Este análisis de fallos simplifica mucho la detección de. VICTOR FERNANDEZ HERMOSILLA. 19.

(20) éstos, indicando claramente el error que sucedió, el lugar donde se produjo (línea de código) junto a un vínculo para el acceso al mismo, y la causa del error.. . Soporte técnico: Atollic ofrece un gran soporte técnico a los usuarios, ya que dispone de:  Gestión de control de versiones de clientes: esto proporciona beneficios, como una mejor administración del código.  Gestión de problemas  Colección de documentos informativos sobre el programa: estos ofrecen información relevante sobre diversos temas, los cuales ayudan a conocer y/o manejar mejor el programa.  Notas de aplicación: estos inciden en funciones entrando más al detalle, en un tema específico o como realizar determinados cambios o acciones que interesen, algunos ejemplos son: ‘Guía de migración - Eclipse / GCC a TrueSTUDIO atólico’, ‘Depuración para kernel para embOS’ … Todos estos se encuentran disponibles en la página oficial de Atollic, en la sección de recursos, notas de aplicación.  Videotutoriales: en la propia página de Atollic, este nos ofrece una serie de vídeos en los que explican determinadas acciones y/o funciones específicas, para aprender a manejar mejor el programa.  Seminario web: al igual que los vídeos descritos anteriormente, también dispone de una serie de vídeos más extensos y orientados a enseñar el manejo del programa.  Foro: se dispone de un foro, en el cual permite al usuario compartir dudas, o problemas y así resolverlos con el resto de los usuarios. Esto puede resultar muy útil si uno se encuentra en un callejón sin salida y no sabe resolver un problema.  Blog: adicionalmente, la página oficial dispone de un blog en el cual publican noticias, resuelven preguntas a problemas más frecuentes, y ofrecen consejos y técnicas sobre el uso del programa.. . Herramientas: Atollic dispone de una gran cantidad de herramientas necesarias para diseñar software de alta calidad.. Además de estas características principales, el programa también dispone de algunas características más específicas: . Analizador de pila: con la herramienta Statick Stack Analizer, proporciona una gran información muy útil. Permite observar con facilidad los requisitos de cada función, pudiendo ser requisitos pila estáticos o dinámicos. Esto proporciona una vista general de llamadas a la pila y observar las rutas más ´costosas´.. VICTOR FERNANDEZ HERMOSILLA. 20.

(21) El analizador ofrece dos ventanas, las cuales se explicará su uso detalladadamente más tarde:  List (‘lista de la pila’): muestra el ‘coste’ local en cuanto a tamaño de cada función del proyecto . Call graph (‘pila estática de todo el programa’): muestra los requisitos de la pila estática. Enumera los costes locales, máximo y el uso de la pila.. . Analizador de memoria: nos permite acceder al mapa y regiones de memoria donde se ubican las secciones de código y datos. Ofrece una vista muy interesante a la vez que útil principalmente para conocer el tamaño libre y ocupado del proyecto, analizar las funciones más grandes con respecto a la memoria (ya que éstas son las que causan mayores errores, refactorizando las mismas en funciones más pequeñas se reducen considerablemente algunos errores). También permite observar qué funciones son las más utilizadas del programa, así como la duración y el tiempo invertido en las mismas de forma cuantitativa y/o estadística. Todas estas funciones y el uso de estas se describirán posteriormente en el apartado ‘Uso del programa’.. . Data trace: Atollic ofrece la posibilidad de realizar el seguimiento de variables de datos en tiempo real, esto es muy efectivo para comprobar si el sistema funciona correctamente, o en caso de no funcionar de la forma deseada, detectar las variables que no cumplen la lógica esperada y así hallar el problema.. . Exception trace: el programa también dispone de un analizador de excepciones, el cual indica un análisis de las excepciones, pudiendo conocer así, la duración de éstas (máxima, mínima, típica…), las veces que provocó la interrupción y el porcentaje de excepción con respecto al resto. Esto facilita en gran medida la realización de un análisis de ejecutabilidad tanto teórico como práctico, y comprobar si el sistema diseñado es viable.. . Optimizador de rendimiento: permite calcular los tiempos de ejecución de bloques de código específicos, esto indica el porcentaje de tiempo que ocupa a la CPU y permite identificar fallos, o funciones que ralenticen en exceso el programa. Corrigiendo dichas funciones se logra optimizar el rendimiento.. . Visualización de tareas RTOS, semáforos …: el depurador ofrece una vista adicional, que permite apreciar el estado de las interrupciones del programa, tareas, semáforos, colas y temporizadores profundizando más al detalle.. . Depuración simultánea: el sistema permite una depuración simultánea de múltiples núcleos, esto es útil principalmente para los dispositivos multinúcleo. La depuración se realiza con ambos núcleos al mismo tiempo, pudiendo alternar y decidir que aplicaciones se realizar en cada núcleo.. VICTOR FERNANDEZ HERMOSILLA. 21.

(22) 2.4. Funcionamiento del programa En este apartado se procederá a explicar el uso y manejo del programa, profundizando más al detalle las funciones y características de éste. El primer paso para la comprensión del programa, y el desarrollo de la aplicación, es descargar el programa. La instalación es muy sencilla y se descarga el archivo a través de la página principal de Atollic (https://atollic.com/resources/download/), en nuestro caso se descargó la versión disponible más actual, la 9.2.0, la cual ofrece el soporte requerido para el microprocesador Núcleo-L152Re. Tras instalar el programa, Atollic ofrece una guía de iniciación en la cual describe sus herramientas y muestra el manejo del programa, en base a esto se aprendió el funcionamiento del programa. A continuación, se exponen las herramientas y el manejo de éste.. 2.4.1. Versión del programa: En un primer momento, se descargó la versión v8.1.0, dado que se iba a trabajar con el microprocesador LPC1768 (mini-dk2), y ésta era la versión más actualizada en la que se podía trabajar para dicho microcontrolador. Atollic cuenta con dos versiones para su uso, la versión Lite, la cual es libre, y la versión Pro, esta última ofrece mayores ventajas que primera versión mencionada, y es de uso comercial, pero requiere una licencia. Al iniciar el programa por primera vez, éste correrá en modo Lite si no detecta ninguna licencia, este modo no tiene limitaciones de tamaño, solo de análisis específicos.. Figura 1. Atollic v8.1.0 Lite.. VICTOR FERNANDEZ HERMOSILLA. 22.

(23) Las principales diferencias entre la versión Lite y Pro se muestran en la figura adjunta a continuación:. Figura 2. Versión Lite vs Pro.. Debido a la antigüedad de la versión 8.1.0, y que las nuevas versiones de Atollic no requieren de licencia, no se pudo obtener una licencia Pro de Atollic. La cual dispone de las principales características y ventajas de Atollic, como el analizador de memoria, SWV, Hard Fault Analycer… Debido a esto, se optó por trabajar con un microcontrolador diferente, con una versión más reciente de Atollic la cual no dispusiese de limitaciones. Decantándose por el Núcleo-L152RE.. 2.4.2. Workspace: Lo primero que nos solicita Atollic, una vez descargado e iniciado el programa, es crear un directorio de trabajo (‘Workspace’), ya que, como Atollic se construye bajo el marco de Eclipse, se aplica el modelo del espacio de trabajo. Un Workspace es básicamente un espacio de trabajo, en el cual contiene proyectos. Estos proyectos son directorios que contienen los archivos. Se puede disponer de múltiples proyectos en un mismo directorio de trabajo, así como múltiples directorios de trabajo. Se puede acceder a múltiples proyectos simultáneamente, si estos se encuentran en el mismo Workspace. El uso de diferentes áreas de trabajo es muy útil para cambiar de un conjunto de proyectos a otros. Esto facilita una rápida y sencilla distribución de los proyectos.. VICTOR FERNANDEZ HERMOSILLA. 23.

(24) 2.4.3. Perspectivas: Atollic dispone de varios puntos de vista del programa, cada uno de ellos con sus funciones y características. El punto de vista principal es el de edición de código, ya que es el más utilizado, y el resto son depuración, control de versiones… El cambio del punto de vista es muy sencillo e intuitivo. El programa ofrece la posibilidad de editar, crear o eliminar puntos de vista adicionales.. Figura 3. Perspectivas.. Adicionalmente existe una opción (‘Show View’), que muestra las principales acciones de los puntos de vista, como por ejemplo compilar o mostrar los errores para la edición de código, o el control de variables y puntos de corte para la simulación.. Figura 4. Tipos de vista. VICTOR FERNANDEZ HERMOSILLA. 24.

(25) 2.4.4. Crear un proyecto: Algo básico en el programa es crear un proyecto sobre el que realizar el diseño de la aplicación, esto es muy sencillo con Atollic. La barra de herramientas dispone de 3 botones de acceso directo a la creación del proyecto, pero siguiendo esta serie de pasos éste se configura a nuestras necesidades. Botones de creación rápida de proyecto: Los pasos para crear un proyecto son los. siguientes:. 1. Seleccionar el tipo de proyecto: File -> new -> (tipo de proyecto) 2. Dar nombre y ubicación, y seleccionar el proyecto: Executable -> Embedded C Proyect -> Atollic ARM Tools 3. Seleccionar el dispositivo que se utilizará posteriormente: en el cuadro de Target permite escribir para una mejor búsqueda. 4. Seleccionar la librería reducida o standard 5. Se selecciona la sonda que se utilizará en la depuración (posteriormente se podrá modificar en la ventana ‘Configure debug ‘; icono -> ) 6. Se crea el proyecto: Next -> Finish En las siguientes figuras se muestran los pasos definidos anteriormente:. Figura 5. Crear un proyecto.. VICTOR FERNANDEZ HERMOSILLA. 25.

(26) Nombre y ubicación.. Librería.. VICTOR FERNANDEZ HERMOSILLA. .Tarjeta.. Sonda de depuración.. 26.

(27) .. Proyecto Generado.. 2.4.5. Configuración de compilación: El programa dispone de dos modos de compilación del proyecto: Debug y Release. La principal diferencia entre ambos es que el modo Release, optimiza el código para la depuración para que sea lo más eficiente posible, pero pierde precisión. El modo Debug también ofrece más información. Para seleccionar uno u otro modo, se accede a el proyecto en sí, botón derecho -> Build Configurations -> Set Active -> Debug/Release.. Figura 6. Debug Release.. VICTOR FERNANDEZ HERMOSILLA. 27.

(28) El programa también permite realizar modificaciones a estas dos configuraciones, o crear una nueva. Seleccionando en el botón derecho del proyecto -> Build Configurations -> Manage,(se puede observar también en la figura 6 ). Aparecerá una ventana donde se podrá cambiar la configuración, borrar, crear una nueva o cambiar el nombre de éstas:. Figura 7. Administrar configuraciones.. 2.4.6. Librerías: Un uso muy frecuente en estos programas es el uso de librerías, las cuales facilitan en gran medida parte del trabajo. Para incluir una librería en un proyecto, se selecciona click derecho sobre el proyecto sobre el que se desee incluir la misma, a continuación, se selecciona en ‘propiedades’, ‘C/C++ Build’ y ‘Settings’. Acontinuación ‘Tool Settings’ , ‘C Linker’, ‘Libraries’. Seleccionar ‘Add’ y darle un nombre a la librería, (solo el nombre del archivo, sin el prefijo .lib), después añadir la ruta donde se encuentra la biblioteca, en la pestaña ‘Add’ de ‘Library paths’, (sin incluir el nombre de la biblioteca en la ruta). Posteriormente se realiza lo mismo para incluir los archivos de encabezado (source folder). Tras añadir la biblioteca, solo falta añadir sus referencias para poder utilizarla. También existe la opción de crear la librería, seleccionando ‘File’, ‘New’, ‘C Project’, ‘Static Library’, ‘Embedded C Library’ ,seleccionar la opción ‘Atollic ARM Tools’ y pulsar ‘Next’.. VICTOR FERNANDEZ HERMOSILLA. 28.

(29) 2.4.7. Build proyect: Se dispone de dos botones para construir el proyecto, situados en la barra de herramientas, o en la ventana Proyect: El primero es para construir el proyecto (solo compila lo modificado desde la última compilación), y el segundo vuelve a compilar de cero todos los archivos existentes. Tras compilar, nos aparecerá en la ventana Console (se accede a ella a través de el botón Show View descrito anteriormente, se ubica normalmente en la parte inferior, aunque se puede ubicar donde se desee, ampliar…), el resultado de la compilación, así como la duración de esta:. Figura 8. Ejemplo de compilación.. En caso de obtener algún error de compilación, en la ventana Problems, aparecerá el error en cuestión, indicando la causa de éste, el archivo donde se produjo (Resource), la línea concreta (Location) y el tipo. Pulsando en el error, se accede al lugar en cuestión de éste.. Figura 9. Ejemplo de un error.. VICTOR FERNANDEZ HERMOSILLA. 29.

(30) Tras compilar el proyecto, se generará un archivo (normalmente .ELF), para ver las propiedades de éste (como el tamaño, código de datos…), se selecciona la pestaña de Show View -> Properties, y el archivo en cuestión. 2.4.8. Comandos: Atollic dispone de una serie de comandos, muy útiles que pueden agilizar el trabajo, principalmente cuando se tiene ya un conocimiento avanzado del programa y se desea poder realizar de forma automática ciertas acciones. Para visualizar los comandos, se pulsará Ctrl+ Shift+ L, si se desea modificar el comando de alguna acción se vuelve a pulsar Ctrl+ Shift+ L, aparecerá una lista de todas las acciones disponibles en Atollic, y su comando correspondiente para las que lo tengan asignado. Se podrán añadir, cambiar y quitar comandos al gusto del usuario. Existen comandos muy útiles como: Build all (Ctrl+ B), Debug (F11), Save (Ctrl+ S), Run (Ctrl+ F11) … Otros comandos muy interesantes, cuando el tamaño del código del proyecto es considerablemente grande son los siguientes: Pulsar Ctrl y a continuación seleccionar una función o variable, te dirige automáticamente a la declaración de éste. Pulsar Ctrl+ L seleccionas la línea a la que quieres dirigirte del código. 2.4.9. Depuración: Tras compilar un proyecto correctamente, se genera un archivo .elf disponible para depurar y cargar en el microprocesador. Antes de cargar el proyecto, se configuran las opciones del depurador, seleccionando el botón ‘Configure Debug’. En la pestaña principal ‘Main’ , indica el proyecto que se va a depurar, así como su aplicación. A continuación, en la pestaña ´Debugger’ se selecciona la sonda que se va a utilizar (en nuestro caso ST-LINK). En la conexión GDB se selecciona ‘Autostart local GDB server’, esto se debe a que se realiza una depuración local, atollic también permite una depuración remota a través de un servidor GDB. Al depurar en modo local, se introduce un valor cualquiera en el apartado ‘Port number’. Por último, se selecciona la interfaz de depuración, en nuestro caso ‘SWD’. Junto a ésta también se dispone de una opción adicional ‘Use specific S-T Link’, si se tienen dos o más placas conectadas se necesitará para seleccionar la placa sobre la que se desee trabajar, pulsando en el botón ‘scan’, se mostrará cada placa con su código que la identifica, por lo que se seleccionará la placa con la que se desee trabajar. En esta misma pestaña se puede habilitar el Sistem Wire Viewer (SWV) del depurador, que se explica posteriormente.. VICTOR FERNANDEZ HERMOSILLA. 30.

(31) Figura 10. Configuración de depuración.. Figura 11. Configuración de depuración(2).. VICTOR FERNANDEZ HERMOSILLA. 31.

(32) Adicionalmente si se desea, se pueden crear múltiples configuraciones de depuración. A continuación, se expone un ejemplo en el que se crea una configuración de depuración que permite descargar y ejecutar el programa rápidamente sin pasar al modo de depuración. Para hacer esto, es necesario realizar un duplicado de la depuración original, pulsando con el botón derecho sobre la depuración, y a continuación ‘Dulicate’. Se cambia el nombre para diferenciar la depuración:. Figura 12. Duplicar depuración.. A continuación, se modifica el script: a partir de la palabra ‘load’, se elimina todo y se añade la palabra ‘quit’, tal y como se muestra a continuación:. Figura 13. Script de la depuración.. VICTOR FERNANDEZ HERMOSILLA. 32.

(33) Por último, se marca la casilla de ‘Verify Flash Download’, después aplicar y cerrar. Ahora se dispone de dos opciones de depuración: ‘Debugging’ y ‘Debug and Run’.. Atollic ofrece una gran posibilidad de opciones en la depuración, a continuación, se describen algunas de ellas. Breakpoints; su uso es muy común y frecuente en todos los programas, permite al usuario realizar un control de la depuración, y detener el programa en puntos deseados, observar el comportamiento de éste… Añadir un breakpoint es muy sencillo, basta con pulsar con el botón derecho sobre la línea que se desee añadir el mismo, y seleccionar ‘Add Breakpoint’, en la pestaña de depuración se dispone de una ventana donde aparecen todos los breakpoints seleccionados, desde la cual permite habilitar/deshabilitar los mismos. En esta ventana aparece la línea de código donde se encuentra el breakpoint, y el fichero en el que se encuentra. También permite ir a la dirección de éste, pulsando sobre él y seleccionando el botón ‘Go to file for breakpoint’. Otra opción disponible es realizar una condición sobre el breakpoint, de modo que solo si se cumple dicha condición (al pasar por esa línea de código) el programa se detendrá.. Figura 14. Breakpoints.. Expressions; permiten visualizar diferentes tipos de datos: variables locales, globales, registros de la CPU… También permite realizar operaciones sobre dichas variables o datos (Ejemplo: 3.3*adc1/4095). Sin embargo, estos valores no son visibles durante la depuración del programa, sus valores solo se actualizan al detener la depuración, ya sea pausándola, o mediante un breakpoint. Para añadir una variable basta con añadir su nombre, o arrastrarla desde la línea de código. Las diferentes variables, muestran su tipo de dato, y su valor, pudiendo seleccionar el formato de éste, ya sea binario, decimal, octal…. Live Expressions; son similares a las Expresiones, pero permiten ser visualizadas durante la depuración del programa. La velocidad de muestreo de estas expresiones vendrá determinada por la cantidad de expresiones a visualizar. Siendo más lento cuantas más expresiones se seleccionen.. VICTOR FERNANDEZ HERMOSILLA. 33.

(34) Local Variables; ideal para muestrear el valor de las variables locales del programa. La ventana ‘Variables’ muestra las mismas, definiendo el tipo, valor y localización en la memoria del programa.. SRFs; en la depuración atollic permite acceder a los registros de funciones especiales, estos registros ofrecen información sobre el estado del microprocesador. Dependiendo de los permisos sobre el registro, es posible la lectura y escritura de éstos.. Depuración en RAM; es posible realizar la depuración del código del programa en la memoria RAM en lugar de la memoria Flash. Esto es posible siempre y cuando se cumplan ciertos requisitos: la memoria RAM es más pequeña, por lo que el tamaño del programa debe ser menor que la capacidad de la memoria RAM, es necesario establecer el ‘Vector Base Register’ (VBR) en la ubicación de la RAM, y por último esl sript gdb que carga el código no debe tener un comando de reinicio después de la carga del programa.. Depuración simultánea sobre dos tarjetas; esta función está disponible, utilizando dos sondas y dos microprocesadores, cada uno conectados a distinto puerto USB.. 2.4.10. Hard Fault Analyzer: Como se ha descrito anteriormente, el programa dispone de un analizador de fallos exhaustivo, el cual proporciona información muy útil con respecto a un fallo debido al software de la aplicación. Algunos de estos fallos son debido a accesos no válidos de memoria, divisiones por cero, ejecutar una instrucción indefinida… Una vez detectado el fallo, el analizador indica el fallo, estos se clasifican principalmente en fallos de memoria, del bus (debido a accesos no válidos a través de éste) y de uso (debido a instrucciones no válidas o errores de programación).. VICTOR FERNANDEZ HERMOSILLA. 34.

(35) Figura 15. Ejemplo del Hard Fault Analyzer.. VICTOR FERNANDEZ HERMOSILLA. 35.

(36) 2.4.11. Analizador de memoria: Tal y como se ha descrito anteriormente en la sección de características del programa, el analizador de memoria permite acceder al mapa y regiones de memoria donde se ubican las secciones de código y datos. El analizador de memoria contiene dos ventanas, Memory Regions (regiones de memoria) y Memory Details (detalles de la memoria). El analizador de memoria está disponible en la ventana Show View -> C/C++ -> Build Analyzer. En la ventana de regiones de memoria, indica la memoria utilizada, el inicio y fin de la dirección, el tamaño libre disponible, así como el usado, y el porcentaje de uso:. Figura 16. Regiones de memoria.. El porcentaje de uso indica con una serie de colores y gráficas la memoria usada: (verde < 75%), (amarillo [75-90%]) y (rojo > 90%). En la ventana detalles de la memoria, indica el tamaño de cada función específica (size),. Figura 17. Detalles de la memoria. VICTOR FERNANDEZ HERMOSILLA. 36.

(37) 2.4.12. Analizador de pila: El analizador de pila ofrece información sobre el uso de la pila del programa diseñado. Ofrece dos pestañas: ‘List’ y ‘Call graph’, el primero de éstas, ofrece una lista del uso de la pila por cada función del programa, donde indica el coste local, el tipo y su ubicación. La pestaña ‘Call graph’ muestra todas estas funciones, pero dentro de su jerarquía, indicando qué funciones llaman a otras funciones. Para poder visualizar la información de la pila, es necesario generar el proyecto, abrir la vista ‘Statick Stack Analycer’ disponible en ‘View’ -> ‘C/C++’ , y por último seleccionar el archivo .elf generado.. Figura 18. Ejemplo Analizador de pila.. El icono que se muestra en la parte izquierda de cada función, indica lo siguiente:    . Punto verde: la función utiliza una asignación de pila estática. Cuadrado azul: la función utiliza una asignación de pila dinámica. Icono hoja ‘010’: cuando no se conoce la información de la pila, principalmente en casos de funciones de la biblioteca o ensamblador. Tres flechas en círculo: la función realiza llamadas recursivas.. Las columnas ofrecen la siguiente información: . Depth: profundidad de la pila de llamadas que utiliza la función. ‘0’ si la función no realiza llamadas a otras funciones, num>0 indica el número de llamadas que realiza a otras funciones y ‘?’ si realiza llamadas recursivas (la profundidad no puede ser calculada).. VICTOR FERNANDEZ HERMOSILLA. 37.

(38)   . Max Cost: especifica el número de bytes de pila que utilizará la función, incluyendo la pila necesaria para las funciones que llama. Local Cost: especifica el número de bytes de pila que utilizará la función, sin incluir la pila necesaria para las funciones que llama. Type: especifica el uso estático o dinámico de la pila.. 2.4.13. Serial Wire Viewer (SWV): El SWV proporciona un análisis de seguimiento avanzado en tiempo real, que no precisa de la necesidad de detener el procesador para obtener la información de depuración. Proporciona información sobre los eventos de lectura y escritura de datos, inicio y fin de interrupciones, contador de eventos e información de marca de tiempo y ciclo CPU. Para el uso de esta herramienta se requiere un procesador compatible. Dispone de varios puntos de vista, cada cual proporciona una información interesante, los puntos de vista son:. Figura 19. Puntos de vista SWV.. A continuación, se explica brevemente, la función, uso e información que proporcionan cada una de las vistas del SWV..  Lista los paquetes entrantes SWV en una hoja de cálculo. . VICTOR FERNANDEZ HERMOSILLA. Muestra los paquetes recibidos en una gráfica en función del tiempo.. 38.

(39)  Muestra información de las interrupciones del programa.  Muestra la distribución de las interrupciones en el tiempo en una gráfica.  Imprime la salida de texto de la aplicación. . Gráfica para mostrar la distribución de paquetes-ITM en función del tiempo.. . Rastreo de datos..  Gráfica para mostrar los valores de las variables en función del tiempo..  Muestra estadísticas acerca de las funciones del programa, principalmente el procentaje de uso de éstas.. Todas estas vistas se pueden ver/analizar al mismo tiempo en la ventana de depuración, son muy útiles para comprobar el funcionamiento del programa, y realizar un análisis de ejecutabilidad más exhaustivo.. VICTOR FERNANDEZ HERMOSILLA. 39.

(40) Para poder usar la herramienta SWV durante la depuración, es necesario habilitarla en la configuración de la depuración:. Figura 20. Habilitar SWV.. Activar el botón ‘Enable’ de la parte inferior de la ventana de configuración, en el recuadro ‘Core Clock’ introducir la frecuencia de trabajo del proyecto, (en nuestro caso 16MHz). En caso de desconocer dicha frecuencia, en la ventana de ‘Expresions’ en la depuración, es posible saber dicho valor, introduciendo ‘SystemCoreClock’, ésta indica la frecuencia de trabajo.. Tras introducir esta frecuencia, se selecciona la frecuencia SWO Clock, ésta debe ser múltiplo de la escrita previamente. Tras activar el SWV se pasa al modo depuración, donde se configuran las opciones de seguimiento. Por último, se selecciona el puerto, este número debe ser diferente del número de puerto de la depuración, de no ser así, el SWV no será capaz de visualizar nada.. VICTOR FERNANDEZ HERMOSILLA. 40.

(41) Existe una opción extra, ‘Wait for sync packet’, al habilitar esta opción permitirá que gran parte de los paquetes que se reciban estén correctos (completos), pero esto puede desencadenar en que se pierda un mayor número de paquetes, principalmente si la carga del número de paquetes recibidos es alta.. Sobre cualquier ventana de SWV de depuración, aparecen tres símbolos:   . Herramientas: al seleccionarlo se accede a la configuración SWV. Botón rojo: se deberá seleccionar dicho botón para comenzar a rastrear los paquetes SWV. Cruz roja: vaciar o eliminar los paquetes recibidos.. Para poder acceder a la configuración de SWV, o comenzar el rastreo de paquetes, es necesario detener la depuración. Tras pulsar sobre las herramientas se abre un cuadro de configuración tal como este:. Figura 21. Configuración SWV.. VICTOR FERNANDEZ HERMOSILLA. 41.

(42) La ventana de configuración dispone de seis subventanas, las cuales se explican a continuación: Clock Settings: muestra los valores seleccionados previamente de frecuencia del microprocesador y SWO. PC Sampling: muestreo del PC, es necesario activarlo para realizar el rastreo de datos. La resolución indica la velocidad de muestreo, en caso de utilizar un rastreo más grande de datos, es recomendable reducir este valor, ya que el pin del SWO tiene un ancho de banda limitado. Timestamps: es necesario habilitarlo para obtener información de cuando ocurrió el evento determinado. El prescaler solo se debe modificar (aumentar su valor) para evitar desbordamientos ante un rastreo de datos elevado. Data Trace: al habilitar cualquiera de estas cuatro casillas, realiza el rastreo de una variable o una región de memoria determinada. El valor rastreado se mostrará tanto en la vista ‘SWV Data Trace’ con su valor numérico, como su evolución en el tiempo en el gráfico ‘SWV Data Trace Timeline graph’. ITM Stimulus Ports: activar/desactivar los 32 puertos ITM disponibles, muy útiles para enviar información. Trace Events: eventos disponibles para trazar:  .    . CPI (ciclo por instrucción): calcular el número de instrucciones por segundo. SLEEP (ciclos de sueño): número de ciclos que la CPU se encuentra en modo de suspensión. Ideal para calcular consumos en proyectos alimentados por baterías. FOLD (Instrucción doblada): contador para instrucciones eliminadas. EXC (coste general de interrupciones): incluye operaciones de pila y devoluciones (no el tiempo empleado en las interrupciones). LSU: uso para seguimiento del coste de las operaciones de memoria. EXTERC (rastrear excepciones).. Una vez configurado lo deseado, se pulsa sobre el botón rojo descrito previamente, y se reanuda la depuración.. VICTOR FERNANDEZ HERMOSILLA. 42.

(43) 2.5. Comparativa con Keil uVision4 A lo largo de la carrera, en asignaturas como Sistemas Electrónicos Digitales, Control Electrónico, o Sistemas Electrónicos Digitales Avanzados, el entorno que se usa para programar sobre la tarjeta de desarrollo basada en el LPC1768, es Keil uVision4. Este programa es bastante útil y cómodo para la programación, sin embargo en cuanto a la depuración disponía de ciertas carencias. Atollic, sin embargo, ofrece una gran cantidad de recursos en cuanto al tema de depuración, ya descritos previamente. También dispone de una muy buena gestión de proyectos en comparativa con Keil. Atollic es más versátil, ya que dispone de un gran número de microcontroladores. Sin embargo, Atollic es un programa más complejo, debido a su gran número de recursos, mientras que Keil es muy sencillo y fácil de aprender a manejar. Mientras que Keil uVision4, tiene ciertas limitaciones de código y dispone de una versión pro de pago, Atollic en sus versiones mas recientes incluye todas las funciones Pro y sin limitaciones, pero solo está disponible para STM32.. VICTOR FERNANDEZ HERMOSILLA. 43.

(44) 3. tArjetA de desArroLLo 3.1. Introducción. La tarjeta de desarrollo que se ha utilizado es el Núcleo-L152RE, está basada un microprocesador STM32, la gran ventaja de la placa es que no requiere ninguna sonda de depuración, ya que integra el depurador ST-LINK/ V2-1, por lo que se puede conectar fácilmente al programa, a través de un puerto USB.. Figura 22. NÚCLEO-L152RE(1).. La parte superior de la placa corresponde al ST-LINK, y la parte inferior a la placa de desarrollo.. 1 Imagen obtenida de: https://www.digikey.es/product-detail/es/stmicroelectronics/NUCLEO-L152RE/497-14363-ND/4695528. VICTOR FERNANDEZ HERMOSILLA. 44.

(45) 3.2. Características del Núcleo. Las principales características que ofrece la tarjeta Cortex-M3 son: 1. 2. 3. 4. 5.. Microcontrolador STM32 en el paquete LQFP64. Tres Leds: comunicación USB (LD1), LED de usuario (LD2), y LED de potencia (LD3). Dos recursos de extensión: Arduino Uno V3, o ST morpho extensión. Dos pulsadores: User(configurable como interrupción) y Reset. Fuente de alimentación flexible: USB VBUS, o fuente externa (3.3V, 5V, 7-12V) y punto de acceso a la administración de energía. 6. Re-enumeración USB, tres interfaces compatibles con USB: puerto COM virtual, almacenamiento masivo, y puerto de depuración. 7. Depurador ST-LINK V2-1 incluido con conector SWD.. Características del microcontrolador: 1. CPU ARM®32 bits Cortex®-M3. 2. Clock source:  Cristal de osccilación de 1Mhz a 24MHz.  RTC con calibración de hasta 32kHz.  Ocilador interno de bajo consumo de 37kHz. 3. Bajo consumo:  1.11 μA en modo Standby + RTC.  1.4 μA Stop mode + RTC.  11 μA en modo bajo consumo y 4.6 μA en modo sueño.  195 μA/MHz ‘Run mode’. 4. Rango de temperatura: -40 °C to 105 °C. 5. Memoria:  512 Kbytes de memoria Flash  80 Kbytes de memoria RAM  16 Kbytes EEPROM 6. LCD driver. 7. Hasta 51 GPIO (con capacidad de interrupción externa). 8. Hasta 21 canales ADC con una resolución de 12 bits. 9. Dos canales DAC de 12 bits. 10. Hata doce canales disponibles de controlador DMA. 11. Once puertos de comunicación:  USB 2.0  Cinco USARTs  Tres SPI  Dos canales I2C. VICTOR FERNANDEZ HERMOSILLA. 45.

(46) 12. Nueve temporizadores. 13. Dos comparadores y dos amplificadores operacionales.. Figura 23. Hardware block diagram(2).. 2 Imagen obtenida de: https://www.st.com/resource/en/user_manual/dm00105823.pdf. VICTOR FERNANDEZ HERMOSILLA. 46.

(47) 3.3. ST-LINK /V2-1. Como se ha comentado previamente, la tarjeta de desarrollo Núcleo STM32, está dividido en dos partes, la placa y el depurador. Esta última, se puede cortar para así reducir el tamaño de la placa, y en tal caso proporcionar una alimentación externa a la placa. Las principales características del depurador son:       . Interfaz compatible con USB 2.0 de máxima velocidad. Entrada de alimentación de 5V. Cable estándar USB A a Mini-B. Rango de temperaturas: 0-50ºC. Led de comunicación. Actualización directa de firmware compatible (DFU). Admite SWV (serial wire viewer) y SWD (serial wire debug).. Existen una serie de jumpers en la placa, la mayoría en el depurador, cuya función es configurar el estado del depurador, medir corrientes, suministrar alimentación… Para usar el depurador, existen dos configuraciones, dependiendo del estado del jumper CN2:  . Ambos Jumpers CN2 ‘ON’: ST-LINK habilitado para la programación (por defecto). Ambos Jumpers CN2 ‘OFF’: ST-LINK habilitado para el conector CN4 externo.. Para poder utilizar el depurador, se requiere la instalación de los drivers, en este caso, atollic ya proporciona la instalación de los mismos al instalar el programa, por lo que no será necesario, pero en caso de necesitar instalarlos, se encuentran disponibles en la página web de www.st.com.. 3.4. Alimentación. Como ya se ha comentado previamente en las características de la placa, la fuente de alimentación puede ser proporcionada de múltiples formas. Ya sea mediante USB a través de un PC o batería, o por una fuente externa: VIN (7V-12V), E5V (5V) o 3.3V, suministrando la energía en CN6 o CN7. Estas fuentes de alimentación externa deben cumplir con la norma EN-60950-1: 2006 + A11 / 2009, y deben ser ‘Safety extraLow Voltage’ (SELV) con capacidad de potencia limitada. La placa dispone de dos configuraciones para el jumper JP5, dependiendo de la alimentación que se desee suministrar:. VICTOR FERNANDEZ HERMOSILLA. 47.

(48) . U5V, proporcionada por el ST-LINK a través del USB:. . VIN ó E5V, fuente de alimentación externa:. En el caso típico de suministrar la energía por medio del USB, se dispone adicionalmente del jumper JP1, para limitar la corriente. Para lo cual se dispone de dos configuraciones:  . 3.5. JP1 ‘OFF’ (default): consumo máximo de corriente 300mA. JP1 ‘ON’ : consumo máximo de corriente 100mA.. Recursos extra. A continuación, se describen algunos recursos extra de los que dispone la placa NUCLEO-L152RE. Como ya se ha comentado previamente, la placa dispone de tres leds, cada uno de ellos con una función/uso que se describe a continuación: .  . LD1 (COM): led de tres colores (verde, rojo y naranja), que proporciona información sobre el estado de la comunicación del ST-LINK. Su color por defecto es el rojo, y cambia de color con los siguientes procesos: 1. Parpadeo lento rojo: encendido, antes de la inicialización USB. 2. Parpadeo rápido rojo: después de la primera comunicación correcta entre el PC y ST-LINK / V2-1. 3. Rojo encendido: comunicación entre el PC y ST-LINK / V2-1 es completa. 4. Verde encendido: después de una exitosa inicialización de la comunicación de destino. 5. Parpadear rojo/verde: durante la comunicación. 6.A Verde encendido: comunicación finalizada y con éxito. 6.B Naranja encendido: fallo en la comunicación. LD2 (USER): es un led de color verde, para un uso de usuario, conectado al pin PA_5 y activo a nivel alto. LD3 (PWR): por último, este led rojo indica si el STM32 se encuentra alimentado correctamente.. La placa dispone también de dos botones externos, B1 y B2: VICTOR FERNANDEZ HERMOSILLA. 48.

(49)  . B1 (USER): conectado al pin PC_13, y puede ser configurado como interrupción. B2 (RESET): pulsador conectado a NRST, para realizar un reinicio en el microcontrolador.. Si se desea conocer el consumo de la placa, se dispone del jumper JP6, el cual permite realizar una medida del consumo del microcontrolador, conectando un amperímetro en dicho jumper. Por defecto este jumper está conectado, para medir la corriente solo es necesario desconectar el jumper, y conectar un amperímetro en serie. Si se desconecta el jumper, pero no se conecta ningún amperímetro en serie la placa no dispondrá de alimentación.. Ilustración 24 Figura 24. Pinout Núcleo-L152RE(3).. 3 Imagen obtenida de: https://www.st.com/resource/en/user_manual/dm00105823.pdf. VICTOR FERNANDEZ HERMOSILLA. 49.

Figure

Figura 2. Versión Lite vs Pro.
Figura 5. Crear un proyecto .
Figura 6. Debug Release.
Figura 8. Ejemplo de compilación.
+7

Referencias

Documento similar

En estos últimos años, he tenido el privilegio, durante varias prolongadas visitas al extranjero, de hacer investigaciones sobre el teatro, y muchas veces he tenido la ocasión

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

En junio de 1980, el Departamento de Literatura Española de la Universi- dad de Sevilla, tras consultar con diversos estudiosos del poeta, decidió propo- ner al Claustro de la

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Sanz (Universidad Carlos III-IUNE): &#34;El papel de las fuentes de datos en los ranking nacionales de universidades&#34;.. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

Así, antes de adoptar una medida de salvaguardia, la Comisión tenía una reunión con los representantes del Estado cuyas productos iban a ser sometidos a la medida y ofrecía