硬件SPI与软件模拟SPI速度区别实测
目前为了程序移植方便,许多以SPI接口的芯片所提供的参考代码大多都使用的是软件SPI,比如笔者用过的存储芯片W25Q16,SPI接口驱动的OLED显示屏,LORA芯片SX1278等。
最近为了驱动彩色OLED显示屏,为了提高显示刷新率,需要对程序代码进行优化。于是,将相关SPI驱动从软件模拟转换为硬件控制,就势在必行了。
然而,到底软件模拟SPI和硬件SPI有多大的速度区别呢?
1.系统配置
为了测试的公平性,选用同样的ARM(STM32L151C8T6)以及系统时钟(32M),配置如下图所示:

2.软件模拟SPI
选用了最常用的软件模拟SPI进行写操作,以单字节写指令为例,代码如下:
void SPI_Write_data(u8 dat)
{
u8 i

本文通过实测对比了硬件SPI与软件模拟SPI在相同系统时钟下的速度差异。结果显示,硬件SPI速度约为16MHz,每个字节传输时间0.5uS,而软件模拟SPI速度约为492.4KHz,每个字节传输时间16.2uS。硬件SPI比软件SPI快32倍,适合高速需求场景。但高速SPI可能带来电路干扰问题,且某些芯片对SPI速度有限制。
最低0.47元/天 解锁文章
4288

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



