[i.MX93] 使用FlexIO 在M Core 實作PWM功能

關鍵字 :NXPi.MX93FlexIO
FlexIO(Flexible Input/Output)是一款高度可客製化的模組,能夠模擬多種通訊協定,包括UART、I2C、SPI和PWM等。這項技術最初僅用於NXP的微控制器(MCU)平台上使用。
隨著其模擬接口的廣受好評,FlexIO已成功擴展至i.MX93應用處理器平台。

      i.MX93的FlexIO模組擁有8組32位元的移位暫存器、8組16位元的計時器暫存器,以及32個可配置腳位。具備以下特點:
  • 32位元移位暫存器陣列:支援資料傳輸、接收、匹配,以及邏輯和狀態模式的操作。
  • 雙重緩衝移位操作支持連續數據傳輸。
  • 移位器串能功能支援大型數據傳輸。
  • 自動化起始/停止位元生成。
  • 支援1,2,4,8 ,16 或32位元的多種移位寬度,以便於並行介面的支持。
  • 靈活的中斷、DMA或輪詢傳輸/接收操作
  • 提供可程式化的波特率,並能在匯流排時脈頻率獨立的情況下,支援停止模式下的非同步操作。
  • 高度靈活的16位元計時器支援多種內部或外部觸發、重設、啟用和停用條件。
  • 可程式化的邏輯模式:可整合晶片上的外部數位邏輯功能,或是結合腳位、移位器和計時器功能,創造複雜的輸出模式。 
  • 可程式化的狀態機器:可減輕CPU的基本系統控制負擔,支援多達8種狀態、8種輸出,以及每種狀態下3種可選輸入。 
  • 整合了通用輸入/輸出暫存器和腳位上升/下降沿中斷:簡化了軟體的支援需求。
總結來說,FlexIO模組為開發者提供了一個靈活多變、功能強大的平台,以模擬和實現各種通訊協定。本實作將以MCU expresso 中提供的Flexio PWM範例在i.MX93 EVK上進行實作。

硬體:
  • i.MX93開發板: MCIMX93 EVK
  • J-Link 工具: MCU-LINK-PRO 做J-Link 偵錯工具。
  • USB Type C cable 及USB Micro-B cable
  • 個人電腦(使用Windwos 11 的作業系統)
  • 連接 i.MX93 開發板上的J10013(IOMUXC_PAD_GPIO_IO02__FLEXIO1_FLEXIO02) 及 J1005 7(GND) 到示波器。


軟體:

  • GCC ARM Embedded Toolchain版本: GCC ARM Embedded 12.2
  • MCU Expresso SDK 版本: SDK_2_15_000_MCIMX93-EVK

    選擇下載SDK , 檔名為SDK_2_15_000_MCIMX93-EVK.zip 

    解壓縮SDK_2_15_000_MCIMX93-EVK.zip 後,參考DOC資料夾中的Getting Started with MCUXpresso SDK for MCIMX93-EVK.pdf 安裝相關所需要的軟體包及相關的設定。

    可參考如下建議的版本及說明:
  • J-Link 軟體版本: JLink_Windows_V796i_x86_64
  • MinGW:從  https://sourceforge.net/projects/mingw/files/latest/download 下載最新版本的mingw-get-setup 執行檔。 執行安裝檔,建議安裝路徑為 C:\MinGW。確保在基本設定下選擇 mingw32-base 和 msys-base的選項。
            點擊“安裝”選單中的“套用變更(Apply Changes)"”,然後按照其餘說明完成安裝。
       

            

           

 






































編譯FlexIO PWM 的binary 檔案:
    1. 開啟命令字元DOS 模式, 將路徑指到SDK_2_15_000_MCIMX93-EVK資料夾中flexio PWM的範例。
        如: C:\Users\penny>cd C:\D\work\i.MX93\FlexIO\SDK_2_15_000_MCIMX93-EVK\boards\mcimx93evk\driver_examples\flexio\pwm\armgcc\
        
    2. 執行build_debug.bat. 產生flexio_pwm.elf 檔案。
       

實測FlexIO PWM的功能:
 1. 在Window執行SEGGER J-Link GDB Server應用程式 (使用的版本為 J-Link GDB Server V7.96g),
    確認Connection to J-Link設定為USB, Target Interface 為SWD 以及GDB Port為2331。
         
 2. 然後按下OK button.


3. 開啟命令提示字元DOS 模式。
4. 將路徑指到GCC安裝路徑 :"C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\12.2 rel1\bin>"
     執行arm-none -eabi-gdb.exe flexio_pwm.elf 
5. 執行如下的GDB 命令:
 a. target remote localhost:2331
 b. monitor reset
 c. monitor halt
d. load
e. monitor go

 5. 查看M4Uart log訊息:

     

4.  duty cycle設為10的 M4 log 訊息,以及示波器的顯示結果。


參考文件: Getting Started with MCUXpresso SDK for MCIMX93-EVK.pdf

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論