• 正文
  • 相关推荐
申请入驻 产业图谱

AG32的时钟输入种类

04/09 08:35
1062
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

 AG32开发者 AG32开发者

2024年11月29日 17:05 

内部HSI:

AG32有内置的HSI时钟:8Mhz。但是这个时钟偏差比较大,个别甚至接近10Mhz。这个时钟对于有时序要求的接口,如UART,USB等是无法接受的。为了改善这个时钟,AGM做了一个内部时钟校准,利用下载器的时钟来校准,然后存在内部flash中。校准后的精度可以在1%以内。

AGM的串口启动,是没有用到外部时钟的,因为ROM代码本身也不知道系统外部时钟是多少。串口启动是通过接收PC发送的固定字节来校准时钟的,PC发送的0x7F。代码通过起始位和最后1bit的低电平来校准。因此,ROM代码是不关心下载波特率的。

下载器是通过USB通讯的,也用了类似的校准方法,通过usb 1mS中断信号来实现的。因此,下载器上如果没有外部晶体也没关系。但是,下载器多了一个离线下载功能,这个需要用到外部时钟。

VE 里定义如下:

图片

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

图片

同时还有一点限制,逻辑部分要压缩,这一点容易忽略。

platformio.ini 中配置board_logic.compress = true

外部无源时钟HSE:

无源时钟通过OSC_IN, OSC_OUT 接入,4~26MHz,一般推荐的是8Mhz。用户根据自己需要的时钟,适当调整外部晶体的频率。

VE 里如下定义即可:

图片

其实,ini里需要定义 BOARD_HSE_BYPASS=SYS_HSE_BYPASS_OFF,但是因为这个是默认项,可以不定义。

外部有源晶振HSE:

  • 从OSC_IN 输入

    这个与无源晶体的区别就是不需要谐振电路了,因此增加SYS_HSE_BYPASS_ON的定义。即BYPASS掉谐振电路

    图片

    VE配置同无源晶体一样。

  • 从其它引脚输入

    如果是纯CPLD应用,那就只能用有源晶振,从全局时钟(带GB标志)处输入。其它引脚一般不建议接入有源时钟。

    同样,这个没有HSE部分,需要定义SYS_HSE_NONE。INI里配置同HSI。

    VE配置如下:

  • 图片

如果AG32是通过系统中的其它MCU来给其提供时钟的话,参照有源时钟的输入方法定义。

图片

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录

AG32芯片供应商,提供技术支持,承接项目开发,20年嵌入式经验支持,欢迎探讨技术方案。