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

发布时间:2024-01-26  

前言

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之前需要把唤醒源配置好。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>