Microchip 提供軟體與硬體的SPI通訊程式庫,

當有兩個MCP要使用SPI通訊時,

一個要當Master, 而另一個要成為Slave,

SPI通訊需要4條訊號線, 分別是SDI, SDO, SCK, CS,

在使用c18來撰寫SPI程式時,

腳位方向的定義很重要,

如當Master的MCU,

SDO TRIS = output

SDI TROS = input

SCK TRIS = output

CS TRIS = output

 

在Slave端, 腳位方向的定義為

SDO TRIS = output

SDI TROS = input

SCK TRIS = input

CS TRIS = intput

 

以c18語言為例, 首先要設定SPI功能, 使用Microchip提供的函數庫:

OpenSPI(sync_mode,bus_mode,smp_phase )

OpenSPI()的內容會依不同的MCU而有所不同

其中, Master須設定sync_mode = SPI_FOSC_64  (主要時序由MASTER CLOCK決定)

而Slave則是設訂sync_mode = SLV_SSON

注意Master與Slave的指令周期最好一致,

Master與Slave之間的資料傳輸能連接的上,

建立連線之後的2個MCU則是使用 WriteSPI(), 與ReadSPI()來做寫入與讀取資料,

 

結束時用CloseSPI()來結束兩者間的通訊 ~~~~

 

註: 這裡的SPI是硬體的SPI.

 

 

文章標籤
創作者介紹
創作者 fishark 的頭像
fishark

魚的方舟 * 圖形語言的世界* - LabVIEW 工作室 & APP開發研究室 & Arduino整合開發 -

fishark 發表在 痞客邦 留言(1) 人氣()


留言列表 (1)

發表留言
  • 悄悄話

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼