2020-08-05 06:24 AM
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/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
Solved! Go to Solution.
2020-08-05 07:06 AM
/*
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();
2020-08-05 07:04 AM
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
2020-08-05 07:06 AM
/*
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();