公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

【AURIXTM读书月】ADC偶遇DMA,佳人成双对

【AURIXTM读书月】ADC偶遇DMA,佳人成双对

混森蓝兽
Level 2
Level 2
50 comments on blog 25 comments on blog 10 comments on blog

书籍:《英飞凌多核单片机应用技术:AURIXTM三天入门篇》

读书笔记概括:在MCU的模块中,ADC和DMA是很常见的东西,是个主流一点的单片机都会具备这两个模块,本来真是没什么好写的。偏偏一场夏雨,让我突然想到这文章开头的标题,克制不住,狗斯文一把。文章内容无所谓,主要看标题。


问:ADC有啥用?

答:汽车发动机中,有许多的物理量需要被监测,例如压力,温度,流量等等。不同的物理量,需要不同的传感器去监测,而这些传感器,会将物理量转换成强弱不同的电压信号。问题在于,电压时模拟信号,而MCU只能识别和处理数字信号。所以需要一个ADC模块,先将传感器输出的模拟量,转换成数字量,再交由MCU处理。

问:小老弟,TC275T的ADC给介绍介绍?

答:它是逐次逼近型ADC,支持5V和3V3供电

8个独立转换器,每个八通道,36路专用ADC引脚,12路复用引脚

支持8bit,10bit,12bit共三种转换精度,自带硬件的FIR和IIR滤波

问:DMA有啥用?

答;发动机控制器里,有很多的数据需要实时和MCU进行传输,又是大量,又是实时的,这样CPU很累的,毕竟它还有其他活要干。而DMA可以自动的把数据从原先设定好的源地址搬运到目标地址中去,无需CPU的干预,能给CPU减少不少的工作压力。

问:小老哥,TC275T的DMA给介绍介绍?

答:本DMA支持64路通道,任意一通道可控制搬运一类数据

DMA通道支持硬件触发和软件触发,支持两个搬运引擎同时响应DMA触发请求

通道编号越高,优先等级越高,传输长度可配置


      举一个可能不是很恰当的栗子:搬砖狗议一枚,又要工作,又要吃饭,每天三餐都要自己去菜市场买菜做饭,哪还剩精力去搬砖。所以还是打个电话(触发DMA)给外卖小哥,外卖直接送上门,完全不用自己操心,工作更专心了,一天能搬十车,没岂不美哉?

      而且,一般ADC是同时对多个模拟量进行快速采集,是个高速设备,这么频繁的采样以及数据搬运,不可能都让CPU来做。并且实际应用,都是采集一批数据,然后进行统一处理(软件滤波)。DMA用到这里就很合适。让ADC 高速采集,DMA把数据填充到RAM 中,填充一定数量,MCU再来使用。


关于参考例程

      书本给出了ADC和DMA联合使用的简单栗子,设置DMA为连续搬运模式,将ADC的转化结果搬运到DSPR。每次ADC采样结束之后,将会触发DMA搬运事件,将ADC转化的结果搬运到DSPR中。然后在等在下次触发信号,一直循环不断的搬砖。


0 点赞
2676 次查看
8 评论