协议类基础——SPI

39 篇文章 7 订阅
23 篇文章 41 订阅

注意:有的开发板可能没有自带SPI
本篇随便找了一个SPI的芯片手册

相关引脚

MCU或SOC上的SPI相关引脚如下
M——master
O——output
I——input

S——slave(从属)
在这里插入图片描述
某SPI芯片
在这里插入图片描述
对应如下
在这里插入图片描述

接线

在这里插入图片描述

  • SPICLK(时钟信号)——CSerial Clock)
    由使用SPI发送数据的开发板给出时钟信号
  • SPIMOSI(SPI OUTPUT)——D(Serial Data Input)
    开发板的发送端接上SPI芯片的接收端
  • SPIMISO(SPI INPUT)——Q(Serial Data Input)
    开发板的输出接上SPI芯片的输入
  • GPIO——Chip Selecct
    随便一个GPIO设置成输出,连接SPI芯片上的片选引脚
    SPI总线允许多个设备接入,那么怎么分辨不同的设备——片选引脚
    片选引脚为低电平,则选定设备
  • Write Protect写保护
    当电平为低时,不允许写入该芯片,只能读
  • HOLD暂停所有操作
    低电平有效

如果不想用写保护和暂停,直接把这两根接到电源,一直给高电平就可以了

SPI协议

在这里插入图片描述
在这里插入图片描述
对于这一款芯片,地址的A8在第一个字节的bit3,其他芯片不一定是这样的格式
这款芯片内存是512字节,需要9个地址位,其他的一般是8个

因为是读,所以要先写入地址,告诉SPI芯片要读的位置
然后SPI芯片将这个地址里的数据给到读它的设备

片选引脚

  • 不使用时是高电平
  • 给与低电平后,设备开始工作

Clock

  • SPI芯片被选中时,芯片的时钟不断发送脉冲
    每来一个时钟,传送一个位的数据

D(serial data input)

  • 第一个字节
    第0到2个字节是0
    第三个字节是的地址的第9位
    bit4和5是0
    bit6和7是11,表示读
  • 第二个字节
    地址的剩余8位

Q(serial data input)

  • SPI芯片接收到两个字节的信号后,知道了要读的地址
    在第三个字节的时序,将次地址的信息发送给读取的设备

在这里插入图片描述
和读差不多

只是SPI芯片不用返回数据给连接的MCU

D(serial data input)

  • 第一个字节
    最后两位是10,表示写
    其余和上面一样
  • 第二个字节
    发送要写的地址
  • 第三个字节
    发送要写入的数据

SPI控制器

例如2440
2440发送的时钟一定要满足外接的SPI芯片
在这里插入图片描述
如这款SPI的芯片,能接受的最大达的频率是5MHz
在这里插入图片描述
↑有相应的寄存器可以设置时钟的频率
2440最大能发送25MHz的时钟,但SPI只能接受5MHz的频率,所以要配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spark!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值