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