SPI

LinkIt 7697 支援 SPI Master 運作模式。

使用 SPI 裝置時的注意事項

雖然 MT7697 晶片支援硬體 SPI 運作,但由於架構設計的緣故,無法完全相容於 Arduino 定義的 SPI API,因此 LinkIt 7697 BSP 內建的 SPI 函式庫是透過呼叫 GPIO API 完成實作的 (亦即為軟體 SPI),不過這對大多數 Arduino 的應用情境並不造成影響。若要使用 LinkIt 7697 的硬體 SPI 功能,請參考 LinkIt SDK 相關文件說明。

連接 SPI 裝置

下圖為 LinkIt 7697 透過 SPI 介面與 BMP183 氣壓高度計連接的示意圖與使用方法:

  1. 將開發板與 BMP183 感應器如圖示連接。

  2. 在 Arduino IDE 裡開啟 Sketch / Include Library / Add .Zip Library 並選取在上一步驟中下載的兩個 ZIP 壓縮檔 (Adafruit_Sensor-master.zipAdafruit_BMP183_Library-master.zip)。

  3. 在使用者自定義函式庫目錄裡開啟 Adafruit_BMP183.cpp 檔案。

  4. 在第 25 行的位置,加入 _delay_ms() 函式定義的程式碼如下:

    #include <SPI.h>
    #define _delay_ms(t) delay(t)
     
    Adafruit_BMP183::Adafruit_BMP183(int8_t SPICS ) {
  5. 將第 46 行的程式碼註解掉,並替換為下例第 47 行的 SPISettings() 初始化方式:

    boolean Adafruit_BMP183::begin(bmp183_mode_t mode) { 
        if (_clk == -1) { 
            SPI.begin(); 
            //SPI.setDataMode(SPI_MODE0);
            SPI.beginTransaction(SPISettings(7000000, MSBFIRST, SPI_MODE0)); 
        #ifdef __AVR__ 
            SPI.setClockDivider(SPI_CLOCK_DIV16);
  6. 儲存編輯的檔案。

  7. 點選 IDE 的 Upload 按鈕進行編譯以及上傳程式至開發板。

  8. 上傳完成後,開啟 Serial Monitor (將 baud rate 設定為 9,600) 就能看到 BMP183 的輸出如下:

註:也可至 MediaTek Labs 的 GitHub repo 下載此修改過後的程式碼。

Last updated