S32K3XX系列芯片的时钟树配置

摘要:本文简要介绍S32K3xx系列芯片的时钟树,EB时钟配置

关键词:车载嵌入式芯片应用 

一、前言:

        对于任何一款MCU芯片的学习,首先要做的应该是了解这款芯片的时钟树配置,因为芯片上所有的外设必须在具备时钟的前提下才能工作,这篇文章主要分享一下我对S32K3系列芯片的时钟树的理解,同时介绍一下如何通过EB工具来配置时钟。

        EB工具熟练使用后可大大提高软件的开发效率,使用方便,但对于新手而言也是有利有弊,有利方面则是可以按照官方的历程进行界面的配置,很多配置虽然无法理解,但是按照历程配置完全一样即可,这样生成的驱动代码也可正常运行,可快速上手项目的开发。弊端则是不能很好的理解芯片内部寄存器的配置以及运行原理,当出现调试问题时无法快速的定位和解决。因此在学习的过程中建议大家尝试手撕代码,手写配置MCU寄存器,在这个过程中会大大提升自身的技术,不过项目中尽量还是采用EB生产的代码,因为手写代码往往存在风险,没有EB生成的代码稳定。不过经过手撕代码的过程后,在反回来使用EB工具,会发现EB工具的使用是真的容易,很多不理解的配置也会变得通透。这篇文章主要介绍EB配置的时钟树,关于手写的配置代码在后续的分享中展现。

二、时钟树:

        关于S32K3XX系列的时钟树,可借助S32DS工具来查看,打开任意一个官方历程即可,随后点击配置工具-时钟,如下所示:

随后进入如下界面:

1、时钟源

首先要时钟源有哪些,从图中可以看出时钟源有一下几种:

(1) SIRC:内部低速时钟源 32K

(2) FIRC:内部高速时钟源 48M

(3) SXOSC:外部低速时钟源 32k

(4) FXOSC: 外部高速时钟源 16M

(5) EXTERNAL CLOCLS:以太网外部时钟源  100M以太网通常使用25M的时钟源

2、七大时钟

        时钟由时钟源产生,经过时钟选择器和使用分频器生成七大时钟,而这七大时钟则是为ARM内核以及相关外设提供时钟来源,因此在时钟配置过程中,需要配置相应的时钟选择器和分频器,从而生成这七大时钟。

(1) CORE CLK:用于内核与部分外设

(2) AIPS_PLAT_CLK:用于MCU外设 例如UART0

(3) AIPS_SLOW_CLK:用于MCU外设 例如SPI、UART等

(4) HSE CLK: S32K3xx系列独有的硬件引擎,后续可展开介绍

(5) DCM CLK:DTCM空间

(6) LBIST_CLK:暂时没有用过该部分功能

(7) QSPI_MEM_CLK :用于QSPI外设

3、外设时钟配置步骤

         下面以UART1外设的时钟配置为例,展开说明时钟树的配置过程,步骤如下所示:

(1) 时钟源选择

        MCU上电后会默认选择FIRC时钟源,但在项目中通过使用外部时钟源,即选择FXOSC = 16M,时钟源的选择通过MC_ME寄存器配置,关于MC_ME的使用在后续介绍。

(2) PLL时钟配置

通过时钟树可以看到,FXOSC=16M,可以通过PLL倍频到960M,随后再经过分频得到PLL_PHI0和PLL_PHI1,大小可配置为160M。

(3) 时钟选择器配置

选择PLL_PHI0

(4) 分频器配置

将PLL_PHI0再次分频得到七大时钟,其中AIPS_SLOW_CLK=40M,由上图可知,UART1外设挂在AIPS_SLOW_CLK时钟下,因此UART1的外设时钟来源为40M。

(5) MC_ME配置

MC_ME类似一个开关,默认是关闭的,需要开启UART1外设时,需要在MC_ME寄存器中开启。

(6) UART1波特率

        外设时钟来源为40M,此时经过UART外设模块内部寄存器的再次分频,可将40M时钟再次分频,最后得到UART的波特率。

三 EB配置时钟:

        本文章主要介绍在NXP S32K3平台中,利用EB软件进行时钟树的配置。过程中以16M外部晶振作为时钟源输入,得到PLL后再以PLL为时钟源,得到AIPS_PLAT_CLK、AIPS_SLOW_CLK等时钟供各外设使用。

1、外部晶振

1、首先打开Mcu模块选项卡,时钟配置都在此选项卡中

2、进入General选项卡,打勾Post Build Variant Used,并把Config Variant选择为VariantPreCompile.

3、在McuControlledClocksConfiguration中,将所有时钟均选择有MCU控制:

4、在McuModuleConfiguration中配置输入时钟源。根据板子上的晶振实际规格,填写各参数External Crystal Frequency、External Slow Crystal Frequency。其中Mcu Number of Mode Settings、Mcu Number of RAM Sectors等均可点击最右侧计算器型按钮根据工程中配置自动计算。

2、时钟树配置

1、进入McuClockSettingConfig选项卡中。创建一个新的时钟配置项

双击Index下的编号即可进入改时钟配置项。

2、根据实际需求配置McuFIRC、McuSIRC、McuFXOSC、McuSXOSC

3、进入McuPLL选项卡进行PLL配置。将PLL under MCU control、PLL Enabled 打勾,以使能PLL功能。

4、根据实际需求选择McuPll_Configuration中的各参数,16M晶振可如下图所示进行配置,并将PHI0 Divider enable打勾。

5、完成步骤四后,即可在McuPll_Parameter中直接点击计算器按钮,自动计算各参数并写入。此时PLL_PHI0设置为160Mhz

6、返回McuClockSettingConfig_0界面,选择McuCgm0PcsConfig选项卡。添加一个McuCgm0PcsConfig配置项,配置如下

7、进入McuCgm0ClockMux0开始配置其余时钟,供各外设使用。选择CGM0 Clock Mux0 Source为PLL时钟(PLL_PHI0_CLK)。设置好分频系数后点击自动计算按钮

直接计算出其时钟频率即可。需要注意的是得到的各时钟频率必须符合手册要求。

8、进入McuClockReferencePoint选项卡,在这里添加外设要使用的时钟参考点,外设有用到时钟参考点就配置,没有可不管。各外设所使用的时钟需要参考手册中描述根据需求自行配置。在后续的外设配置中会要求用户选择其时钟源。

9、时钟配置完成,回到Mcu主界面,在McuModeSettingConf选项卡下新增一个配置,双击进入,模式设置为RUN即可。

10、使能各分区时钟,不同的外设挂在在不同的分区时钟下,可以清晰的在McuPeripheral下看到。由于后续都会用到,可直接打开所有分区,配置如下

 

11、在McuPeripheral中根据需求使能各外设时钟,在Peripheral Clock Enable中打勾即可。

        后续只需生产代码即可,注意还需要将相关的静态代码添加到工程中,搭建一个完成的工程才能用于调试,有关工程如何搭建就不在这里介绍了,感兴趣的朋友可以关注我后续的分享。

  • 21
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
S32K3xx系列参考手册是一本关于S32K3xx系列微控制器的详细技术文档,主要供开发人员和工程师参考使用。 该参考手册包含了S32K3xx系列微控制器的硬件功能和软件开发相关的详细信息。首先,手册中介绍了该系列微控制器的主要特点和优势,包括高性能、丰富的外设接口、低功耗和可靠性等方面。随后,手册详细描述了微控制器的硬件架构,包括中央处理器、存储器、时钟系统、外设接口以及安全性等方面的设计。通过仔细阅读该部分内容,开发人员可以深入了解微控制器的硬件特性,帮助他们在开发过程中进行合理的硬件设计和优化。 另外,该参考手册还重点介绍了S32K3xx系列微控制器的软件开发方面的内容。其中包括开发环境的搭建,包括开发工具的选择和配置等;软件编程和调试方法,包括使用C/C++语言编写嵌入式软件、使用调试工具进行程序调试等;以及软件库的使用,包括操作系统库、通信协议库、外设驱动库等。 此外,手册还提供了大量的实例代码和应用案例,帮助开发人员快速上手和理解如何应用S32K3xx系列微控制器进行各种应用开发,如汽车电子控制系统、工业自动化控制等。这些实例代码和应用案例可以帮助开发人员快速入门该系列微控制器的开发,提高开发效率。 总之,S32K3xx系列参考手册是一本重要的技术文档,为开发人员提供了全面的硬件和软件开发方面的信息,帮助他们在S32K3xx系列微控制器的开发过程中更加高效和准确地进行设计和开发。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值