<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > STM32中采用DMA實(shí)現方波的產(chǎn)生和捕獲

STM32中采用DMA實(shí)現方波的產(chǎn)生和捕獲

作者: 時(shí)間:2011-11-05 來(lái)源:網(wǎng)絡(luò ) 收藏

4 +TIMx多路
假設有一個(gè)需要記錄并分析。一種方案是設置CPU引腳在上升沿和下降沿中斷,然后在中斷中記錄該時(shí)刻。這種處理方式的實(shí)時(shí)性和效率會(huì )差一些,因為進(jìn)出中斷本身就需要一定的指令周期(Cortex-M3為12+12或6+12個(gè)系統周期),而且需要考慮多個(gè)中斷同時(shí)發(fā)生的最壞情況,對可檢測的最大頻率有一定的限制。另一種方案是輪詢(xún)的方式不斷查詢(xún)該引腳的狀態(tài)并記錄上升沿和下降沿的時(shí)刻,這種方式下系統幾乎不能處理其他的任務(wù)了。
+TIMx的方式來(lái)上升沿和下降沿時(shí)刻,有利于提高系統的實(shí)時(shí)性和執行效率。通過(guò)TIMx的功能將方波的電平跳變時(shí)刻記錄在比較/捕獲寄存器中,然后將該值自動(dòng)傳輸到內存,只有當DMA觸發(fā)半滿(mǎn)或全滿(mǎn)事件時(shí)CPU才需要進(jìn)入中斷處理數據。通過(guò)記錄方波的上升沿和下降沿時(shí)刻,然后將兩個(gè)時(shí)刻相減,進(jìn)而就能得到所有低沿和高沿的寬度,最后進(jìn)行后續的分析處理。這種方式下中斷頻率僅為方波頻率的4/N(N為緩沖區大小)。
圖1為T(mén)IMx工作在捕獲模式下一個(gè)通道的示意圖。

本文引用地址:http://dyxdggzs.com/article/161424.htm

d.jpg


其中TI1為CPU引腳的輸入,經(jīng)過(guò)濾波(新的電平必須保持一定時(shí)間才認為有效,以防止高頻噪聲的干擾)后進(jìn)入后繼的邊沿極性選擇,最后經(jīng)過(guò)分頻作為捕獲信號的輸入。這里TI2F為相鄰通道經(jīng)過(guò)濾波后的信號,也就是說(shuō)一個(gè)引腳的信號可作為T(mén)IMx兩個(gè)通道的輸入捕獲信號,這樣信號只需要接一個(gè)CPU引腳就可以觸發(fā)兩個(gè)時(shí)鐘通道了。
將輸入方波接到CPU一個(gè)引腳上,假設該引腳對應于圖上的TI1,設定其在下降沿觸發(fā)通道1的捕獲事件,而其在上升沿觸發(fā)通道2的捕獲事件,事件發(fā)生后申請DMA將捕獲的比較/捕獲寄存器的值保存起來(lái)。示例代碼如下:
c.jpg
其他部分與第3節中比較輸出的代碼基本一致。

5 總結
測試中系列微控制器工作在36 MHz,可出1路最高1.5 MHz的方波,可捕獲1 MHz的方波,而此時(shí)CPU的執行幾乎不受影響。這里采用DMA來(lái)方波的和捕獲,極大地提高了系統的實(shí)時(shí)性和執行效率,減少了中斷次數,節省了寶貴的資源。這種方案也可以用來(lái)高效的模擬串口。
DMA的傳輸需要多個(gè)系統周期的,例如采用DMA實(shí)現內存到內存的搬移,每次傳輸需要5個(gè)系統周期,而內存到外圍的一次傳輸需要2個(gè)APB周期+5個(gè)AHB周期。這樣用上述方法的方波最小沿(低沿或高沿)為14個(gè)周期(包括比較/捕獲寄存器到內部影子寄存器的傳輸等)。若有更高的需求,應考慮其他的實(shí)現方案。另外,若有多個(gè)DMA同時(shí)工作,應考慮最壞情況下DMA的響應時(shí)間,以避免錯誤發(fā)生。

塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>