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

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

3天内不再提示

AURIX™ TC3xx Rest/Clock/Watch模块

832065824 来源:汽车电子嵌入式 2023-02-20 09:45 次阅读

前言

本文包括TC3xx MCU的复位系统,时钟系统和看门狗模块三部分内容。在复位系统部分主要介绍了各种复位类型。在时钟系统部分主要介绍时钟源选择,PLL倍频配置,时钟分发等内容。在看门狗模块部分主要介绍了开门狗复位的触发路径,看门狗模块的工作原理CPU EndInit/Safe EndInit的实现原理等内容。

4f4d3562-b0b3-11ed-bfe3-dac502259ad0.png

参考资料

[1]https://videos.infineon-autoeco.com/pc/page/index?keyword=AURIX

[2]TriCoreTM TC1.6.2 core architecture manual

[3 ]Infineon-AURIX_TC3xx_Part1-UserManual-v02_00-EN

正文

1.Reset

4f7963d0-b0b3-11ed-bfe3-dac502259ad0.png

POST这个信号对于MCU来说是双向的,也就是说在上电过程中PORST是MCU的输出引脚,在完成上电过程后,PORST是MCU的输入引脚。ESR0是受PORST控制的,PORST输出低电平的时候,ESR0也会输出低电平。

从POST引脚引起的reset就叫Warm Power On Reset,Cold PORST复位的范围最大,基本上MCU所有的模块都会Reset。

4fae063a-b0b3-11ed-bfe3-dac502259ad0.png

刚上电的时候,MCU的电压是从0往上升的,所以刚开始的时候MCU处于一个under voltage的状态,MCU主要监控VEXT, VDDP3, VDD三个输入电源,在刚开始的时候只要这三个电源有一个处于under voltage状态,或门(OR)就会输出点平导通MOS管,PORST就会被拉低到地。所以在电源上升的过程中这三个电源有一个处于LBD Reset Hold(电源监控阈值)以下,MOS管就会被导通,PORST就会被一直拉低到地(输出状态,输出低电平)。

电压起来后(大于监控阈值),MOS管关断,PORST变为输入状态,如果PORST外接了一个IC或者复位按钮给了一个低电平,也会对MCU产生Reset(Warm Power On Reset)。

电压没起来前的Reset叫做Cold Power On Reset。

System or Application Reset包含的种类比较多:

1)Software reset

2)来自于SMU的reset

3)来自ESR0的复位请求

4fe549f6-b0b3-11ed-bfe3-dac502259ad0.png

一些模块可以单独Reset(SW Module reset,Debug Reset)。

复位原因寄存器

503e6ea0-b0b3-11ed-bfe3-dac502259ad0.png

STM0-STM5代码STM compare match造成的Reset

EVRC, EVR33,SWD代表三个低电压引起的Reset

STBYR表示Standby regulator的under voltage detect

正常情况下Reset后这个寄存器的值应该是0x10010000,也就是PORS和STBYR会被置位。

508bb7e6-b0b3-11ed-bfe3-dac502259ad0.png

Reset status register中的关于cold power on reset的Flag需要软件清除(RSTCON2.CLRC),不然就会一直为1 。

50cce0e0-b0b3-11ed-bfe3-dac502259ad0.png

第四种的cold reset原因是:EVR previous regulator的输出/standby supply电压小于1.13V。

Warm power on reset就是在POST变为输入状态后,外部对POST产生一个低电平引起的复位(RAM数据是可以保持的)。

51022dcc-b0b3-11ed-bfe3-dac502259ad0.png

POSR和ESR0的复位时序:首先在POST(Input)上产生一个下降沿的负脉冲,通过MCU内部的一些逻辑电路产生延迟后ESR0被拉低,MCU内部的一些模块和电路(Pads/Port Reset)就会被Reset,在ESR0被拉下来以后,CPUx核、Peripheral、Flash、Clock就会发生复位,这些模块复位后ESR0就会被释放掉,从0变成1,从这个点开始,MCU的Firmware(Boot rom)开始执行(Execution)。对于ESR0我们也可以配置一个ESR0的delay,当ESR0的delay大于Boot rom的执行时间后,Boot rom执行完准备跳转到User code前会去检测ESR0是不是被拉低,如果没有被拉低的话,就会等待ESR0被拉低后再跳转到User code。

2.Clock system

513ab584-b0b3-11ed-bfe3-dac502259ad0.png

时钟选择部分:外部晶振接入作为MCU的source clock,SYSCLK这个Pin脚信号输入作为MCU的source clock,也可以使用fback这个100MHz的片内时钟作为source clock。

倍频PLL部分:在TC3xx里面有两个PLL:

1)System_PLL主要是倍频后给MCU的内核提供时钟。

2)Peripheral_PLL主要是倍频后通过一些分频给外设提供时钟。

时钟分配(Distribution)部分:System_PLL产生倍频时钟fPLL0,Peripheral_PLL产生倍频时钟fPLL1和fPLL2,他们通过Clock Distribution

后通过时钟分频器可以产生各种各样的时钟频率供外设使用。

TC3xx有两种内部晶振:

1)100MHz的 Back-up Clock

2)70MHz的 Standby Clock,精度比较低,给SCR提供时钟。

EXTCLK0和EXTCLK1可以配置输出上面各种时钟用来观测。

5170e78a-b0b3-11ed-bfe3-dac502259ad0.png

一般我们选择20MHz或者25MHz的外部晶振输入,通过System_PLL倍频后产生一个300MHz的fPLL0,fPLL0一般直接输出300MHz给CPU各个内核提供时钟。通过Peripheral_PLL产生160MHz的fPLL1和200MHz的fPLL2,再通过分配给各种外设提供时钟。

51acf87e-b0b3-11ed-bfe3-dac502259ad0.png

fsource0,fsource1,fsource2就是fPLL0,fPLL1,fPLL2通过各种xxxDIV分屏器产生时钟给各个模块使用,一般fCPUx是300MHz,fGETH为150MHz。

Note:fMCANH是给CAN模块的寄存器和RAM操作提供时钟的,fMCAN是给CAN波特率产生提供时钟的。

51edd448-b0b3-11ed-bfe3-dac502259ad0.png

fSRI通过分频产生fCPUx给CPU提供时钟,三个CPU的时钟可以不同,CPU时钟的改变不会影响其他外设时钟。但是注意系统时钟频率的改变会使得系统电流发生改变,影响系统的稳定性。

521ee6a0-b0b3-11ed-bfe3-dac502259ad0.png

外接晶振有两种模式可以选择:

1)External Input Mode,这种模式下只需要用到输入的XTAL1就行了(XTAL2不需要),也就是在这种模式下需要接一个有源晶振。

2)External Crystal Mode,这种模式下XTAl1和XTAL2都会用到,外部接的无源晶振。

5261b570-b0b3-11ed-bfe3-dac502259ad0.png

5295c68a-b0b3-11ed-bfe3-dac502259ad0.png

外部晶振频率范围是16MHz到40MHz。

在TC3xx里面还有有load capacitor(负载电容),也就是晶振的负载电容可以不用外部接,可以通过配置寄存器使用内部负载电容。

52bcc528-b0b3-11ed-bfe3-dac502259ad0.png

52e02ef0-b0b3-11ed-bfe3-dac502259ad0.png

Oscillator Watchdog

5329b02a-b0b3-11ed-bfe3-dac502259ad0.png

在System_PLL里面有一块电路叫Oscillator Watchdog,这块电路主要用来检测输入的晶振在一定的范围里面。它的检测方法是通过内部的100MHz的fBAK通过1/40分频产生一个2.5MHz的Reference Clock,以这个Reference Clock对fosc经过1/(OSCVAL+1)分频后的时钟进行Monitor,如果对比后在一个Tolerance range范围外的话,就会置位OSCCON.PLLHV或者OSCCON.PLLLV两个寄存器位域。

5349b03c-b0b3-11ed-bfe3-dac502259ad0.png

一般都是使用外部20MHz的输入晶振以及分频/倍频参数来参数CPU和外设时钟。

538ef37c-b0b3-11ed-bfe3-dac502259ad0.png

PLL配置流程:

1)使能使用外部晶振

2)Clock Control Unit的Input Clock选择fBAK,Clock Control Unit已经属于Clock Distribution了,没有选择fPLL而是选择fBAK作为它的输入时钟,所以这个时候CPU和Peripheral都是基于fBACK的。

3)选择fosc作为PLL的输入时钟。

4)设置一个初始的PLL配置参数,比如我们先把System_PLL倍频到100MHz,Peripheral_PLL可以直接倍频到最终频率,比如Peripheral_PLL1到320MHz,Peripheral_PLL2到200MHz。

5)设置分频寄存器。

6)把Clock Control Unit的Input Clock选择从fBAK切换到PLL。

7)System_PLL也就是fPLL0慢慢从100MHz倍频到300MHz,是的系统的电流平稳上升。

53c02906-b0b3-11ed-bfe3-dac502259ad0.png

54020934-b0b3-11ed-bfe3-dac502259ad0.png

542bb50e-b0b3-11ed-bfe3-dac502259ad0.png

5460b3a8-b0b3-11ed-bfe3-dac502259ad0.png

5493c3c4-b0b3-11ed-bfe3-dac502259ad0.png

54c8847e-b0b3-11ed-bfe3-dac502259ad0.png

CPU时钟慢慢倍频上去,让电流的变化平滑上升。

3.Watchdog

54f35fc8-b0b3-11ed-bfe3-dac502259ad0.png

TC3xx芯片的Watchdog在SCU模块里面,Watchdog分为两种,一种是CPU Watchdog,一种是Safety Watchdog,每一个CPU都有自己的CPU Watchdog。

5522e95a-b0b3-11ed-bfe3-dac502259ad0.png

每个Watchdog有三个Register,WDTxCon0,WDTxCon1,WDTxSR。

5552b720-b0b3-11ed-bfe3-dac502259ad0.png

Watchdog一般情况下如果Watchdog time溢出了就会产生一个watch dog reset,在TC3xx中Watchdog的Timeout并不会直接触发Reset,而是经过配置SMU后会触发SMU里面的一个Recovery Timer启动,Recovery Timer的Timeout时间可以配置,单Recovery Timerout后就会产生一个Alarm,如果这个Alarm配置为Reset信号的话,就会触发Reset。

5572b930-b0b3-11ed-bfe3-dac502259ad0.png

55af8626-b0b3-11ed-bfe3-dac502259ad0.png

EndInit的保护有三种:

1)“CE”保护,只有把每一个CPU的ENDINIT设为0后,这个CPU的critical registers保护才被解除(可写)。

2)“E”保护,任意一个CPU的ENDINIT设为0后,所有CPU的system critical registers保护就解除了。

3)“SE”保护,Safety Watchdog的ENDINIT设为0后,Safety EndInit的保护就解除了。

ENDINIT设置为0的操作,需要一套较为复杂的操作序列。

ENDINIT置为0需要一段时间,只有等到ENDINIT真的为0后才能执行往下的操作,不然可能会产生异常。

55ec7b58-b0b3-11ed-bfe3-dac502259ad0.png

EICON0和SEICON0是两个Global的ENDINIT保护寄存器,如果不想改变Watchdog CPUx或者Safety Watchdog的ENDINIT值,但是又想解除保护,就可以使用Global的EICON0和SEICON0(前提是EndInit的保护等级是“E”或者“SE”)。

560bc800-b0b3-11ed-bfe3-dac502259ad0.png

对于保护等级为“E”或者“SE”的寄存器,在操作它之前需要先解除EndInit保护。

5649687c-b0b3-11ed-bfe3-dac502259ad0.png

fsys类似fspb,类似于外设总线频率。

567d439a-b0b3-11ed-bfe3-dac502259ad0.png

56b265fc-b0b3-11ed-bfe3-dac502259ad0.png

复位以后CPU的Watchdog默认是处在Time-Out Mode下的,WDT在Time-Out Mode下就会从0xFFFC开始往上计数,如果计数到0xFFFF就会溢出,如果在计数到0xFFFF之前对WDT_CON0进行了password access后对WDT_CON0进行了Modify access,重新对WDT进了reload value到REL_1值(写寄存器前ENDINIT值改为1了,也就是先要介绍ENDINIT保护),这样WDT从Time-Out模式切换到了Normal Mode,这个时候WDT开始从REL_1值晚上计数。

Note: 后面会介绍password access和Modify access

56e27422-b0b3-11ed-bfe3-dac502259ad0.png

在上图中的3)的地方对WDT_CON0进行了password access,WDT就会切换到Time-Out Mode,WDT又从0xFFFC开始计数,如果在4)这个点,又对WDT_CON0做了password access就会切换WDT到Normal Mode,同时对WDT_CON0做了一次Modify access后,WDT从REL_2开始计数。

570d9c60-b0b3-11ed-bfe3-dac502259ad0.png

计数到0xFFFF后WDT就溢出了,触发SMU的Timeout的Alarm,这个Alarm会触发SMU里面的一个Recovery time进行计数,Recovery time也timeout后就会产生一个SMU的reset。

574125b2-b0b3-11ed-bfe3-dac502259ad0.png

576df52e-b0b3-11ed-bfe3-dac502259ad0.png

Password access的条件是LCK为0,ENDINIT为1。WDTxCON0.PW[7:2]写入当前WDTxCON0.PW[7:2]值的反转值,WDTxCON0.PW[15:8]写入当前WDTxCON0.PW[15:8]值,这样Password access就解锁了。

57a5547e-b0b3-11ed-bfe3-dac502259ad0.png

如果Password成功以后,就相当于这个寄存器被解锁了,然后就可以在PW中填入新的Password,REL和ENDINIT也可以写入新的值,当完成Modify access后,这个寄存器就又被lock住了,如果要改它就需要再来一次password access。

57e5f844-b0b3-11ed-bfe3-dac502259ad0.png

当WDT_CON0进行了一次Password Access之后WDT的状态会切换为Time-Out mode,也就是说接下来操作这个寄存器的时间必须要比较短,就是要在Watchdog Timeout之前完成操作。

582db382-b0b3-11ed-bfe3-dac502259ad0.png

585786e4-b0b3-11ed-bfe3-dac502259ad0.png

587fa778-b0b3-11ed-bfe3-dac502259ad0.png

58a3063c-b0b3-11ed-bfe3-dac502259ad0.png

Set EndInit的Modify Access动作会设置WDT_CON0.INIT为1,WDT的Reload timer会重新Reload一次,也就是和Watchdog的喂狗操作是一样的。

审核编辑 :李倩

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

    关注

    10

    文章

    559

    浏览量

    70724
  • 复位系统
    +关注

    关注

    0

    文章

    4

    浏览量

    5591
  • Aurix
    +关注

    关注

    1

    文章

    71

    浏览量

    10887
  • 时钟系统
    +关注

    关注

    1

    文章

    99

    浏览量

    11691

原文标题:学习笔记 | AURIX™ TC3xx Rest/Clock/Watch模块

文章出处:【微信号:汽车电子嵌入式,微信公众号:汽车电子嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    英飞凌TC3XX系列多核MCU学习笔记(3)

    TC3XX 系列属于AURIX™ 2G系列,AURIX™ 2G系列系列单片机采用的是TC1.6.E和TC1.6P的核心组合。使用的是32位哈
    发表于 09-19 10:00 2124次阅读
    英飞凌<b class='flag-5'>TC3XX</b>系列多核MCU学习笔记(<b class='flag-5'>3</b>)

    英飞凌TC3xx系列安全管理单元的使用

    本篇文档主要用来介绍英飞凌基于AURIX-2G TriCore 1.6.2架构的 TC3xx系列安全管理单元的使用。
    的头像 发表于 12-07 09:29 1965次阅读
    英飞凌<b class='flag-5'>TC3xx</b>系列安全管理单元的使用

    AURIXTC3XX如何暂时仅启用/禁用CAN中断?

    你我使用的是 AURIXTC3XX。 在 CAN ISR 处理期间,如何暂时仅启用/禁用 CAN 中断?
    发表于 01-18 06:47

    Pflash恢复保护命令最终会在Aurix TC3xx控制器上重置目标是为什么?

    我正在连接 T32 调试器的 Aurix TC3xx 控制器评估板上测试 Pflash 读/写保护机制,我配置了 UCB_pFlash 和 UCB 调试,我成功解锁了 Pflash 保护,然后尝试再次锁定保护,最终进入目标重置。 我不知道为什么会这样。
    发表于 01-24 06:42

    GCC和TASKING有什么区别?应该为AURIXTC3xx选择什么?

    GCC 和 TASKING 有什么区别? 我应该为 AURIXTC3xx 选择什么? 这将如何影响代码的运行?
    发表于 03-01 10:09

    TSIM是否支持TC3xx系列在没有硬件的情况下调试应用程序?

    你好, TSIM是否支持TC3xx系列在没有硬件的情况下调试应用程序? AURIX TC3xx - Free Entry ToolChain 是否有助于实现上述目的?
    发表于 05-17 07:02

    英飞凌AURIX单片机TC3xx系列助力自动驾驶和电动交通发展

    2016年10月28日,为满足自动驾驶汽车和电动车的市场需求,英飞凌科技股份公司(FSE: IFX / OTCQX: IFNNY)近日发布新一代 AURIX™单片机,即TC3xx,它是市场上同类器件中集成度最高的产品,实时性能是现有器件的
    发表于 11-07 13:51 3050次阅读

    英飞凌AURIX单片机TC3xx系列助力电动交通发展

    为满足自动驾驶汽车和电动车的市场需求,英飞凌科技股份公司近日发布新一代 AURIX™单片机,即TC3xx,它是市场上同类器件中集成度最高的产品,实时性能是现有器件的3倍。
    发表于 03-24 13:42 5834次阅读

    关于英飞凌AURIX™单片机TC3xx系列的性能和应用

    英飞凌副总裁兼控制器业务总经理Peter Schaefer表示:“AURIX TC3xx系列器件将推进自动驾驶和电动汽车的发展。能够推出新一代高性能多核单片机,我们颇感到自豪,它将设立新的性能标准,其性能、加密和安全功能全都符合ISO 26262 ASIL-D体系要求。
    的头像 发表于 09-24 17:36 7549次阅读

    英飞凌 AURIX 单片机 培训文档链接

    包括AURIX™ -TC2xx Microcontroller TrainingAURIX™ -TC3xx Microcontroller TrainingAURIX™ TC2xx I
    发表于 12-03 16:06 19次下载
    英飞凌 <b class='flag-5'>AURIX</b> 单片机 培训文档链接

    AURIXTC3xx NVM是非易失性存储器学习笔记

    TC3xx芯片最多有6个内核,每个核有自己的私有的Memory以及共有的Memory。
    发表于 06-19 09:09 6391次阅读
    <b class='flag-5'>AURIX</b>™ <b class='flag-5'>TC3xx</b> NVM是非易失性存储器学习笔记

    英飞凌AURIX TC3xx和TRAVEO T2G系列微控制器介绍

    英飞凌市场领先的 AURIX TC3xx 和TRAVEO T2G 车用 MCU将率先支持Rust语言。虽然TRAVEO 使用的是 Rust 官方工具链和Arm Cortex-M 目标架构,但英飞凌的工具合作伙伴 HighTec EDV-Systeme 为
    发表于 06-20 15:07 832次阅读
    英飞凌<b class='flag-5'>AURIX</b> <b class='flag-5'>TC3xx</b>和TRAVEO T2G系列微控制器介绍

    TC3xx芯片DMU介绍

    AUTOSAR架构图下的Fls模块对上(Fee)模块提供统一的标准接口,但是具体的实现因不同的芯片而不一样,Infineon公司的Fls模块通过操作TC3xx芯片的DMU
    的头像 发表于 08-31 14:10 1766次阅读
    <b class='flag-5'>TC3xx</b>芯片DMU介绍

    AURIXTC3xx荣膺“金辑奖·中国汽车新供应链百强”

    2023年10月19日,由盖世汽车主办的2023第五届“金辑奖”颁奖典礼在上海隆重举行, 英飞凌AURIX TC3xx单片机,凭借强大的运算能力
    的头像 发表于 11-10 15:22 1553次阅读
    <b class='flag-5'>AURIX</b>™ <b class='flag-5'>TC3xx</b>荣膺“金辑奖·中国汽车新供应链百强”

    深入解析TC3xx芯片中的SMU模块应用

    TC3xx芯片是德国英飞凌半导体公司推出的汽车级处理器芯片系列,其中的SMU(System Management Unit)模块是其重要组成部分之一。SMU模块TC3xx芯片中具有重
    的头像 发表于 03-01 18:08 1587次阅读