当前位置: 首页 > news >正文

【AS32X601驱动系列教程】SMU_系统时钟详解

在现代嵌入式系统中,时钟与复位管理是确保系统稳定运行的关键。我们的SMU(系统管理单元)模块专注于此核心任务,通过精准的时钟配置和复位控制,为整个系统提供可靠的时序保障。

SMU模块的主要功能是完成时钟和复位的管理。在默认状态下SMU工作在IDLE状态。只有接收到PMU的使能信号后才开始工作。SMU模块会根据PMU的指令自动配置COR、AXIBUS0/1/2等总线的时钟和复位。

需要注意的是,MCU芯片AS32X601可通过BOOT选择从外部QSPI Flash启动和内部PFlash启动,外部Flash启动时,系统时钟最高90MHz,内部启动时,系统时钟可跑到180MHz。同时对于各总线时钟,同样存在具体要求,该部分在软件操作部分进行介绍。

硬件介绍

本章节只讨论SMU系统时钟配置,AS32x601系列总线以及外设时钟均由SMU模块进行配置,时钟树和总线架构可在设计手册中查到,同时,为了保证使用者可以更好理解系统时钟配置,芯片特意拉出来一个clk_out引脚以便测量,查询芯片引脚复用,该引脚位于芯片的第11管脚PB4得复用功能1。

软件设计

在本小节只针对实际操作部分代码进行讲解,其中所涉及到的工程、变量、头文件等不会涉及到,可以参考实际的demo工程。

操作流程

  1. 使能总线时钟以及clk_out所在GPIO时钟

  2. 配置SMU_PLL结构体(如果不使用PLL,可忽略此步骤)

  3. 配置EFLASH时钟同步(如果使用外部flash启动,可忽略此步骤)

  4. 配置系统时钟以及总线分频结构体

  5. 配置clk_out引脚复用

代码介绍

在芯片的所有使用过程中,主程序都应该在初始化的最开始部位首先完成此部分代码的编写,我们在此处封装成函数,在每个demo历程中均可以找到这个函数。

在这个函数中,我们把需要注意的事项以及总线时钟树和对应关系均以注释的形式贴在操作之前,在时钟使能过程中,还需要参考总线架构保证外设挂载在具体哪一条总线下,然后在此处根据注释打开相应总线时钟,具体接口的时钟使能可在接口初始化函数中进行使能。

在上述代码清单中,首先配置PLL结构体,采用外部晶振作为PLL的时钟源,开发板晶振频率为20MHz,那么根据上述公式计算可知系统时钟为20÷0x14*0xB4÷0x01 = 180M。

接下来,配置EFLASH时钟同步,此操作必须在切换系统时钟之前完成,将同步时间180写入同步配置。

之后配置总线时钟结构体,此处可设置系统时钟源是PLL、内部振荡器或者外部晶振,此外还可配置系统总线分频系数,具体参数已经在库中定义完成。

最后需要更新EFLASH时钟,强制操作,避免死机。

最后一步操作是获取所有总线时钟,此函数是为了保证部分自动计算波特率功能设定,建议最好不要删除。

至此系统时钟初始化完毕,为了验证功能,我们可以配置CLK_OUT引脚输出,代码如下:

由于此处全部都是初始化操作,完成之后,直接while(1)等待即可,编译此代码。另外,SMU_SetSysClockOut(CoreCLKDiv8Out);可以控制输出时钟来源于具体哪一路,形参已经定义好,直接选择切换即可。

烧录验证

上述代码编译烧录之后,用示波器连接PB4引脚,即可看到输出波形。

相关文章:

  • RNN GRU LSTM 模型理解
  • 飞桨(PaddlePaddle)在机器学习全流程(数据采集、处理、标注、建模、分析、优化)
  • 前端vue2-完全前端生成pdf->pdf-lib,html2canvas+jspdf,原生打印,三种方式(打印带有echarts图的pdf)
  • 可视化大屏实现全屏或非全屏
  • 继电保护与安全自动装置:电力系统安全的守护神
  • Windows 安装 FFmpeg 新手教程(附环境变量配置)
  • ProfiNet转Ethernet/IP网关选型策略适配西门子S7-1500与三菱变频器的关键参数对比
  • Oracle Apps R12——报表入门2:单表——报表开发流程
  • .NET外挂系列:6. harmony中一些实用的反射工具包
  • 大模型高效微调方法综述:P-Tuning软提示与lora低秩微调附案例代码详解
  • word设置如“第xx页 共xx页”格式的页码
  • 本地分支git push 报错 fatal: The current branch XXXX has no upstream branch.
  • 百千鳥VF可变字体 momochidori variable font
  • Lyra学习笔记1地图角色加载流程
  • 塔能高温冰蓄冷技术:工厂能耗精准节能的创新之路
  • window 显示驱动开发-视频内存供应和回收(三)
  • 3D个人简历网站 7.联系我
  • LVGL(lv_textarea文本框控件)
  • feign调用指定服务ip端口
  • 【Linux部署Java服务的那些事】
  • 网站建设开发语言和使用工具/漂亮的网页设计
  • 建立网站最好的模板/平台推广策划方案
  • 怎么在一个网站做编辑/seo是什么服
  • 安徽网站制作/网络营销的定义是什么
  • 排名好的徐州网站建设/新闻软文发布平台
  • 昆明做网站猫咪科技/杭州seo中心