HC32F460 系列的中斷控制器 INTC
1
摘要
本篇應用筆記主要介紹 HC32F460 系列芯片的中斷控制器(Interrupt Controller, INTC)模塊,并通過展示外部管腳中斷、軟件中斷、NMI 中斷樣例代碼簡要說明如何使用 INTC 模塊。
2
INTC 簡介
HC32F460 系列的中斷控制器(INTC)模塊豐富的功能,其中包括了對不可屏蔽中斷
(NMI)、外部管腳中斷(EXINT)、軟件中斷(SWI)、中斷、事件使能的配置;外設模塊中斷源自由設置到除系統中斷向量入口的任意入口。
INTC 主要特性:
? 外設中斷向量入口中斷源可配置
? 16 個可編程中斷優先級
? 多種可選擇的 NMI 中斷源
? 16 個外部管腳中斷
? 32 個軟件中斷
? 系統休眠模式喚醒源配置
? 系統停止模式喚醒源配置
? 支持 WFI、WFE后的喚醒
3
HC32F460 系列的 INTC
3.1
NMI 不可屏蔽中斷
不可屏蔽中斷(NMI)具有優先級,HC32F460 系列的 NMI 可選擇多個中斷事件請求,應用程序可通過查詢 NMIFR 寄存器來確定 NMI 中斷的來源,并通過 NMICFR 寄存器來清除對應標志位。
3.1.1 NMI 主要特點
? 可選擇多個中斷請求作為 NMI 信號來源:
- NMI 管腳中斷
- 外部高速 XTAL 振蕩停止中斷
- 外部低速 XTAL32 振蕩停止中斷
- WDT 下溢、刷新錯誤中斷
- SWDT 下溢、刷新錯誤中斷
- 低電壓監測 PVD1 中斷
- 低電壓監測 PVD2 中斷
- SRAM 奇偶校驗錯誤中斷
- SRAM ECC 校驗錯誤中斷
- MPU 總線錯誤中斷
? NMI 管腳中斷數字濾波功能及濾波器時鐘可設
? NMI 管腳中斷上升沿、下降沿觸發
3.1.3 NMI 配置流程說明
下面流程圖以 NMI 管腳中斷為例,給出了配置流程。

至此,NMI 管腳中斷的相關配置結束,如需使用 NMI 管腳中斷功能,還需要配置中斷選擇寄存器以及 NVIC 部分,這部分配置說明將在中斷源選擇章節進行詳細講解。
3.2 外部管腳中斷
HC32F460 系列有 16 個外部管腳中斷事件,可通過寄存器配置每個通道的屬性,包括數字濾波功能、觸發電平選擇。
3.3
軟件中斷
HC32F460 系列有 32 個軟件中斷請求,且與中斷向量 0~31 一一對應,可通過軟件置位寄存器INT_SWIER 的對應 bit,來產生一次軟件中斷事件請求。
3.4
中斷源選擇
HC32F460 系列一共有 16 個系統中斷向量入口和 144 個外設中斷向量入口,用戶可通過中斷源選擇寄存器,將芯片的 239 個外設的中斷請求配置到 144 個中斷向量入口,靈活管理中斷服務程序。
3.4.2 中斷選擇寄存器方法說明
下面同樣以外部管腳中斷 8 為例,對中斷選擇寄存器進行說明。
配置中斷選擇寄存器前,先查詢芯片手冊的 12.3.2 中斷事件請求序號章節,獲取欲配置的中斷事件序號,下圖摘抄至手冊此章節。

從上表中可以看到,外部管腳中斷 8 的序號為 8,可使用的中斷選擇寄存器為 INT_SEL0~31,INT_SEL32~37,INT_VSSEL128[8]。
如設置 INT_SEL10 = 8; 當外部管腳中斷 8 產生時,程序將響應 8 號中斷向量;如設置INT_VSSEL128[8] = 1; 程序將響應 128 號中斷向量。如將同一中斷事情請求序號同時設置到多個中斷選擇寄存器,當此中斷請求來臨時,若設置相同中斷優先級,程序將根據中斷向量號編號,由小至大依次響應,直至執行完所有已配置的中斷選擇寄存器。
4
樣例代碼
4.1
代碼介紹
用戶可根據上述的工作流程編寫自己的代碼來學習驗證該模塊,也可以直接通過華大半導體的網站下載到設備驅動庫(Device Driver Library, DDL)的樣例代碼并使用其中的 INTC 的樣例進行驗證。
4.2 代碼運行
用戶可以通過華大半導體的網站下載到 HC32F460 的 DDL 的樣例代碼(exint_nmi_swi),并配合評估用板(EV-HC32F460-LQFP100-050-V1.1)運行相關代碼學習使用 INTC 模塊。
5
總結
以上章節簡要介紹了 HC32F460 系列的 INTC,說明了 INTC 模塊的寄存器及部分操作流程,并且演示了如何使用 INTC 樣例代碼,在實際開發中用戶可以根據自己的需要配置和使用 INTC 模塊。