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.

 

 

arrow
arrow
    文章標籤
    microchip spi mcu pic18f
    全站熱搜

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