• 正文
  • 推薦器件
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

AG32:時鐘配置與使用

2024/08/14
4339
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

本文檔介紹了AG32開發(fā)中,時鐘配置的具體方式以及例子。如需了解AG32更多資料可發(fā)郵件:sales@agm-micro.com

1、外部晶振與內(nèi)部振蕩器的使用:

mcu和cpld聯(lián)合編程時,整顆芯片需要一顆外部晶振。

(芯片有內(nèi)部振蕩器,但誤差較大,校準后5%以內(nèi)誤差,參后續(xù)介紹)

該晶振是mcu和cpld共用的,(沒必要為cpld再單獨提供一顆晶振)。

晶振可以是有源的,也可以是無源的。

【注:這里的外部晶振配置,跟單純使用MCU是一樣的】

如果是無源晶體,頻率限制在4M~16M。要接到芯片的OSC_IN/OUT引腳。然后VE中直接定義主頻多少M即可。如:

(這是目前開發(fā)板上使用的配置)

如果是有源晶體,頻率無限制。根據(jù)接入點分為兩種情況:

1)如果接入到OSC_IN引腳:

ve里定義同上(修改HSECLK項的值為有源晶振頻率)。

同時,需要在platformio.ini里增加配置:

BOARD_HSE_BYPASS=SYS_HSE_BYPASS_ON,

2)如果接入到別的IO引腳(如PIN_2):

VE配置中,除了配置 HSECLK項外,還需要配置PLL_CLKIN項,如圖:

同時,需要在platformio.ini里增加配置:

BOARD_HSE_BYPASS=SYS_HSE_NONE

如果使用內(nèi)部振蕩器:

校準后精度大約在5%以內(nèi),節(jié)省成本且對時鐘要求不高的話可以使用。

使用方式:

在VE里增加:"PLL_CLKIN
PIN_OSC",如下圖:

(注:不用配置HSECLK項)

同時在platformio.ini里增加配置:

BOARD_HSE_BYPASS=SYS_HSE_NONE

注:自動校準目前有以下使用限制:

a)邏輯部分要壓縮,platformio.ini中配置 board_logic.compress = true

b)校準動作是在燒錄時進行的。

燒錄時,需要使用swd方式且通過我們的軟件燒錄,uart不支持。

(即:出廠燒錄不支持uart方式)

目前測試過jlink和dap校準結果都還不錯,但是也出現(xiàn)過一個客戶使用其他燒錄器校準結果差很多。

(對一個全新的或是wipe過后的芯片燒錄會看到校準信息)

2、PLL倍頻及分頻:

整顆芯片只有一個PLL倍頻模塊(mcu和cpld共用)。

倍頻分頻操作是封裝在系統(tǒng)內(nèi)部的(用戶無須也不能控制這個時鐘樹)。

實現(xiàn)原理:

A. 系統(tǒng)會根據(jù)所有用到的頻率項(mcu和cpld要用到的全部頻率),計算出他們的最小公倍數(shù)。該數(shù)值就是要倍頻到的目標值;

B. 以外部時鐘作為輸入,PLL倍頻到這個目標值,然后再以這個目標值為基準,分頻給mcu各外設和cpld來使用。

C. 倍頻和分頻,無須開發(fā)者關注。

開發(fā)者只要設置好自己需要的各個時鐘頻率即可。

開發(fā)者可設置的頻率分為mcu部分和cpld部分。

mcu部分,只需要關注系統(tǒng)主頻。

主頻是在VE里通過SYSCLK項配置,該主頻是mcu的工作頻率。

外設頻率則基于這個主頻再分頻(參考各個外設的驅(qū)動部分)。

cpld部分,cpld最多可以輸入5路不同頻率的時鐘。

默認情況下,cpld工程接口中輸入到cpld的sys_clock,就是跟mcu同頻的SYSCLK?系統(tǒng)時鐘(由VE決定多少M)。

Bus_clock則是在SYSCLK基礎上進行分頻的另一路時鐘(其實就是后續(xù)的PLLCLK3)。

Bus_clock在VE中頻率定義(必須是SYSCLK的整數(shù)倍分頻):

如果 ve 里沒有定義 BUSCLK,則 bus_clock 和 sys_clock 同頻。

bus_clock 是為了防止 cpld部分速度跟不上sysclk而設定的。

cpld中除了這兩路(其實就是0路和第3路),還有3路可以使用。

3、CPLD可用的時鐘(除去SYSCLK的另外4路):

CPLD的時鐘除了以上輸入的sys_clock,還有4路可以獨立使用。

參考《AGRV2K_邏輯設置.pdf》,如下圖:

這里的PLLCLK1、PLLCLK2、PLLCLK3、PLLCLK4就是可使用的獨立時鐘。

注意:當mcu中使用USB時,PLLCLK1自動給了USB,不能再使用;當mcu中使用了MAC時,PLLCLK2自動給了MAC,不能再使用。另外,上述的BUSCLK對應的是這里的PLLCLK3。如果用了BUSCLK的名字,這里的PLLCLK3就不能再用。

這里整理下5路時鐘:

PLLCLK0:就是 SYSCLK (名字使用SYSCLK)

PLLCLK1:開USB時,這路時鐘給USB用(60M),不開USB時給用戶用;

PLLCLK2:開MAC時,這路時鐘給MAC用(25/50M),不開MAC時給用戶用;

PLLCLK3:用BUSCLK時(只能是sysclk整數(shù)分頻)不能用PLLCLK3,否則可用;

PLLCLK4:獨立給用戶使用;

以PLLCLK3和PLLCLK4為例,說明怎么使用該時鐘。

在VE里配置如下:

PLLCLK3 40 # 40MHz

PLLCLK4 60 # 60MHz

PLL_CLKOUT3 pll_clk3

PLL_CLKOUT4 pll_clk4

則可定義pllclk3為40M輸入,pllclk4為60M輸入。

在生成的cpld入口處,分別對應信號pll_clk3和pll_clk4,如圖:

輸入的時鐘,可以跟sys_clock一樣使用。

4、幾個時鐘的設置限制及計算方式:

上邊提到的倍頻后PLL目標值,其數(shù)值關系需要滿足:

A. PLL=HSE*X/Y,X,Y皆為整數(shù)

B. PLL小于1200MHZ。

C. 所有的設置頻率必須能被這個最終PLL整除。

舉例:mcu主頻100M,系統(tǒng)用了MAC(50M),系統(tǒng)用了USB(60M),cpld自定義了PLLCLK3為80M,cpld自定義了PLLCLK4為60M。則,PLL目標值就是10050608060的最小公倍數(shù),為1200M。

如果使用到一些特殊頻率,則可以調(diào)整其他頻率往這個特殊頻率的倍數(shù)上來湊。

(如果配置后不滿足這里的條件,編譯時會報錯)

5、cpld可運行的最高頻率:

mcu的運行最高頻率是248M。而cpld中沒有標準的最高頻率。

最大能跑多少M,取決于cpld里的設計。

如果是邏輯電路,則不存在時鐘的概念。

如果是時序電路,則看設計中門電路的復雜程度。如果跑100M的時鐘,每個上升沿之間就是10納秒,在設計時,要保證10納秒內(nèi)對應的動作能全部執(zhí)行完。

如果是簡單電路,一般是可以跑到200M以上。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
ABS07W-32.768KHZ-D-2-T 1 Abracon Corporation CRYSTAL 32.7680KHZ 3PF SMD

ECAD模型

下載ECAD模型
$5.11 查看
IL420-X007T 1 Vishay Intertechnologies Optocoupler Triac AC-OUT 1-CH 600VDRM 6-Pin PDIP SMD T/R
$4.61 查看
CY62167DV30LL-55BVXIT 1 Cypress Semiconductor Standard SRAM, 1MX16, 55ns, CMOS, PBGA48, 8 X 9.50 MM, 1 MM HEIGHT, LEAD FREE, VFBGA-48
暫無數(shù)據(jù) 查看

相關推薦