AUTOSAR从入门到精通100讲(131)-AURIX中DMA模块对TIM的FIFO数据搬运
DMA的應(yīng)用場景較為廣泛, 其源地址和目的地址可以是我們的RAM, 也可以是我們的外設(shè)寄存器, 如各種FIFO寄存器或者結(jié)構(gòu)寄存器。
本文主要介紹DMA的一種使用場景, 將GTM的TIM通道的FIFO數(shù)據(jù)通過DMA搬運(yùn)到RAM中進(jìn)行處理。
基本功能
客戶在汽車軟件開發(fā)過程中經(jīng)常會(huì)遇到需要實(shí)時(shí)采集PWM信號(邊沿時(shí)刻和個(gè)數(shù))的情況,本文就是基于該應(yīng)用場景介紹DMA在其中的實(shí)際應(yīng)用。利用AURIX?強(qiáng)大的GTM_TIM模塊可以實(shí)現(xiàn)對各種復(fù)雜的PWM輸入信號的捕獲,采集其邊沿觸發(fā)時(shí)刻,并對邊沿個(gè)數(shù)進(jìn)行計(jì)數(shù)。出于降低CPU負(fù)荷的角度考慮,采用DMA對TIM中的FIFO數(shù)據(jù)進(jìn)行實(shí)時(shí)搬運(yùn), 供軟件進(jìn)行處理。
配置方法
-
利用GTM的某個(gè)TIM通道對PWM輸入信號進(jìn)行采集, TIM Channel工作在TPWM模塊,相應(yīng)的時(shí)間戳存儲在GPR0和GPR1寄存器當(dāng)中,邊沿的Counter信息存儲在GPR0和GPR1的ECNT bits當(dāng)中(ECNT的數(shù)據(jù)存儲范圍是0-255)。
-
通過DMA對該通道的GPR0和GPR1中的數(shù)據(jù)進(jìn)行搬運(yùn), 存儲到固定的RAM空間(某個(gè)數(shù)組當(dāng)中)。
開發(fā)環(huán)境
1、開發(fā)板布置
Board A用于產(chǎn)生PWM的輸入信號。
Board B用于實(shí)際工作的ECU對PWM信號的處理, TIM0 Channel(采用P0.9), DMA通道選擇DMA Channel 60, 使用的MCU為TC277TP, 黃色的導(dǎo)線是GND, 對兩個(gè)開發(fā)板進(jìn)行工地, 灰色的線是PWM的信號線。
總結(jié)
以上是生活随笔為你收集整理的AUTOSAR从入门到精通100讲(131)-AURIX中DMA模块对TIM的FIFO数据搬运的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 点云技术无中生有100篇(一)-无人机航
- 下一篇: 产品经理专业知识50篇(十二)-抖音训练