STM32F103 - ¿TIM5 no existe en los dispositivos de densidad media? ¿Cómo puedo saber qué más falta?

3

He intentado configurar TIM5 como un temporizador de base de tiempo con una interrupción, cuando el compilador me dio el siguiente error:

  

39: error: 'TIM5_IRQn' no declarado (primer uso en esta función)

Aunque pensé que buscaría esta definición en stm32f10x.h, y noté esto:

#ifdef STM32F10X_HD
...
TIM5_IRQn = 50,     /*!< TIM5 global Interrupt  */
...

Supongo que esto significa que mi dispositivo, que es de densidad media, no tiene una interrupción TIM5. ¿Eso significa que el dispositivo no tiene ningún periférico TIM5?

La única referencia que he encontrado sobre esto está en la página de "características" de la hoja de datos de densidad media que dice:

"Tres temporizadores de 16 bits ..." - Supongo que estos son TIM2 / 3/4

"Temporizador pwm de control de motor de 16 bits ..." - Supongo que esto es TIM1

Aquí hay un poco del Manual de referencia (RM0008):

Esto es tan confuso, de acuerdo con esta tabla, usted pensaría que TIM5 y TIM8 están disponibles.

¿Cómo puedo saber qué otros periféricos me faltan en mi dispositivo de densidad media?

    
pregunta Mike

2 respuestas

4

No parece estar muy bien explicado, pero puede consultar Hoja de datos de STM32F103x8 / STM32F103xB :

La página 11 contiene un diagrama que muestra los periféricos disponibles.

La sección 2.3.15 Temporizadores y watchdogs muestra los temporizadores disponibles.

Deberá consultar el diagrama en la página 11 o la sección específica del tipo de periférico que está viendo.

TIM5 y TIM8 no están disponibles en su dispositivo.

Los temporizadores disponibles son TIM1, TIM2, TIM3 y TIM4.

    
respondido por el Tut
2

RM0008 es el Manual de referencia para cinco familias diferentes de STM32F, específicamente "STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx y STM32F107xx"

Explica las características de todos los periféricos diferentes en esas familias de partes. No es definitivo sobre las combinaciones de periféricos en alguna parte específica.

La combinación exacta de periféricos para cualquier parte se encuentra en la hoja de datos de las partes.

En la página 10 de la hoja de datos STM32F103x * / STM32F103xB, se encuentra la "Tabla 2. Características del dispositivo de densidad media STM32F103xx y conteos de periféricos".

La Tabla 2 enumera cada periférico en cada parte única definida en la hoja de datos.

La regla básica es que, para periféricos idénticos, la numeración de los periféricos comienza en el primer periférico disponible. Esto se hace más complejo usando el nombre 'TIMn' para varios tipos de temporizadores distintos. RM0008 es un poco útil porque el título de cada capítulo del periférico del temporizador da los nombres de los temporizadores a los que manzanas.

La Tabla 2 muestra que STM32F103x8 y STM32F103xB tienen exactamente el mismo conjunto de periféricos. Como explicó Tut, la Tabla 4 identifica qué temporizadores están disponibles y sus nombres. Las hojas de datos para las familias STM32F más recientes usualmente tienen esa tabla para los temporizadores en algún lugar de la hoja de datos.

Cuando estoy comparando dispositivos STM32, comienzo con la Tabla 2 en cada hoja de datos. Eso parece ser confiable.

Sin embargo simplemente no es suficiente saber que un dispositivo tiene un periférico. Es común que los periféricos estén disponibles en más de un grupo de pines. Pero es posible, en las partes con un pequeño número de pines, que todos los periféricos que necesito no estén todos disponibles en los pines. Es posible que haya suficiente conflicto entre los periféricos para los pines y que algunos periféricos no puedan conectarse completamente al mundo exterior.

Cuando estoy diseñando algo, compilo una tabla de pines vs periféricos en una hoja de cálculo. Luego puedo verificar que todo lo que necesito esté disponible.

ST proporciona una herramienta llamada STM32CubeMX que pretende ayudar Seleccionar y configurar periféricos. No lo he usado, pero podría ayudar a aclarar qué periféricos están a bordo y qué funciones están disponibles en los pines.

Sin embargo, STM32F1 no es compatible actualmente con STM32CubeMX.

    
respondido por el gbulmer

Lea otras preguntas en las etiquetas