SemiDrive E3 MCAL 開發系列(2) – Port & Dio 模塊的使用

一、概述

本文將會介紹如何導入  SemiDrive E3 系列 MCU 的 MCAL 配置工程以及介紹 Port 和 Dio 模塊的基本配置,並且會結合實際操作的介紹,幫助新手快速了解並掌握這兩個模塊的使用,文中的 MCAL 是基於 PTG3.0 的版本,開發板是官方的 E3640 網關板。

二、MCAL 配置工程的導入

首先打開 EB 軟體,導入 E3 的 MCAL 配置工程 ,本文介紹的 E3 的配置及實操是基於 SemiDrive 的 E3640 網關板,導入的 MCAL 配置工程路徑如圖 2.1 所示,其具體操作流程如圖 2.2 所示。



                                                                    圖 2.1 E3 MCAL 配置工程路徑



                                                                           圖 2.2 導入EB 配置工程

導入完 MCAL 配置工程之後可以點擊 “generate project”的按鈕生成配置代碼,點擊後會有提示框提示錯誤和警告的數量,如果沒有錯誤,則配置代碼生成成功。



                                                                           圖 2.3 生成配置代碼

三、Port 模塊的主要配置

Port 模塊主要用於配置每個引腳的功能,包括引腳的功能復用、上下拉配置、驅動電流、引腳方向、是否使能引腳中斷等等。

關於 Port 模塊的配置流程,首先雙擊 Port 這個模塊,EB 會顯示 Port 模塊的配置界面,如圖 3.1 所示,Gerneral 部分主要配置是否使能對應的 API 以及是否使能輸入引腳中斷檢測。PortContainer 則是針對每組 Port 引腳進行配置,主要是引腳數量的填寫,要和實際配置的引腳數量保持一致。我們後面的實際操作需要使用到中斷檢測,因此需要勾選上 “PortSetPinINTDetect”這個選項。



                                                                                圖 3.1 Port 模塊配置界面

接著針對每個 Port 引腳進行具體的配置,配置界面及主要配置項的功能如圖 3.2 所示,這裡我們配置 E25 和 E26 兩個引腳,一個配置為輸入引腳、一個配置為輸出引腳,具體配置如圖中的紅框所示。這裡我們 E25 引腳的中斷配置配置為上升沿觸發。

                                                                        圖 3.2 Port 模塊具體引腳配置界面

四、Dio 模塊的主要配置

Dio 模塊的配置也比較簡單,主要是 DioPortId 和 DioChannelId 的配置。例如我們要配置的 E25 引腳,可以通過查看工程中的 Port_Hw_E3_PinCtrl.h 文件,如圖 4.1 所示,E25 引腳的 Id 為 212,這個值就是這個引腳的 DioChannelId,我們只需要根據這個值找到其對應的 Port。

                                                                    圖 4.1 Port_Hw_E3_PinCtrl.h 文件

那麼如何根據 DioChannelId 找到其對應的 Port 呢?我們可以通過芯馳提供的 Dio 配置文檔《SemiDrive_Dio_User_Manual.pdf》中查看,具體對應關係如下表所示。從表中我們可以知道 E25 和 E26 引腳都是 Port 7。

Port Id

DioChannelId

0

0-31

1

32-63

2

64-95

3

96-127

4

128-134

5

135-166

6

167-198

7

199-213

表 4.1 port id 對應關係

 

如圖 4.2 所示,我們只需在 Port7 的配置中添加我們需要的兩個引腳即可,引腳的名稱我們可以自由命名,後續調用 Dio 模塊的相關接口時會引用到。



                                                                                   圖 4.2 添加兩個引腳

五、實際操作

下面將基於 E3 MCAL 工程進行 Dio 模塊的測試,我們使用 E26 引腳作為輸出引腳,E25 引腳為輸入引腳,修改 Dio 的測試代碼,讓輸出引腳連續翻轉 10 次,間隔 500 ms,輸入引腳則會檢測輸入電平變化,當有上升沿會觸發中斷,我們在中斷里列印 Port Id 及寄存器的值,測試時我們需要將 E25 引腳和 E26 引腳連在一起。代碼主要修改兩個部分,一個是 Dio 的測試代碼,一個是 Dio 的中斷函數,具體修改如圖 5.1 和圖 5.2 所示。



                                                                           圖 5.1 dio_test 函數修改



                                                                               圖 5.2 Dio 中斷函數修改

修改完代碼後編譯下載到開發板,接上串口,上電運行,輸入測試命令“dio test”,可以觀察到 LED 會每秒閃爍一次,連續 10次,另外也可以看到串口列印出輸出引腳的 Port id 以及該 Port的寄存器狀態,如圖 5.3 所示。

                                                                                       圖 5.3 串口列印

六、參考資料

1.《SemiDrive_Dio_User_Manual.pdf》,2022.05

2.《SemiDrive_E3_MCAL_User_Guide_Rev03.00.pdf》,2023.08

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

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

評論