SPI Specification

SPI配置 SPI总线传输过程有2个参数:CPOL和CHPA。 CPOL定义了SPI Clock的极性。CPHA定义了数据采样和驱动的时钟相位。 CPOL=0表示空闲状态下Clock管脚为逻辑0。 CPHA=0,数据在Clock的上升沿采样,Clock的下降沿驱动。 CPHA=1,数据在Clock的下降沿采样,Clock的上升沿驱动。 CPOL=1表示空闲状态下Clock管脚为逻辑1。 CPHA=0,数据在Clock的下降沿采样,Clock的上升沿驱动。 CPHA=1,数据在Clock的上升沿采样,Clock的下降沿驱动。 综上,CPHA为0时,数据在Clock的第一个沿采样,CPHA为1时,数据在Clock的第二个沿采样。 注意:CPHA为0时,数据必须早于第一个Clock在总线上稳定。 SPI传输 由于SPI时钟是由主设备提供的。SPI传输是双向同时进行的。主机在用户向数据寄存器写入数据启动SPI传输,从机如果需要向主机发送数据则需要在总线空闲即主机未启动SPI传输之前向数据寄存器写入数据。 REF:http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus