目的:测试STM32H7 系列芯片的SPI读写速度。
测试环境:使用STM32H743, 逻辑分析仪, cubeIDE;
测试方法:使用了3种方法:软件IO模拟SPI, 软件控制CS+MCU的SPI模块,完全使用SPI模块;
结论:
STM32 SPI读写速度评估:
- 软件IO模拟SPI,system clock 100M的情况下,1个读/写周期(3byte),大约90-120uS;
- 软件IO控制CS,system clock 100M的情况下,1个读/写周期(3byte),大约25-35uS;
- 硬件模块SPI,SPI波特率4M的情况下,1个读/写周期(3byte),大约15-20uS;
测试过程:
1. 软件IO模拟实现SPI

2. 软件控制CS,MCU的SPI模块控制CLK MOSI MISO
CS的延时比较大,写3byte(24bit)的数据大约需要30微秒。
3. 使用MCU SPI模块实现CS CLK MOSI MISO操作

在SPI baudrate=2M , 写3byte(24bit)的数据大约需要20微秒。上图测量结果可以看到,CS是低电平有效,不对SPI进行操作,该电平为低电平,对外设不友好。
将CS 采用Pull-up mode,CS 使用完毕处于高电平。


通过对STM32H743进行测试,使用软件IO模拟SPI、软件控制CS+MCUSPI模块以及完全使用SPI硬件模块,得出在不同模式下的读写速度。软件IO模拟SPI耗时约90-120uS,软件控制CS耗时25-35uS,而硬件SPI模块在4M波特率下仅需15-20uS。此外,还注意到CS在非操作期间应维持高电平以优化外设交互。
6054

被折叠的 条评论
为什么被折叠?



