1 votos

Frecuencia máxima de la placa de disco STM32F769

En mi placa STM32F769I Discovery he probado el ejemplo BlinkLED, utilizando el IDE Eclipse (xPack toolchain, OpenOCD, ...). La depuración falla cuando la frecuencia fue ajustada (código original) a 192 MHz (posteriormente potenciada en el ejemplo).

La línea de código donde los depuradores fallan es el momento de escribir en el registro RCC_CFGR.

Cuando cambio la frecuencia a 96 MHz (la única línea que he cambiado), el depurador pasa con éxito la línea mencionada y procede a la función "main". La placa se alimenta de la salida USB de mi portátil (no hay alimentación externa).

¿Cuál podría ser el culpable de tal comportamiento?

1voto

Al pacino Puntos 415

RCC_CFGR es el registro que cambia la CPU a un reloj diferente. Si la MCU deja de funcionar después de eso, hay algo mal con la nueva fuente de reloj.

El diagrama de árbol de reloj de la figura 13 (sección 5.2) del Manual de referencia del STM32F76x muestra las diferentes fuentes de reloj. Estás configurando el reloj AHB, que alimenta a la CPU. Aquí hay algunas cosas que pueden salir mal:

  • El PLL está configurado para utilizar un cristal externo (OSC_IN) pero sólo tienes el reloj interno de 16 MHz (HSI), o viceversa.

  • Los divisores PLL no están ajustados correctamente, por lo que su frecuencia AHB es demasiado alta.

  • El divisor de preescala AHB no está ajustado correctamente, por lo que su frecuencia AHB es demasiado alta.

  • Algún otro divisor de reloj (como el APB) no está ajustado correctamente, causando un fallo.

  • Su divisor AHB está ajustado correctamente, pero la frecuencia de salida del PLL (SYSCLK) es demasiado alta (por encima de 216 MHz).

Antes de escribir en RCC_CFGR, puedes comprobar si el PLL está bloqueado mirando el bit PLLRDY en RCC_CR. Si el bit es 0, intentar usar el PLL causará un fallo.

He hecho una versión simplificada del diagrama del árbol del reloj para ayudar a ilustrar lo que sucede:

Clock tree diagram with only HSE, HSI, PLL, AHB, and APB

Si publicas las modificaciones que has hecho en el código quizá pueda decirte algo más, pero esto debería servirte para empezar.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X