SPI传输模式
因为SPI是全双工也就是说(MOSI和MISO)上同时发送和接收数据
时钟极性(CPOL) 时钟相位(CPHA)是定义SPI总线使用的时钟格式得主要参数,根据SPOL参数,SPI时钟可以是反向或非反向的。CPHA参数用于转移采样阶段
四种模式:
Mode 0 -> CPOL = 0, CPHA = 0
Mode 1 -> CPOL = 0, CPHA = 1
MODE 2 -> CPOL = 1, CPHA = 0
MODE 3 -> CPOL = 1, CPHA = 1
CPOL=0, CPHA=0
数据必须在第一个时钟信号上升之前是可用的数据。时钟空闲状态为0,MOSI和MISO线路上的数据在高电平时必须稳定,并且可以在时钟低电平的时候数据变换,数据在时钟的低到高转换上捕获,并且在从高到低的时钟转换上传播。
CPOL=0, CPHA=1
第一个时钟信号上升可用于准备数据。时钟空闲状态为0。MOSI和MISO线上的数据在时钟低电平时必须稳定,并且可以在时钟高电平的时候数据变换。数据在时钟高到低转换上捕获,并在低到高时钟转换时传播。
CPOL=1, CPHA=0
数据必须在第一个时钟信号下降之前是可用的数据。时钟空闲状态为1。MISO和MOSI线路上的数据在时钟低电平时必须稳定。并且可以在时钟高电平时数据变换,数据在时钟由高到低转换上捕获,并在低到高时钟转换时传播。
CPOL=1, CPHA=1
数据必须在第一个时钟信号下降可用。时钟空闲状态为1。MISO和MOSI线路上的数据在时钟高电平必须保持稳定。并且在时钟低电平时数据变换,数据在时钟由低到高转换上捕获,并在从高到低的时钟转换上传播。
并非所有SPI器件都支持所有模式。因此,您需要查看器件数据表以了解模式,在与该器件通信时,您需要首先通过编程相关主机寄存器来设置正确的模式,然后开始通信。