新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > SPI總線之CPOL CPHA

        SPI總線之CPOL CPHA

        作者: 時間:2016-12-15 來源:網絡 收藏

        即:

        (1)如何判斷CPOL:SCLK的空閑時候的電壓,是0還是1,決定了CPOL是0還是1;

        (2)如何判斷CPHA:而數據采樣時刻對應著的SCLK的電平,是第一個邊沿還是第二個邊沿,對應著CPHA為0還是1。

        SCLK的極性,相位,邊沿之間的內在邏輯關系

        SCLK空閑時刻電壓低電平CPOL = 0
        高電平CPOL = 1
        數據采樣時刻,SCLK的edge是第一個還是第二個第一個邊沿CPHA = 0上升沿(開始的電平是低電壓0,而第一個邊沿,只能是從0變到1,即上升沿)下降沿
        第二個邊沿CPHA = 1下降沿上升沿(開始電平是高電平1,第二個邊沿,肯定是從低電平0變到高電平1,因為第一個邊沿肯定是從高電平1,變到低電平0)


        【軟件中如何設置SPI的極性和相位】

        SPI分主設備和從設備,兩者通過SPI協議通訊。

        而設置SPI的模式,是從設備的模式,決定了主設備的模式。

        所以要先去搞懂從設備的SPI是何種模式,然后再將主設備的SPI的模式,設置和從設備相同的模式,即可正常通訊。

        對于從設備的SPI是什么模式,有兩種:

        (1)固定的,有SPI從設備硬件決定的

        SPI從設備,具體是什么模式,相關的datasheet中會有描述,需要自己去datasheet中找到相關的描述,即:

        關于SPI從設備,在空閑的時候,是高電平還是低電平,即決定了CPOL是0還是1;

        然后再找到關于設備是在上升沿還是下降沿去采樣數據,這樣就是,在定了CPOL的值的前提下,對應著可以推算出CPHA是0還是1了。

        舉例1:

        CC2500 - Low-Cost Low-Power 2.4 GHz RF Transceiver的datasheet中SPI的時序圖是:

        從圖中可以看到,最開始的SCLK和結束時候的SCLK,即空閑時刻的SCLK,是低電平,推導出CPOL=0,然后可以看到數據采樣的時候,即數據最中間的那一點,對應的是SCLK的第一個邊沿,所以CPHA=0(此時對應的是上升沿)。


        舉例2:

        SSD1289 - 240 RGB x 320 TFT LCD Controller Driver的datasheet中提到:

        “SDI is shifted into 8-bit shift register on every rising edge of SCK in the order of data bit 7, data bit 6 …… data bit 0.”

        意思是,數據是在上升沿采樣,所以可以斷定是CPOL=0,CPHA=0,或者CPOL=1,CPHA=1的模式,但是至于是哪種模式。

        按理來說,接下來應該再去確定SCLK空閑時候是高電平還是低電平,用以確定CPOL是0還是1,但是datasheet中沒有提到這點。

        所以,此處,目前不太確定,是兩種模式都支持,還是需要額外找證據卻確定CPOL是0還是1.


        (2)可配置的,由軟件自己設定

        從設備也是一個SPI控制器,4種模式都支持,此時只要自己設置為某種模式即可。

        然后知道了從設備的模式后,再去將SPI主設備的模式,設置為和從設備模式一樣,即可。


        對于如何配置SPI的CPOL和CPHA的話,不多細說,多數都是直接去寫對應的SPI控制器中對應寄存器中的CPOL和CPHA那兩位,寫0或寫1即可。

        舉例:

        此處遇到的C8051F347中的SPI就是一個SPI的controller控制器,即支持軟件配置CPOL和CPHA的值,四種模式都支持,此處C8051F347作為SPI從設備,設置了CPOL=1,CPHA=0的模式,因此,此處對應主芯片Blackfin F537中的SPI控制器,作為Master主設備,其SPI的模式也要設置為CPOL=1,CPHA=0。


        【待解決問題】

        對于軟件去如何設置主設備(和 從設備)的CPOL和CPHA的值,是搞懂了,知道兩者要匹配才可以正常通訊,但是對于CPOL和CPHA這四種模式,不同的模式之間,相對來說有何優缺點,比如是否哪種模式更穩定,數據更不容易出錯等等,還是不清楚


        上一頁 1 2 3 下一頁

        關鍵詞: SPI總線CPOLCPH

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 昔阳县| 仙居县| 冀州市| 惠州市| 布尔津县| 长岭县| 榕江县| 沽源县| 垫江县| 承德县| 兰溪市| 仁寿县| 乐亭县| 漳州市| 清远市| 洪湖市| 洪江市| 宁明县| 延长县| 革吉县| 象州县| 镇远县| 田阳县| 淮北市| 奈曼旗| 富源县| 镇平县| 同江市| 中西区| 凤山县| 依安县| 綦江县| 建瓯市| 会东县| 东宁县| 邵东县| 崇信县| 樟树市| 唐河县| 宜宾县| 巴塘县|