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 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章