- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AD转换例程
A/D转换模块详解
1、A/D转换原理
A/D转换的过程是模拟信号依次通过取样、保持和量化、编码几个过程后转换为数字格式。
a)取样与保持
一般取样与保持过程是同时完成的,取样-保持电路的原理图如图16所示,由输入放大器A1、输出放大器A2、保持电容CH和电子开关S组成,要求 AV1 * AV2 = 1。原理是:当开关S闭合时,电路处于取样阶段,电容器充电,由于 AV1 * AV2 = 1,所以输出等于输入;当开关S断开时,由于A2输入阻抗较大而且开关理想,可认为CH没有放电回路,输出电压保持不变。
图16 取样-保持电路
取样-保持以均匀间隔对模拟信号进行抽样,并且在每个抽样运算后在足够的时间内保持抽样值恒定,以保证输出值可以被 A/D 转换器精确转换。
b)量化与编码
量化的方法,一般有舍尾取整法和四舍五入法,过程是先取顶量化单位Δ,量化单位取值越小,量化误差的绝对值就越小,具体过程在这里就不做介绍了。将量化后的结果用二进制码表示叫做编码。
2、A/D转换器的技术指标
a)分辨率
分辨率说明A/D转换器对输入信号的分辨能力,理论上,n位A/D转换器能区分的输入电压的最小值为满量程的1/2n 。也就是说,在参考电压一定时,输出位数越多,量化单位就越小,分辨率就越高。S12的ATD模块中,若输出设置为8位的话,那么转换器能区分的输入信号最小电压为19.53mV。
b)转换时间
A/D转换器按其工作原理可以分为并联比较型(转换速度快ns级)、逐次逼近型(转换速度适中us级)、双积分型(速度慢抗干扰能力强)。
不同类型的转化的A/D转换器转换时间不尽相同,S12的ATD模块中,8位数字量转换时间仅有6us,10位数字量转换时间仅有7us。
S12内置了2组10位/8位的A/D模块:ATD0和ATD1,共有16个模拟量输入通道,属于逐次逼近型A/D转换器(这个转换过程与用天平称物的原理相似)。
1、功能结构图
图17 A/D 模块功能结构图
图17所示的是 A/D 模块的功能结构,这个功能模块被虚线划分成为图示所示的虚线所隔离的三个部分:IP总线接口、转换模式控制/寄存器列表,自定义模拟量。
IP 总线接口负责该模块与总线的连接,实现 A/D 模块和通用 I/O 的目的, 还起到分频的作用;
转换模式控制寄存器列表中有控制该模块的所有的寄存器,执行左右对齐运行和连续扫描。
自定义模拟量负责实现模拟量到数字量的转换。包括了执行一次简单转换所需的模拟量和数字量。
2、 HCS12 中A/D转化模块特点
8/10 位精度;7 us, 10-位单次转换时间.;采样缓冲放大器;可编程采样时间; 左/右对齐, 有符号/无符号结果数据;外部触发控制;转换完成中断;模拟输入 8 通道复用;模拟/数字输入引脚复用;1到8转换序列长度;连续转换模式;多通道扫描方式。
ATD 模块有模拟量前端、模拟量转换、控制部分及结果存储等四部分组成。其中模拟前端包括多路转换开关、采样缓冲器、放大器等,结果存储部分主要有8个16 位的存储器和反映工作状态的若干标志位。
A/D转换应用实例
要让 ATD 开始转换工作,必须经过以下三个步骤:
1.将 ADPU 置 1,使 ATD 启动;
2.按照要求对转换位数、扫描方式、采样时间、时钟频率及标志检查等方式 进行设置;
3.发出启动命令;
如果上电默认状态即能满足工作要求,那么只要将 ADPU 置 1,然后通过控制寄存器发出转换命令,即可实现转换。
?
程序描述:由通道ATD0进行单通道A/D转换,转换值在B口显示。
程序如下:
程序一:
#include hidef.h /* common defines and macros */
#include derivative.h /* derivative-specific definitions */
byte ad_value; //AD转换结果
void Delay(int i) { //延时程序
int j;
for(;i0;i--)
for(j=500;j0;j--)
;
}
/***---------------初始化程序---------------***/
void InitBusClk(void) {
CLKSEL=0X80; //PLLSEL 1 : Bus Clock=PLLCLK/2
// 0 : Bus Clock=OSCCLK/2
PLLCTL_PLLON=1; //开启PLL
SYNR=0;
文档评论(0)