解释MTK平台SPI总线参数的含义

解释MTK平台SPI总线参数的含义
 
chip_config就是从设备spi_device。对应的时间就是:设定的数值×9.6ns。如low_time = 10*9.6ns =96ns.
chip_config->setuptime = 7,//15,cs    cs 建立时间  看上图 7*9.6ns=67.2ns
chip_config->holdtime = 7,//15, cs    cs 保持时间  看上图
chip_config->high_time = 16,//6 sck  clk 高电平时间 看上图
chip_config->low_time =  17,//6  sck   clk 低电平时间 看上图
chip_config->cs_idletime = 3,//20,      cs 休眠时间  看上图

chip_config->cpol = 0,  cpol:时钟极性选择,为0时SPI总线空闲为低电平,为1时SPI总线空闲为高电平
chip_config->cpha = 0,    cpha:  时钟相位选择,为0时在SCK第一个跳变沿采样,为1时在SCK第二个跳变沿采样
chip_config->rx_mlsb = 1,   rx_mlsb & tx_mlsb:传输数据时,先从低bit发送还是高bit发送,1时代表先从低bit发送
chip_config->tx_mlsb = 1,    
chip_config->tx_endian = 0,   传输数据时,以大端模式传输或者小端模式传输,只对DMA传输有效,0时,代表小端模式传输; fifo mode为小端模式。
chip_config->rx_endian = 0,
chip_config->com_mod = DMA_TRANSFER,   DMA或者fifo 传输

时钟极性和相位看下图

 


工作方式1:
当CPHA=0、CPOL=0时SPI总线工作在方式1。MISO引脚上的数据在第一个SPSCK沿跳变之前已经上线了,而 为了保证正确传输,MOSI引脚的MSB位必须与SPSCK的第一个边沿同步,在SPI传输过程中,首先将数据上线,然后在同步时钟信号的上升沿 时,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时(下降沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。
工作方式2:
当CPHA=0、CPOL=1时SPI总线工作在方式2。与前者唯一不同之处只是在同步时钟信号的下降沿时捕捉位信号,上升沿时下一位数据上线。
工作方式3:
当CPHA=1、CPOL=0时SPI总线工作在方式3。MISO引脚和MOSI引脚上的数据的MSB位必须与SPSCK的 第一个边沿同步,在SPI传输过程中,在同步时钟信号周期开始时(上升沿)数据上线,然后在同步时钟信号的下降沿时,SPI的接收方捕捉位信号,在时钟信 号的一个周期结束时(上升沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。
工作方式4:
当CPHA=1、CPOL=1时SPI总线工作在方式4。与前者唯一不同之处只是在同步时钟信号的上升沿时捕捉位信号,下降沿时下一位数据上线。 

猜你喜欢

转载自blog.csdn.net/zuoyioo7/article/details/78953058