cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7 Nucleo Board (NUCLEO-H743ZI2)

MTARH.1
Associate II

Hi,

we are having difficulties in order to find solution for STM32H7 Nucleo Board (NUCLEO-H743ZI2). When we are trying only toggle a pin ( interrupts are closed --> 480MHz)

freq is not passing 20MHz. When i check ref documents GPIO section, it says “Fast toggle capable of changing every two clock cycles�? . (Page 527) But we can't achieve to these speed. Can you please let me know if there is something i need to do? here are some links i have found from the community.

https://community.st.com/s/question/0D50X00009XkWd2SAF/why-i-get-stm32h7-gpio-toggle-speed-just-only-at-167mhz#:~:text=Why%20I%20get%20STM32H7%20GPIO%20Toggle%20speed%20just%20only%20at%2016.7MHz%3F

https://community.st.com/s/question/0D50X00009XkWN7/stm32h7-gpio-togle-max-frequency

https://community.st.com/s/question/0D50X00009cdgGjSAI/stm32h7xx-fast-gpio-toggle

By the way, when we face this problem we thought that we should use SPI port. But in this case we get following SPI CLK signal erosion(attached pictures). Can you please support us?

will be glad to get your response.

Have a great day

1 ACCEPTED SOLUTION

Accepted Solutions
/*
  Note : The activation of the I/O Compensation Cell is recommended with communication  interfaces
          (GPIO, SPI, FMC, QSPI ...)  when  operating at  high frequencies(please refer to product datasheet)
          The I/O Compensation Cell activation  procedure requires :
        - The activation of the CSI clock
        - The activation of the SYSCFG clock
        - Enabling the I/O Compensation Cell : setting bit[0] of register SYSCFG_CCCSR
 
          To do this please uncomment the following code
*/
 
  __HAL_RCC_CSI_ENABLE() ;
 
  __HAL_RCC_SYSCFG_CLK_ENABLE() ;
 
  HAL_EnableCompensationCell();

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

2 REPLIES 2

Scope and Probes can limit bandwidth, use 10X probes where appropriate.

Check you have compensation enable, usually in the clock configuration section.

Most people don't saturate the processor bit-banging the GPIO pins. Typically you'd use a TIM connected pin, or drive pattern buffers to the GPIO using TIM+DMA

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
/*
  Note : The activation of the I/O Compensation Cell is recommended with communication  interfaces
          (GPIO, SPI, FMC, QSPI ...)  when  operating at  high frequencies(please refer to product datasheet)
          The I/O Compensation Cell activation  procedure requires :
        - The activation of the CSI clock
        - The activation of the SYSCFG clock
        - Enabling the I/O Compensation Cell : setting bit[0] of register SYSCFG_CCCSR
 
          To do this please uncomment the following code
*/
 
  __HAL_RCC_CSI_ENABLE() ;
 
  __HAL_RCC_SYSCFG_CLK_ENABLE() ;
 
  HAL_EnableCompensationCell();

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..