【導讀】本文介紹超低功耗、功能豐富的微控制器模塊,并解釋如何使用主流的免費工具對微控制器模塊進行編程和調試。與許多其他高端微控制器模塊不同,這種模塊采用DIP封裝,因此專業工程師和業余愛好者都能使用它輕松地進行原型設計。文章第1部分說明如何在Eclipse中創建項目,第2部分討論如何配置Eclipse以配合微控制器模塊使用。
引言
盡管設計人員對微控制器微型化的不懈追求屢屢突破電子產品的性能極限,但也導致工程師和業余愛好者在使用不斷縮小的封裝進行原型設計時面臨重重困難。雖然在設計中加入微控制器無疑會增添新的電路功能,但許多工程師仍然懷念以前大量器件采用DIP封裝的日子。如今更為先進的微控制器所采用的封裝大多無法用于原型設計,或者其評估套件尺寸很大,配備了許多不必要的器件。
本文介紹的MAX32625PICO微控制器模塊對原型制作十分友好,尺寸非常小巧,仍采用DIP封裝,因此非常容易集成到測試PCB和量產PCB中。此外,本文將介紹如何使用主流的免費集成開發環境(IDE) Eclipse進行編程和調試,從而潛移默化地鼓勵工程師告別8位處理器,同時依然保留DIP封裝。有關完整的入門操作指南,請參閱以下說明。
了解MAX32625PICO
圖1所示為MAX32625PICO,也稱為PICO。它包含MAX32625微控制器,這是一款超低功耗的32位Arm? Cortex?-M4處理器,具有512 kB閃存和160 kB SRAM,工作頻率高達96 MHz。PICO上的引腳配備了這款微控制器最實用的外設功能,包括SPI接口、I2C端口、10位ADC的兩個輸入、1-Wire接口和兩個UART。PICO還集成了MAX14750電源管理IC、RGB LED、按鈕開關、USB Micro B連接器和10引腳Cortex調試接頭,并且可以直接從USB端口或外部5 V電源供電。此外,PCB兩側均有0.1英寸的焊盤,因此可以將引腳焊接到PICO上,從而使其能夠安裝在原型板上。如果需要表面貼裝的解決方案,焊片的敷銅直接延伸到電路板邊緣,因此PICO也可用作表面貼裝組件使用。PICO足夠小,可以插入到任何設計中;同時又足夠大,可以輕松進行原型設計。參見圖1。

圖1.MAX32625PICO。
以下是對PICO進行編程和調試所需的組件:
兩個PICO
兩根Micro B USB連接線(通常隨PICO提供)
編程線,序列號TC2050-IDC-NL-050
TC2050編程線的一端是10引腳連接器,另一端是彈簧式pogo引腳。該編程線僅在調試過程中使用,或者在引導加載程序被覆蓋時用于對PICO重新編程。正常編程只需簡單拖放二進制文件即可。
在Eclipse IDE中創建項目
PICO最初設計用于Mbed在線編譯器平臺,但該平臺現已停用。開源Eclipse IDE是一個開發平臺,深受專業人士和業余愛好者的歡迎,可作為Mbed的免費替代方案。本文將指導編程人員配置Eclipse,以生成二進制文件,之后可使用Windows資源管理器將其直接拖放到目標硬件上。訪問本文末尾的鏈接,即可下載zip格式的配置文件。
Eclipse IDE可從MAX32625微控制器的專題頁面下載。導航到工具和仿真部分,然后單擊Low Power ARM Micro SDK (Win)下載鏈接,下載并使用默認配置安裝Arm Cortex Toolchain IDE。
安裝后,選擇:
文件 -> 新建 -> Maxim Microcontrollers
如圖2所示。

圖2.創建第一個項目。
出現創建項目框時,確保項目名稱中沒有空格。
填寫選擇項目配置窗口,如圖3所示。

圖3.項目配置。
IDE如何與目標硬件通信?
下面先介紹一下Eclipse內部的運行情況,這有助于理解調試過程中可能出現的錯誤消息。IDE使用兩個程序與目標微控制器(本例中為PICO)進行通信:GNU調試器(GDB)和開放式片內調試器(OpenOCD)。GDB是一種高級調試工具,允許用戶逐行調試代碼、設置斷點和查看寄存器值。GDB與OpenOCD通信,OpenOCD工具可將高級命令轉換為目標微控制器更容易理解的內容。GDB和OpenOCD都在PC上的Eclipse內部運行。PC和目標微控制器通過調試器連接,調試器可將命令轉換為微控制器的調試端口能夠理解的電信號。調試端口具有兩種形式:JTAG調試端口、或其較低引腳數的版本——單線調試(SWD)端口。得益于以上所有特性,編程人員能夠在實際目標硬件上逐行執行代碼,查看寄存器值的變化,而無需使用仿真器。
Eclipse IDE與GDB通信,GDB與OpenOCD通信,OpenOCD通過調試器與目標PICO上的調試端口通信。GDB和OpenOCD包含在軟件開發套件(SDK)內,隨SDK自動安裝,并通過Eclipse調用。當PC和目標微控制器之間連接了調試器后,Eclipse和PICO之間可實現無縫的端到端通信。
在圖3所示的項目配置中,假設Eclipse IDE連接到使用JTAG端口的MAX32625EVKIT。但是,PICO使用較低引腳數的SWD端口,而不是JTAG調試器端口。因此,若要連接Eclipse IDE與PICO,可在PC和目標PICO之間再連接第二個PICO,以代替JTAG調試器。為了把第二個PICO與運行最終代碼的目標PICO區分開來,在這里將第二個PICO被稱為編程器PICO。編程器PICO需要通過名為DAPLink的程序加載,以便將來自PC的USB信號轉換為PICO能夠理解的信號。這個過程非常簡單,本文第2部分的“加載二進制文件”中提供了簡要描述。
由于使用的是編程器PICO,而不是JTAG調試器,因此在選擇適配器類型下方選擇MAX32625_PICO。參見圖4。

圖4.選擇適配器類型。
修改Eclipse以配合PICO使用
通過本文末尾的鏈接下載zip文件,然后解壓縮到合適的位置。找到名為
MAX32625PICO.cfg
的文件,將其復制到以下目錄:
C:MaximToolchainshareopenocdscriptstarget
該文件在原文件(MAX32625.cfg)基礎上進行了修改,支持使用第二個PICO來代替JTAG調試器。該文件覆蓋了通常由JTAG調試器發出的復位命令,并復位了目標微控制器器的一些寄存器、程序計數器和堆棧指針。
新項目創建好后,在Eclipse的項目瀏覽器選項卡(左上角)中右鍵單擊項目名稱,并選擇:
調試為 -> 調試配置…
導航到左側菜單上的GDB OpenOCD調試,并選擇當前項目。
在調試器選項卡中,將CFG文件從MAX32625.cfg更改MAX32625pico.cfg,如圖5所示。

圖5.指向新配置文件。
依次單擊Apply和Close。
在項目瀏覽器窗口中,再次右鍵單擊項目名稱并選擇Properties。左鍵單擊C/C++ Build標題,然后在Builder設置選項卡下,確保Build命令顯示為:
make ECLIPSE=1 release
如圖6所示。該命令指示Eclipse生成可加載到PICO的二進制文件(可執行程序)。

圖6.生成二進制文件
單擊Apply和OK。
配置Eclipse以包含其他文件
為了使Arm處理器更易于編程,微控制器的供應商提供了底層驅動程序,以使編程人員的代碼能夠與微控制器內部的寄存器和外設進行通信。因此,編程人員無需擔心寄存器的控制,而可以專心研究最終應用的更高級功能。這些驅動程序被稱為通用微控制器軟件接口標準(CMSIS),是對MAX32625進行編程所需的文件層次結構。MAX32625微控制器的核心是Arm內核,需要用到一組文件對其進行配置。Arm內核周圍包含一組外設(ADC、GPIO端口、定時器、計數器、SPI端口等),不同基于Arm的器件之間的區別在于不同的外設構成。對外設進行配置時也需要用到一組文件。Arm內核及其外設共同構成了微控制器。然后,將器件安裝在電路板上,并連接到顯示屏、端口接頭、開關、LED和藍牙收發器等。需要另一組文件描述微控制器如何連接到電路板上的周圍器件。
從MAX32625的核心(Arm內核)開始向外展開,有一組文件用于配置Arm內核本身,然后有一組文件用于配置Arm內核周圍的外設,最后有一組文件用于配置評估套件上微控制器周圍的器件。為了Eclipse能夠在編譯程序時找到這些文件,需要對Eclipse進行配置。
在Eclipse內部的Project Explorer窗口中,右鍵單擊項目名稱并選擇Properties,然后展開C/C++ General菜單,并導航到Paths and Symbols部分。在Includes選項卡下,選擇GNU C。使用Add和File system按鈕,添加圖7所示的目錄。

圖7.包含外部文件。
添加了上述目錄后,單擊Apply和OK。
下文解釋了已包含的每個目錄的作用。
C:MaximFirmwareMAX32625LibrariesCMSISInclude
該目錄包含MAX32625的Arm內核使用的文件。
C:MaximFirmwareMAX32625LibrariesCMSISDeviceMaximMAX32625Include
該目錄包含MAX32625的外設/寄存器定義。
C:MaximFirmwareMAX32625LibrariesMAX32625PeriphDriverInclude
該目錄包含啟用MAX32625外設所需的文件。
結語
本文第1部分講解了如何在Eclipse中創建項目,并介紹了對微控制器進行編程所需的軟件。第2部分討論了如何配置Eclipse以與PICO配合使用。


