TaterLi's LazyBlog

自言自语,不喜绕路,科学上网,远离天国.

@TaterLi4周前

03/31
16:00
技术控

STM32F7 ADC 差异

STM32F7的ADC真是进步太大了(准确来说是STM32F4之后).可以实现更多更多东西,一开始竟然让我手足无措了.

首先ADC分为中断通道(官方叫注入通道)和常规通道(官方叫规则通道),但是我发明的这两个名字明显好理解多了.举个简单的但是不切实际的例子,你有5个温度传感器,放在室外,有3个温度传感器,放在室内,一般情况下,你只需要查看外面5个温度传感器的温度(常规通道),但是有时候你要按下一个按钮(产生中断),来查看室内3个温度传感器温度(注入通道).按照传统的方法,按下一个按钮(产生中断)后呢,就要重新配置ADC扫描,让他扫描室内的3个通道,如果有了这个注入通道后,就可以按下后自动切换过去.把注入通道理解成需要紧急采样的,不常规的家伙,这是新功能.

过去,ADC采集每个通道的时候受到统一配置,现在可以分开配置了.每个通道都可以设定自己的采样时间,这样的好处是有些慢速信号,比如芯片内部的温度传感器,他需要更长的采样时间.有些快速信号,他要求很短时间内采样完成,那么可以针对每个通道设计,让某些通道采样时间很快,某些通道采样时间较慢.每个通道都有独立的采样时间寄存器.如果过去要实现每个通道不同的采样时间,那么得转换,中断,修改配置,继续转换.或者采用两个ADC外设.

另外有一个比较新鲜的功能就是采样顺序不一样,有了这个之后,采样顺序就不是A0-A1-A2-A3这样采样,而是可以跳过,比如A0-A3-A1-A2-A0-A3-A1,各种乱序都行,对于电机应用特别有效,因为很多时候他们软件要为走线迁就,走线要求非常高.或者需要间歇采样1-2-3-4通道,但是每次都要插入一个5通道,成为1-5-2-5-3-5-4-5,以前的方法是让5通道多连接几个PIN或者中断修改方法.

注入通道最多可以设置4个,属于紧急任务,而且注入通道不会连接DMA,但是数据是分别存放的.他没有什么特殊的顺序,他就是采样4个,或者更少然后存起来,你要用就赶紧用.

另外这个ADC速度不但上去了,还支持多重ADC采样,什么是多重ADC采样.就是多个ADC错开,然后达到更高的速度啊,介绍了几个大的新的功能,是不是觉得很牛逼呢.

STM32F7 ADC 差异