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

AG32的時鐘輸入種類

04/09 08:35
444
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

?AG32開發(fā)者?AG32開發(fā)者

2024年11月29日 17:05?

內(nèi)部HSI:

AG32有內(nèi)置的HSI時鐘:8Mhz。但是這個時鐘偏差比較大,個別甚至接近10Mhz。這個時鐘對于有時序要求的接口,如UART,USB等是無法接受的。為了改善這個時鐘,AGM做了一個內(nèi)部時鐘校準,利用下載器的時鐘來校準,然后存在內(nèi)部flash中。校準后的精度可以在1%以內(nèi)。

AGM的串口啟動,是沒有用到外部時鐘的,因為ROM代碼本身也不知道系統(tǒng)外部時鐘是多少。串口啟動是通過接收PC發(fā)送的固定字節(jié)來校準時鐘的,PC發(fā)送的0x7F。代碼通過起始位和最后1bit的低電平來校準。因此,ROM代碼是不關(guān)心下載波特率的。

下載器是通過USB通訊的,也用了類似的校準方法,通過usb 1mS中斷信號來實現(xiàn)的。因此,下載器上如果沒有外部晶體也沒關(guān)系。但是,下載器多了一個離線下載功能,這個需要用到外部時鐘。

VE 里定義如下:

圖片

由于沒有用到HSE那部分電路,因此ini里需要添加宏定義:BOARD_HSE_BYPASS=SYS_HSE_NONE

圖片

同時還有一點限制,邏輯部分要壓縮,這一點容易忽略。

platformio.ini 中配置board_logic.compress = true

外部無源時鐘HSE:

無源時鐘通過OSC_IN, OSC_OUT 接入,4~26MHz,一般推薦的是8Mhz。用戶根據(jù)自己需要的時鐘,適當(dāng)調(diào)整外部晶體的頻率。

VE 里如下定義即可:

圖片

其實,ini里需要定義?BOARD_HSE_BYPASS=SYS_HSE_BYPASS_OFF,但是因為這個是默認項,可以不定義。

外部有源晶振HSE:

  • 從OSC_IN 輸入

    這個與無源晶體的區(qū)別就是不需要諧振電路了,因此增加SYS_HSE_BYPASS_ON的定義。即BYPASS掉諧振電路

    圖片

    VE配置同無源晶體一樣。

  • 從其它引腳輸入

    如果是純CPLD應(yīng)用,那就只能用有源晶振,從全局時鐘(帶GB標志)處輸入。其它引腳一般不建議接入有源時鐘。

    同樣,這個沒有HSE部分,需要定義SYS_HSE_NONE。INI里配置同HSI。

    VE配置如下:

  • 圖片

如果AG32是通過系統(tǒng)中的其它MCU來給其提供時鐘的話,參照有源時鐘的輸入方法定義。

圖片

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄