在現代嵌入式系統中,時鐘與復位管理是確保系統穩定運行的關鍵。我們的SMU(系統管理單元)模塊專注于此核心任務,通過精準的時鐘配置和復位控制,為整個系統提供可靠的時序保障。
SMU模塊的主要功能是完成時鐘和復位的管理。在默認狀態下SMU工作在IDLE狀態。只有接收到PMU的使能信號后才開始工作。SMU模塊會根據PMU的指令自動配置COR、AXIBUS0/1/2等總線的時鐘和復位。
需要注意的是,MCU芯片AS32X601可通過BOOT選擇從外部QSPI Flash啟動和內部PFlash啟動,外部Flash啟動時,系統時鐘最高90MHz,內部啟動時,系統時鐘可跑到180MHz。同時對于各總線時鐘,同樣存在具體要求,該部分在軟件操作部分進行介紹。
硬件介紹
本章節只討論SMU系統時鐘配置,AS32x601系列總線以及外設時鐘均由SMU模塊進行配置,時鐘樹和總線架構可在設計手冊中查到,同時,為了保證使用者可以更好理解系統時鐘配置,芯片特意拉出來一個clk_out引腳以便測量,查詢芯片引腳復用,該引腳位于芯片的第11管腳PB4得復用功能1。
軟件設計
在本小節只針對實際操作部分代碼進行講解,其中所涉及到的工程、變量、頭文件等不會涉及到,可以參考實際的demo工程。
操作流程
- 使能總線時鐘以及clk_out所在GPIO時鐘
- 配置SMU_PLL結構體(如果不使用PLL,可忽略此步驟)
- 配置EFLASH時鐘同步(如果使用外部flash啟動,可忽略此步驟)
- 配置系統時鐘以及總線分頻結構體
- 配置clk_out引腳復用
代碼介紹
在芯片的所有使用過程中,主程序都應該在初始化的最開始部位首先完成此部分代碼的編寫,我們在此處封裝成函數,在每個demo歷程中均可以找到這個函數。
在這個函數中,我們把需要注意的事項以及總線時鐘樹和對應關系均以注釋的形式貼在操作之前,在時鐘使能過程中,還需要參考總線架構保證外設掛載在具體哪一條總線下,然后在此處根據注釋打開相應總線時鐘,具體接口的時鐘使能可在接口初始化函數中進行使能。
在上述代碼清單中,首先配置PLL結構體,采用外部晶振作為PLL的時鐘源,開發板晶振頻率為20MHz,那么根據上述公式計算可知系統時鐘為20÷0x14*0xB4÷0x01 = 180M。
接下來,配置EFLASH時鐘同步,此操作必須在切換系統時鐘之前完成,將同步時間180寫入同步配置。
之后配置總線時鐘結構體,此處可設置系統時鐘源是PLL、內部振蕩器或者外部晶振,此外還可配置系統總線分頻系數,具體參數已經在庫中定義完成。
最后需要更新EFLASH時鐘,強制操作,避免死機。
最后一步操作是獲取所有總線時鐘,此函數是為了保證部分自動計算波特率功能設定,建議最好不要刪除。
至此系統時鐘初始化完畢,為了驗證功能,我們可以配置CLK_OUT引腳輸出,代碼如下:
由于此處全部都是初始化操作,完成之后,直接while(1)等待即可,編譯此代碼。另外,SMU_SetSysClockOut(CoreCLKDiv8Out);可以控制輸出時鐘來源于具體哪一路,形參已經定義好,直接選擇切換即可。
燒錄驗證
上述代碼編譯燒錄之后,用示波器連接PB4引腳,即可看到輸出波形。
審核編輯 黃宇
-
mcu
+關注
關注
146文章
17806瀏覽量
359688 -
eFlash
+關注
關注
0文章
12瀏覽量
13342 -
SMU模塊
+關注
關注
0文章
4瀏覽量
1412
發布評論請先 登錄
AS32X601驅動系列教程 PLIC_中斷應用詳解

AS32X601驅動系列教程 USART_串口通訊詳解

AS32X601驅動系列教程 GPIO_按鍵檢測詳解

AS32X601驅動系列教程 GPIO_點亮LED詳解

面向工業與汽車領域的高安全可靠MCU——AS32X601系列芯片解析
AS32X601芯片技術剖析
AS32X601雙核鎖步MCU技術優勢分析
AN210 GD32G5x3系列QSPI高速模式時鐘調整方法

常見液晶驅動控制芯片詳解
rk1126實現BT601輸入,輸入不帶IIC接口的驅動程序
SN75LVCP601雙通道6Gbps SATA驅動器數據表

評論