19.4
DTC模塊框圖分析
19.4.1
DTC內部寄存器
MRA、MRB、SAR、DAR、CRA和CRB這些都是屬于DTC內部的寄存器,它們是無法通過CPU直接訪問的。這些DTC內部寄存器中設置的值作為傳輸信息放置在SRAM區域中。當生成激活請求時,DTC從SRAM區域讀取傳輸信息,并將其設置在其內部寄存器中。數據傳輸結束后,內部寄存器內容作為傳輸信息寫回SRAM區域。
我們在使用DTC時,是通過配置傳輸信息來間接配置這些DTC內部寄存器的。
19.4.2
事件鏈接
DTC可以在完成一個傳輸請求時產生事件鏈接請求。然而,當傳輸目的地是外部總線時,事件鏈接請求將在寫入緩沖器完成之后發出,而不是在寫入實際傳輸目的地完成之后發出。
19.5
DTC傳輸模式
DTC模塊支持三種操作模式,相對于DMAC,少了重復-塊傳輸模式。
正常模式:在正常模式下,DTC每次接收到中斷觸發時都會傳輸單個數據單元。數據單元可以是1、2、4字節。傳輸的長度(length)可以設置為[0,65535]。當長度設置為0時,DTC將執行65536傳輸,而不是0。在每次傳輸之后,源地址和目的地址可以單獨設置為固定、遞增或遞減。每次傳輸后,16位計數器遞減。當計數器達到0時,DTC傳輸將不再會被中斷源觸發,CPU可以被中斷以通知所有傳輸已完成。
重復模式:重復模式的工作方式與正常模式相同,但長度(length)限制為范圍[1,256]內的整數。當傳輸計數器達到0時,計數器被重置為其配置值(length),重復區域(源或目的地址)被重置為其起始地址,并且傳輸仍將會被中斷觸發。
塊模式:在塊模式下,每個中斷傳輸的數據單元量可以設置為范圍[1,256]內的整數。還可以將要傳輸的塊數量(num_blocks)配置為16位數字,即可以設置為[0,65535]。當長度設置為0時,DTC將執行65536傳輸,而不是0。每次塊傳輸后,重復區域(源或目的地址)將重置為原始地址,而另一個地址將遞增或遞減到下一個塊。
19.5.1
正常傳輸模式
正常傳輸模式(NormalTransferMode)允許在單個激活源上進行1字節(8位)、1半字(16位)、1字(32位)數據傳輸。傳輸計數可以設置為1到65536(0x10000)。傳送源地址和目的地址也可以獨立設置為遞增、遞減或固定。該模式允許在指定的計數傳輸結束時生成對CPU的中斷請求。
正常傳輸模式的內存映射如下圖所示
19.5.2
重復傳輸模式
重復傳輸模式(RepeatTransfer Mode)允許在單個激活源上進行1字節(8位)、1半字(16位)或1字(32位)數據傳輸。重復區域的傳輸源或傳輸目的地必須在MRB.DTS位中指定。傳輸計數可以設置為從1到256。
當指定的傳輸計數完成時,恢復重復區域中指定的地址寄存器的初始值,恢復傳輸計數器的初始值,并重復傳輸。另一地址寄存器連續遞增或遞減或保持不變。
在重復傳輸模式下,當傳輸計數器CRAL遞減到0x00時,CRAL值更新為CRAH寄存器中設置的值。因此,傳輸計數器不會清0,當MRB.DISEL位設置為0時,將禁用對CPU的中斷請求。當指定的數據傳輸完成時,會生成對CPU的中斷請求。
當傳輸源為重復區域時,重復傳輸模式的內存映射如下圖所示:
19.5.3
塊傳輸模式
塊傳輸模式(BlockTransfer Mode)允許在單個激活源上進行單塊數據傳輸。數據塊區域的傳輸源或傳輸目的地必須在MRB.DTS位中指定。塊大小可以設置為1至256字節、1至256半字(2至512字節)或1至256字(4至1024字節)。
當指定塊的傳輸完成時,恢復塊區域中指定的塊大小計數器CRAL和地址寄存器(當MRB.DTS=1時為SAR寄存器或當DTS=0時為DAR寄存器)的初始值。另一地址寄存器連續遞增或遞減或保持不變。傳輸計數(塊計數)可以設置為從1到65536。該模式允許在指定計數塊傳輸結束時生成對CPU的中斷請求。
塊傳輸模式的內存映射如下圖所示:
-
寄存器
+關注
關注
31文章
5590瀏覽量
129249 -
cpu
+關注
關注
68文章
11229瀏覽量
223226 -
瑞薩
+關注
關注
36文章
22437瀏覽量
89905 -
計數器
+關注
關注
32文章
2307瀏覽量
97701
原文標題:DTC模塊框圖分析——瑞薩RA系列FSP庫開發實戰指南(53)
文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄

瑞薩RA系列MCU中的DTC模塊框圖分析
評論