帶有SPI介面的非接晶元開發心得

2021-06-22 12:04:42 字數 1563 閱讀 7632

帶有spi介面的非接晶元開發心得

目前我們使用的非接晶元主要是通過spi介面來實現通訊的,因此本文結合非接晶元as39911和rc663對帶有spi介面的非接晶元操作做了乙個總結,可供涉及相關領域的人員參考,同時歡迎與大家的討論。同時文中也列些測試點,供專案相關人員快速定位問題、解決問題。晶元的具體應用功能不在討論範圍,主控晶元為sm32。

對於spi介面晶元的操作問題主要歸結為管腳配置、單/雙工、主/從模式、8bit/16bit幀結構、時序配置、片選控制、波特率、高位/低位在前、crc配置以及傳送/接收模式配置(軟體實現)。下面主要對容易出錯的時序及傳送/接收模式配置部分做深入**。

通常spi通過4個引腳與外部器件相連,除此之外還有中斷、復位訊號。

●miso:主裝置輸入/從裝置輸出引腳。該引腳在從模式下傳送資料,在主模式下接收資料。從專案中的應用來看主控晶元為主裝置,非接晶元為從裝置。

● mosi:主裝置輸出/從裝置輸入引腳。該引腳在主模式下傳送資料,在從模式下接收資料。

● sck:時鐘訊號,由主控晶元產生。

● nss:從裝置選擇。

對帶有spi介面的晶元進行操作時必須進行時序的配置,主從裝置必須具有相同的時序。配置原理如下圖1所示。

圖1 spi 介面時序圖

對時序圖分析後不難得出表1。

通過檢視as3911的晶元手冊如圖2可以發現,它是在時鐘的第二個沿(下降沿)對資料進行取樣,此時資料必須保持穩定,也就是滿足所謂的建立保持時間,當然這個控制器已經幫我們設好了。因此參照表1,主控晶元的spi介面必須設為chpa = 1,chpl=0。

圖2 as3911 spi介面寫操作

同樣的通過分析rc3911的時序如圖3,可以看到對於rc663是在時鐘第乙個沿(上公升沿)進行資料取樣,同樣的資料也需滿足建立保持時間。參照表1,可以得到rc663的時序配置,chpa = 0,chpl= 0。

圖3 rc663 spi介面時序圖

接下來分析as3911的spi介面傳輸模式。從as3911的晶元手冊如表2可以看到as3911的spi介面傳輸模式結合晶元功能特性分為五種模式。其中包括寫、讀、載入fifo、讀fifo以及直接指令模式。寫模式前兩個位為00,後6位為需要訪問的位址位。讀模式前兩位為01,後6位為需要訪問的位址。載入fifo直接傳送0x80,對應的讀fifo為0xbf。對直接指令模式前兩位為11,後6位為需要傳送的指令。

未完待續。

SPI介面的單線應用

2 spi介面的單線應用 在標準的spi介面間進行通訊時,spi匯流排的四條訊號線中 主機sclock與從機sclock相連 主機miso與從機mosi相連 主機mosi 與從機miso 相連 主機控制訊號線與從機的ss相連。在spi介面與非標準介面進行通訊時,例如與有的序列ram 介面,由於雙向i...

基於SPI介面的OLED資料顯示

spi是序列外設介面 serial peripheral inte ce 的縮寫。spi,是一種高速的,全雙工,同步的通訊匯流排,並且在晶元的管腳上只占用四根線,節約了晶元的管腳,同時為pcb的布局上節省空間,提供方便,正是出於這種簡單易用的特性,如今越來越多的晶元整合了這種通訊協議,比如at91r...

如何製作帶有SPLASH介面的程式

include typedef struct progressdata progressdata typedef struct maindata maindata maindata pmdata static void destroy progress gtkwidget widget,progre...