2 spi介面的單線應用
在標準的spi介面間進行通訊時,spi匯流排的四條訊號線中: 主機sclock與從機sclock相連; 主機miso與從機mosi相連;主機mosi
與從機miso 相連; 主機控制訊號線與從機的ss相連。在spi介面與非標準介面進行通訊時,例如與有的序列ram 介面,由於雙向i/o資料線只有一條,時鐘和片選訊號線都有,那麼如何利用spi的高速特性進行資料的讀出和寫入呢?
在這裡提出spi的單線應用方案,其如圖1所示。主機的時鐘訊號sclock 和片選訊號ss與從機的對應訊號線相連, 不同的是主機的mosi和miso訊號線分別經過合適的電阻與從機的i/o訊號線相連。當主機給從機傳送資料時,在時鐘訊號的作用下,資料從mosi口線經電阻1到從機的i/o 口線;當主機接收資料時,也需要在時鐘訊號的作用下,資料從從機的i/o口線經電阻2到主機的miso口線。該方案中mosi與miso連在一起, 由於加了適當的電阻,所以不違反電路設計原則,但如果電阻大小不當會對訊號的特性帶來影響 。
圖1 spi單線應用方案
3 spi介面的單線應用舉例
本例是作者設計的微控制器,aduc812的spi匯流排與射頻無線通訊模組nrf2401間的通訊介面,由於nrf2401只支援i/o資料傳輸方式,但是為了提高無線通訊的資料速率,作者採用單線方式實現了spi與nrf2401的通訊。
電路設計
aduc812的spi與nrf2401的連線原理如圖2所示。其中aduc812作為主機,nrf2401作為從機,pwr、ce、cs是nrf2401的工作模式選擇訊號,他們共同完成從機的片選任務,相當於ss訊號。clk1是aduc812序列時鐘訊號。根據訊號阻抗匹配原則,通訊中選用兩個6k 的電阻。aduc812微控制器的spi介面由spicon (spi控制暫存器)、spidat (spi資料暫存器)來控制, 通過設定spicon 暫存器的各位實現spi的各種工作模式。
圖2 aduc812的spi與nrf2401的連線原理
控制暫存器spicon中從高到低各位說明如下:
介面程式設計 韌體程式主要包括:spi口初始化程式initspi,送資料程式senddata,接收資料程receivedata。
在spi初始化程式中,控制暫存器spicon設定為33h, 即cpol=0,cpha=0, 當設定cpol= 1,cpha=1時, 由於干擾脈衝的存在,
aduc812與nrf2401不能很好的同步。
在傳送資料子程式中,向資料暫存器spidat寫資料,如產生中斷標誌,說明資料傳輸完畢,則可以傳送下乙個資料。
在接收子程式中, 由於nrf2401送資料的時鐘是由aduc812的sclock 產生的, 所以執行接收資料指令mova,spidat時先要對資料暫存器spidat 寫資料0,也就是執行指令mova,spidat,其目的是為了產生接收資料時的時鐘訊號, 當微控制器向spidat 寫資料0時,nrf2401通過data 口向微控制器送資料,改寫spidat 的內容,這就是所接收的資料。
spi單線方案在實際應用應注意以下問題:
(1)時鐘相位與時鐘極性的設定。其設定要跟從機的資料讀寫時序相一致, 在一致時也要注意干擾問題。
(2)所加電阻值的大小。阻值的大小關係到訊號傳輸的阻抗匹配問題,同時也影響資料傳輸的速率,所以在選用電阻時一般取幾k 的電阻。
基於SPI介面的OLED資料顯示
spi是序列外設介面 serial peripheral inte ce 的縮寫。spi,是一種高速的,全雙工,同步的通訊匯流排,並且在晶元的管腳上只占用四根線,節約了晶元的管腳,同時為pcb的布局上節省空間,提供方便,正是出於這種簡單易用的特性,如今越來越多的晶元整合了這種通訊協議,比如at91r...
介面的典型應用
老師和學生案例,加入抽菸的額外功能 分析 從具體到抽象 老師 姓名,年齡,吃飯,睡覺 學生 姓名,年齡,吃飯,睡覺 由於有共性功能,我們提取出乙個父類,人類。人類 姓名,年齡 吃飯 睡覺 抽菸的額外功能不是人或者老師,或者學生一開始就應該具備的,所以,我們把它定義為介面 抽菸介面。部分老師抽菸 實現...
介面的簡單應用
no 1 首先,我們要封裝乙個介面,介面中不要實現具體的方法 說白了這就是乙個架子而已!using system using system.collections.generic using system.linq using system.text int h no 2 介面的呼叫 class m...