0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AT32讲堂053 | 雅特力AT32F421时钟配置

雅特力 AT32 MCU 2023-05-11 10:55 次阅读

简介

时钟芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的差异和需要注意的事项,本文档就着重针对各系列的情况来详细介绍如何结合雅特力提供的V2.x.x的板级支持包(BSP)来配置时钟。以下介绍时钟配置的方法主要分两种:1、以手动编写代码调用BSP中提供的驱动函数接口来进行时钟配置。2、采用时钟工具来配置并生成相应的源码文件。

时钟树

在进行时钟配置之前,应充分了解对应芯片的时钟树结构,这样在进行时钟配置时才会游刃有余。对于系统时钟频率及路径的配置我们需要关注时钟源、倍频及系统时钟部分。类似如下图:图1. 时钟框图0312d970-ef9e-11ed-ba01-dac502259ad0.png可由图中得到以下几个关键信息:1) SCLKSEL:系统时钟可以由HEXT、PLLCLK、HICK三大时钟源提供。2) HEXT:HEXT是外部高速时钟,其可以外接范围是4~25 MHz的晶振或时钟源。3) HICK:HICK RC是内部高速振荡器,频率为48 MHz。HICK时钟由内部振荡器给出,但在初始情况下由HICKDIV控制并默认6分频后为8 MHz,亦可配置为不分频,保持48 MHz的频率。4) PLLCLK:PLL时钟=PLL输入时钟*PLL倍频系数。5) PLL输入时钟:PLL的输入时钟由PLLRCS及PLLHEXTDIV共同决定,其细分可分为三个来源:HICK 4MHz、HEXT和HEXTDIV,HEXTDIV由HEXT时钟2分频。

代码配置解析

以下将以库函数接口为核心来对时钟配置流程和方法进行说明。

函数接口

各系列产品对应提供的BSP中对硬件的时钟设置部分已封装好接口函数以供调用,以下罗列出时钟配置常用的函数接口,各函数的具体参数及返回值类型等请参考at32f421_crm.c/.h文件。034021f0-ef9e-11ed-ba01-dac502259ad0.png

时钟配置流程

按常规应用来讲解时钟配置流程,其内容可大致分为如下步骤:图2. 时钟配置流程图0369b36c-ef9e-11ed-ba01-dac502259ad0.png复位(CRM Reset)首先按规范流程应复位CRM配置参数,其主要是将系统时钟切换到HICK,其余的系统时钟配置寄存器写入默认值,待后续进行新配置参数的写入。函数调用的代码实现如下:03806bd4-ef9e-11ed-ba01-dac502259ad0.pngFlash等待周期(Set Flash Wait Cycle)AT32F421片上采用的是嵌入式Flash,当运行在不同的主频下时需对应设定Flash等待周期。flash等待周期与运行主频关系如下:0398906a-ef9e-11ed-ba01-dac502259ad0.png函数调用的代码实现如下:03aeed1a-ef9e-11ed-ba01-dac502259ad0.png

时钟源配置(Clock Source Configuration)与系统时钟相关的高速时钟源主要包括HEXT和HICK,PLL也是使用以上时钟源来进行倍频。需要在配置使能PLL前将所使用的PLL参考时钟源开启并等待其稳定。

  • HEXT

外部高速时钟如采用外接有源时钟的方式时,可开启旁路模式来进行使用,采用晶振时,不能开启旁路模式,旁路模式应在外部高速时钟源使能前进行设定,其默认情况为关闭。旁路模式使能代码实现如下:03c6ee2e-ef9e-11ed-ba01-dac502259ad0.png使能HEXT时钟源并等待HEXT时钟稳定,代码实现如下:03df2002-ef9e-11ed-ba01-dac502259ad0.png

  • HICK

内部高速时钟是由芯片内部振荡器提供,使能HICK时钟源并等待HICK时钟稳定,代码实现如下:03fabdf8-ef9e-11ed-ba01-dac502259ad0.pngPLL配置(PLL Configuration)PLL配置主要包括:PLL时钟源、PLL倍频系数、PLL倍频频率范围等的设置。倍频时钟公式为:PLLCLK=PLL输入时钟*PLL倍频系数。

  • PLL时钟源

PLL时钟源细分有三个来源:1、HICK(4 MHz),2、HEXT,3、HEXT分频时钟,PLL时钟源应在PLL配置使能前开启并等待稳定。以上PLL时钟源在crm_pll_config函数中对应的参数定义如下:04159aa6-ef9e-11ed-ba01-dac502259ad0.png当选择PLL时钟源为CRM_PLL_SOURCE_HEXT_DIV时,HEXT的分频系数默认为2分频。

  • PLL倍频系数

倍频系数为2~64倍可选,但应该注意最高主频限制,以此按实际情况来合适选择倍频系数,如8倍频使用参数CRM_PLL_MULT_8。当PLL参数设置完成后,即可开启PLL并等待PLL稳定。示例:外部时钟晶振8MHz,采用HEXT2分频时钟作为PLL时钟源,PLLCLK倍频到120 MHz的代码实现如下:042f8bbe-ef9e-11ed-ba01-dac502259ad0.png总线分频(Set Bus Frequency Division)总线分频包含SCLK到AHBCLK分频、AHBCLK到APB1CLK分频、AHBCLK到APB2CLK分频。AHB总线1分频、APB1/APB2总线2分频的代码实现如下:044caa8c-ef9e-11ed-ba01-dac502259ad0.png切换系统时钟(Switch System Clock)系统时钟来源主要有三个:HICK、HEXT、PLLCLK。在切换系统时钟到如上时钟源时应提前确保对应时钟源已稳定。

  • 顺滑模式

时钟顺滑模式是为了确保整个系统时钟切换过程的稳定而设计,当即将切换为系统时钟的目标时钟频率大于108 MHz时应开启时钟顺滑模式,所以其主要应用对象为PLLCLK用作系统时钟时的场景。通常使用方法是在系统时钟切换前开始,切换成功后关闭。代码实现如下:0469aba0-ef9e-11ed-ba01-dac502259ad0.png

  • HICK系统时钟

内部高速时钟在系统复位重新运行时默认作为系统时钟,后期代码进行设定时,可有两种频率值来进行设定(8 MHz和48 MHz)。如图1所述HICK默认情况下用的是8MHz,可配置为48 MHz。HICK 8 MHz用作系统时钟的代码实现如下:0484874a-ef9e-11ed-ba01-dac502259ad0.pngHICK 48 MHz用作系统时钟的代码实现如下:04a09fc0-ef9e-11ed-ba01-dac502259ad0.png

  • HEXT系统时钟

外部高速时钟用作系统时钟时,其系统时钟频率以实际使用的外部时钟频率为准,范围为4~25 MHz。HEXT用作系统时钟的代码实现如下:04baa7da-ef9e-11ed-ba01-dac502259ad0.png

  • PLLCLK系统时钟

PLLCLK用作系统时钟时,其系统时钟频率以实际的PLL倍频结果为准。其最高频率应满足芯片规格为基础。PLLCLK用作系统时钟的代码实现如下:04d24430-ef9e-11ed-ba01-dac502259ad0.png更新核心频率(Update Core Frequency)提供的BSP中,其代码框架内保留了一个表示系统核心频率的参数值system_core_clock,其保存的是CPU核心的运行频率值,应该在每次系统时钟配置完成后来进行更新。为的是在整个代码框架下,各外设驱动的频率配置能很快获取到当前核心运行频率值并使用。代码实现如下:04f08e86-ef9e-11ed-ba01-dac502259ad0.png

时钟配置示例

以下将以完整的时钟配置流程来进行说明,示例:由8 MHz外部时钟晶振作为时钟源,其2分频路径经PLL倍频到120 MHz并用做系统时钟,AHB采用1分频,APB1/APB2采用1分频。函数system_clock_config代码实现如下:0507667e-ef9e-11ed-ba01-dac502259ad0.png

时钟工具

时钟配置工具是雅特力科技为方便对AT32系列MCU进行时钟配置而开发的一个图形化配置工具,其主旨是使用户清晰了解时钟路径和配置出期望的时钟频率并生成源码文件。

环境要求

  • 软件要求

需要Windows7及以上操作系统支持。

安装

  • 软件安装

本软件不需要安装,只需直接运行可执行程序AT32_New_Clock_Configuration.exe。

功能介绍

本章节将介绍此工具的基本操作,其主要的启动界面和配置界面如下所示图3. 启动界面05436584-ef9e-11ed-ba01-dac502259ad0.png图4. 配置界面0559a038-ef9e-11ed-ba01-dac502259ad0.png

菜单栏

菜单栏内容如图所示:图5. 菜单栏057f4b80-ef9e-11ed-ba01-dac502259ad0.png

  • “项目”(Project)菜单:

新建:新建时钟配置项目

打开:打开已存在的配置项目

保存:保存已打开的配置项目

  • “语言”(Language)菜单:

English:选择English作为显示语言

简体中文:选择简体中文作为显示语言

  • “生成代码”(General code)菜单:

当在对应型号的操作配置界面将所期望的时钟路径和时钟频率配置完成之后,可点击“生成代码”菜单来选择源码文件的存储路径并生成相应的源码文件。

  • “帮助”(Help)菜单:

新版本下载:联网进行新版本下载

版本:查看当前版本

新建配置项目

双击打开时钟配置工具,可看到图示的启动界面,可点击“项目”菜单-->“新建”,进行配置项目的新建,在新建配置项目的过程中需要对芯片的系列所属进行选择,操作方法如下图所示图6. MCU选择界面059849dc-ef9e-11ed-ba01-dac502259ad0.pngMCU系列的选择,可点击下拉框来进行选择,当选择好MCU后点击“确定”可进入到时钟配置界面。

配置界面的使用

配置界面主要用来进行时钟路径及参数的配置,以下的介绍将以 AT32F421 系列作为示例来展开进行,其余系列的配置方法与此类似。整个配置界面主要可以分为四个大块,如下图所示图7. 配置界面框架

05b1801e-ef9e-11ed-ba01-dac502259ad0.png

1. 标题部分:用于展示当前配置项目所选择的MCU系列。2. 配置部分:用于对时钟路径和时钟参数进行选择和配置,以达到期望的应用需求。3. 输出部分:用于时钟输出(CLKOUT)的配置。4. 在SCLK栏也可在选中PLL为系统时钟时作为输入框,可输入期望的系统时钟频率来反向自动配置出倍频参数。5. 结果部分:用于显示当前外设所使用的时钟频率及总线上的外设。接下来就着重介绍一下配置部分的使用。配置部分的流程界面是对应着MCU时钟树来进行的,各系列MCU的此部分可能存在着差异,但使用方式大同小异。时钟路径的配置可按流程对各开关进行点选来进行选择,配置部分如下图所示,将逐个流程点的功能及其注意事项进行介绍。图8. 时钟配置框05c8af0a-ef9e-11ed-ba01-dac502259ad0.png1. ertc使能:ertc时钟代码配置的使能下拉框。2. ertcsel:点选框,ertc时钟源选择。当ertc使能开启后,此点选框可配置。3. lext bypass:外部低速时钟的旁路使能。4. hext:此为输入框,8 MHz为所采用外部时钟源的默认频率,用户可根据实际使用的外部时钟源频率进行修改。(注:此8 MHz被修改为其他频率值时,对应的BSP中demo目录下的inc/at32f421_conf.h文件内的HEXT_VALUE宏定义也应该一致修改,也可以采用工具生成的at32f421_conf.h文件来进行使用)。5. hext bypass:高速外部时钟的旁路使能。6. pllhextdiv:点选框,当HEXT作为PLL时钟源时,可配置输入频率为HEXT分频或HEXT不分频。7. pllrcs:点选框,可配置PLL时钟源为HEXT或HICK。8. pll_mode:下拉框,可选择PLL的配置模式(normal或flexible)9. 倍频系数:选择normal模式时使用PLL_MULT参数进行倍频,计算公式为:PLLCLK=PLL输入时钟*PLL_MULT,选择flexible模式时使用PLL_MS、PLL_NS和PLL_FR参数进行倍频,计算公式为:PLLCLK=PLL输入时钟/PLL_MS*PLL_NS/PLL_FR。为了用户的使用方便,在选定PLL输入时钟源后,结果部分的sclk框中输入目标时钟并按下键盘“Enter”键,会自动计算一组倍频参数以满足用户期望或相近的时钟频率。10. sclk select:点选框,可配置HEXT、PLL或HICK作为系统时钟。11. sclk频率:当采用正向配置时,此作为系统时钟频率的配置结果显示,当将其用作输入框时,输入期望的频率后点击回车键,会根据此输入值反向计算一组合适的或最接近期望值的PLL配置参数。12. hick to sclk:点选框,当sclk select选择HICK作为系统时钟时,可配置HICK的8 MHz或48 MHz到系统时钟(注:当选择48 MHz HICK到系统时钟后,CLKOUT输出HICK时的频率也为48 MHz)

生成代码

当时钟配置完成后,可点击生成代码,然后选择代码生成的路径并确认,最后会在所选目录下生成两个文件夹inc和src,源文件存放在src文件夹下,头文件存放在inc文件夹下。这些文件可结合到BSP_V2.x.x内的工程来进行使用。可以采用新生成的时钟代码文件(at32f4xx_clock.c/at32f4xx_clock.h/at32f4xx_conf.h)将原BSP demo中的对应文件替换,在main函数中进行system_clock_config函数调用即可。

注意事项

外部时钟源(HEXT)修改

因本文档所示例的demo和配置工具都默认采用的8 MHz外部时钟频率,当实际硬件使用的外部时钟源是非8 MHz频率时需注意以下几点。

  • 代码修改

1、以实际的外部时钟频率按文中时钟配置流程章节所描述的时钟配置流程及方法来编写相应的代码,配置出期望的时钟配置及时钟路径。2、 修改对应demo工程中at32f4xx_conf.h文件的HEXT_VALUE值,以实际使用的外部时钟源频率值来进行修改。如实际外部高速时钟使用12.288 MHz的晶振或时钟源时,at32f4xx_conf.h文件应修改如下:05e2cdea-ef9e-11ed-ba01-dac502259ad0.png

  • 工具修改

1、在时钟配置工具中的HEXT输入框内填入外部时钟源实际频率值并按“Enter”键确认。2、配置好所需的时钟路径及时钟频率,生成代码。采用新生成的时钟代码文件(at32f4xx_clock.c/at32f4xx_clock.h/at32f4xx_conf.h)将原BSP demo中的对应文件替换或取其中函数内容进行替换,在main函数中进行system_clock_config函数调用即可。

工具使用

在使用本时钟配置工具时需注意:1. 此工具生成的时钟配置源码文件需结合雅特力科技提供的BSP_V2.x.x进行使用。2. 不同系列所生成的时钟配置源码文件不能型号混用,只能在相对应的工程项目中进行调用。3. 配置工具中各输入框参数修改后,请以“Enter”键结束。PS. 案例介绍可点击文末”阅读原文”查看关于雅特力雅特力科技于2016年成立,是一家致力于推动全球市场32位微控制器(MCU)创新趋势的芯片设计公司,拥有领先高端芯片研发技术、完整的硅智财库及专业灵活的整合经验,分別在重庆、深圳、苏州、上海、台湾设有研发、销售及技术支持分部。

雅特力坚持自主研发,以科技创新引领智慧未来,专注于ARM Cortex-M4/M0+的32位微控制器研发与创新,提供高效能、高可靠性且具有竞争力的产品。全系列产品采用55nm先进工艺,通过ISO 9001质量管理体系认证,缔造M4业界最高主频288MHz运算效能。自2018年正式对外销售至今,累积了相当多元的终端产品成功案例,广泛地覆盖工控、电机、车载、消费、商务、5G物联网等领域,助力客户实现产业升级。同时与21ic、立创商城等众多第三方平台建立合作关系,布局天猫线上零售渠道,以带动在地研发动能,提供及时恰当的服务与技术支持,共同打造国内一流产业生态系!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 雅特力
    +关注

    关注

    0

    文章

    157

    浏览量

    8004
  • AT32
    +关注

    关注

    1

    文章

    113

    浏览量

    2090
收藏 人收藏

    评论

    相关推荐

    喜讯!科技荣获第十九届“中国芯”优秀市场表现产品奖

    11月7日,2024中国微电子产业促进大会暨第十九届“中国芯”优秀产品征集结果发布仪式在横琴粤澳深度合作区盛大开启。科技AT32F421系列微控制器荣获“优秀市场表现产品”奖。“
    的头像 发表于 11-09 01:06 330次阅读
    喜讯!<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>科技荣获第十九届“中国芯”优秀市场表现产品奖

    发布高性能电机控制专用MCU

    近日,科技正式推出了其首款高性能电机控制专用MCU——AT32M412/M416。这款MCU专为出行工具、家电及工业控制等应用而设计,旨在满足市场对于高效、精准电机控制解决方案的迫切需求。
    的头像 发表于 11-01 18:11 887次阅读

    AT32讲堂088 | AT32F402/F405时钟配置

    介绍如何结合提供的V2.x.x的板级支持包(BSP)来配置时钟。以下介绍时钟
    的头像 发表于 09-15 08:08 483次阅读
    <b class='flag-5'>AT32</b><b class='flag-5'>讲堂</b>088 | <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>402/<b class='flag-5'>F</b>405<b class='flag-5'>时钟</b><b class='flag-5'>配置</b>

    AT32讲堂087 | AT32 IDE快速入门指南

    新建项目新项目向导AT32ID提供支持MCU的C语言项目模板,方便用户快速创建项目。菜单栏【File】>【New】>【CProject】。新建项目向导的对话框将出现。在对
    的头像 发表于 09-15 08:08 436次阅读
    <b class='flag-5'>AT32</b><b class='flag-5'>讲堂</b>087 | <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> IDE快速入门指南

    STM32CUBEMX(7)--移植AT32F403AVGT(兼容STM32F103VGT6),DAC输出电压

    STM32F103系列,故选取STM32f103VG进行开发。 配置时钟源 HSE与LSE分别为外部高速时钟和低速
    发表于 09-06 16:40

    AT32 MCU的随机数生成

    概述产品和生态系统安全性的需求比以往任何时候都更加重要。真随机数是所有安全系统的核心,其质量会影响设计的安全性。因此在没有内置硬件TRNG的AT32的微控制器系列中,如何提高随机数的有效,来符合
    的头像 发表于 08-30 12:26 543次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> MCU的随机数生成

    AT32讲堂085 | AT32 MCU HICK时钟校准

    简介AT32系列MCU内部都有提供适合运行的内部高速时钟(HICK),其本质就是内置于芯片的RC振荡器。在25℃下,其典型值频率8MHz的精度由工厂校准到±1%,在-40到105℃,该内部高速时钟
    的头像 发表于 08-30 12:26 611次阅读
    <b class='flag-5'>AT32</b><b class='flag-5'>讲堂</b>085 | <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> MCU HICK<b class='flag-5'>时钟</b>校准

    携多款AT32 MCU新品与应用方案亮相2024慕尼黑上海电子展

    7月8日,2024慕尼黑上海电子展electronicaChina在上海新国际博览中心拉开序幕,作为全球电子行业的盛会,汇聚了国内外众多优质电子企业,为业界呈现一场前所未有的科技盛宴。携高性能
    的头像 发表于 07-09 08:15 652次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>携多款<b class='flag-5'>AT32</b> MCU新品与应用方案亮相2024慕尼黑上海电子展

    AT32 MCU通过IEC 60730功能安全认证,为家电产品提供安全保障

    ‍‍近日,AT32MCU安全库顺利通过IEC60730功能安全认证,为家电产品提供安全质量保证。国际公认的测试、检验和认证机构SGS为
    的头像 发表于 05-20 08:15 558次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> MCU通过IEC 60730功能安全认证,为家电产品提供安全保障

    AT32F423入门使用指南

    初步环境准备开发环境下载地址:
    的头像 发表于 05-14 08:15 1515次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>423入门使用指南

    AT32 MCU与SEGGER携手合作,开发量产事半功倍

    近日,与SEGGER共同宣布J-Link仿真调试器与Flasher在线烧录器全面支持AT32 MCU产品,SEGGER工具链的加持使AT32
    的头像 发表于 02-23 10:27 410次阅读

    AT32 MCU与SEGGER携手合作,开发量产事半功倍

    近日,与SEGGER共同宣布J-Link仿真调试器与Flasher在线烧录器全面支持AT32MCU产品,SEGGER工具链的加持使AT32MCU开发如虎添翼。
    的头像 发表于 02-22 08:13 479次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> MCU与SEGGER携手合作,开发量产事半功倍

    AT32F423时钟配置

    介绍如何结合提供的V2.x.x的板级支持包(BSP)来配置时钟。以下介绍时钟
    的头像 发表于 02-19 13:26 585次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>423<b class='flag-5'>时钟</b><b class='flag-5'>配置</b>

    AT32F423时钟配置入门指南

    电子发烧友网站提供《AT32F423时钟配置入门指南.pdf》资料免费下载
    发表于 01-31 09:37 1次下载
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>423<b class='flag-5'>时钟</b><b class='flag-5'>配置</b>入门指南

    关于AT32F403A XMC复用模式驱动SRAM芯片

    型号:IS66WV51216EBLL,锁存器型号:74LVC273,mcu型号:AT32F403AVC, 名词解释:XMC ADDRST ,地址建立时间,最大值15,实测最少设置
    发表于 01-04 10:46