书籍:《英飞凌多核单片机应用技术: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中。然后在等在下次触发信号,一直循环不断的搬砖。
只有注册用户才能在此添加评论。 如果您已经注册,请登录。 如果您还没有注册,请注册并登录。