10
1 Pasos para configurar el microcontrolador Discovery STM32F4 con el KEIL (Versión 1.0) Teniendo el IDE KEIL para ARM debemos instalar el st-link_v2_usbdriver.zip para poder comunicarnos con el Discovery. Del menú Project elegir New uVision Project. Dar un nombre al proyecto y seleccionar el microcontrolador utilizado. Para una mejor organización, se sigue con la estructura de los ejemplos de STMicroelectronics, como la siguiente: Por lo que después del directorio del proyecto, deberíamos agrupar los archivos código en los siguientes directorios: MDK-ARM, User, STM32F4_Discovery y STM32F4xx_StdPeriph_Driver. Dentro de los mismos iremos cargando los archivos *.c existentes que necesitemos y los que crearemos para la aplicación. Esta es sólo una sugerencia para tener más organizado el proyecto, no es de carácter obligatorio para su compliación. Ahora debemos configurar el mapa de memoria que tiene el micro. Pulsando Botón derecho sobre el nombre del proyecto, pulsar “Option for Target ‘nombre del proyecto’”. Configurar según las figuras. Start Size Start Size IROM1: 0x8000000 0x20000 IRAM1: 0x20000000 0x4000

Configurar Discovery STM32F4

Embed Size (px)

Citation preview

Page 1: Configurar Discovery STM32F4

1

Pasos para configurar el microcontrolador Discovery STM32F4 con el KEIL (Versión 1.0)

Teniendo el IDE KEIL para ARM debemos instalar el st-link_v2_usbdriver.zip para poder comunicarnos con el

Discovery.

Del menú Project elegir New uVision Project. Dar un nombre al proyecto y seleccionar el microcontrolador

utilizado.

Para una mejor organización, se sigue con la estructura de los ejemplos de STMicroelectronics, como la

siguiente:

Por lo que después del directorio del proyecto, deberíamos agrupar los archivos código en los siguientes

directorios: MDK-ARM, User, STM32F4_Discovery y STM32F4xx_StdPeriph_Driver. Dentro de los mismos

iremos cargando los archivos *.c existentes que necesitemos y los que crearemos para la aplicación. Esta es

sólo una sugerencia para tener más organizado el proyecto, no es de carácter obligatorio para su

compliación.

Ahora debemos configurar el mapa de memoria que tiene el micro. Pulsando Botón derecho sobre el

nombre del proyecto, pulsar “Option for Target ‘nombre del proyecto’”. Configurar según las figuras.

Start Size Start Size

IROM1: 0x8000000 0x20000 IRAM1: 0x20000000 0x4000

Page 2: Configurar Discovery STM32F4

2

Page 3: Configurar Discovery STM32F4

3

Page 4: Configurar Discovery STM32F4

4

En Preprocessor Symbols->Define, agregamos:

USE_STDPERIPH_DRIVER,STM32F4XX

En Include Paths: debemos agregar (según donde esté instalado el directorio [STM32F4-

Discovery_FW_V1.1.0] ):

..\Libraries\CMSIS\Include

.. \Libraries\CMSIS\ST\STM32F4xx\Include

..\Libraries\ STM32F4xx_StdPeriph_Driver\inc

..\Utilities\STM32F4-Discovery

..\ el directorio donde está el main.c, system_stm32f4xx.c y demás archivos utilizados.

Entrando en “Settings” a la derecha de Use ST-Link Debugger, verificar que esté seleccionado el Port: SW.

Page 5: Configurar Discovery STM32F4

5

(Verificar que esté cargado el mapa Flash)

Estos fueron los pasos para configurar la plataforma de programación.

Reload Value = Systick CounterClock(Hz) * Desired Time Base (s)

Es el valor que le pasamos a la función Systick_Config() <= 0xFFFFFF

La filosofía de ARM(Advanced RISC Machines):

“Todo dispositivo necesita clock para poder manipularlo y usarlo”.

Page 6: Configurar Discovery STM32F4

6

Diagrama en bloques del STM32F407VGT6.

Page 7: Configurar Discovery STM32F4

7

Clock

Puede usarse una de tres fuentes diferentes de reloj para comandar el reloj del sistema (SYSCLK):

HSI reloj oscilador (High Speed Internal clock signal)

HSE reloj oscilador (High Speed External clock signal)(Oscilador RC 16 MHz interno)

PLL Principal de Reloj (PLL)

Los dispositivos tienen las dos siguientes fuentes de reloj secundarias:

Un RC interno de baja velocidad (32 KHz) que controla el watchdog independiente y,

opcionalmente, el RTC usado para Auto-wakeup cuando se está en modo STOP/Standby.

Un cristal externo de baja velocidad (32.768 KHz) el cual puede (opcional) controlar el reloj RTC

(RTCCLK).

Page 8: Configurar Discovery STM32F4

8

Se dispone de varios prescalers para configurar los dominios de la frecuencia del AHB (Advanced High-

Perfomance Bus), del APB (Advanced Peripheral Bus) de alta velocidad (APB2) y del APB de baja velocidad

(APB1). La máxima frecuencia del dominio AHB es 168 MHz. La máxima frecuencia permitida para el dominio

de alta velocidad APB2 es 84 MHz. La máxima frecuencia permitida para el dominio de baja velocidad APB1

es 42 MHz.

Todos los relojes de los periféricos están derivados del reloj de sistema (SYSCLK), excepto:

El reloj USB OTG FS (48 MHz), el reloj del generador analógico aleatorio (RNG) (≤48 MHz) y el reloj

SDIO (≤48 MHz) los cuales provienen de una salida específica del PLL (PLL48CLK).

El reloj I2S (para lograr una perfomance de alta calidad en audio).

El reloj USB OTG HS (60 MHz) el cual es provisto por la entrada externa PHY.

Los relojes para Ethernet MAC (TX, RX, RMII) los cuales son provistos desde la entrada externa PHY.

Cuando se usa Ethernet, la frecuencia de reloj del AHB debe ser de por lo menos 25 MHz.

El RCC (Reset and Clock Control) proporciona el reloj externo para el Cortex System Timer (SysTick) con el

reloj del AHB (HCLK) dividido por 8. El SysTick puede trabajar con este reloj o con el reloj del Cortex (HCLK),

configurable en el registro de control y estado del SysTick.

Las frecuencias de reloj de los timers para el STM32F40x se configuran automáticamente por hardware. Hay

dos casos:

1. Si el prescaler del APB es 1, las frecuencias de reloj de los timers se configuran con la misma

frecuencia del dominio APB al cual los timers están conectados.

2. De otra forma, son seteados al doble (x2) de la frecuencia del dominio APB a la cual los timers están

conectados.

FCLK actúa como el reloj de corrida libre (free-running) del Cortex-M4F.

Nota sobre configuración del PLL

Dado que los parámetros de configuración del PLL principal no pueden cambiarse una vez que el PLL esté

habilitado, es recomendable configurar el PLL antes de habilitarlo (selección del oscilador HSI ó HSE como

fuente de reloj al PLL, y la configuración de los factores de división M, N, P y Q). Con el archivo Excel

STM32F4xx_AN3988_V1.0.1\STM32F4xx_Clock_Configuration_V1.0.1.xls se pueden calcular

automáticamente estos registros y generar el archivo system_stm32f4xx.c necesario para la configuración.

Mapa de Memoria

Page 9: Configurar Discovery STM32F4

9

Page 10: Configurar Discovery STM32F4

10