天天看點

apollo系列之apollo2 mcu開發(基礎篇)之1.2-apollo2 mcu core

Apollo2 MCU的核心是一個32位的ARM Cortex-M4核心,帶有浮點選項。ARM v7-M體系結構的3個階段的流水線實作以非常低的功耗設計提供了高效的處理。ARM M DAP通過序列槽線接口從外部打開調試通路允許通路所有的記憶體和外圍裝置的MCU。

一、Apollo2 MCU 低功耗模式 

  • 活動模式
  • 休眠模式
  • 深度模式
  • 關機

二、中斷事件有哪些呢?

  • NVIC
  • 喚醒中斷控制器
  • 退出休眠
  • 進入休眠,等待中斷

在MCU中,多個外設可以産生中斷。在某些情況下,單個外圍裝置可能會産生多個不同的中斷。由外設産生的每個中斷信号都被連接配接回M4核心在兩個方面:

      首先,在核心中斷連接配接到嵌套的矢量中斷控制器,NVIC;此連接配接提供了與中斷處理相關的程式流的标準更改。

      此外,它們連接配接到核心外部的WIC,允許中斷源在M4核心處于深度睡眠(SRP)時喚醒它。

Apollo2單片機的M4矢量表:

apollo系列之apollo2 mcu開發(基礎篇)之1.2-apollo2 mcu core

Cortex-M4允許使用者根據應用程式的要求将各種中斷配置設定到不同的優先級級别。在apollo2 mcu實作中,有8種不同的優先級。

M4中斷架構的另一個特性是能夠将向量表重新定位到一個不同的位址。如果應用程式的特定模式需要一組不同的中斷服務例程,那麼這可能很有用。軟體可以将矢量表移動到SRAM中,并根據需要重新配置設定中斷服務程式入口位址。

如下所示,硬體中斷在MCU中配置設定給M4 NVIC。

apollo系列之apollo2 mcu開發(基礎篇)之1.2-apollo2 mcu core

三、記憶體映射

ARM為基于ARM v7-M架構的裝置提供了定義良好的記憶體映射。M4進一步細化了外圍裝置和系統位址範圍的地圖。下面是ARM定義的系統記憶體映射

apollo系列之apollo2 mcu開發(基礎篇)之1.2-apollo2 mcu core

該記憶體映射的mcu具體實作如下:

apollo系列之apollo2 mcu開發(基礎篇)之1.2-apollo2 mcu core

記憶體映射中的外圍裝置在4 KB的邊界上配置設定,允許每個裝置最多1024個32位控制和狀态寄存器。當試圖通路不存在的寄存器時,外設将傳回未定義的讀資料。外設,無論是通過APB還是AHB通路,都将始終接受發送到其寄存器的任何寫資料,而不會嘗試傳回錯誤響應。具體地說,對隻讀寄存器的寫操作将變成無關緊要的寫操作。

單片機外圍裝置記憶體映射:

apollo系列之apollo2 mcu開發(基礎篇)之1.2-apollo2 mcu core
apollo系列之apollo2 mcu開發(基礎篇)之1.2-apollo2 mcu core

四、MPU

Apollo2單片機包括一個主要闆,主要闆是記憶體保護的核心部件。M4處理器支援标準的ARMv7保護記憶體系統架構模型。MPU提供全面支援:

  • 保護區域。
  • 重疊的保護區域,區域優先級上升:- 7 =最高優先級- 0 =最低優先級。
  • 通路權限
  • 導出記憶體屬性到系統。      

你可以使用MPU來:

▪執行特權規則。

▪獨立的程序。

▪強制執行通路規則。

五、系統總線

ARM Cortex-M4利用AMBA AHB總線的3個執行個體與存儲器和外設通信。代碼總線被設計用來從“代碼”記憶體空間擷取指令DCode總線是為同一區域的資料和調試通路而設計的。設計了系統總線,用于讀取SRAM和其他單片機的外圍裝置。

Apollo2 MCU将可用SRAM記憶體映射到“代碼”記憶體空間中的位址空間。這使使用者有機會從較低的功率執行指令和資料擷取SRAM有效降低了單片機的功耗。

Apollo2單片機的外圍裝置很少被通路,它們位于AMBA APB總線上。存在一個橋接器,将系統AHB的通路轉換到APB。在任何通路周期中,對這些外設的通路都将在AHB上注入一個單一的等待狀态。

六、電源管理

電源管理單元(PMU)是一種有限狀态機,它控制MCU在不同電源模式之間的轉換。當從主動模式移動到深度睡眠模式,PMU管理在Cortex-M4核心内寄存器的狀态保持能力,并控制關閉單片機的電壓調節器。一旦進入深度睡眠模式,PMU,連同喚醒

中斷控制器,等待一個喚醒事件。當事件被觀察到,PMU通過重新使能片上電壓調節器和恢複CPU寄存器狀态開始電源恢複過程。的M4然後傳回到活動模式,一旦所有的狀态就緒。

6.1 Cortex-M4電源模式

活動模式

休眠模式

深度休眠模式

除了上述arm定義的模式外,Apollo2 MCU将支援整個裝置斷電的關機模式,但支援上電複位所需的邏輯除外。

每種模式如下所述。

6.1.1  活動模式

在Active模式下,M4被上電,時鐘被激活,指令被執行。在這種模式下,M4期望連接配接到AHB和APB的所有(啟用的)裝置為正常通路供電和時鐘。所有非調試的ARM時鐘(FCLK, HCLK)在這個狀态下都是活動的。

為了從主動模式轉換到任何低功耗模式,在M4核心上執行特定的指令序列。首先,必須設定ARMv7-M系統控制寄存器中的特定位來确定要進入的模式。請參閱ARMv7-M架構參考手冊B3-269頁。

設定好SCR後,代碼可以通過以下兩種方法之一進入低功耗狀态:

  • 執行一個WFI指令。
  • 設定SCR的SLEEPONEXIT位,這樣ISR的退出将自動傳回到睡眠狀态。
  • 重置
  • NVIC接收到一個啟用的中斷
  • 從DAP收到一個調試事件

6.1.2 休眠模式

6.1.3 深度休眠模式

6.2 系統電源模式

6.2.1 SYS Active Burst

6.2.1 SYS Active

6.2.3 SYS Sleep Mode 0

6.2.4 SYS Sleep Mode 1

6.2.5 SYS Deep Sleep Mode 0

6.2.6 SYS Deep Sleep Mode 1

6.2.7 SYS Deep Sleep Mode 2

6.2.8 SYS Deep Sleep Mode 3

6.2.9 SYS OFF Mode

繼續閱讀