改造DSO138示波器(三):編譯開放原始碼的Arduino示波器韌體

Ardyesp開發的DLO-138是開放原始碼的DSO-138示波器韌體,功能比原廠強大,它支援:

  • 兩個類比通道(訊號輸入),分別接到板子的PA0和PA4腳。
  • 兩個數位邏輯通道,分別接到板子的PA13和PA14腳。
  • 從序列埠輸出檢測波型資料
  • 可將+(SW5)、-(SW6)和SEL(SW7)開關改接一個旋轉編碼器。

底下是DLO-138韌體的運作畫面,紫色的雜訊波形是ch2(類比通道2)的輸入訊號,因為我沒有加裝通道2的電路(請參閱DLO-138專案說明頁上電路圖,也就是新增一個和通道1相同的訊號處理電路)。

執行DLO-138韌體的示波器

設置Arduino IDE的STM32編譯環境

DLO-138原始碼用Arduino程式開發,Arduino IDE需要先設置STM32微控器的編譯環境,目前的主流是stm32duino.com維護的Arduino_Core_STM32

安裝Arduino_Core_STM32之後,主功能表的「工具→開發板」選單底下會出現STM32 boards groups(STM32開發板群組)選項。

STM32 boards groups

但是,DLO-138原始碼無法用Arduino_Core_STM32編譯

編譯DLO-138原始碼,需要使用Roger Clark設置的Arduino STM32。下載之後,把Arduino_STM32解壓縮到「文件\Arduino\hardware」路徑底下(你可能需要自行新增“hardware”資料夾):

文件裡的hardware資料夾

或者,把Arduino_STM32解壓縮到Arduino應用程式安裝路徑的“hardware”資料夾

Arduino IDE裡的hardware資料夾

接著,在Arduino IDE的「開發板管理員」中搜尋關鍵字“arduino sam”,安裝“32-bit ARM Cortex-M3”開發板的編譯環境,這是因為Arduino_STM32不含STM32的程式編譯器,要借用這個開發環境的編譯器。

開發板管理員

示波器的2.4吋TFT LCD採用Adafruit GFX程式庫驅動,請在「程式庫管理員」中搜尋關鍵字“adafruit gfx”,安裝1.1.4版Adafruit GFX程式庫,請不要安裝新版Adafruit GFX程式庫,否則示波器的螢幕將呈現空白。

程式庫管理員

編譯DSO138示波器的STM32原始碼

下載DLO-138原始檔並解壓縮,把它的資料夾命名成DLO-138(亦即,刪除資料夾名稱後面的“-master”文字),在雙按裡面的DLO-138.ino檔,開啟Arduino IDE。

開發板選擇STM32F1 Boards裡的Generic STMF103C Series(通用STMF103C系列):

Generic STMF103C Series

如果你之前將Arduino_STM32解壓縮到「文件\Arduino\hardware」路徑底下,這個開發板選項文字後面將出現 (in sketchbook) 字樣,代表「在草稿碼中」,像下圖這樣,不影響使用:

in sketchbook

微控器的Variant(款式)選項,請選擇20k RAM 64k Flash款式。

20k RAM 64k Flash款式

Upload method(上傳方式),請選擇Serial(序列)

Serial(序列)

此示波器程式預設啟用旋轉編碼器,除非你有把SW5, SW6和SW7三個微觸開關改接成旋轉編碼器,否則,請將global.h檔第2行的#define USE_ENCODER改成註解:

取消使用旋轉編碼器

選擇主功能表「草稿碼→匯出已編譯的二進位檔」,編譯後的.bin二進位檔將存入DLO-138原始碼所在資料夾。

匯出已編譯的二進位檔

最後,使用上一篇貼文介紹的STM32微控器燒錄軟體,將它寫入DSO-138示波器。

Posts created 483

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top