SPI四種模式區別

2021-08-09 10:26:46 字數 1044 閱讀 1422

spi四種模式區別

spi四種模式spi的相位(cpha)和極性(cpol)分別可以為0或1,對應的4種組合構成了spi的4種模式(mode)

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: 即spi空閒時,時鐘訊號sclk的電平(1:空閒時高電平; 0:空閒時低電平)

時鐘相位cpha: 即spi在sclk第幾個邊沿開始取樣(0:第乙個邊沿開始; 1:第二個邊沿開始)

sd卡的spi常用的是mode 0 和mode 3,這兩種模式的相同的地方是都在時鐘上公升沿取樣傳輸資料,區別這兩種方式的簡單方法就是看空閒時,時鐘的電平狀態,低電平為mode 0 ,高電平為mode 3。

例如這個波形圖

(注意紅色框)

如果cpol=0, cpha=0 ,則miso資料是0x83(10000011)

如果cpol=0, cpha=1 ,則miso資料是0x07(00000111)

在用核心自帶的linux-kernel/xlnx-4.0/documentation/spi/spidev_test.c例子,讀寫核心的spidev.c裝置的時候,

/spidev_test -r 69 -w 7

寫入位址69暫存器,數值7

./spidev_test -r 69

讀出位址69暫存器數值:0x83,以為程式**有bug

./spidev_test -h -r 69

讀出位址69暫存器數值:0x07,應該在sclk第2個邊沿開始取樣(帶h引數表示cpol=0, cpha=1),這才讀對了。

在除錯ad9631時,用預設spi mode讀寫總返回0x83,以為程式有問題,查查spi mode原理後,再對比波形圖,才知道ad9631的mode=1

spidev的移植,參考文章:

SPI四種模式區別

spi四種模式區別 spi四種模式spi的相位 cpha 和極性 cpol 分別可以為0或1,對應的4種組合構成了spi的4種模式 mode mode 0 cpol 0,cpha 0 mode 1 cpol 0,cpha 1 mode 2 cpol 1,cpha 0 mode 3 cpol 1,cp...

SPI四種模式區別

spi四種模式區別 spi四種模式spi的相位 cpha 和極性 cpol 分別可以為0或1,對應的4種組合構成了spi的4種模式 mode mode 0 cpol 0,cpha 0 mode 1 cpol 0,cpha 1 mode 2 cpol 1,cpha 0 mode 3 cpol 1,cp...

四種開發模式 得區別

收藏 敏捷開發模式是一種從1990年代開始逐漸引起廣泛關注的一些新型軟體開發方法,是一種應對快速變化的需求的一種軟體開發能力。它們的具體名稱 理念 過程 術語都不盡相同,相對於 非敏捷 更強調程式設計師團隊與業務專家之間的緊密協作 面對面的溝通 認為比書面的文件更有效 頻繁交付新的軟體版本 緊湊而自...