SPI协议与SPI控制器结构

Q:为什么有的设备适用SPI,有的适用IIC?

I:发出一个数据就会收到一个数

因为用的是同一个寄存器,所以当发出数据时,会在时钟的驱使下读入数据,放入RX buffer

在发送数据的同时就会接收到数据:MISO 信号线上的数据被一位一位地移入“shift register”,
然后被放入“Rx Buffer”并且 RXNE 标记位被置一。

通过状态寄存器可以得知是否发送完毕、是否可以读了 

数据从寄存器发送完毕的状态:通过接收非空RXNE来间接判断(先发送在接收)

TXE/RXNE:描述发送接收buffer的状态

1、SPI接口的应用

SPI(Serial Peripheral Interface),SPI 接口主要应用在 EEPROM、FLASH、实时时钟、网络控制器、OLED 显示驱动器、AD转换器,数字信号处理器、数字信号解码器等设备之间。

2、SPI和IIC对比

 3、SPI一主多从示意图

公用:DO/DI/SCLK

片选引脚可以避免数据传输中的干扰

4、SPI设备的访问

1、先使能片选引脚 

2、在片选引脚有效的期间在进行数据的收发

传输一个字节,由高到低示意图如下:

5、传输模式

SPI 有四种传输模式,如下表所示,主要差别在于 CPOL 和 CPHA 的不同。
⚫ CPOL(Clock Polarity,时钟极性)表示 SCK 在空闲时为高电平还是低电平。当
CPOL=0,SCK 空闲时为低电平,当 CPOL=1,SCK 空闲时为高电平。
⚫ CPHA(Clock Phase,时钟相位)表示 SCK 在第几个时钟边缘采样数据。当 CPHA=0,
在 SCK 第一个边沿采样数据,当 CPHA=1,在 SCK 第二个边沿采样数据

 6、SPI控制器驱动

芯片通过SPI控制器实现对SPI设备的操作

1、初始化

模式、时钟频率、8位还是16位:CPOL/CPHA、BR0~2、DFF

 2、数据读写

因为用的是同一个寄存器,所以当发出数据时,会在时钟的驱使下读入数据,放入RX buffer

通过状态寄存器可以得知是否发送完毕、是否可以读了 

数据从寄存器发送完毕的状态:通过接收非空RXNE来间接判断(先发送在接收)

TXE/RXNE:描述发送接收buffer的状态

PS:实际是用HAL库来进行寄存器的操控

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值