15. 鈦極OS之TiSPIMaster

鈦極OS之TiSPIMaster

 

SPI是串行外設接口(Serial Peripheral Interface)的縮寫。SPI,是一種高速的,全雙工,同步的通信總線,並且在芯片的管腳上只佔用四根線,節約了芯片的管腳,同時爲PCB的佈局上節省空間,提供方便,正是出於這種簡單易用的特性,如今越來越多的芯片集成了這種通信協議。具體可參考https://baike.baidu.com/item/SPIhttps://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus

TiJOS Framework提供TiSPIMaster來支持SPI主機功能,其將SPI Master按照port分組,共支持256組,組號範圍0-255,即:port0-port255;每組都支持指定模式的單獨設置。

 

Java包

tijos.framework.devicecenter

 

TiSPIMaster工作模式定義

項目 參數 說明
工作模式 MODE0/MODE1/MODE2/MODE3 模式0/模式1/模式2/模式3
通道類型 TYPE_SIO/TYPE_DIO/TYPE_QIO/TYPE_PIO 單通道/雙通道/四通道/並行通道
位傳輸模式 ORDER_MSB/ORDER_LSB 高位先傳輸/低位先傳輸
波特率 1/2/3... 1Mbps/2Mbps/3Mbps...


TiSPIMaster方法定義

TiSPIMaster類中主要的方法:

 

方法 說明
TiSPIMaster open(int portID) 通過指定port打開指定SPI Master,返回TiSPIMaster對象
void close( ) 關閉已打開的TiSPIMaster實例
void setWorkParameters(int mode, int type, int order, int baudRate) 設置工作模式,類型、位傳輸模式、波特率
void selectSlave(boolean enable) 從機選擇使能控制
int read(byte[] data, int offset, int len) 讀取數據,返回實際讀取長度
int write(byte[] data, int offset, int len) 寫入數據,返回實際寫入長度


TiSPIMaster類中他方法的技術說明請參考TiJOS Framework說明文檔。

 

TiSPIMaster對象創建與銷燬

TiSPIMaster對象的創建需要調用open靜態方法,傳入指定port參數,返回創建的接口對象。

TiSPIMaster對象的銷燬需要調用close方法。

 

  1. ...
  2. int spiPort0 = 0;
  3. TiSPIMaster spi0 = TiSPIMaster.open(spiPort0);
  4. ...
  5. ...
  6. ...
  7. spi0.close();

複製代碼

TiSPIMaster模式設置

TiSPIMaster模式設置通過setWorkParameters方法設置,設置參數爲工作模式、通道類型、波特率、位傳輸模式,波特率。

 

  1. ...
  2. //模式3, 單通道類型, 高位先傳, 8Mbps
  3. spi0.setWorkParameters(TiSPIMaster.MODE3, TiSPIMaster.TYPE_SIO, TiSPIMaster.ORDER_MSB, 8); 
  4. ...

複製代碼

注意:模式支持受平臺特性限制,設置時須瞭解硬件平臺特性。

 

TiSPIMaster輸入輸出

TiSPIMaster的輸入輸出操作通過selectSlave、read和write方法完成。

 

  1. ...
  2. spi0.selectSlave(true);
  3. byte[] dataBuffer = {1, 2, 3, 4, 5};
  4. int writeLength = spi0.write(dataBuffer, 0, dataBuffer.length);
  5. int readLength = spi0.read(dataBuffer, 0, dataBuffer.length);
  6. spi0.selectSlave(false);
  7. ...

複製代碼


更多詳細介紹請見鈦雲物聯官網:www.tijos.net

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章