Microchip dsPIC30F 結合藍芽模組

        最近用 Microchip dsPIC30F4011 的開發板 (APP020 PLUS) 結合藍芽模組,如下圖所示,打算做一個馬達控制的顯示器。之前,接觸的 MCU 都是 STM32 和 NXP LPC 以 ARM 為核心的 32-bit 控制器。有機會首次使用 Microchip 的控制器,於是查詢了一下才了解 Microchip 發展很久了,過去主要以 8-bit 或 16-bit MCU 為主,目前也有 32-bit MCU。搜尋的過程中,大多數找到 8/16 bit 的資料是10年前的,這跟市場主流控制器是 32-bit 有關吧。dsPIC30F4011 系列晶片與 PIC 系列不同的地方在於一個核心有 DSP 運算指令,一個則無。目前使用的這顆 dsPIC30 相當於 ARM M0 等級的控制器,不過價格上,似乎 dsPIC30 比較貴,這就視使用者的應用而決定了。

        第一次用 Microchip MCU,所以先準備一塊開發板,APP020 PLUS 是以 dsPIC30F4011 16-bit為控制器的開發板,PLUS 多了一些 I2C 和 SPI 介面的操作。另外,板子上還有一顆小控制器 PIC16F684 8-bit MCU。除了開發板之外,我們還要準備一個除錯器,也可燒錄程式之用。若預算有限,買 PICKit3 就可以了,如果開發的系統比較複雜,那最好買 Mplab ICD3,兩者的差別在於效能,PICKit3 除錯時無法設定太多斷點。因此,這個項目的硬體開發要準備的部分就是:
        (1) APP020 PLUS 開發板
        (2) PICKit3 或 Mplab ICD3 燒錄器
        (3) 藍芽模組 HC-08 Bluetooth BLE

        接下來,我們要到 Microchip 網站下載開發套件編譯器 MPLAB IDE v8.92 以上,注意一點:由於 Microchip MCU 種類分成 8/16/32 bit,每種的編譯器都不一樣,因為我用的是 dsPIC30F4011 16-bit,所以要下載 MPLAB C30 軟體專門 compile & link 16-bit MCU,在 IDE 裡面將編譯的路徑設到 C30 目錄上。最後,還要再下載一個 "dsPIC30F Module Training",這檔案可提供 MCU 周邊控制與操作的範例程式,裡面也有 Microchip 公司提供的函式庫,更方便大家使用這顆晶片。因此,需要準備的軟體有:
        (1) MPLAB IDE v8.92 或者 MPLAB X IDE
        (2) MPLAB C30 compiler
        (3) dsPIC30F Module (including DSP Library & Peripheral Libraries)


        以下僅是個人使用心得,感覺 MPLAB IDE 在使用上不像 KEIL 便利。在除錯模式或燒錄模式上,分別要選定連接的工具。比如在燒錄模式選了 PICKit3,也進行燒錄程式 (Program)。再回到除錯模式時,我們必須再選一次 PICKit3,然後重新再燒錄一次,才能開始進行除錯。即使結束了除錯模式,剛剛燒錄的程式並沒有儲存在 flash 裡面,必須從燒錄模式再重新燒錄一次,也就是除錯模式的燒錄和燒錄模式的燒錄不一樣。

        除錯時,有一點要留意,APP020 PLUS 板子上的 DSW6 pin1 & 2 必須切為 OFF,否則無法成功,IDE 畫面始終會出現一個錯誤訊息,要求我們去 Config Pin (PGC & PGD)。然而,奇怪的是這個 DSW6 若不切換只會影響除錯,卻不會影響燒錄。

        最後說一下藍芽模組 HC-08,這是 BLE 低功耗的模組,用來傳送資料的。手機端只需把藍芽功能打開,藍芽連線的方式並不是在藍芽設定的地方進行配對。我們找找 "BLE Scanner" APP,使用這個 APP 直接藍芽連線不需配對,這樣就能雙方互傳資料了。

這個網誌中的熱門文章

Android APP 藍芽範例說明 -- BluetoothChat

Android APP BLE範例程式 -- BluetoothLeGatt

三軸重力加速計 Accelerometer