FlexIO(Flexible Input/Output)是一款高度可客製化的模組,能夠模擬多種通訊協定,包括UART、I2C、SPI和PWM等。這項技術最初僅用於NXP的微控制器(MCU)平台上使用。
隨著其模擬接口的廣受好評,FlexIO已成功擴展至i.MX93應用處理器平台。
i.MX93的FlexIO模組擁有8組32位元的移位暫存器、8組16位元的計時器暫存器,以及32個可配置腳位。具備以下特點:
硬體:
軟體:
隨著其模擬接口的廣受好評,FlexIO已成功擴展至i.MX93應用處理器平台。
i.MX93的FlexIO模組擁有8組32位元的移位暫存器、8組16位元的計時器暫存器,以及32個可配置腳位。具備以下特點:
- 32位元移位暫存器陣列:支援資料傳輸、接收、匹配,以及邏輯和狀態模式的操作。
- 雙重緩衝移位操作支持連續數據傳輸。
- 移位器串能功能支援大型數據傳輸。
- 自動化起始/停止位元生成。
- 支援1,2,4,8 ,16 或32位元的多種移位寬度,以便於並行介面的支持。
- 靈活的中斷、DMA或輪詢傳輸/接收操作
- 提供可程式化的波特率,並能在匯流排時脈頻率獨立的情況下,支援停止模式下的非同步操作。
- 高度靈活的16位元計時器支援多種內部或外部觸發、重設、啟用和停用條件。
- 可程式化的邏輯模式:可整合晶片上的外部數位邏輯功能,或是結合腳位、移位器和計時器功能,創造複雜的輸出模式。
- 可程式化的狀態機器:可減輕CPU的基本系統控制負擔,支援多達8種狀態、8種輸出,以及每種狀態下3種可選輸入。
- 整合了通用輸入/輸出暫存器和腳位上升/下降沿中斷:簡化了軟體的支援需求。
硬體:
- 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的選項。
- Cmake: 到Download CMake 下載最新版本的 windows binary 執行檔,本實驗使用cmake-3.29.3-windows-arm64.msi
- 設定Cmake, MinGW 安裝路徑到系統的環境變數中。
編譯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
評論