前言
SCR是Standby Controller的簡(jiǎn)稱,是以8051內(nèi)核為基礎(chǔ)的CPU。本視頻首先介紹了MCU的兩個(gè)域,接著介紹了SCR的架構(gòu),其中包括SCR和主核的通信,SCR喚醒源,SCR的外設(shè)資源等內(nèi)容,最后介紹了SCR的調(diào)試方法以及示例程序。
正文
1.Overview
分離的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
深灰色:Swtich Off,在進(jìn)入到Standby模式后就被關(guān)閉了,因?yàn)镋VRC和EVR33都關(guān)掉了,所以TC3xx的內(nèi)核(Tricore)以及VDDP3已經(jīng)沒(méi)有電了,所以進(jìn)入Standby后內(nèi)核是斷電了的,那么從Standby喚醒走的流程和Power On Reset走的流程是差不多的。
淺灰色:Optional,可選的模塊,進(jìn)入到Standby模式后可以選擇開啟或者關(guān)閉。SCR(Standby Controller)和Wake-up Timer(WUT)以及Pin Wake-up unit等(灰色部分)是相互獨(dú)立的,一個(gè)選擇關(guān)閉后剩下的可以選擇關(guān)閉或者開啟。
白色:Always on,永遠(yuǎn)在工作的。EVR LDO Preregulator可以產(chǎn)生一個(gè)和內(nèi)核電壓一樣大小的電壓VDDPD= 1.25V,給Standby RAM(CPU0 dLMU...)以及EVRC,EVR33供電。PLPBG Low Power Bandgap是用來(lái)Monitor監(jiān)控SHPBG High Precision Bandgap的。
SHPBG High Precision Bandgap的作用是作為Second monitor的參考源,就是在做電源監(jiān)控的時(shí)候可以設(shè)置一個(gè)電源的范圍,采集電源ADC值和設(shè)置的電源電壓范圍進(jìn)行比較。SHPBG High Precision同時(shí)是SCR里面ADC的參考源。Pin Wake-up unit可以有PINA和PINB兩種喚醒源,而PORST/ESR1/PINA是處于Core Domain的,如果Core Domain和Standby Domain共軌的話,這些引腳(PINA/PINB)都是可以作喚醒源的。
但是在上圖圖中Standby Domain和Core Domain用了獨(dú)立的電源,一旦Main Supply斷電的話,PINA就無(wú)法作為喚醒引腳了。這種獨(dú)立供電的方式除了SCR,WUT,PINB可以作為喚醒源外,VEXT(Core Domain的主電源)也可以作為喚醒源,比如VEXT上升到某個(gè)閾值的時(shí)候喚醒Core Domain(下降到某個(gè)閾值的時(shí)候進(jìn)入到Standby mode)
3.SCR Architecture
SCR本身是一個(gè)8051核,SCR的代碼是運(yùn)行在XRAM的,數(shù)據(jù)也存放在XRAM。存放在XRAM的數(shù)據(jù)如果要去訪問(wèn)的話,需要使用DBTR寄存器,當(dāng)成擴(kuò)展的ROM去訪問(wèn)它。
SCR和主核TriCore間有多種訪問(wèn)方式:
1)主核和SCR之間可以互相發(fā)送中斷
2)Shawdow Register也就是映射寄存器相互訪問(wèn),比如在SCR設(shè)置了SCRINTEXCHG寄存器后,在Tricore的PMSWCR2.SCRINT寄存器位域就會(huì)相應(yīng)改變,利用這個(gè)特性可以做一些簡(jiǎn)單的調(diào)試,比如讓SCR全速運(yùn)行起來(lái),運(yùn)行到不同地方設(shè)置SCRINTEXCHG不同的值,在Tricore里面就可以通過(guò)PMSWCR2.SCRINT監(jiān)控SCR的運(yùn)行到哪里了。使用這種調(diào)試方式的話,Tricore就不能進(jìn)入休眠。
3)P33和P34這兩組pin腳可以歸屬于Tricore也可以歸屬于SCR,由PCSR寄存器配置。所以在進(jìn)入Standby之前需要將P33和P34的控制器權(quán)交給SCR。
SCR除了普通的IO喚醒監(jiān)控外,還支持很多的外設(shè)喚醒監(jiān)控,比如特定幀CAN喚醒。
SCR支持多種喚醒源,用的比較多的是Software request,也就是往SCU_STDBYWKP.SCRWKP寄存器位域里面寫入1就喚醒主核了,大部分的喚醒功能都是用這個(gè)功能去做的。對(duì)于IO的將車,SCR有自己的外部中斷,但一個(gè)跳變沿過(guò)來(lái)的時(shí)候,首先會(huì)進(jìn)入到SCR的中斷,在中斷里面設(shè)置SCU_STDBYWKP.SCRWKP喚醒主核。
Aurix 1G上的SCR Block Diagram,Aurix 2G上的SCR相比于1G上的SCR做了一些改變,比如原來(lái)的XRAM是掛在SPI下面的,訪問(wèn)Aurix 1G的XRAM需要使用SPI接口。
Aurix 2G的XRAM直接掛在SPB總線下面,訪問(wèn)XRAM直接通過(guò)通過(guò)地址訪問(wèn),更加便捷。
XC800核集成了T0 T1 UART三個(gè)外設(shè),其他的RTC,WDT,T2CCU,SSC都是擴(kuò)展的外設(shè)。SCR_P00.0 - SCR_P00.7對(duì)應(yīng)Tricore的SCR_P33.0 - SCR_P33.7,SCR_P01.0對(duì)應(yīng)Tricore的P34.1, SCR_P01.1- SCR_P01.7對(duì)應(yīng)Tricore的SCR_P33.9 - SCR_P33.15。
主核即使進(jìn)入休眠了,也可以通過(guò)OCDS/JTAG/DAP/SPD口來(lái)調(diào)試SCR。
16-bit看門狗只有低八位可以設(shè)置。
可以選擇70KHz的Standby clock時(shí)鐘,也可以選擇100MHz的back up clock。
沒(méi)有喂狗或者錯(cuò)誤的窗口喂狗都會(huì)產(chǎn)生Watch Dog的Event,這個(gè)Event首先會(huì)產(chǎn)生一個(gè)NMI的中斷,類似一個(gè)Prewarning的中斷,這個(gè)中斷發(fā)生以后,再等0x30(48)個(gè)時(shí)鐘周期后發(fā)生Reset(Reset是Enabled),這個(gè)Prewarning的中斷(NMI)一旦發(fā)生以后,就算再去喂狗,依然在48個(gè)cycle以后還會(huì)發(fā)生Reset。
SCR的看門狗的Event(NMI Request)可以用來(lái)喚醒主核,前提是SCU_STDBYWKP.WDTWKSEL設(shè)置為1。
RTC事件產(chǎn)生的Interrupt Request可以用來(lái)喚醒主核,前提是SCU_STDBYWKP.RTCWKSEL設(shè)置為1。
T2CCU可以用來(lái)作PWM的輸入捕獲和PWM的輸出控制。
在SCR里面有一個(gè)Wake-up CAN的通道,不是我們常規(guī)見(jiàn)的CAN Node,僅僅嵌入了CAN的一個(gè)Filter,但我們收到的CAN Frame和Filter中預(yù)設(shè)的ID匹配的話,就產(chǎn)生一個(gè)Wake-up的Event,不是通常意義上的CAN Module,只能收不能發(fā)CAN報(bào)文。收?qǐng)?bào)文的引腳也有很多個(gè),如圖所示。
4.Debug System
調(diào)試SCR可以使用主核的DAP口(主核不能休眠),也可以使用SCR私有的DAP口。
兩種調(diào)試SCR的方法:
方法1:SCR的SCRINTEXCHG寄存器映射到shadow Register,也就是主核的PMSWCR2.SCRINT,SCR在不同的地方設(shè)置SCRINTEXCHG不同的值,Tricore中查看PMSWCR2.SCRINT值就可以知道SCR的當(dāng)前的狀態(tài)。
方式2:主核訪問(wèn)XRAM,可以直接通過(guò)地址訪問(wèn),SCR訪問(wèn)XRAM需要使用DPTR指令,當(dāng)成擴(kuò)展的RAM來(lái)使用。
可以在XRAM里面開辟一個(gè)區(qū)域,比如說(shuō)這個(gè)區(qū)域的前面一段是SCRto Tricore的信息,后面半段是Tricore to SCR的信息,通過(guò)這種方式可以作一些參數(shù)的交互。
5.SCR SW Framework
SCR的代碼放在SCR的目錄下面,SCR的編譯器Config_8051_Tasking目錄下的Config_Tasking.mk里面(主要就是設(shè)置c51的編譯器路徑,Taking支持c51芯片的編譯),編譯完成后就會(huì)產(chǎn)生.Hex文件,使用0_Utilities目錄下的Hex2CArrray tool將.Hex轉(zhuǎn)成CArray這樣的C文件。
在運(yùn)行SCR之前,第一步是使能SCR,第二部是把SCR mode設(shè)置為Programmer Mode(SCR boot mode,通過(guò)寄存器設(shè)置),第三步就是把CArray里面內(nèi)容寫道XRAM里面,第四步把SCR的boot mode設(shè)置為Normal mode,SCR就跑起來(lái)了,SCR跑起來(lái)以后,MCU就可以進(jìn)入它的Standby mode,在進(jìn)入Standby mode之前需要把喚醒源配置好。
審核編輯:劉清
-
mcu
+關(guān)注
關(guān)注
146文章
16667瀏覽量
347831 -
寄存器
+關(guān)注
關(guān)注
31文章
5253瀏覽量
119212 -
SCR
+關(guān)注
關(guān)注
2文章
149瀏覽量
44010 -
PIN管
+關(guān)注
關(guān)注
0文章
36瀏覽量
6276
原文標(biāo)題:AURIX? TC3xx 休眠控制SCR
文章出處:【微信號(hào):汽車電子嵌入式,微信公眾號(hào):汽車電子嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論