飞思卡尔MC9S12系列 ATD驱动
今天带着大家了解下MC9S12XS128 A/D模块,以及相关驱动的开发。
什么是模数(A/D)转换器
能够把模拟量变成数字量的器件称为模数(A/D)转换器。
MC9S12XS内置的ATD模块概述
MC9S12XS128内置的ATD(也记做A/D)模块是16通道、12位精度、多路输入复用、逐次逼近型的模数转换器。
下面一起看下ATD模块具有的基本特征
ATD模块具有以下基本特征:
l8位/10位/12位可选转换精度;
l停止模式下转换使用内部时钟;
l转换完成后为低功耗状态;
l自动和可编程数值比较,可设定大于或者小于等于设定值时中断申请;
l可编程采样时间;
l左对齐/右对齐转换数值;
l外部触发功能;
l转换完成中断申请;
l16路模拟输入通道多路开关;
l可实现VRH、VRL和(VRH+VRL)/2特殊转换;
l转换序列长度为1~16;
l连续转换模式;
l多通道扫描功能;
l外部触发功能可配置为AD通道或4个外部附加触发输入端,外部触发源可选择片外或片内信号。
MC9S12X128 ATD模块寄存器如下 :
具体每个寄存器的功能什么的我就不细讲了,大家可以看下datasheet,如需获取datasheet,可以
关注我的微信公众号“嵌入式软件开发学习圈”留言获取。
下面直接结合代码大家一起看下AD模块具体是怎么实现的
PLL倍频我就不讲了 ,有不懂直接关注微信公众号,获取相关资料,
ATD初始化模块主要包括:使能该模块、设置转换精度(当前8位精度)、转换模式设置、时钟频率设置
等
获取当前引脚的AD量,主要是通过判断转换完成标志位,置位之后,读取相应的寄存器,即可获取当前的AD量
如需获取更多嵌入式学习资料可以关注微信公众号“嵌入式软件开发学习圈”,获取更多嵌入式相关资讯