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

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

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

YTM32的DMA控制器要點(diǎn)簡(jiǎn)析

冬至子 ? 來源:安德魯?shù)脑O(shè)計(jì)筆記本 ? 作者:安德魯蘇 ? 2023-10-10 11:37 ? 次閱讀

引言

考慮到DMA是一個(gè)AHB Master設(shè)備,可以同處理器內(nèi)核一樣,主動(dòng)向總線發(fā)起傳輸請(qǐng)求,將“小臟手”伸向各總線上掛載的各外設(shè)模塊,因此,我更愿意把DMA看做是處理器核心服務(wù)的一部分,甚至把它當(dāng)成一個(gè)小核或者協(xié)處理器都不為過。

DMA可以在CPU之外,捕獲到觸發(fā)信號(hào)后,自行搬運(yùn)數(shù)據(jù)從指定地址到另一個(gè)指定地址,并且還可以根據(jù)預(yù)先的配置自動(dòng)計(jì)算下一次搬運(yùn)的地址。使用DMA可以有效地節(jié)約CPU處理海量數(shù)據(jù)傳輸?shù)呢?fù)載??梢韵胍?,如果使用中斷方式處理通過外設(shè)發(fā)送或者接收數(shù)據(jù),CPU將會(huì)在頻繁切換中斷服務(wù)之間花費(fèi)大量的時(shí)間。

另外,DMA從DMAMUX獲取的觸發(fā)源,能夠?qū)崿F(xiàn)的自動(dòng)讀寫的操作,若是某些讀操作或者寫操作能夠產(chǎn)生額外的觸發(fā)事件,還可以傳遞觸發(fā),形成觸發(fā)鏈,最終可實(shí)現(xiàn)一些完全不需要硬件干預(yù)的自動(dòng)化任務(wù)??傊珼MA真心是一個(gè)功能豐富的模塊。

本文將介紹YTM32平臺(tái)上DMA的工作機(jī)制,對(duì)關(guān)鍵概念展開講解。

簡(jiǎn)介

YTM32(以YTM32B1ME05為例)微控制器上集成的DMA控制器可以支持16個(gè)通道,并且搭配了一個(gè)多達(dá)128個(gè)選項(xiàng)的DMA MUX模塊,可以對(duì)接任何一個(gè)通道。其中多個(gè)通道是復(fù)用同一個(gè)DMA控制器的,并且共用同一個(gè)數(shù)據(jù)搬運(yùn)引擎。DMA MUX管理了可以觸發(fā)DMA通道的硬件事件,每款芯片可能都不一樣(YTM32B1MD14中的DMAMUX只有64個(gè)選項(xiàng)),在具體使用時(shí),需要從具體的芯片手冊(cè)中查表。

還需要特別注意的是,目前YTM32平臺(tái)上的DMA尚未支持異步時(shí)鐘模式,它使用core clock驅(qū)動(dòng),僅能在普通模式下工作,在休眠模式、深度休眠以及更低功耗的休眠模式下,均停止工作。

本DMA控制器通過多個(gè)通道的傳輸任務(wù)描述符(CTS)管理搬運(yùn)數(shù)據(jù)的過程,并且還支持鏈接模式,即將多個(gè)傳輸任務(wù)描述符連鏈接在一起,形成傳輸任務(wù)鏈。

原理與機(jī)制

DMA控制器是一個(gè)AHB總線主機(jī),但仍同普通的外設(shè)一樣,作為一個(gè)APB總線從機(jī),被配置成合適的工作模式。DMA控制器通過DMAMUX,可以直接收集來自片上其他外設(shè)模塊發(fā)出的觸發(fā)信號(hào),進(jìn)而觸發(fā)DMA在地址空間搬運(yùn)數(shù)據(jù)的過程。如圖x所示。

image.png

圖x DMA控制器的系統(tǒng)框圖

需要注意的是,DMA的搬運(yùn)過程是在地址空間內(nèi)操作的,可以是從內(nèi)存到內(nèi)存,從外設(shè)到外設(shè),在內(nèi)存與外設(shè)之間等,對(duì)于DMA而言,只是搬數(shù),至于數(shù)據(jù)映射到物理設(shè)備是外設(shè)還是內(nèi)存,均由總線負(fù)責(zé)落實(shí)。

相對(duì)于有的DMA控制器將觸發(fā)信號(hào)和搬運(yùn)數(shù)據(jù)源頭地址或目標(biāo)地址綁定的設(shè)計(jì),YTM32的DMA控制器將觸發(fā)信號(hào)和搬運(yùn)任務(wù)所使用的地址相互獨(dú)立,例如,當(dāng)某個(gè)定時(shí)器模塊產(chǎn)生的觸發(fā)信號(hào)觸發(fā)了DMA的一個(gè)搬運(yùn)數(shù)據(jù)的任務(wù)(通道),這個(gè)任務(wù)可以將ADC轉(zhuǎn)換結(jié)果的數(shù)據(jù)搬運(yùn)到內(nèi)存中。這其中,定時(shí)器和ADC是沒有直接關(guān)聯(lián)的。

DMA通道的傳輸任務(wù)描述符

YTM32的DMA的各個(gè)通道,可以看做是各自獨(dú)立的傳輸任務(wù),每個(gè)任務(wù)都有自己的觸發(fā)條件、對(duì)觸發(fā)條件的響應(yīng)方式、搬運(yùn)數(shù)據(jù)的源地址和目的地址、搬運(yùn)數(shù)據(jù)的帶寬、搬運(yùn)數(shù)據(jù)的數(shù)量、每次搬運(yùn)完成后對(duì)搬運(yùn)過程進(jìn)行調(diào)整的策略等,如此看來,DMA控制器就是這些獨(dú)立任務(wù)的調(diào)度器,當(dāng)多個(gè)任務(wù)被同時(shí)觸發(fā)時(shí),以一定的調(diào)度策略安排他們依次運(yùn)行。

DMA通道對(duì)應(yīng)的這些獨(dú)立的搬運(yùn)任務(wù),在DMA引擎的建模中,被稱為CTS(DMA Channel Transfer Structure),其結(jié)構(gòu)如圖x所示。

image.png

圖x DMA通道的傳輸任務(wù)描述符

這個(gè)結(jié)構(gòu)的內(nèi)容并不是以指針的方式存放在SRAM中,而是直接做在寄存器結(jié)構(gòu)里,可以在DMA的寄存器清單中找到與之一一對(duì)映的寄存器。如圖x所示。

image.png

圖x CTS對(duì)應(yīng)的每個(gè)通道各自下轄的一組寄存器

但CTS也可以存放在RAM中,若配置了DMA_CTS_CSR[RLDEN]=1,則在大循環(huán)完成后,直接從寄存器DMA_CTS_DTO(原來存放的是地址偏移量)存放的指針進(jìn)行索引,搬運(yùn)整個(gè)CTS結(jié)構(gòu)體的內(nèi)存覆寫到CTS對(duì)應(yīng)的寄存器中。

除此之外,只是借鑒CTS結(jié)構(gòu)中相關(guān)的寄存器,去配置DMA傳輸任務(wù)的參數(shù)即可,不必受限于CTS的抽象數(shù)據(jù)結(jié)構(gòu)。

DMA的觸發(fā)信號(hào)

YTM32的DMA控制器為每個(gè)DMA搬運(yùn)任務(wù)設(shè)計(jì)了兩種觸發(fā)方式:軟件觸發(fā)和硬件觸發(fā)。其中,軟件觸發(fā)可由CPU直接向DMA控制器的寄存器寫數(shù)(DMA_CTSn_CSR[START]),主動(dòng)啟動(dòng)傳輸過程;硬件觸發(fā)使用預(yù)設(shè)的硬件觸發(fā)信號(hào),當(dāng)來自外設(shè)的硬件觸發(fā)信號(hào)通過DMAMUX到來之時(shí),自動(dòng)啟動(dòng)DMA搬運(yùn)任務(wù)開始搬數(shù)。DMA的每次觸發(fā),執(zhí)行一次小循環(huán)的搬運(yùn)過程,一個(gè)大循環(huán)可以包含多個(gè)小循環(huán)的,因此一個(gè)大循環(huán)的搬運(yùn)任務(wù)可能會(huì)需要多次觸發(fā)才能完成。(關(guān)于大小循環(huán)的概念,可見樓下)

  1. 軟件觸發(fā)

DMA的軟件觸發(fā)是通過軟件寫各通道的寄存器位DMA_CTSn_CSR[START],或者寄存器DMA_START中對(duì)應(yīng)通道的控制位實(shí)現(xiàn)的,每寫1次就發(fā)出一個(gè)觸發(fā)信號(hào)。每次觸發(fā),執(zhí)行一次小循環(huán)(one trigger loop)的搬運(yùn)過程,TCNT寄存器中的計(jì)數(shù)器減1。

特別注意,軟件觸發(fā)是直接作用于DMA控制器的,不必配置DMAMUX的那個(gè)always_on的選項(xiàng)。但由此也可知,哪怕有可用的硬件觸發(fā)通過DMAMUX輸入到DMA控制器,軟件觸發(fā)也可以生效。相當(dāng)于是,軟件觸發(fā)和DMAMUX導(dǎo)入的硬件觸發(fā)信號(hào)相或,然后統(tǒng)一輸入到DMA控制器。

  1. 硬件觸發(fā)

DMA的硬件觸發(fā)信號(hào)來自于DMAMUX,而DMAMUX則可以從眾多觸發(fā)信號(hào)的源中選擇其中一個(gè)適用于某個(gè)指定的通道(寄存器DMA_CHMUXn)。具體選項(xiàng)可在芯片手冊(cè)中查閱,如圖x所示。

image.png

圖x 從手冊(cè)中查閱DMAMUX選項(xiàng)

DMAMUX選中的觸發(fā)信號(hào),還需要經(jīng)過一個(gè)REQEN的門控開關(guān)(寄存器DMA_REQEN中對(duì)應(yīng)通道的控制位),才能順利進(jìn)入DMA引擎。因此,每次使用DMA開始傳輸之前,如果要使用外部的硬件觸發(fā)源,必須確保打開這個(gè)門控開關(guān)。另外,每個(gè)DMA通道的傳輸描述符中的寄存器位DMA_CTS_CSR[DREQ]=1還可以控制在每個(gè)大循環(huán)傳輸完成之后,自動(dòng)關(guān)閉這個(gè)門控開關(guān)。如果DMA_CTS_CSR[DREQ]=0,則這個(gè)門控開關(guān)在大循環(huán)傳輸完畢后仍會(huì)保持打開。

這里提到的硬件觸發(fā)信號(hào),是直接來自于外設(shè)的DMA觸發(fā)信號(hào),通常會(huì)伴隨著這些外設(shè)的某些事件的發(fā)生,大多同時(shí)也可以觸發(fā)中斷。以LINFlexD為例,有對(duì)應(yīng)的DMA觸發(fā)信號(hào)的開關(guān),如圖x所示。

image.png

圖x SPI外設(shè)模塊的使能DMA請(qǐng)求控制位

DMA的大循環(huán)和小循環(huán)

一個(gè)最完整的DMA傳輸,可以包含多次觸發(fā),而每次觸發(fā),會(huì)引起連續(xù)地搬運(yùn)一塊數(shù)據(jù)(可以是連續(xù)的多個(gè)字節(jié))。以此,完整的DMA搬運(yùn)有大循環(huán)(Major Loop)小循環(huán)(Minor Loop)的概念,大循環(huán)包含小循環(huán)。

YTM32的手冊(cè)中使用了Transfer LoopTrigger Loop的名字:

  • Transfer loop means data transferred after one DMA channel trigger.
  • Trigger loop means DMA channel could accept how many DMA channel triggers(include software and hardware trigger).

從手冊(cè)的描述中可以獲知,Transfer Loop描述的是一次觸發(fā)(one trigger)執(zhí)行的包含若干個(gè)transfer的搬運(yùn)過程,而Trigger Loop可以包含多個(gè)觸發(fā)(many triggers),對(duì)應(yīng)大循環(huán)和小循環(huán)。如圖x所示。

image.png

圖x DMA搬數(shù)過程中的大循環(huán)和小循環(huán)

小循環(huán)搬運(yùn)的字節(jié)數(shù),由各DMA通道的BCNT寄存器指定,它本身也是一個(gè)遞減計(jì)數(shù)器,每傳輸一個(gè)字節(jié)就減1,減到0時(shí)就停止搬運(yùn)。

大循環(huán)的包含的小循環(huán)的次數(shù)(不是字節(jié)數(shù),是對(duì)觸發(fā)信號(hào)的計(jì)數(shù)),由各DMA通道的TCNT_KDDIS[TCNT]寄存器字段指定,它本身也是一個(gè)遞減計(jì)數(shù)器,每執(zhí)行一次小循環(huán)(觸發(fā))就減1,減到0時(shí)就停止。特別注意,此處的大循環(huán)管理的僅僅是觸發(fā),而不是傳輸內(nèi)存塊,如果使用多個(gè)傳輸任務(wù)描述符鏈接起來的傳輸任務(wù)描述鏈表,則每個(gè)任務(wù)描述符(可能在不同的地址塊和傳輸模式搬運(yùn)數(shù)據(jù))都對(duì)應(yīng)屬于各自的觸發(fā)次數(shù)(同一個(gè)通道的觸發(fā)源仍為同一個(gè))。

大循環(huán)執(zhí)行一半和完畢時(shí)都有對(duì)應(yīng)的標(biāo)志位(DMA_CHTLHDIFDMA_CHTLDIF),這里有個(gè)特別的設(shè)計(jì),只有啟用DMA傳輸通道的大循環(huán)半完成和全完成的中斷時(shí)(DMA_CTS_CSR[THDINT]=1DMA_CTS_CSR[TDINT]=1),這兩個(gè)標(biāo)志位才會(huì)置位,否則哪怕對(duì)應(yīng)的事件到來,也不會(huì)被置位。但另一個(gè)傳輸完成標(biāo)志位(DMA_DONEDMA_CTS_CSR[DONE]),無論是否開啟對(duì)應(yīng)的中斷(DMA_CTS_CSR[LOOPINT]),都能置位。這里就有一點(diǎn)小糾結(jié)了,如果同時(shí)啟動(dòng)了DMA_CTS_CSR[LOOPINT]DMA_CTS_CSR[TDINT]=1,DMA_DONEDMA_CHTLDIF所對(duì)應(yīng)的行為將完全一樣,那么在一個(gè)大循環(huán)完成后產(chǎn)生中斷,其中的服務(wù)程序就需要同時(shí)清零這兩個(gè)標(biāo)志位。(這里的設(shè)計(jì)似乎有點(diǎn)冗余,有似乎缺了點(diǎn)什么。。。)

DMA搬運(yùn)任務(wù)的地址更新策略

DMA外設(shè)設(shè)計(jì)了非常靈活的搬運(yùn)地址更新策略,可以覆蓋最大范圍的應(yīng)用場(chǎng)景。但需要整理清楚其中的概念和更新時(shí)機(jī),才能玩轉(zhuǎn)DMA,否則,一不小心產(chǎn)生了錯(cuò)誤的參數(shù)配置狀態(tài),DMA也將會(huì)停止工作并報(bào)錯(cuò)(DMA_ERS)。

重申一次DMA搬數(shù)中的操作單元:

  • 一次指定帶寬的總線傳輸被稱為一個(gè)搬運(yùn)Transfer
  • 一次觸發(fā)可以發(fā)起一個(gè)或多個(gè)連續(xù)的Transfer,也可被稱為Transfer Loop或者a loop of transfers,這也對(duì)應(yīng)文中描述的小循環(huán)Minor Loop。
  • 一組觸發(fā)可以包含一個(gè)或者多個(gè)連續(xù)的Minor Loop,也可被稱為Trigger Loop 或者a loop of triggers,這對(duì)應(yīng)文中描述的大循環(huán) Major Loop。

以數(shù)據(jù)源地址指針為例(數(shù)據(jù)目標(biāo)地址指針相同):

  • 最初的數(shù)據(jù)地址存放在寄存器DMA_CSR_SADDR中。這個(gè)寄存器中的值也會(huì)隨著DMA搬運(yùn)過程的執(zhí)行變化,始終指向即將要搬運(yùn)數(shù)據(jù)的地址。
  • 預(yù)先配置DMA_CTS_TCNT寄存器的值大于等于1,表示本次DMA傳輸任務(wù)至少包含1次觸發(fā)產(chǎn)生的小循環(huán)。
  • 一次觸發(fā)將啟動(dòng)搬數(shù)過程。先從小循環(huán)走起。
  • 每次總線傳輸搬運(yùn)的數(shù)據(jù)長(zhǎng)度(寬度),由寄存器DMA_CSR_TCR[SSIZE]配置,可以選擇1 Byte、2 Byte、4 Byte,以及16 Byte和32 Byte,這也代表了DMA使用數(shù)據(jù)總線的數(shù)據(jù)帶寬。每次搬運(yùn)都是從當(dāng)前的數(shù)據(jù)地址開始搬運(yùn)帶寬指定數(shù)量的字節(jié)數(shù)。搬運(yùn)過后,不對(duì)當(dāng)前搬運(yùn)數(shù)據(jù)地址產(chǎn)生影響,指針保持不變。
  • 每次搬運(yùn)執(zhí)行后,可以由軟件指定一個(gè)地址偏移量,由寄存器DMA_CSR_SOFF配置,可以是正整數(shù),也可以是負(fù)整數(shù)(地址向前跳)。這個(gè)偏移量是作用于當(dāng)前搬運(yùn)數(shù)據(jù)地址指針寄存器DMA_CSR_SADDR的,當(dāng)搬運(yùn)執(zhí)行后,當(dāng)前地址指針將會(huì)加上這個(gè)偏移量,更新成新的地址指針。
  • 如果有多次傳輸,則多次傳輸會(huì)連續(xù)執(zhí)行。DMA_CTS_BCNT寄存器預(yù)置了本次小循環(huán)的需要數(shù)據(jù)的總長(zhǎng)度(以字節(jié)為單位),而不是地址范圍(切記,地址有可能是不連續(xù)地跳躍)。DMA控制器內(nèi)部會(huì)自動(dòng)遞減DMA_CTS_BCNT寄存器的數(shù),但不會(huì)覆寫到DMA_CTS_BCNT寄存器中,因?yàn)檎麄€(gè)小循環(huán)的搬運(yùn)過程是連續(xù)執(zhí)行的,用戶看不到中間狀態(tài)。
  • 當(dāng)小循環(huán)完成后,可以有一個(gè)對(duì)源數(shù)據(jù)地址指針的偏移。然而,這里并沒有設(shè)計(jì)。
  • DMA_CTS_TCNT寄存器的值減1,并覆寫到DMA_CTS_TCNT寄存器中。如果值仍大于0,則說明當(dāng)前的大循環(huán)任務(wù)還沒執(zhí)行完,繼續(xù)等下一個(gè)觸發(fā)啟動(dòng)一次小循環(huán)。如果值被減到0,說明大循環(huán)任務(wù)完成,此時(shí),DMA_DONEDMA_CHTLDIF(若開放中斷)都會(huì)置位,同時(shí),DMA控制器還會(huì)更新兩個(gè)計(jì)數(shù)值:
  • 源數(shù)據(jù)指針在加上了最后一次搬運(yùn)的偏移量(由寄存器DMA_CSR_SOFF配置)之后,還會(huì)立即繼續(xù)疊加一個(gè)大循環(huán)完成地址偏移,由寄存器DMA_CSR_STO配置,這也是一個(gè)可正可負(fù)的整數(shù)。計(jì)算的結(jié)果會(huì)覆寫到寄存器DMA_CSR_SADDR中。
  • DMA_CTS_TCNTRV寄存器中預(yù)存的重載值覆寫到DMA_CTS_TCNT寄存器中,以便于啟動(dòng)下次任務(wù)時(shí)無需重新配置這些計(jì)數(shù)器和地址指針。

說起來,個(gè)人覺得,如果設(shè)計(jì)小循環(huán)結(jié)束后有一個(gè)地址偏移,比實(shí)現(xiàn)大循環(huán)結(jié)束后的地址偏移更加直觀一些。大循環(huán)專門管理觸發(fā)(管理觸發(fā)的遞減和循環(huán)),小循環(huán)管理指針(地址的遞減和遞增等),分工相對(duì)更明確些。這里實(shí)現(xiàn)的大循環(huán)的一次性偏移,也可以等價(jià)實(shí)現(xiàn)為等分到每次小循環(huán)之后的地址偏移。

讀者可以自行進(jìn)行實(shí)驗(yàn),觀察DMA寄存器中各計(jì)數(shù)器的變化。

image.png

圖x 利用Keil的寄存器調(diào)試界面調(diào)試

DMA控制器還支持Scatter Gather模式,將多個(gè)DMA傳輸任務(wù)串聯(lián)在一起,可以實(shí)現(xiàn)地址不規(guī)則的連續(xù)傳輸。在地址增長(zhǎng)模式上,還有個(gè)回環(huán)遞增的模式可以用??梢栽诰唧w用到的時(shí)候再深究。手冊(cè)上的描述比較簡(jiǎn)略,屆時(shí)仍需要用戶發(fā)揮主觀能動(dòng)性,大膽猜想多做嘗試。

應(yīng)用要點(diǎn)(軟件)

  • YTMicro SDK提供了dma外設(shè)的驅(qū)動(dòng)程序,以及配合其他外設(shè)使用的樣例工程,例如adc_dma、spi_slave_dma、spi_master_dmasent_dma等。
  • 在開源的arm-mcu-sdk倉庫中,也收納了ytm_dma驅(qū)動(dòng)程序,以及對(duì)應(yīng)的樣例工程dma_basic。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3228

    瀏覽量

    114204
  • 協(xié)處理器
    +關(guān)注

    關(guān)注

    0

    文章

    74

    瀏覽量

    18137
  • AHB總線
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    9454
  • DMA控制器
    +關(guān)注

    關(guān)注

    1

    文章

    43

    瀏覽量

    12255
  • SRAM存儲(chǔ)器
    +關(guān)注

    關(guān)注

    0

    文章

    88

    瀏覽量

    13256
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    YTM32的LIN通信協(xié)議引擎LinFlexD外設(shè)模塊詳解

    YTM32控制器的LINFlexD外設(shè)模塊,實(shí)現(xiàn)了LIN協(xié)議控制器的功能,可以支持LIN總線協(xié)議的主機(jī)和從機(jī)功能。
    的頭像 發(fā)表于 10-08 11:15 ?1780次閱讀
    <b class='flag-5'>YTM32</b>的LIN通信協(xié)議引擎LinFlexD外設(shè)模塊詳解

    如何利用DMA的觸發(fā)循環(huán)實(shí)現(xiàn)對(duì)eTMR的PWM周期計(jì)數(shù)呢?

    最近在一個(gè)支持客戶的項(xiàng)目中,客戶工程師向我提出了一個(gè)需求,希望能實(shí)現(xiàn)使用YTM32控制器,對(duì)輸出的PWM信號(hào),每30個(gè)周期觸發(fā)一次中斷,用于調(diào)整占空比,這樣便于動(dòng)態(tài)調(diào)整向目標(biāo)的控制量。
    的頭像 發(fā)表于 10-09 09:45 ?1277次閱讀
    如何利用<b class='flag-5'>DMA</b>的觸發(fā)循環(huán)實(shí)現(xiàn)對(duì)eTMR的PWM周期計(jì)數(shù)呢?

    YTM32的模數(shù)轉(zhuǎn)換ADC外設(shè)模塊詳解

    YTM32的ADC轉(zhuǎn)換外設(shè)最多可以集成32個(gè)輸入通道,最高12b轉(zhuǎn)換精度,最快可以支持2M Sps的12b采樣。
    的頭像 發(fā)表于 10-09 16:35 ?1716次閱讀
    <b class='flag-5'>YTM32</b>的模數(shù)轉(zhuǎn)換<b class='flag-5'>器</b>ADC外設(shè)模塊詳解

    YTM32的增強(qiáng)型定時(shí)eTMR外設(shè)模塊簡(jiǎn)介

    YTM32控制器上集成的eTMR模塊,是一個(gè)定時(shí)外設(shè),下轄多至8個(gè)通道
    的頭像 發(fā)表于 10-31 14:18 ?1063次閱讀
    <b class='flag-5'>YTM32</b>的增強(qiáng)型定時(shí)<b class='flag-5'>器</b>eTMR外設(shè)模塊簡(jiǎn)介

    基于DMA控制器的UART串行通信設(shè)計(jì)

    針對(duì)大數(shù)據(jù)量的串口間通信,在常規(guī)的UART串行數(shù)據(jù)通信的基礎(chǔ)上,結(jié)合Cortex-M3微控制器DMA控制器的作用,實(shí)現(xiàn)DMA控制的UART
    發(fā)表于 04-20 10:54 ?46次下載
    基于<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的UART串行通信設(shè)計(jì)

    鼠標(biāo)HID例程(中)簡(jiǎn)

    鼠標(biāo) HID 例程簡(jiǎn) 緊接《鼠標(biāo) HID 例程簡(jiǎn)(上)》一文,繼續(xù)向大家介紹鼠 標(biāo) HID 例程的未完的內(nèi)容。
    發(fā)表于 07-26 15:18 ?0次下載

    DMA控制器功能及特點(diǎn)

    DMA 控制器在外設(shè)與主存之間直接傳送數(shù)據(jù)期間,完全代替 CPU 進(jìn)行工作。
    發(fā)表于 09-19 16:11 ?6次下載
    <b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>功能及特點(diǎn)

    Crossbar的多通道DMA控制器設(shè)計(jì)

    為了具體介紹本多通道 DMA 控制器的設(shè)計(jì)方案,下面首先對(duì)基于 Crossbar 的多通道 DMA 控制器的工作原理進(jìn)行詳細(xì)分析,接著具體說明各個(gè)模塊的設(shè)計(jì)實(shí)現(xiàn),然后對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證和分
    發(fā)表于 12-07 09:37 ?4956次閱讀
    Crossbar的多通道<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>設(shè)計(jì)

    dma控制器芯片8257資料介紹

    DMA既可以指內(nèi)存和外設(shè)直接存取數(shù)據(jù)這種內(nèi)存訪問的計(jì)算機(jī)技術(shù),又可以指實(shí)現(xiàn)該技術(shù)的硬件模塊(對(duì)于通用計(jì)算機(jī)PC而言,DMA控制邏輯由CPU和DMA
    發(fā)表于 12-07 10:23 ?1.7w次閱讀
    <b class='flag-5'>dma</b><b class='flag-5'>控制器</b>芯片8257資料介紹

    dma控制器由什么組成

    DMA既可以指內(nèi)存和外設(shè)直接存取數(shù)據(jù)這種內(nèi)存訪問的計(jì)算機(jī)技術(shù),又可以指實(shí)現(xiàn)該技術(shù)的硬件模塊(對(duì)于通用計(jì)算機(jī)PC而言,DMA控制邏輯由CPU和DMA
    發(fā)表于 12-07 16:08 ?5471次閱讀
    <b class='flag-5'>dma</b><b class='flag-5'>控制器</b>由什么組成

    dma控制器的組成

    一個(gè)DMA控制器,實(shí)際上是采用DMA方式的外圍設(shè)備與系統(tǒng)總線之間的接口電路,這個(gè)接口電路是在中斷接口的基礎(chǔ)上再加DMA機(jī)構(gòu)組成。習(xí)慣上將DMA
    的頭像 發(fā)表于 04-01 16:08 ?1.1w次閱讀

    dma控制器是什么_dma控制器工作方式

    DMA(Direct Memory Access)控制器是一種在系統(tǒng)內(nèi)部轉(zhuǎn)移數(shù)據(jù)的獨(dú)特外設(shè),可以將其視為一種能夠通過一組專用總線將內(nèi)部和外部存儲(chǔ)與每個(gè)具有DMA能力的外設(shè)連接起來的
    發(fā)表于 11-15 10:25 ?1.3w次閱讀

    5G AAU 功放控制和監(jiān)測(cè)模塊簡(jiǎn)

    5G AAU 功放控制和監(jiān)測(cè)模塊簡(jiǎn)
    發(fā)表于 10-28 12:00 ?2次下載
    5G AAU 功放<b class='flag-5'>控制</b>和監(jiān)測(cè)模塊<b class='flag-5'>簡(jiǎn)</b><b class='flag-5'>析</b>

    AN4104_STM32F0xx的DMA控制器的使用

    AN4104_STM32F0xx的DMA控制器的使用
    發(fā)表于 11-21 08:11 ?2次下載
    AN4104_STM32F0xx的<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的使用

    請(qǐng)問DMA控制器可以減輕CPU負(fù)擔(dān)嗎?

    直接存儲(chǔ)訪問 ( DMA )控制器,可以在內(nèi)存和/或外設(shè)之間傳輸數(shù)據(jù),而不需要 CPU 參與每次傳輸。合理利用 DMA 控制器,可以減輕C
    的頭像 發(fā)表于 03-28 09:41 ?591次閱讀
    請(qǐng)問<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>可以減輕CPU負(fù)擔(dān)嗎?