一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文簡析TC3xx Rest/Clock/Watch模塊

汽車ECU開發(fā) ? 來源:汽車電子嵌入式 ? 2023-02-21 13:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

本文包括TC3xx MCU的復(fù)位系統(tǒng),時鐘系統(tǒng)和看門狗模塊三部分內(nèi)容。在復(fù)位系統(tǒng)部分主要介紹了各種復(fù)位類型。在時鐘系統(tǒng)部分主要介紹時鐘源選擇,PLL倍頻配置,時鐘分發(fā)等內(nèi)容。在看門狗模塊部分主要介紹了開門狗復(fù)位的觸發(fā)路徑,看門狗模塊的工作原理CPU EndInit/Safe EndInit的實(shí)現(xiàn)原理等內(nèi)容。

251132be-b1a6-11ed-bfe3-dac502259ad0.png

1.Reset

251f6ee2-b1a6-11ed-bfe3-dac502259ad0.png

POST這個信號對于MCU來說是雙向的,也就是說在上電過程中PORST是MCU的輸出引腳,在完成上電過程后,PORST是MCU的輸入引腳。ESR0是受PORST控制的,PORST輸出低電平的時候,ESR0也會輸出低電平。

從POST引腳引起的reset就叫Warm Power On Reset,Cold PORST復(fù)位的范圍最大,基本上MCU所有的模塊都會Reset。

25357534-b1a6-11ed-bfe3-dac502259ad0.png

剛上電的時候,MCU的電壓是從0往上升的,所以剛開始的時候MCU處于一個under voltage的狀態(tài),MCU主要監(jiān)控VEXT, VDDP3, VDD三個輸入電源,在剛開始的時候只要這三個電源有一個處于under voltage狀態(tài),或門(OR)就會輸出點(diǎn)平導(dǎo)通MOS管,PORST就會被拉低到地。

所以在電源上升的過程中這三個電源有一個處于LBD Reset Hold(電源監(jiān)控閾值)以下,MOS管就會被導(dǎo)通,PORST就會被一直拉低到地(輸出狀態(tài),輸出低電平)。

電壓起來后(大于監(jiān)控閾值),MOS管關(guān)斷,PORST變?yōu)檩斎霠顟B(tài),如果PORST外接了一個IC或者復(fù)位按鈕給了一個低電平,也會對MCU產(chǎn)生Reset(Warm Power On Reset)。

電壓沒起來前的Reset叫做Cold Power On Reset。

System or Application Reset包含的種類比較多:

1)Software reset

2)來自于SMU的reset

3)來自ESR0的復(fù)位請求

2548844e-b1a6-11ed-bfe3-dac502259ad0.png

一些模塊可以單獨(dú)Reset(SW Module reset,Debug Reset)。

復(fù)位原因寄存器

255cd7b4-b1a6-11ed-bfe3-dac502259ad0.png

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

EVRC, EVR33,SWD代表三個低電壓引起的Reset

STBYR表示Standby regulator的under voltage detect

正常情況下Reset后這個寄存器的值應(yīng)該是0x10010000,也就是PORS和STBYR會被置位。

25784e40-b1a6-11ed-bfe3-dac502259ad0.png

Reset status register中的關(guān)于cold power on reset的Flag需要軟件清除(RSTCON2.CLRC),不然就會一直為1 。

258d719e-b1a6-11ed-bfe3-dac502259ad0.png

第四種的cold reset原因是:EVR previous regulator的輸出/standby supply電壓小于1.13V。

Warm power on reset就是在POST變?yōu)檩斎霠顟B(tài)后,外部對POST產(chǎn)生一個低電平引起的復(fù)位(RAM數(shù)據(jù)是可以保持的)。

25aaa85e-b1a6-11ed-bfe3-dac502259ad0.png

POSR和ESR0的復(fù)位時序:首先在POST(Input)上產(chǎn)生一個下降沿的負(fù)脈沖,通過MCU內(nèi)部的一些邏輯電路產(chǎn)生延遲后ESR0被拉低,MCU內(nèi)部的一些模塊和電路(Pads/Port Reset)就會被Reset,在ESR0被拉下來以后,CPUx核、Peripheral、Flash、Clock就會發(fā)生復(fù)位,這些模塊復(fù)位后ESR0就會被釋放掉,從0變成1,從這個點(diǎn)開始,MCU的Firmware(Boot rom)開始執(zhí)行(Execution)。

對于ESR0我們也可以配置一個ESR0的delay,當(dāng)ESR0的delay大于Boot rom的執(zhí)行時間后,Boot rom執(zhí)行完準(zhǔn)備跳轉(zhuǎn)到User code前會去檢測ESR0是不是被拉低,如果沒有被拉低的話,就會等待ESR0被拉低后再跳轉(zhuǎn)到User code。

2.Clock system

25c20508-b1a6-11ed-bfe3-dac502259ad0.png

時鐘選擇部分:外部晶振接入作為MCU的source clock,SYSCLK這個Pin腳信號輸入作為MCU的source clock,也可以使用fback這個100MHz的片內(nèi)時鐘作為source clock。

倍頻PLL部分:在TC3xx里面有兩個PLL:

1)System_PLL主要是倍頻后給MCU的內(nèi)核提供時鐘。

2)Peripheral_PLL主要是倍頻后通過一些分頻給外設(shè)提供時鐘。

時鐘分配(Distribution)部分:System_PLL產(chǎn)生倍頻時鐘fPLL0,Peripheral_PLL產(chǎn)生倍頻時鐘fPLL1和fPLL2,他們通過Clock Distribution

后通過時鐘分頻器可以產(chǎn)生各種各樣的時鐘頻率供外設(shè)使用。

TC3xx有兩種內(nèi)部晶振:

1)100MHz的 Back-up Clock

2)70MHz的 Standby Clock,精度比較低,給SCR提供時鐘。

EXTCLK0和EXTCLK1可以配置輸出上面各種時鐘用來觀測。

25d1bc14-b1a6-11ed-bfe3-dac502259ad0.png

一般我們選擇20MHz或者25MHz的外部晶振輸入,通過System_PLL倍頻后產(chǎn)生一個300MHz的fPLL0,fPLL0一般直接輸出300MHz給CPU各個內(nèi)核提供時鐘。通過Peripheral_PLL產(chǎn)生160MHz的fPLL1和200MHz的fPLL2,再通過分配給各種外設(shè)提供時鐘。

25e54414-b1a6-11ed-bfe3-dac502259ad0.png

fsource0,fsource1,fsource2就是fPLL0,fPLL1,fPLL2通過各種xxxDIV分屏器產(chǎn)生時鐘給各個模塊使用,一般fCPUx是300MHz,fGETH為150MHz。

Note:fMCANH是給CAN模塊的寄存器和RAM操作提供時鐘的,fMCAN是給CAN波特率產(chǎn)生提供時鐘的。

25fadacc-b1a6-11ed-bfe3-dac502259ad0.png

fSRI通過分頻產(chǎn)生fCPUx給CPU提供時鐘,三個CPU的時鐘可以不同,CPU時鐘的改變不會影響其他外設(shè)時鐘。

但是注意系統(tǒng)時鐘頻率的改變會使得系統(tǒng)電流發(fā)生改變,影響系統(tǒng)的穩(wěn)定性。

26186c2c-b1a6-11ed-bfe3-dac502259ad0.png

外接晶振有兩種模式可以選擇:

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

2)External Crystal Mode,這種模式下XTAl1和XTAL2都會用到,外部接的無源晶振。

263cb550-b1a6-11ed-bfe3-dac502259ad0.png

265818ea-b1a6-11ed-bfe3-dac502259ad0.png

外部晶振頻率范圍是16MHz到40MHz。

在TC3xx里面還有有l(wèi)oad capacitor(負(fù)載電容),也就是晶振的負(fù)載電容可以不用外部接,可以通過配置寄存器使用內(nèi)部負(fù)載電容。

267299b8-b1a6-11ed-bfe3-dac502259ad0.png

2686c1d6-b1a6-11ed-bfe3-dac502259ad0.png

Oscillator Watchdog

26bcfd50-b1a6-11ed-bfe3-dac502259ad0.png

在System_PLL里面有一塊電路叫Oscillator Watchdog,這塊電路主要用來檢測輸入的晶振在一定的范圍里面。它的檢測方法是通過內(nèi)部的100MHz的fBAK通過1/40分頻產(chǎn)生一個2.5MHz的Reference Clock,以這個Reference Clock對fosc經(jīng)過1/(OSCVAL+1)分頻后的時鐘進(jìn)行Monitor,如果對比后在一個Tolerance range范圍外的話,就會置位OSCCON.PLLHV或者OSCCON.PLLLV兩個寄存器位域。

26ce20a8-b1a6-11ed-bfe3-dac502259ad0.png。

一般都是使用外部20MHz的輸入晶振以及分頻/倍頻參數(shù)來參數(shù)CPU和外設(shè)時鐘。

26e3aed2-b1a6-11ed-bfe3-dac502259ad0.png

PLL配置流程:

1)使能使用外部晶振

2)Clock Control Unit的Input Clock選擇fBAK,Clock Control Unit已經(jīng)屬于Clock Distribution了,沒有選擇fPLL而是選擇fBAK作為它的輸入時鐘,所以這個時候CPU和Peripheral都是基于fBACK的。

3)選擇fosc作為PLL的輸入時鐘。

4)設(shè)置一個初始的PLL配置參數(shù),比如我們先把System_PLL倍頻到100MHz,Peripheral_PLL可以直接倍頻到最終頻率,比如Peripheral_PLL1到320MHz,Peripheral_PLL2到200MHz。

5)設(shè)置分頻寄存器。

6)把Clock Control Unit的Input Clock選擇從fBAK切換到PLL。

7)System_PLL也就是fPLL0慢慢從100MHz倍頻到300MHz,是的系統(tǒng)的電流平穩(wěn)上升。

270c6a7a-b1a6-11ed-bfe3-dac502259ad0.png

271ca534-b1a6-11ed-bfe3-dac502259ad0.png

2741134c-b1a6-11ed-bfe3-dac502259ad0.png

27854b16-b1a6-11ed-bfe3-dac502259ad0.png

27ae3c92-b1a6-11ed-bfe3-dac502259ad0.png

27d20302-b1a6-11ed-bfe3-dac502259ad0.png

CPU時鐘慢慢倍頻上去,讓電流的變化平滑上升。

3.Watchdog

27e3509e-b1a6-11ed-bfe3-dac502259ad0.png

TC3xx芯片的Watchdog在SCU模塊里面,Watchdog分為兩種,一種是CPU Watchdog,一種是Safety Watchdog,每一個CPU都有自己的CPU Watchdog。

27f4f466-b1a6-11ed-bfe3-dac502259ad0.png

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

28069216-b1a6-11ed-bfe3-dac502259ad0.png

Watchdog一般情況下如果Watchdog time溢出了就會產(chǎn)生一個watch dog reset,在TC3xx中Watchdog的Timeout并不會直接觸發(fā)Reset,而是經(jīng)過配置SMU后會觸發(fā)SMU里面的一個Recovery Timer啟動,Recovery Timer的Timeout時間可以配置,單Recovery Timerout后就會產(chǎn)生一個Alarm,如果這個Alarm配置為Reset信號的話,就會觸發(fā)Reset。

28872c8c-b1a6-11ed-bfe3-dac502259ad0.png

28ec6228-b1a6-11ed-bfe3-dac502259ad0.png

EndInit的保護(hù)有三種:

1)“CE”保護(hù),只有把每一個CPU的ENDINIT設(shè)為0后,這個CPU的critical registers保護(hù)才被解除(可寫)。

2)“E”保護(hù),任意一個CPU的ENDINIT設(shè)為0后,所有CPU的system critical registers保護(hù)就解除了。

3)“SE”保護(hù),Safety Watchdog的ENDINIT設(shè)為0后,Safety EndInit的保護(hù)就解除了。

ENDINIT設(shè)置為0的操作,需要一套較為復(fù)雜的操作序列。

ENDINIT置為0需要一段時間,只有等到ENDINIT真的為0后才能執(zhí)行往下的操作,不然可能會產(chǎn)生異常。

29085a96-b1a6-11ed-bfe3-dac502259ad0.png

EICON0和SEICON0是兩個Global的ENDINIT保護(hù)寄存器,如果不想改變Watchdog CPUx或者Safety Watchdog的ENDINIT值,但是又想解除保護(hù),就可以使用Global的EICON0和SEICON0(前提是EndInit的保護(hù)等級是“E”或者“SE”)。

29269a06-b1a6-11ed-bfe3-dac502259ad0.png

對于保護(hù)等級為“E”或者“SE”的寄存器,在操作它之前需要先解除EndInit保護(hù)。

293f05fa-b1a6-11ed-bfe3-dac502259ad0.png

fsys類似fspb,類似于外設(shè)總線頻率。

2950b318-b1a6-11ed-bfe3-dac502259ad0.png

298973ba-b1a6-11ed-bfe3-dac502259ad0.png

復(fù)位以后CPU的Watchdog默認(rèn)是處在Time-Out Mode下的,WDT在Time-Out Mode下就會從0xFFFC開始往上計數(shù),如果計數(shù)到0xFFFF就會溢出,如果在計數(shù)到0xFFFF之前對WDT_CON0進(jìn)行了password access后對WDT_CON0進(jìn)行了Modify access,重新對WDT進(jìn)了reload value到REL_1值(寫寄存器前ENDINIT值改為1了,也就是先要介紹ENDINIT保護(hù)),這樣WDT從Time-Out模式切換到了Normal Mode,這個時候WDT開始從REL_1值晚上計數(shù)。

Note: 后面會介紹password access和Modify access

29a9d02e-b1a6-11ed-bfe3-dac502259ad0.png

在上圖中的3)的地方對WDT_CON0進(jìn)行了password access,WDT就會切換到Time-Out Mode,WDT又從0xFFFC開始計數(shù),如果在4)這個點(diǎn),又對WDT_CON0做了password access就會切換WDT到Normal Mode,同時對WDT_CON0做了一次Modify access后,WDT從REL_2開始計數(shù)。

29ebcc40-b1a6-11ed-bfe3-dac502259ad0.png

計數(shù)到0xFFFF后WDT就溢出了,觸發(fā)SMU的Timeout的Alarm,這個Alarm會觸發(fā)SMU里面的一個Recovery time進(jìn)行計數(shù),Recovery time也timeout后就會產(chǎn)生一個SMU的reset。

29fc2496-b1a6-11ed-bfe3-dac502259ad0.png

2a0e4608-b1a6-11ed-bfe3-dac502259ad0.png

Password access的條件是LCK為0,ENDINIT為1。WDTxCON0.PW[7:2]寫入當(dāng)前WDTxCON0.PW[7:2]值的反轉(zhuǎn)值,WDTxCON0.PW[15:8]寫入當(dāng)前WDTxCON0.PW[15:8]值,這樣Password access就解鎖了。

2a32abe2-b1a6-11ed-bfe3-dac502259ad0.png

如果Password成功以后,就相當(dāng)于這個寄存器被解鎖了,然后就可以在PW中填入新的Password,REL和ENDINIT也可以寫入新的值,當(dāng)完成Modify access后,這個寄存器就又被lock住了,如果要改它就需要再來一次password access。

2a93b554-b1a6-11ed-bfe3-dac502259ad0.png

當(dāng)WDT_CON0進(jìn)行了一次Password Access之后WDT的狀態(tài)會切換為Time-Out mode,也就是說接下來操作這個寄存器的時間必須要比較短,就是要在Watchdog Timeout之前完成操作。

2aab60d2-b1a6-11ed-bfe3-dac502259ad0.png

2ac269bc-b1a6-11ed-bfe3-dac502259ad0.png

2ad681a4-b1a6-11ed-bfe3-dac502259ad0.png

2aea0eae-b1a6-11ed-bfe3-dac502259ad0.png

Set EndInit的Modify Access動作會設(shè)置WDT_CON0.INIT為1,WDT的Reload timer會重新Reload一次,也就是和Watchdog的喂狗操作是一樣的。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • MOS管
    +關(guān)注

    關(guān)注

    109

    文章

    2549

    瀏覽量

    70326
  • pll
    pll
    +關(guān)注

    關(guān)注

    6

    文章

    888

    瀏覽量

    136221
  • MCU芯片
    +關(guān)注

    關(guān)注

    3

    文章

    256

    瀏覽量

    12042
  • 看門狗模塊
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    1493
  • 時鐘系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    108

    瀏覽量

    12135

原文標(biāo)題:簡析TC3xx Rest/Clock/Watch模塊

文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    請問tc3xx如何配置多個dedicatedRxBuffersNumber?

    tc3xx如何配置多個dedicatedRxBuffersNumber?
    發(fā)表于 04-21 07:53

    國產(chǎn)電壓基準(zhǔn)源對標(biāo)REF34XX/ADR34XX的模擬I/O模塊替換方案

    國產(chǎn)電壓基準(zhǔn)源對標(biāo)REF34XX/ADR34XX的模擬I/O模塊替換方案
    的頭像 發(fā)表于 04-03 09:49 ?359次閱讀
    國產(chǎn)電壓基準(zhǔn)源對標(biāo)REF34<b class='flag-5'>XX</b>/ADR34<b class='flag-5'>XX</b>的模擬I/O<b class='flag-5'>模塊</b>替換方案

    詳解REST API通信協(xié)議

    環(huán)。 為了實(shí)現(xiàn)這目標(biāo),我們采用了多種通信協(xié)議,包括MQTT、OPC UA、AMQP和REST API,它們共同構(gòu)成了智能通信的堅(jiān)實(shí)基礎(chǔ)。本期內(nèi)容,讓我們聚焦REST API通信協(xié)
    的頭像 發(fā)表于 01-17 12:40 ?941次閱讀
    詳解<b class='flag-5'>REST</b> API通信協(xié)議

    優(yōu)化TC3xx系統(tǒng)運(yùn)行效率的策略

    目錄 1.Tricore尋址模式 2.lsl鏈接文件Section分析 3.限定符對于代碼的影響 4.小結(jié) 1.Tricore尋址模式 今天聊個好玩的事情。 之前ARM培訓(xùn)的時候,他們對于函數(shù)形參
    的頭像 發(fā)表于 11-16 11:00 ?1287次閱讀
    優(yōu)化<b class='flag-5'>TC3xx</b>系統(tǒng)運(yùn)行效率的策略

    DRV88xx評估模塊

    電子發(fā)燒友網(wǎng)站提供《DRV88xx評估模塊.pdf》資料免費(fèi)下載
    發(fā)表于 11-11 15:32 ?0次下載

    DRV84xx_89xx_8256x評估模塊用戶指南

    電子發(fā)燒友網(wǎng)站提供《DRV84xx_89xx_8256x評估模塊用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-08 14:59 ?0次下載
    DRV84<b class='flag-5'>xx_89xx</b>_8256x評估<b class='flag-5'>模塊</b>用戶指南

    使用TMS320C40分模塊的硬件監(jiān)控器

    電子發(fā)燒友網(wǎng)站提供《使用TMS320C40分模塊的硬件監(jiān)控器.pdf》資料免費(fèi)下載
    發(fā)表于 10-28 10:05 ?0次下載
    使用TMS320C40分<b class='flag-5'>析</b><b class='flag-5'>模塊</b>的硬件監(jiān)控器

    TDA3xx錯誤信號模塊(ESM)

    電子發(fā)燒友網(wǎng)站提供《TDA3xx錯誤信號模塊(ESM).pdf》資料免費(fèi)下載
    發(fā)表于 10-11 10:03 ?0次下載
    TDA<b class='flag-5'>3xx</b>錯誤信號<b class='flag-5'>模塊</b>(ESM)

    請問AURIX TC3xx tricore架構(gòu)下浮點(diǎn)運(yùn)算和將浮點(diǎn)數(shù)小數(shù)點(diǎn)去掉變成整數(shù)來計算哪種方式更加節(jié)省算力?

    AURIX TC3xx tricore架構(gòu)下浮點(diǎn)運(yùn)算和將浮點(diǎn)數(shù)小數(shù)點(diǎn)去掉變成整數(shù)來計算哪種方式更加節(jié)省算力? 比如個浮點(diǎn)數(shù)12.89V,如果將其寫成12890mV,再參與計算,哪種方式更加節(jié)省算力
    發(fā)表于 08-26 06:54

    請問EB tresos如何配置TC39XX的Flexray?

    EB tresos如何配置TC39XX 的 Flexray,在網(wǎng)絡(luò)上找不到相關(guān)的配置方法??梢蕴峁?b class='flag-5'>一下 EB 的配置工程嗎?
    發(fā)表于 08-14 08:14

    TC367 SYS RESET/APP RESET之后RAM不會清除怎么解決?

    我看了單片機(jī)干貨|AURIX? TC3xx 復(fù)位后RAM不初始化方法 - 知乎 (zhihu.com) 這篇文章,并且設(shè)置了UCB(僅僅設(shè)置了DFLASH_ORIG) ? 然后設(shè)置了些變量
    發(fā)表于 07-24 07:23

    ERAY (FlexRay) 模塊卡在INTEGRATION_LISTEN狀態(tài),為什么?

    大家好, 我有 TC3XX 入門套件板,我想實(shí)施并測試 FlexRay 協(xié)議。 我的想法是在開發(fā)板上的兩個可用 ERAY 模塊之間實(shí)現(xiàn)環(huán)回。 我以演示項(xiàng)目為起點(diǎn),只添加了 ERAY 模塊 1
    發(fā)表于 07-24 06:54

    求助,關(guān)于ESP8266 HTTPClient REST調(diào)用問題求解

    我有個 Sketch,我在其中調(diào)用了 REST 服務(wù),它在我的 ESP-12E 模塊上運(yùn)行良好。REST 調(diào)用是針對運(yùn)行 Windows 10 IoT 的 Raspberry PI
    發(fā)表于 07-19 13:32

    針對特定內(nèi)核使用PFlash,是否會影響多核應(yīng)用程序的性能?

    根據(jù)AURIX TC3xx 系列用戶手冊第部分(infineon.com)表 71,從本地內(nèi)核 PFlash 獲取指令所需的 CPU 周期比其他內(nèi)核快。因此,根據(jù)我的理解,映射到內(nèi)核 0 的運(yùn)行
    發(fā)表于 07-04 06:04

    TC2XX/3XX多核斷點(diǎn)設(shè)置無效的原因?

    TC2XX/3XX多核斷點(diǎn)設(shè)置無效,請問hinghtec的多核要怎么才能被觸發(fā),(函數(shù)已經(jīng)執(zhí)行,但是斷點(diǎn)沒有被觸發(fā))或者如何才能進(jìn)行多核調(diào)試。
    發(fā)表于 07-03 07:33