SPI协议的硬件框架如下图所示。2440通过三条线与SPI设备连接(比如SPI Flash、SPI OLED等),时钟线SCK,发送数据线DO,读取数据线DI。每个设备还对应着一条片选引脚,2440通过片选引脚决定访问哪个设备,各条片选引脚不能同时有效。
以2440发送0x56这个数据为例,展示SPI的传输格式,如下图所示(先发送最高位):
2440芯片手册上介绍了四种SPI 传输格式,由CPOL和CPHL来区分四个模式,CPOL=0时表示CLK初始值为低电平。CPHA表示表示相位,为0的时候是在CLK的第一个时钟沿采样数据,为1的时候是在CLK的第二个时钟沿采样数据。以前两个为例进行讲解如下图所示,图中MOSI线就是指的上图中的DI线。Format A和Format B的区别如下:Format A中MISO线最后面的MSB*,也就是在传输完一个字节的数据后,在下一个周期到来之前,MSB*存放的是刚传输完的数据的最高位(MOSI线的第一位);Format B中MISO线的最后面的LSB存放的是下一个要传输的字节的最低位。
具体要用哪种传输格式,要看外接SPI设备的芯片手册。比如,2440将数据发出后,SPIOLED是在CLK的上升沿将数据锁存的,因此要选择Format A。
本节视频只看了前10分钟。