1.1 模拟SPI1.1.1 模拟SPI的管脚配置
模拟SPI就是通过GPIO口拉高拉低来实现数据传输。在配置模拟SPI时,管脚配合如下:
1) SCK管脚配置为推挽输出。SCK的时钟是通过GPIO口拉高拉低来产生。
2) MOSI管脚配置为推挽输出。MOSI发送数据“1”,是通过将MOSI管脚输出高电平来实现;MOSI发送数据“0”,是通过将MOSI管脚输出低电平来实现。
3) MISO配置上拉输入。如果MISO输入的数据是0,则表示接收到的数据位是0;如果MISO输入的数据是1,则表示接收到的数据位是1。
1.1.2 模拟SPI数据交换过程举例:以时钟模式0位例子,假设发送接收的数据都是8位的,通过GPIO模拟数据交换的过程。
1) 在时钟低电平是准备MOSI数据
2) 在时钟上升沿时发送MOSI数据
3) 在时钟高电平读取MISO数据
不管是SPI主机还是SPI从机都必须遵循以上规则。对于SPI主机来说,上述的1个数据位的交换过程如下:
2 主机在时钟低电平是准备MOSI数据
2 主机准备的数据在时钟上升沿被发送出去,通过MOSI发送输出
2 主机在时钟高电平时,同时读取来自于从机的数据,通过MISO读取。
这个过程如果重复8次,那么就可以实现发送8位数据,且接收到8位数据。