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

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

3天内不再提示

SCR的调试方法以及示例程序介绍

832065824 来源:汽车电子嵌入式 2023-01-16 09:31 次阅读

前言

SCR是Standby Controller的简称,是以8051内核为基础的CPU。本视频首先介绍了MCU的两个域,接着介绍了SCR的架构,其中包括SCR和主核的通信,SCR唤醒源,SCR的外设资源等内容,最后介绍了SCR的调试方法以及示例程序。

3f87cad6-9531-11ed-bfe3-dac502259ad0.png

正文

1.Overview

3fae480a-9531-11ed-bfe3-dac502259ad0.png

分离的IO:也就是一部分IO是处于High performance domain里面的,另一部分IO是处于low power domain里面的。

High performance domain一般使用Vext或者Vddm或者Vflex作为参考电源,Low power domanin使用Vevrsb作为参考电源的。

在TC3xxx芯片里面,Pin33和Pin34口是处在Low power domain的,是使用Vevrsb作为参考电源的。

2.System Architecture:Standby Domain

3fcf5a4a-9531-11ed-bfe3-dac502259ad0.png

深灰色:Swtich Off,在进入到Standby模式后就被关闭了,因为EVRC和EVR33都关掉了,所以TC3xx的内核(Tricore)以及VDDP3已经没有电了,所以进入Standby后内核是断电了的,那么从Standby唤醒走的流程和Power On Reset走的流程是差不多的。

浅灰色:Optional,可选的模块,进入到Standby模式后可以选择开启或者关闭。SCR(Standby Controller)和Wake-up Timer(WUT)以及Pin Wake-up unit等(灰色部分)是相互独立的,一个选择关闭后剩下的可以选择关闭或者开启。

白色:Always on,永远在工作的。EVR LDO Preregulator可以产生一个和内核电压一样大小的电压VDDPD= 1.25V,给Standby RAM(CPU0 dLMU...)以及EVRC,EVR33供电。PLPBG Low Power Bandgap是用来Monitor监控SHPBG High Precision Bandgap的。

SHPBG High Precision Bandgap的作用是作为Second monitor的参考源,就是在做电源监控的时候可以设置一个电源的范围,采集电源ADC值和设置的电源电压范围进行比较。SHPBG High Precision同时是SCR里面ADC的参考源。Pin Wake-up unit可以有PINA和PINB两种唤醒源,而PORST/ESR1/PINA是处于Core Domain的,如果Core Domain和Standby Domain共轨的话,这些引脚(PINA/PINB)都是可以作唤醒源的。

400820e6-9531-11ed-bfe3-dac502259ad0.png

但是在上图图中Standby Domain和Core Domain用了独立的电源,一旦Main Supply断电的话,PINA就无法作为唤醒引脚了。这种独立供电的方式除了SCR,WUT,PINB可以作为唤醒源外,VEXT(Core Domain的主电源)也可以作为唤醒源,比如VEXT上升到某个阈值的时候唤醒Core Domain(下降到某个阈值的时候进入到Standby mode)

3.SCR Architecture

40254586-9531-11ed-bfe3-dac502259ad0.png

SCR本身是一个8051核,SCR的代码是运行在XRAM的,数据也存放在XRAM。存放在XRAM的数据如果要去访问的话,需要使用DBTR寄存器,当成扩展的ROM去访问它。

SCR和主核TriCore间有多种访问方式:

1)主核和SCR之间可以互相发送中断

2)Shawdow Register也就是映射寄存器相互访问,比如在SCR设置了SCRINTEXCHG寄存器后,在Tricore的PMSWCR2.SCRINT寄存器位域就会相应改变,利用这个特性可以做一些简单的调试,比如让SCR全速运行起来,运行到不同地方设置SCRINTEXCHG不同的值,在Tricore里面就可以通过PMSWCR2.SCRINT监控SCR的运行到哪里了。使用这种调试方式的话,Tricore就不能进入休眠。

3)P33和P34这两组pin脚可以归属于Tricore也可以归属于SCR,由PCSR寄存器配置。所以在进入Standby之前需要将P33和P34的控制器权交给SCR。

404ed626-9531-11ed-bfe3-dac502259ad0.png

SCR除了普通的IO唤醒监控外,还支持很多的外设唤醒监控,比如特定帧CAN唤醒。

SCR支持多种唤醒源,用的比较多的是Software request,也就是往SCU_STDBYWKP.SCRWKP寄存器位域里面写入1就唤醒主核了,大部分的唤醒功能都是用这个功能去做的。对于IO的将车,SCR有自己的外部中断,但一个跳变沿过来的时候,首先会进入到SCR的中断,在中断里面设置SCU_STDBYWKP.SCRWKP唤醒主核。

406f4c94-9531-11ed-bfe3-dac502259ad0.png

Aurix 1G上的SCR Block Diagram,Aurix 2G上的SCR相比于1G上的SCR做了一些改变,比如原来的XRAM是挂在SPI下面的,访问Aurix 1G的XRAM需要使用SPI接口

4093f256-9531-11ed-bfe3-dac502259ad0.png

Aurix 2G的XRAM直接挂在SPB总线下面,访问XRAM直接通过通过地址访问,更加便捷。

XC800核集成了T0 T1 UART三个外设,其他的RTC,WDT,T2CCU,SSC都是扩展的外设。SCR_P00.0 - SCR_P00.7对应Tricore的SCR_P33.0 - SCR_P33.7,SCR_P01.0对应Tricore的P34.1, SCR_P01.1- SCR_P01.7对应Tricore的SCR_P33.9 - SCR_P33.15。

主核即使进入休眠了,也可以通过OCDS/JTAG/DAP/SPD口来调试SCR。

40b72172-9531-11ed-bfe3-dac502259ad0.png

16-bit看门狗只有低八位可以设置。

可以选择70KHz的Standby clock时钟,也可以选择100MHz的back up clock。

没有喂狗或者错误的窗口喂狗都会产生Watch Dog的Event,这个Event首先会产生一个NMI的中断,类似一个Prewarning的中断,这个中断发生以后,再等0x30(48)个时钟周期后发生Reset(Reset是Enabled),这个Prewarning的中断(NMI)一旦发生以后,就算再去喂狗,依然在48个cycle以后还会发生Reset。

SCR的看门狗的Event(NMI Request)可以用来唤醒主核,前提是SCU_STDBYWKP.WDTWKSEL设置为1。

40de2696-9531-11ed-bfe3-dac502259ad0.png

RTC事件产生的Interrupt Request可以用来唤醒主核,前提是SCU_STDBYWKP.RTCWKSEL设置为1。

4105f004-9531-11ed-bfe3-dac502259ad0.png

T2CCU可以用来作PWM的输入捕获和PWM的输出控制。

4131f2a8-9531-11ed-bfe3-dac502259ad0.png

4162ff2e-9531-11ed-bfe3-dac502259ad0.png

4187801a-9531-11ed-bfe3-dac502259ad0.png

在SCR里面有一个Wake-up CAN的通道,不是我们常规见的CAN Node,仅仅嵌入了CAN的一个Filter,但我们收到的CAN Frame和Filter中预设的ID匹配的话,就产生一个Wake-up的Event,不是通常意义上的CAN Module,只能收不能发CAN报文。收报文的引脚也有很多个,如图所示。

4.Debug System

41ac7d02-9531-11ed-bfe3-dac502259ad0.png

调试SCR可以使用主核的DAP口(主核不能休眠),也可以使用SCR私有的DAP口。

41ce97c0-9531-11ed-bfe3-dac502259ad0.png

两种调试SCR的方法:

方法1:SCR的SCRINTEXCHG寄存器映射到shadow Register,也就是主核的PMSWCR2.SCRINT,SCR在不同的地方设置SCRINTEXCHG不同的值,Tricore中查看PMSWCR2.SCRINT值就可以知道SCR的当前的状态。

方式2:主核访问XRAM,可以直接通过地址访问,SCR访问XRAM需要使用DPTR指令,当成扩展的RAM来使用。

可以在XRAM里面开辟一个区域,比如说这个区域的前面一段是SCRto Tricore的信息,后面半段是Tricore to SCR的信息,通过这种方式可以作一些参数的交互。

5.SCR SW Framework

41e9da62-9531-11ed-bfe3-dac502259ad0.png

SCR的代码放在SCR的目录下面,SCR的编译器Config_8051_Tasking目录下的Config_Tasking.mk里面(主要就是设置c51的编译器路径,Taking支持c51芯片的编译),编译完成后就会产生.Hex文件,使用0_Utilities目录下的Hex2CArrray tool将.Hex转成CArray这样的C文件。

420eb29c-9531-11ed-bfe3-dac502259ad0.png

在运行SCR之前,第一步是使能SCR,第二部是把SCR mode设置为Programmer Mode(SCR boot mode,通过寄存器设置),第三步就是把CArray里面内容写道XRAM里面,第四步把SCR的boot mode设置为Normal mode,SCR就跑起来了,SCR跑起来以后,MCU就可以进入它的Standby mode,在进入Standby mode之前需要把唤醒源配置好。






审核编辑:刘清

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

    关注

    146

    文章

    16977

    浏览量

    350215
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119978
  • SCR
    SCR
    +关注

    关注

    2

    文章

    150

    浏览量

    44133
  • PIN管
    +关注

    关注

    0

    文章

    36

    浏览量

    6312

原文标题:AURIX™ TC3xx 休眠控制SCR

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

收藏 人收藏

    评论

    相关推荐

    ARM_KIT_示例程序

    ARM KIT 示例程序_2008,有需要的下来看看。
    发表于 02-18 15:11 19次下载

    遍历图像像素的14种方法_OpenCV2版书本配套示例程序24

    遍历图像像素的14种方法_OpenCV2版书本配套示例程序24,来自一本国外OpenCV2书籍的示例-遍历图像像素的14种方法
    发表于 06-06 15:20 0次下载

    TR5001T设备介绍程序调试方法

    TR5001设备介绍程序调试方法程序调试技巧。
    发表于 06-16 18:21 0次下载

    MATLAB程序调试方法及工具介绍

    MATLAB程序设计之MATLAB程序调试方法及工具介绍
    的头像 发表于 07-13 17:50 6788次阅读
    MATLAB<b class='flag-5'>程序</b><b class='flag-5'>调试</b>的<b class='flag-5'>方法</b>及工具<b class='flag-5'>介绍</b>

    DPDK安装教程和DPDK程序运行收发包示例程序及性能对比实验的详细概述

    本文档的主要内容详细介绍的是DPDK安装教程和DPDK程序运行收发包示例程序及性能对比实验的详细概述。
    发表于 09-03 08:00 0次下载
    DPDK安装教程和DPDK<b class='flag-5'>程序</b>运行收发包<b class='flag-5'>示例程序</b>及性能对比实验的详细概述

    MPU6050传感器九轴的示例程序免费下载

    本文档的主要内容详细介绍的是MPU6050传感器九轴的示例程序免费下载。
    发表于 08-21 17:43 31次下载
    MPU6050传感器九轴的<b class='flag-5'>示例程序</b>免费下载

    软件进行滤波方法示例程序免费下载

    本文档的主要内容详细介绍的是软件进行滤波方法示例C应用程序免费下载。
    发表于 11-04 08:00 3次下载
    软件进行滤波<b class='flag-5'>方法</b>的<b class='flag-5'>示例程序</b>免费下载

    LabVIEW初级教程之属性节点初级课程的示例程序免费下载

    本文档的主要内容详细介绍的是LabVIEW初级教程之属性节点初级课程的示例程序免费下载
    发表于 01-17 16:19 22次下载
    LabVIEW初级教程之属性节点初级课程的<b class='flag-5'>示例程序</b>免费下载

    Python使用示例程序和工程文件免费下载

    本文档的主要内容详细介绍的是Python使用示例程序和工程文件免费下载。
    发表于 06-15 08:00 6次下载
    Python使用<b class='flag-5'>示例程序</b>和工程文件免费下载

    《我和 LabVIEW》示例程序分享

    《我和 LabVIEW》示例程序分享
    发表于 12-07 17:30 18次下载

    介绍 I/O 脚本示例程序(740 系列的模拟器调试器)

    介绍 I/O 脚本示例程序(740 系列的模拟器调试器)
    发表于 05-11 18:52 0次下载
    <b class='flag-5'>介绍</b> I/O 脚本<b class='flag-5'>示例程序</b>(740 系列的模拟器<b class='flag-5'>调试</b>器)

    介绍 I/O 脚本示例程序(用于 M32C/90、M32C/80、M16C/80、M16C/70 系列的模拟器调试器)

    介绍 I/O 脚本示例程序(用于 M32C/90、M32C/80、M16C/80、M16C/70 系列的模拟器调试器)
    发表于 05-11 18:52 0次下载
    <b class='flag-5'>介绍</b> I/O 脚本<b class='flag-5'>示例程序</b>(用于 M32C/90、M32C/80、M16C/80、M16C/70 系列的模拟器<b class='flag-5'>调试</b>器)

    介绍 I/O 脚本示例程序(740 系列的模拟器调试器)

    介绍 I/O 脚本示例程序(740 系列的模拟器调试器)
    发表于 06-28 19:15 0次下载
    <b class='flag-5'>介绍</b> I/O 脚本<b class='flag-5'>示例程序</b>(740 系列的模拟器<b class='flag-5'>调试</b>器)

    介绍 I/O 脚本示例程序(用于 M32C/90、M32C/80、M16C/80、M16C/70 系列的模拟器调试器)

    介绍 I/O 脚本示例程序(用于 M32C/90、M32C/80、M16C/80、M16C/70 系列的模拟器调试器)
    发表于 06-28 19:16 0次下载
    <b class='flag-5'>介绍</b> I/O 脚本<b class='flag-5'>示例程序</b>(用于 M32C/90、M32C/80、M16C/80、M16C/70 系列的模拟器<b class='flag-5'>调试</b>器)

    CP Software Cluster示例程序介绍

    AUTOSAR组织展示了基于ST Stellar系列单片机实现的CP Software Cluster示例程序,如图3所示。 图3 CP Software Cluster示例程序总览 示例程序将软件
    的头像 发表于 09-13 17:13 944次阅读
    CP Software Cluster<b class='flag-5'>示例程序</b><b class='flag-5'>介绍</b>