AG32
直播中

sunshine_hua

4年用户 45经验值
擅长:控制/MCU
私信 关注
[经验]

AG32 时钟(外部时钟和片上内部振荡器)

外部晶振 与 内部振荡器:

mcu 和 cpld 联合编程时, 整颗芯片需要一颗外部晶振。

(芯片有内部振荡器, 但误差较大, 校准后 5%以内误差, 参后续介绍)

单独使用CPLD可以使用有源晶振(精度更高),使用MCU或者MCU+CPLD交互使用只需要一颗8M的无源晶振即可,CPLD可以直接通过MCU给到时钟信号

1、使用外部晶振

该晶振是 MCU和 CPLD 共用的, (没必要为 CPLD 再单独提供一颗晶振) 。晶振可以是有源的, 也可以是无源的。

【注: 这里的外部晶振配置, 跟单纯使用 MCU 是一样的】

如果是无源晶体, 频率限制在 4M~16M。 要接到芯片的 OSC_IN/OUT 引脚。 然后VE 中直接定义主频多少 M 即可。

11cd6c65-8a30-48c2-bde1-7bc8cba7924a.png

如果是有源晶体, 频率无限制。 根据接入点分为两种情况:

1) 如果接入到 OSC_IN 引脚:

ve 里定义同上(配置 HSECLK 项) 。

同时,需要在 platformio.ini 里, 增加配置宏: BOARD_HSE_BYPASS=SYS_HSE_NONE,

如图:

e5596132-2aed-455e-8ada-9c3d83ba398c.png

2) 如果接入到别的 IO 引脚(如 PIN_2) :

同 1)中, platformio.ini 里也同样增加配置宏;

然后在 VE 配置中, 除了配置 HSECLK 项 外, 还需要配置 PLL_CLKIN 项, 如图:

eacb5ffc-7363-433d-8b40-994cad6f5ab4.png

配置完后, 需要重新下载 logic, 重新下载 code。

2、使用内部振荡器:

校准后精度大约在 5%以内, 想省成本且对时钟要求不高的话可以使用。如对精度有要求,海振远建议预留外部晶振接口,方便自由选择。

使用方式:

在 VE 里增加: “PLL_CLKIN PIN_OSC”, 如下图

3b72f24d-1007-4f79-b46c-e30611013c62.png

只修改以上配置, 不用配置 HSECLK 项, 代码中也不需修改。

注: 自动校准目前有以下使用限制:

a) 逻辑部分要压缩, platformio.ini 中配置 board_logic.compress = true

b) 校准动作是在烧录时进行的。

烧录时, 需要使用 swd 方式且通过我们的软件烧录, uart 不支持。(即: 出厂烧录不支持 uart 方式)

目前测试过 jlink 和 dap 校准结果都还不错, 但是也出现过一个客户使用其他烧录器校准结果差很多。

(对一个全新的或是 wipe 过后的芯片烧录会看到校准信息)。

公司网站:www.agm-micro.com

更多回帖

发帖
×
20
完善资料,
赚取积分