Autosar MCAL MCU配置时钟-基于cfg

这篇具有很好参考价值的文章主要介绍了Autosar MCAL MCU配置时钟-基于cfg。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在Autosar OS中的Counter计数是由STM模块而来,需要在Counter中指定每个tick的时间,但这个时间是根据STM时钟来的,t=1/fstm,并不是指定的时间就是真的运行时间,例如指定的Seconds per tick时间为0.00000001,但STM频率为50000000HZ(50MHz),实际执行的时间会是0.00000002,导致os所有认为的时间都会慢一倍。基于该问题,本文详细介绍Autosar MCAL的MCU时钟相关配置,应用的芯片为TC27x系列

MCU时钟配置

cfg配置外部晶振

Autosar MCAL MCU配置时钟-基于cfg
一般都是用的外部晶振作为输入时钟源的方案。

问题:如何配置是从外部晶振来的Fosc?

CCU

Clocking and Clock Control Unit 时钟和时钟控制单元

构建模块包括:•基本时钟生成(时钟源)•时钟速度提升•时钟分布•单个时钟配置
Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg

时钟源的选择

OSC(Oscillator Circuit)

该晶振电路为皮尔斯晶振,设计用于外部晶体/陶瓷谐振器或外部稳定时钟源,由一个反向放大器XTAL1作为输入,XTAL2作为输出,集成反馈电阻

OSC的模式:
外部输入时钟模式:

1.External Input Clock Mode

使用外部时钟信号时,必须连接到XTAL1。XTAL2保持打开状态(未连接),这种模式下需要输入一个稳定的外部时钟源固定频率的方波)

Autosar MCAL MCU配置时钟-基于cfg
Figure 7-2 TC27x Direct Clock Input

当直接提供时钟信号时,不使用外部晶体/陶瓷谐振器(external crystal/ceramic resonator)并绕过晶振,如果在正常模式下使用,输入频率需要等于或大于锁相环VCO的输入频率(该值列在数据表中)。

CC和SR的含义:

CC:这些参数表示控制器特性,这是TC270 / TC275 / TC277的一个显著特征,必须在系统设计中考虑

SR:这些参数表示设计TC270 / TC275 / TC277的微控制器系统必须提供的系统要求。

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg

外部晶体/陶瓷谐振模式

2.External Crystal / Ceramic Resonator Mode

下图显示了两种工作模式的推荐外部电路,外部晶体/陶瓷谐振器模式,包括和不包括外部组件。

Autosar MCAL MCU配置时钟-基于cfg
包括外部组件:及电阻电容都是外部的。一般采用这种方式

不包括外部组件:电阻电容是内部的,需要进行配置(相关的寄存器)

芯片内部电路:

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg
通过寄存器OSCCON可以配置启用对应的电容。

Back up时钟源

Back up Clock作为备用时钟源。该时钟源提供稳定可靠的时钟源,可作为系统的时钟源。它提供的精度低于外部晶体或陶瓷谐振器。备份时钟无法启用或禁用或以其他方式进行控制.可以配置寄存器CCUCON0.CLKSEL = 00B 选择Back up Clock作为** clock distribution的时钟源** ,配置寄存器CCUCON1.INSEL = 00B选择Back up Clock作为PLL / PLL_ERAY的时钟源
该时钟由EVR Pre-regulator产生,频率为100MHZ,datasheet中描述如下:
Autosar MCAL MCU配置时钟-基于cfg

Clock generation时钟生成

Autosar MCAL MCU配置时钟-基于cfg

输入时钟

外部时钟通过OSC振荡后直接输出fosc0,还可以通过配置寄存器CCUCON1.INSEL = 01B选择fosc0作为fosc的输出。
内部时钟直接输出fback,还可以通过配置寄存器CCUCON1.INSEL = 00B来选择fback作为fosc的输出

cfg中配置使用PLL

Autosar MCAL MCU配置时钟-基于cfg
cfg中没有找到在哪里配置使用内部backup时钟可能默认都是用外部时钟fosc0,MCU的代码中也是默认CCUCON1.INSEL为1.
这里的配置项可以为CCUCON0.CLCSEL使用fpll作为外设时钟分配的时钟源。

PLL模式

通过配置PLL参数实现输入时钟的超频

PLL有三种模式可以选择,配置软件中只有两种选择

Autosar MCAL MCU配置时钟-基于cfg

cfg中配置模式:

Autosar MCAL MCU配置时钟-基于cfg

Normal Mode

Bypassing K1 divider for Main PLL.屏蔽了K1分频。Normal模式下fpll和fpll2的计算公式如下:

Autosar MCAL MCU配置时钟-基于cfg

Prescaler Mode

预分频器模式:Bypassing P, N, K2, K3 dividers for Main PLL,计算PLL频率公式如下:

Autosar MCAL MCU配置时钟-基于cfg

Freerunning Mode

自由运行模式:

在自由运行模式下,压控振荡器(VCO)fPLLBASE的基频输出仅被因子K2或K3分压。

Autosar MCAL MCU配置时钟-基于cfg
每次系统复位后进入自由运行模式

PLL模式配置

配置为自由运行模式:

Autosar MCAL MCU配置时钟-基于cfg
通过以下设置选择自由运行模式:

•PLLCON0.VCOBYP=0

•PLLCON0.SETFINDIS=1

当PLLSTAT.FINDIS = 1 and PLLSTAT.VCOBYST = 0时,进入自由运行模式

自由运行模式下的操作不需要fOSC的输入时钟频率。 Data Sheet中列出了自由运行模式fPLLBASE的频率。
Autosar MCAL MCU配置时钟-基于cfg

配置为Prescaler Mode

Autosar MCAL MCU配置时钟-基于cfg
通过以下设置选择预分频器模式:
•PLLCON0.VCOBYP=1

当以下要求有效时,进入预分频器模式:
•PLLSTAT。VCOBYST=1

预分频器模式下的需要fOSC的输入时钟频率

配置为Normal Mode

Autosar MCAL MCU配置时钟-基于cfg
通过以下设置选择正常模式

•PLLCON0.VCOBYP=0

•PLLCON0.CLRFINDIS=1

当以下要求全部有效时,进入正常模式:

•PLLSTAT.FINDIS=0

•PLLSTAT.VCOBYST=0

•PLLSTAT.VCOLOCK=1

•OSCCON.PLLLV=1

•OSCCON.PLLHV=1

正常模式下的操作要求输入时钟频率为fOSC

cfg配置fpll频率:

Autosar MCAL MCU配置时钟-基于cfg
该频率是通过计算出来的,这里配置应该是为了校验

Fpll =( (Fosc * (McuNDivider + 1)) / ((McuK2Divider+1)(McuPDivider+1)))

Fpll2 =( (Fosc * (McuNDivider + 1)) / ((McuK3Divider+1)
(McuPDivider+1)))

对应公式:

Autosar MCAL MCU配置时钟-基于cfg
The McuClockReferencePointFrequency for NORMAL_MODE should be in range:

20 - 200 MHz for TC26x/TC27x
20 - 300 MHz for TC29x
tc27x-datasheet中描述如下:
Autosar MCAL MCU配置时钟-基于cfg

配置分频参数N,P,K1-3

对于PLL来说,需要配置PLLCON0和PLLCOCN1寄存器,具体参见芯片手册。需要注意的是,实际值为配置值+1

对于PLLERAY来说,也是类似的。

cfg配置分频参数N,P,K1-3

Autosar MCAL MCU配置时钟-基于cfg

实际计算例子:

配置为外部晶振输入20MHZ,PLL为Noraml mode,K1为1+1=2(Normal mode下K1无作用),K2为2+1=3,K3为2+1=3,N为59+1=60,P为1+1=2.

则: fpll = 20 * 60/(2 * 3)=200M ,fpll2=20 * 60/(2 * 3)=200M.与上面的频率配置一致

Frequency Modulation频率调制

如果PLL在正常模式下工作,则输出频率fPLL还可以通过低频调制进行修改。fVCO是随机调制的

通过位PLLCON0.MODEN启用调制。调制本身随配置的调制幅度的范围随机地改变VCO频率。通过PLLCON2.MODCFG[9:0]选择调制幅度
Autosar MCAL MCU配置时钟-基于cfg

cfg中配置允许PLL调制:

Autosar MCAL MCU配置时钟-基于cfg

cfg中配置调制幅度%:

Autosar MCAL MCU配置时钟-基于cfg
计算公式:

MODCFG[9:0]=(64* McuFMPllModAmp/100*McuMainOscillatorFrequency/McuPllPDivider *McuPllNDivider/3.6)

datasheet中fMV为3.6MHZ

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg
MODCFG最大为32,MA = (3.6/(2 * fosc * N/P)) * MODCFG[9:0]
32 * McuFMPllModAmp/100 = (3.6/(2 * McuMainOscillatorFrequency*N/P))*MODCFG[9:0]
M O D C F G [ 9 : 0 ] = 32 ∗ M A ∗ 2 ∗ f o s c ∗ N 100 ∗ P ∗ 3.6 MODCFG[9:0]=\frac{32*MA*2*fosc*N}{100*P*3.6} MODCFG[9:0]=100P3.632MA2foscN

与cfg中公式对应。McuFMPllModAmp单位为%

Clock Distribution时钟分配

时钟分配通过时钟控制单元(CCU)完成。CCU接收由两个PLL(fPLL/PLL2和fPLL_ERAY/PLL_ERAY2)、备用时钟fBack和fOSC0创建的时钟。这些时钟直接转发或经过分频,以提供子时钟域

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg
对于大多数时钟,提供线性分频器以使时钟频率适应应用要求。该除法器由位字段XXXDIV控制

对于CPU时钟,实现了更复杂的分频器。这允许更好地控制单个CPU的时钟频率变化。该机制允许频率变化适应由应用定义的特定电流限制

这里还有一个用于调试块的固定参考时钟REFCLK1/2,它将主时钟fPLL/fPLLERAY除以24。这允许OCDS独立于选定的SRI和SPB时钟速度生成时间戳。

fMAX被定义为系统内部使用的从fSOURCE导出的任何时钟的最高频率

以下是不同时钟的简要概述:

•系统总线

——fSRI定义了SRI总线的操作性能,因此定义了所有连接的主设备和从设备之间的数据交换率

——fSPB定义了SPB总线的操作绩效,因此定义所有连接的主机和从设备与中断系统之间的数据交换率

•CPU Controls

–fCPU0定义CPU0的执行速度

–fCPU1定义CPU1的执行速度

•PMU controls

–fFSI2定义了读取操作的PFlash的执行速度

–fFSI定义了所有其他闪存操作的执行速度

•外设时钟

-fSTM,STM模块的时钟

-fGTM,GTM模块的时钟

-fBAUD1定义了独立于系统其余部分的“慢速”通信接口的基本频率。这允许IIC以恒定波特率(频率)工作。

–fBAUD2定义了独立于系统其余部分的“快速”通信接口的基本频率。这允许QSPI和PSI5以恒定波特率(频率)运行。

–fCAN定义了独立于系统其余部分的多CAN的基本频率(表7-2中列出的限制除外)。这允许MultiCAN在恒定波特率(频率)下运行。

–fASCLINF/ASCLIN定义了独立于系统其他部分的ASCLIN的基本频率(表7-2中列出的限制除外)。这允许ASCLIN以恒定波特率(频率)运行。

•调试系统

——由于调试应不干扰应用系统,因此可使用专用调试资源的单独时钟fBBB。这允许在更改其他时钟配置期间进行调试(跟踪生成)。请注意,fBBB需要快于或等于fSPB才能进行调试

Autosar MCAL MCU配置时钟-基于cfg
整个系统基于单个时钟(fSOURCE),以实现同步系统的性能优势。因此,在配置时钟控制选项时必须考虑某些限制

Clock Divider Limitations

对于控制不同子时钟域/模块的时钟分频器,允许值是有限的,必须遵守以下比率。比率定义如下:时钟A=fAAA;时钟B=fBBB.允许的比率为1:n,其中n具有定义的值范围。在该定义中,时钟A总是快于或等于时钟B,其中fAAA[MHz]=n*fBBB[MHz]
data sheet中规定的最大频率

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg
1)不允许将寄存器CCUCON0、CCUCON1和CCUCON2配置为导致违反允许比率的值,

2) fGTM可以更快、更慢或等于fSPB

3) fSPB可以更快、更慢或等于fSTM

4) fBBB必须更快,或等于fSPB

5)fBAUD1可以更快、更慢或等于fSPB

6)fBAUD2可以更快、更慢或等于fSPB

7)fCAN可以更快、更慢或等于fSPB

8)fASCLINF可以更快、更慢或等于fSPB

9)fASCLINS可以更快、更慢或等于fSPB

配置外设时钟分频参数

cfg中配置分频参数

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg

cfg中配置频率,校验用

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg

对应分频参数寄存器

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg
McuBAUD1Divider :It is the BAUD1 divider value used for generation of clock FBaud1. FBaud1 = (Fsource / McuBAUD1Divider).

有效值为: 0,1,2,3,4,5,6,8,10,12,15.

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg
Fcpu0 = (Fsri * (64 - McuCPU0Divider))/64 .

Autosar MCAL MCU配置时钟-基于cfg

Autosar MCAL MCU配置时钟-基于cfg
具体分频值的计算公式可以参考芯片手册或者cfg中的描述信息

分频实例

以STM为例,配置频率为100M,设置的分频值为2.且使用PLL的时钟(配置为200M),则fSTM=fpll/2=200M/2=100M,校验通过

总结

以上就是MCU关于时钟相关的配置,主要还是参考芯片用户手册和datasheet.在Autosar的MCU配置中,时钟主要与McuClockReferencePoint相关,McuGeneralConfiguration配置中也有部分内容与时钟相关。其他BSW模块都会用到McuClockReferencePoint作为时钟的引入。

参考资料:

Infineon-TC27x_D-step-UM-v02_02-EN.pdf

Infineon-TC27xDC-DataSheet-v01_00-EN.pdf

AURIX™公开课第8讲上-时钟系统



若你觉得本文对你有帮助,欢迎点赞,关注,收藏,转发~~~
你的鼓励是对小弟的最大支持~~~
建了一个WX公众h,《汽车电子学习笔记》感兴趣可以关注一下~~~文章都会同步更新~文章来源地址https://www.toymoban.com/news/detail-401813.html

到了这里,关于Autosar MCAL MCU配置时钟-基于cfg的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • EB tresos S32K3 MCAL MCU配置(一)时钟与晶振

    MCU配置(一)  时钟与晶振 1.时钟是什么,为什么需要时钟? 时钟对于CPU来说就等同于心脏,时钟频率的高低决定了CPU执行指令的速度,同时对于大多数外设来说也是需要一个时钟信号才能正常工作的,以通信相关的模块来说,一个信号本质上是高低电平的组合,比如我们要

    2024年02月11日
    浏览(47)
  • 【Autosar】MCAL - MCU(NXP - S32K14x)

    MCAL - 汇总 配置工具:EB Tresos Studio 芯片类型:S32K146 MCU模块提供了访问 内核 相关功能的API,例如配置时钟、初始化RAM、设置低功耗模式、提供复位接口等。 1.1 时钟介绍 从上图可以看到最左边为输入时钟源,右边为输出时钟 ,为了让系统运行在合适的时钟频率环境下,我们

    2024年02月04日
    浏览(45)
  • 一步一步搭建S32K14x的AutoSar项目----MCAL之MCU模块

    1-1、时钟对于任何一款微控制器是很重要的,所以我们首先要了解S32K144的时钟树,才能为后续的MCAL中MCU模块配置做好准备,废话不多说,先上一张图片,聊了解下 对应芯片手册的第27章 Clock Distribution 。 1、SOSC 就是连接外部的高速时钟,我们一般情况下会优先选择它,精准

    2024年01月22日
    浏览(47)
  • 【AUTOSAR】 MCAL配置说明(三)----MCAL SPI 模块配置

    SPI SPI通讯模块, 注:autosar配置工具只能做SPI的主节点配置,不能配置从节点 主要的配置内容如下: 具体使用的外设模块SPIx 映射pin 脚选择 spiChannel 配置 spiJob 配置 SpiSequence 配置 spi设备的通讯特点(通讯频率,cs有效电平,数据移位电平,片选引脚) General Configuration 常规配

    2024年02月09日
    浏览(47)
  • Autosar教程-Mcal教程-GPT配置教程

    3.3GPT配置、生成 3.3.1 GPT配置所需要的元素 GPT实际上就是硬件定时器,需要配置的元素有: 1)定时器时钟:定时器要工作需要使能它的时钟源 2)定时器分步:时钟源进到定时器后可以通过分频后再给到定时器 定时器模块选择:MCU有多个定时器模块,需要决定使用哪个定时器模

    2024年03月08日
    浏览(46)
  • AUTOSAR规范与ECU软件开发(实践篇)7.1 MCAL配置工具安装方法

         目录  MCAL配置工具入门 1 MCAL配置工具安装方法 (1) EB tresos Studio工具安装方法

    2024年02月11日
    浏览(54)
  • S32K3系列 --- MCU(Clock) Mcal配置

            很多工程师其实并不太会过多的关注Clock的配置,本身我对Clock的了解也不是特别多,但是还是觉得想去了解一下,因为在其他的配置过程中,我遇到了很多错误,都是由于Clock的配置引起的问题,这里过一个简单的记录。 FIRC :Fast Internal RC Oscillator         芯

    2024年02月20日
    浏览(51)
  • TC397 EB MCAL开发从0开始系列 之 [1.2] MCU模块配置介绍

    - 返回总目录- 不适用硬件。 2.1 硬件使用 不适用硬件 2.2 软件使用 MCU模块,不适用 2.3 新增模块 无新增 3.1 配置讲解 具体可在 MC-ISAR_TC3xx_UM_Basic.pdf 、 MC-ISAR_TC3xx_Config_Verification_Manual_BASIC.pdf 和 MC-ISAR_TC3xx_UM_Demo.pdf 中查看MCU模块章节的配置描述,和配置生成动态代码描述。 MC

    2024年01月17日
    浏览(49)
  • MCAL实战一(S32K324-NXP EB tresos MCU驱动配置详解)

    目录 1、MCU General配置参数 2、MCURestReasonConf 3、McuModuleConfiguration配置 4、MCU API接口函数 5、展示一波代码

    2024年02月12日
    浏览(41)
  • 英飞凌AURIX 2G 系列MCU关于外设模块EVADC的实现原理及对应MCAL(EB Tresos)配置项详细讲解

    目录 一、版本控制 二、功能概述 三、主要模块及涉及EB配置项 (一)通用时钟方案与控制 (二)内部相关模拟模块的激活与控制 1.模数转换器控制 2.模拟信号缓冲 3.校准 4.降噪方法 5.Alias功能 (三)转换请求产生 (四)请求源仲裁 (五)快速比较通道操作 (六)转换时间

    2024年02月07日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包