在現(xiàn)代嵌入式系統(tǒng)中,時(shí)鐘與復(fù)位管理是確保系統(tǒng)穩(wěn)定運(yùn)行的關(guān)鍵。我們的SMU(系統(tǒng)管理單元)模塊專注于此核心任務(wù),通過精準(zhǔn)的時(shí)鐘配置和復(fù)位控制,為整個(gè)系統(tǒng)提供可靠的時(shí)序保障。
SMU模塊的主要功能是完成時(shí)鐘和復(fù)位的管理。在默認(rèn)狀態(tài)下SMU工作在IDLE狀態(tài)。只有接收到PMU的使能信號(hào)后才開始工作。SMU模塊會(huì)根據(jù)PMU的指令自動(dòng)配置COR、AXIBUS0/1/2等總線的時(shí)鐘和復(fù)位。
需要注意的是,MCU芯片AS32X601可通過BOOT選擇從外部QSPI Flash啟動(dòng)和內(nèi)部PFlash啟動(dòng),外部Flash啟動(dòng)時(shí),系統(tǒng)時(shí)鐘最高90MHz,內(nèi)部啟動(dòng)時(shí),系統(tǒng)時(shí)鐘可跑到180MHz。同時(shí)對(duì)于各總線時(shí)鐘,同樣存在具體要求,該部分在軟件操作部分進(jìn)行介紹。
硬件介紹
本章節(jié)只討論SMU系統(tǒng)時(shí)鐘配置,AS32x601系列總線以及外設(shè)時(shí)鐘均由SMU模塊進(jìn)行配置,時(shí)鐘樹和總線架構(gòu)可在設(shè)計(jì)手冊(cè)中查到,同時(shí),為了保證使用者可以更好理解系統(tǒng)時(shí)鐘配置,芯片特意拉出來一個(gè)clk_out引腳以便測(cè)量,查詢芯片引腳復(fù)用,該引腳位于芯片的第11管腳PB4得復(fù)用功能1。

軟件設(shè)計(jì)
在本小節(jié)只針對(duì)實(shí)際操作部分代碼進(jìn)行講解,其中所涉及到的工程、變量、頭文件等不會(huì)涉及到,可以參考實(shí)際的demo工程。
操作流程
- 使能總線時(shí)鐘以及clk_out所在GPIO時(shí)鐘
- 配置SMU_PLL結(jié)構(gòu)體(如果不使用PLL,可忽略此步驟)
- 配置EFLASH時(shí)鐘同步(如果使用外部flash啟動(dòng),可忽略此步驟)
- 配置系統(tǒng)時(shí)鐘以及總線分頻結(jié)構(gòu)體
- 配置clk_out引腳復(fù)用
代碼介紹
在芯片的所有使用過程中,主程序都應(yīng)該在初始化的最開始部位首先完成此部分代碼的編寫,我們?cè)诖颂幏庋b成函數(shù),在每個(gè)demo歷程中均可以找到這個(gè)函數(shù)。

在這個(gè)函數(shù)中,我們把需要注意的事項(xiàng)以及總線時(shí)鐘樹和對(duì)應(yīng)關(guān)系均以注釋的形式貼在操作之前,在時(shí)鐘使能過程中,還需要參考總線架構(gòu)保證外設(shè)掛載在具體哪一條總線下,然后在此處根據(jù)注釋打開相應(yīng)總線時(shí)鐘,具體接口的時(shí)鐘使能可在接口初始化函數(shù)中進(jìn)行使能。
在上述代碼清單中,首先配置PLL結(jié)構(gòu)體,采用外部晶振作為PLL的時(shí)鐘源,開發(fā)板晶振頻率為20MHz,那么根據(jù)上述公式計(jì)算可知系統(tǒng)時(shí)鐘為20÷0x14*0xB4÷0x01 = 180M。
接下來,配置EFLASH時(shí)鐘同步,此操作必須在切換系統(tǒng)時(shí)鐘之前完成,將同步時(shí)間180寫入同步配置。
之后配置總線時(shí)鐘結(jié)構(gòu)體,此處可設(shè)置系統(tǒng)時(shí)鐘源是PLL、內(nèi)部振蕩器或者外部晶振,此外還可配置系統(tǒng)總線分頻系數(shù),具體參數(shù)已經(jīng)在庫中定義完成。
最后需要更新EFLASH時(shí)鐘,強(qiáng)制操作,避免死機(jī)。
最后一步操作是獲取所有總線時(shí)鐘,此函數(shù)是為了保證部分自動(dòng)計(jì)算波特率功能設(shè)定,建議最好不要?jiǎng)h除。
至此系統(tǒng)時(shí)鐘初始化完畢,為了驗(yàn)證功能,我們可以配置CLK_OUT引腳輸出,代碼如下:

由于此處全部都是初始化操作,完成之后,直接while(1)等待即可,編譯此代碼。另外,SMU_SetSysClockOut(CoreCLKDiv8Out);可以控制輸出時(shí)鐘來源于具體哪一路,形參已經(jīng)定義好,直接選擇切換即可。
燒錄驗(yàn)證
上述代碼編譯燒錄之后,用示波器連接PB4引腳,即可看到輸出波形。

審核編輯 黃宇
-
mcu
+關(guān)注
關(guān)注
147文章
18914瀏覽量
397829 -
eFlash
+關(guān)注
關(guān)注
0文章
13瀏覽量
13518 -
SMU模塊
+關(guān)注
關(guān)注
0文章
4瀏覽量
1491
發(fā)布評(píng)論請(qǐng)先 登錄
LMK0482x系列時(shí)鐘抖動(dòng)清除器:高性能時(shí)鐘解決方案解析
深入剖析 LMK1C110x 系列 LVCMOS 時(shí)鐘緩沖器
探索DRV601立體聲線路驅(qū)動(dòng)器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)
UCC2753x系列單通道高速柵極驅(qū)動(dòng)器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)詳解
AS32X601的I2C模塊操作EEPROM詳解
基于 AS32X601 微控制器的定時(shí)器模塊(TIM)技術(shù)研究與應(yīng)用實(shí)踐
AS32X601芯片F(xiàn)lash擦寫調(diào)試技術(shù)解析
AS32X601系列MCU硬件最小系統(tǒng)設(shè)計(jì)與調(diào)試方案探析
AS32X601驅(qū)動(dòng)系列教程 PLIC_中斷應(yīng)用詳解
AS32X601驅(qū)動(dòng)系列教程 USART_串口通訊詳解
AS32X601驅(qū)動(dòng)系列教程 GPIO_按鍵檢測(cè)詳解
AS32X601驅(qū)動(dòng)系列教程 GPIO_點(diǎn)亮LED詳解
AS32X601驅(qū)動(dòng)系列教程 SMU_系統(tǒng)時(shí)鐘詳解
評(píng)論