SPI接口主從器件工作模式必須設(shè)置為一樣嗎雇逞?荤懂?
SPI接口有4種模式,因?yàn)闆](méi)有同步握手等這些動(dòng)作塘砸,故主從器件通信的時(shí)候势誊,雙方的模式一定要設(shè)置好。
SPI相關(guān)的協(xié)議介紹谣蠢,請(qǐng)參考:SPI總線學(xué)習(xí)
- 最開(kāi)始的時(shí)候我始終不理解為什么主從器件的模式一定要一致,等我耐心看下來(lái)之后查近,發(fā)現(xiàn)眉踱,是必須要一致,否則會(huì)無(wú)法通信霜威。
解釋如下(首先借一張圖):
- 如圖谈喳,CPOL指的是通信時(shí)候的空閑狀態(tài)時(shí)sck是高電平還是低電平。sck為1時(shí)為高電平戈泼,sck為0時(shí)為低電平婿禽。
- CPHA指的是在時(shí)鐘的第一個(gè)時(shí)鐘沿采樣數(shù)據(jù),還是在第二個(gè)時(shí)鐘沿采樣數(shù)據(jù)大猛。CPHA為0時(shí)是在第一個(gè)沿(前沿)采樣扭倾,與之對(duì)應(yīng)的是在第二個(gè)沿輸出;為1時(shí)是在第二個(gè)沿(后沿)采樣挽绩,與之對(duì)應(yīng)的是在第一個(gè)沿輸出膛壹。
需要注意的是,有些資料說(shuō)CPHA為0時(shí)是上升沿采樣,CPHA為1時(shí)是在下降沿采樣模聋。這樣說(shuō)是不準(zhǔn)確的肩民。因?yàn)榫烤故巧仙剡€是下降沿和CPOL有關(guān),即空閑狀態(tài)链方,sck是高電平還是低電平持痰。
因?yàn)閺膶倨骷枰弥髌骷a(chǎn)生的時(shí)鐘,故主從器件的CPOL必須設(shè)置相同祟蚀,否則會(huì)造成誤解工窍,或者由于對(duì)空閑狀態(tài)的定義不一致而相沖突(如主器件產(chǎn)生空閑狀態(tài)為0的sck,從器件始終認(rèn)為總線不空閑)暂题。
而CPHA我是這樣理解:
a.對(duì)從器件的MOSI而言移剪,如果是在第一個(gè)時(shí)鐘沿采樣,那么肯定會(huì)在第二個(gè)時(shí)鐘沿在線MISO上輸出數(shù)據(jù)薪者。一般從數(shù)據(jù)輸出到穩(wěn)定是有個(gè)狀態(tài)的纵苛,故主器件只能在半個(gè)時(shí)鐘周期之后的第一個(gè)時(shí)鐘沿采樣數(shù)據(jù)。
b.對(duì)于主器件的MOSI言津、MISO是一樣的道理攻人。
綜上,主從器件的模式必須設(shè)置為一樣才能正常工作悬槽。后面的話怀吻,希望自己找個(gè)時(shí)間測(cè)試下自己的理論。