关于STM32H7时钟I/O响应频率及定时器最高频率的探究

摘要:针对常规STM32系列性能测试所引起的准确度低、可靠性差、操作困难等问题,文中提出了一种关于I/O响应频率以及定时器最高频率的极限性能测试方法。通过对STM32H7时钟频率进行最高频率配置,分别对需要测试的引脚进行电平翻转并输出波形,从示波器显示的波形结果来看,验证结果表明I/O响应的时钟频率受时钟源最高频率的限制,能够达到时钟源所规定的最高频率。文中给出了STM32CubeMX配置时钟频率的方法。

关键词:STM32H7;时钟频率;I/O响应频率;示波器;STM32CubeMX

Abstract: Aiming at the problems of low accuracy, poor reliability and difficult operation caused by conventional STM32 series performance test, this paper proposes a test method of the ultimate performance of I/O response frequency and the maximum frequency of timer. Through the maximum frequency configuration of the STM32H7 clock frequency, the level turnover of the pins to be tested and the waveform output respectively. From the waveform results displayed by the oscilloscope, the verification results show that the clock frequency of the I/O response is limited by the maximum frequency of the clock source, and can reach the maximum frequency specified by the clock source. The method of clock frequency configuration with STM32CubeMX is given in this paper.

Keywords: STM32H7; Clock frequency; I/O response frequency; Oscilloscope; STM32CubeMX


近年来,随着科学技术的不断创新和发展,嵌入式计算机行业迎来了翻天覆地的变化,随之而来,嵌入式计算机对于人类的生产活动和社会活动产生了极其重要的影响,它的应用领域从最初的军事科研应用扩展到社会的各个领域,从而带动了全球范围的技术进步,由此引发了深刻的社会变革。

在嵌入式计算机中,单片机作为一种体积小、质量轻、价格便宜的嵌入式计算机,它的应用领域也十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。而STM32系列芯片作为32bit单片机类型的代表,在实际的开发应用中,需要对它的性能做测试,进而验证其保持在最高的频率下,系统能否正常运行。


1. 系统架构框图

2. 系统时钟树架构

系统架构框图.png

系统时钟树架构.png


3. 验证系统时钟频率

3.1 原理方案

本文硬件采用的是STM32H723ZGT6开发板,通过对时钟输出引脚MCO2进行配置,用示波器抓取引脚的波形,从波形中验证时钟频率是否达到要求。MCO2可输出的时钟源都有SYSCLK、HSE、LLCLK、LL2PCLK、SICLK、SICLK。根据需求通过HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_10);函数进行配置时钟输出源以及分频。

3.2 STM32CubeMX配置时钟频率

3.3 MCO2引脚配置

STM32CubeMX配置时钟频率.pngMCO2引脚配置.png

需要注意的是,MCO2引脚的最大输出速度应配置为Very High,否则输出速度将受到限制。


3.4 示波器抓取引脚波形变化

示波器抓取引脚波形变化.png

由于系统时钟配置的是500MHz,时钟输出的是10分频后的结果,从图中可以看到波形正好是主频10分频后的波形,即50MHz,所以推断出系统实际时钟频率跟理论时钟频率相符。


4. 验证TIM定时器最高时钟频率

官方给出的TIM时钟源的时钟频率理论值为275MHz,为了方便计算,本文配置的系统时钟频率为500MHz,分到TIM时钟频率的时候为250MHz。也就是说每一个TIM的计数值为 1s/250MHz =4ns,所以,当计数值为25 count时,TIM的输出周期100 ns,而当计数值为26 count时,TIM的输出周期104 ns,验证实际输出的波形可得出TIM的实际时钟频率。

4.1 配置TIM工作模式


配置TIM工作模式-1.png配置TIM工作模式-2.png


配置TIM工作模式-3.png

4.2 代码修改

开启定时器输出比较功能,使其引脚输出波形。使用函数接口HAL_TIM_OC_Start(&htim1, TIM_CHANNEL_1); 进行开启。

代码修改.png

4.3 示波器抓取引脚波形

示波器抓取引脚波形-1.png

示波器抓取引脚波形-2.png

当count为25时输出的波形

当count为26时输出的波形


4.4 结论

 从上文的波形中可以看出,每个count的时间为4ns,从而得出TIM的实际输出时钟频率为1s/4ns=250MHz 。也就是说每个I/O的引脚响应频率受I/O所在时钟源的限制,如主频输出的时钟频率能够到达500MHz,而TIM的输出引脚的响应频率能够到达250MHz。


本文由上海凝睿电子科技有限公司西安分公司原创,如需转载请标明出处。

欢迎联系我们,共同探讨学习。

Tel:400-188-0158

Web:www.eecraftsman.com