16位的AD可以说是国产MCU的痛点,至少在廉价的单片机里面,这个真的找不到飞思卡尔的替代品。之前未使用16位AD的时候,使用的是STM32F0的单片机,因为产品需要,一直是将48M的主频超频到56M跑超速,后来因为疫情等原因,ST的价格飞上天,交期还特长,无奈之下换了国产兆易创新的GD32,不得不说,对标的GDE23主频直接到了72M,M0+,不用超频,正常跑高速就行。价格还便宜,不收过路费。在这一点上,国产的MCU真的很强。
现在项目需要16位的AD,一时间找不到任何国产的替代品,当然我们也把主意打到了ST的头上,但是捋到STM32H7才找到16位AD,2020年的ST的价格大家都清楚,如果选用这款芯片,我们的产品成本将大大增加,这已经超出了我们的预算。在之后的一番寻找中,确定了这个被恩智浦收购了多年的飞思卡尔的芯片。
MKV30,价格便宜,针对电机行业出生的MCU,在ADC的处理上可谓是下足了功夫。
自带差分输入模块,支持高达16位的差分AD输入,
自带硬件平均,可对输入的AD信号进行自动平均,
支持低功耗和高速AD模式,可自动校准AD,
自带比较器。
但是,因为很早就被收购,所以飞思卡尔的资料并不如NXP自家的产品那样详细丰富,导致开发难度很大,而且这款芯片不像K60那款,因为早期有智能车竞赛的缘故,网友分享的资料和经验很多。这款我拿到手里就很懵。本人并不是大佬,对新的单片机上手不是很容易。在开发的第一周就点了个灯,到处是坑。
下面分享我的开发过程和经验:
官网下载SDK直接pass,在有个基础工程的基础上使用MCUXpresso Config Tool配置ADC的引脚和功能初始化。
配置引脚:
因为我需要使用两路ADC的差分模式,这里配置ADC0和ADC1的引脚。使用PORTE16、PORTE17 、PORTE18 、PORTE19四个引脚。对应ADC的ADC0_DP1,ADC0_DM1,ADC1_DP1,ADC1_DM1。软件会自动配置引脚相关配置代码。
ADC配置:
配置为16位的差分AD,因为我追求最高速的ADC采集,所以时钟1分频,硬件的8次平均。
ADC1配置相同。
---------------------
作者:呐咯密密
链接:https://bbs.21ic.com/icview-3057550-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。