文章目錄
- ARU-connected Timer Output Module (ATOM)
- Overview
- GLOBAL CHANNEL CONTROL BLOCK
- ATOM Channel architecture
- ATOM Channel modes
- SOMP-Signal Output Mode PWM
- SOMP - ARU
- SOMC-Signal Output Mode Compare
- SOMC - ARU
- SOMC – COMPARE COMMAND
- SOMC – OUTPUT ACTION
- ATOM Signal Output Mode Serial (SOMS)
- SERIAL OUTPUT - ARU
- ATOM Signal Output Mode Buffered Compare(SOMB)
- SOMB - COMPARE COMMAND
- SOMB – OUTPUT ACTION
- ATOM SYNCHRONOUS UPDATE
- SYNCHRONOUS UPDATE BY ARU
- 同步更新示例
- ASYNCHRONOUS UPDATE
- ATOM Interrupt signals
- ATOM Register overview
- ATOM Register description
- GTM0ATOMiAGCGLBCTRL (i = 0 to 2)
- GTM0ATOMiAGCENDISCTRL (i = 0 to 2)
- GTM0ATOMiAGCENDISSTAT (i = 0 to 2)
- GTM0ATOMiAGCACTTB (i = 0 to 2)
- GTM0ATOMiAGCOUTENCTRL (i = 0 to 2)
- GTM0ATOMiAGCOUTENSTAT (i = 0 to 2)
- GTM0ATOMiAGCFUPDCTRL (i = 0 to 2)
- GTM0ATOMiAGCINTTRIG (i = 0 to 2)
- GTM0ATOMixCTRL (i = 0, x = 0 to 7,i = 1, x = 0 to 7,i = 2, x = 0 to 4)
- GTM0ATOMixSTAT (i = 0, x = 0 to 7,i = 1, x = 0 to 7,i = 2, x = 0 to 4)
- GTM0ATOMixRDADDR
- GTM0ATOMixCN0
- GTM0ATOMixCM0
- GTM0ATOMixSR0
- GTM0ATOMixCM1
- GTM0ATOMixSR1
- GTM0ATOMixIRQNOTIFY (x = 0 to 7)
- GTM0ATOMixIRQEN (x = 0 to 7)
- GTM0ATOMixIRQFORCINT (x = 0 to 7)
- GTM0ATOM00IRQMOD (x = 0 to 7)
ARU-connected Timer Output Module (ATOM)
Overview
連接ARU的定時器輸出模塊(ATOM)由于其與ARU的連接,能夠在沒有CPU交互的情況下生成復雜的輸出信號。通常,通過連接到ARU的子模塊(例如MCS、DPLL或PSM)在ARU連接上提供輸出信號特性。每個ATOM子模塊包含八個輸出通道,這些通道可以在幾種可配置的操作模式下相互獨立操作。ATOM子模塊的框圖如圖25.32所示
ATOM子模塊的架構與TOM子模塊類似,但有一些不同。首先,ATOM只集成了八個輸出通道。因此,存在用于ATOM通道的一個ATOM全局控制子單元(AGC)。ATOM連接到ARU,可以設置來自ARU的單獨讀取請求和對ARU的寫入請求。此外,ATOM通道能夠代表時間戳生成信號,ATOM通道能夠代表內部移位寄存器生成串行輸出信號。
GLOBAL CHANNEL CONTROL BLOCK
TBU_CH0-2 (ACT_TB)時基匹配寄存器
HOST trigger
強制更新觸發器(FUPD)
輸出啟用控制(OUTEN_STAT) w/ shadow (OUTEN_CTRL
通道啟用控制(ENDIS_STAT) w/影子寄存器(ENDIS)
通道更新啟用控制(UPEN_CTRL)
內部TRIG_0信號選擇(INT_TRIG)
ATOM Channel architecture
每個ATOM通道能夠根據四種操作模式生成輸出信號。ATOM通道的體系結構類似于TOM通道的體系結構。ATOM通道的一般架構如圖25.34所示。
兩個計數器/比較單元CCU0和CCU1
24位計數器寄存器(CN0)時鐘w/選擇輸入頻率(CMU_CLK0-7)
信號輸出產生單元(SOU)
ARU接口單元(ACI)
兩個比較寄存器CM0和CM1與影子寄存器SR0和SR1連接到ARU
時鐘源(CLK_SRC) w/ shadow (CLK_SRC_SR)
相對于TOM來說,主要多了一個ARU接口-ACI模塊
ATOM Channel modes
SOMP-Signal Output Mode PWM
輸出PWM
TOM功能,當CN0達到CM0或CM1時輸出切換
一次或連續操作
CM0定義周期,CM1定義占空比
通過AEI總線進行同步/異步更新
通過ARU同步更新可以使用w/ or w/o ARU
SOMP - ARU
僅同步更新ARU SR0, SR1和CLK_SRC_SR(影子寄存器)
在ARU傳輸期間阻止從影子寄存器更新CM0和CM1以確保數據一致性
SR0保存CM0,即PWM周期,SR1保存CM1,即PWM占空比
SOMC-Signal Output Mode Compare
輸出比較
基于CM0/CM1與TBU_TS0/TS1比較的輸出動作
較大/相等或較小/相等比較
在CM0/CM1的時間戳匹配存儲在通道陰影寄存器(SR0/SR1)
在編程匹配和輸出動作后禁用ATOM通道
- 讀取SR0/SR1并寫入新的CM0/CM1后進行下一步匹配
必須配置并啟用TBU
SOMC - ARU
在ARU控制CM0、CM1下,由ARU發送匹配行為和輸出行為
非阻塞:如果沒有匹配,ARU數據將連續傳輸到CM0, CM1和ACBI
阻塞:在CM0和CM1更新后,不向ARU請求新的數據,直到匹配
SOMC – COMPARE COMMAND
Serve first:在CCC0和CCU1上進行并行比較,第一次匹配導致輸出動作,禁用第二次匹配
Serve last:首先比較CCU0,然后比較CCU1。
CCU0匹配觸發輸出動作
CCU1匹配切換輸出狀態
Single compare:只比較CCU0或CCU1,匹配時觸發輸出動作
ARU data request:切換到ARU RDADDR1并請求新的匹配數據,沒有輸出動作
配置TBU通道使用(TBU12_SEL)
使用時,比較大于等于或小于等于TBU_TS1/2 (CMP_CTRL)
如果CCU0使用TBU_TS0進行比較,則只有Greater-equal
SR0/SR1中比較匹配時的時間戳
SOMC – OUTPUT ACTION
ATOM Signal Output Mode Serial (SOMS)
CM1寄存器的位在通道輸出上移出
在CM0中移位的位數
在ATOM_CH[x]_CTRL位ACB0中確定移動方向(左/右)
- 右:CM1數據對齊到0位
- 左:CM1數據對齊到第23位
CCU0以計數器/比較模式運行,計數移位的位數
SERIAL OUTPUT - ARU
SR0和SR1以及移位方向
移動方向ACBI(0)
下一個ARU請求發出后,影子寄存器加載到CM0, CM1
- 如果通道更新被禁用(UPEN=0),則沒有連續的ARU請求
ATOM Signal Output Mode Buffered Compare(SOMB)
類似于SOMC(定義比較的輸出操作)
- 新值存儲在影子寄存器(ARU或AEI)中
- 匹配后從陰影寄存器加載新值(SR0, SR1, ACB_SR)
- 當沒有新的陰影值CCU0/CCU1時,等待空閑
SOMB - COMPARE COMMAND
SOMB – OUTPUT ACTION
ATOM SYNCHRONOUS UPDATE
幾個ATOM寄存器有影子寄存器
CM0/1, CLK_SRC, ENDIS, OUTEN
影子寄存器(CPU, DMA)的更新不影響通道操作
在觸發狀態下更新工作寄存器(當啟用時)
更新多個影子寄存器時應禁用更新
通過AEI或ARU寫入影子寄存器
觸發方式:
Host CPU (HOST_TRIG)
TBU時間戳匹配(ACT_TB)
內部觸發
- From CCU0 on CN0 reset (CN0 >= CM0, end of a period)
- From ATOM[x-1] (INT_TRIG)
- From TIM_EXT_CAPTURE of TIM channel (EXT_FUPD)
SYNCHRONOUS UPDATE BY ARU
同步更新示例
同步更新:如下圖所示,通過對SR1寄存器值更新,使得ATOM輸出在下一個周期才同步一起更新CM1
ASYNCHRONOUS UPDATE
只能通過AEI外圍總線主機(CPU, DMA)實現
直接寫入工作寄存器CM0, CM1, ENDIS_STAT, OUTEN_STAT
新設置立即生效(無一致性)
通過直接對CM1寄存器值更新,使得ATOM輸出可能在本次周期內輸出就發生改變。
ATOM Interrupt signals
ATOM Register overview
ATOM Register description
GTM0ATOMiAGCGLBCTRL (i = 0 to 2)
使能通道更新CM0, CM1 and CLK_SRC
UPEN_CTRL:
RST_CH:寫1后會復位對應的通道
HOST_TRIG:觸發請求信號(參見AGC)來更新寄存器ENDIS_STAT和OUTEN_STAT
GTM0ATOMiAGCENDISCTRL (i = 0 to 2)
ENDIS_CTRL:使能通道通過trigger更新值
GTM0ATOMiAGCENDISSTAT (i = 0 to 2)
ENDIS_STAT:使能通道
GTM0ATOMiAGCACTTB (i = 0 to 2)
TBU_SEL:選擇對應的TBU_TS
TB_TRIG:trigger觸發位,觸發后會自動clear
ACT_TB:設置與TBU_TS[x]的比較值,TBU_TS[x]大于該值時產生觸發信號
GTM0ATOMiAGCOUTENCTRL (i = 0 to 2)
OUTEN_CTRL:使能通道輸出由update trigger觸發
GTM0ATOMiAGCOUTENSTAT (i = 0 to 2)
使能通道輸出
GTM0ATOMiAGCFUPDCTRL (i = 0 to 2)
RSTCN0_CHx:強制更新事件時重置通道x的CN0
FUPD_CTRL0:是否使能強制更新ATOM通道0操作寄存器
GTM0ATOMiAGCINTTRIG (i = 0 to 2)
INT_TRIGx:選擇輸入信號TRIG_x作為觸發源
GTM0ATOMixCTRL (i = 0, x = 0 to 7,i = 1, x = 0 to 7,i = 2, x = 0 to 4)
SOMB:使能SOMB功能
ABM:ARU阻塞方式
0:禁用ARU阻塞模式:ATOM連續地從ARU讀取并更新CM0, CM1,獨立于掛起的比較匹配事件
1:使能ARU阻塞模式:通過ARU更新CM0、CM1后,不從ARU讀取新的數據,直到發生比較匹配事件
OSM:單次還是連續
SLA:執行Serve last ARU通信策略
0:捕獲未提供給ARU的CCU0匹配事件后的SRx時間戳
1:捕獲提供給ARU的CCU0匹配事件后的SRx時間戳
此位僅適用于SOMC模式。
TRIGOUT:選擇輸出trigger的方式,0-選擇前一個通道的trigger,1-由CN0到達CM0觸發
EXTTRIGOUT:選擇TIM_EXT_CAPTURE(x)作為備用輸出信號TRIG_[x]
0:信號TRIG_[x-1]被選擇作為TRIG_[x]的輸出(如果TRIGOUT = 1)
1:選擇信號TIM_EXT_CAPTURE(x)作為TRIG_[x]的輸出(如果Trigout = 1)
EXT_TRIG:選擇TIM_EXT_CAPTURE(x)作為觸發信號
0:選擇信號TIM_[x-1]作為觸發器,復位CN0或開始單脈沖產生。
1:選擇“信號TIM_EXT_CAPTURE(x)”
OSM_TRIG:啟用觸發信號OSM_TRIG觸發單次脈沖
0:信號OSM_TRIG不能觸發單脈沖產生啟動
1:信號OSM_TRIG可以觸發單脈沖生成啟動(僅當位Osm = 1)
RST_CCU0:選擇CN0的復位方式,0-CN0達到CM0復位,1-通過前一個通道的trigger復位
WR_REQ:CPU寫請求位用于后期比較寄存器更新。(此位僅適用于SOMC和SOMB模式。)
CLK_SRC_SR:選擇通道時鐘,該時鐘作為CN0計數用。
SL:選擇輸出的占空比的有效電平為高還是低
CMP_CTRL:CCUx比較策略選擇。
0:與TBU時間基準值比較大于等于(TBU_TSx≥CMx)
1:與TBU時間基準值比較小于/等于(TBU_TSx≤CMx)
ACB:ATOM模式控制位。
ARU_EN:ARU輸入流使能。
0:關閉ARU輸入流
1:表示ARU輸入流使能
TB12_SEL:選擇時間基準值TBU_TS1或TBU_TS2。
0:選擇TBU_TS1進行比較
1:選擇TBU_TS2進行比較
MODE:選擇ATOM通道模式。
GTM0ATOMixSTAT (i = 0, x = 0 to 7,i = 1, x = 0 to 7,i = 2, x = 0 to 4)
ACBO:ATOM內部狀態位。
ACBO[3] = 1: CCU0比較匹配發生
ACBO[4] = 1: CCU1比較匹配發生
WRF:CPU寫請求失敗,延遲更新。
0:后期更新成功,CCUx單元等待比較。
1:后期更新失敗。
DV:存儲在比較寄存器中的有效ARU數據。
0:寄存器CM0和/或CM1中沒有存儲有效數據,沒有激活比較。
1:有效數據存儲在CM0和/或CM1中,啟動比較
ACBI:ATOM模式控制位。
OL:ATOM_CHx_OUT的實際輸出信號電平。
0:實際輸出信號電平低
1:實際輸出信號電平高
GTM0ATOMixRDADDR
RDADDR1/0:ARU讀地址1/0。
GTM0ATOMixCN0
CN0:ATOM計數寄存器
GTM0ATOMixCM0
CM0:ATOM CCU0比較寄存器,用來設置周期。
GTM0ATOMixSR0
SR0:CM0的影子寄存器,ATOM同步更新時使用
GTM0ATOMixCM1
CM1:ATOM CCU1比較寄存器,設置為0時表示占空比0%。
GTM0ATOMixSR1
SR1:CM1的影子寄存器,TOM通道同步更新時使用
GTM0ATOMixIRQNOTIFY (x = 0 to 7)
CCU1/0TC:CCU1/0通道x觸發條件中斷。
0:沒有中斷。
1: CCU1/0觸發條件中斷被ATOM通道x觸發,CCU0在周期觸發,CCU1在占空比到達時觸發
GTM0ATOMixIRQEN (x = 0 to 7)
CCU1/0TC_IRQ_EN:ATOM_CCU1/0TC_IRQ中斷使能。
0:關閉中斷,中斷在GTM-IP之外不可見。
1:使能中斷,中斷在GTM-IP外可見。
GTM0ATOMixIRQFORCINT (x = 0 to 7)
TRG_CCU1/0TC:通過軟件觸發ATOM_CCU1/0TC_IRQ中斷。
GTM0ATOM00IRQMOD (x = 0 to 7)
IRQ_MODE:IRQ模式選擇
00:電平模式
01:脈沖模式
10:脈沖通知模式
11:單脈沖模式