MTK平台SPI总线的参数意义

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

文件kernel-3.10/drivers/misc/mediatek/spi/mt6795/spi.c是MTK的spi控制器的驱动,具体参数的设定是在chip_config文件中。
chip_config就是从设备spi_device。对应的时间就是:设定的数值×9.6ns。如low_time = 10*9.6ns =96ns.,

mt_spi_setup的函数中的chip_config变量的内容
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。与前者唯一不同之处只是在同步时钟信号的上升沿时捕捉位信号,下降沿时下一位数据上线。
--------------------- 
作者:香雨亭榭 
来源:CSDN 
原文:https://blog.csdn.net/hpu11/article/details/83345649 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值