




已阅读5页,还剩162页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第9章模 数转换 ADC 第一节概述第二节模 数转换器第三节采样保持器和多路模拟开关 本章教学目标 1 了解ADC的基本概念2 MSP430ADC12的原理与基本应用 2 第一节概述 计算机测量控制系统 3 计算机 多路开关 传感器1 放大器1 滤波器1 模拟量1 采样保持 A D 传感器n 放大器n 滤波器n 模拟量n 数据采集系统 与本课程相关部分 音频 视频信号 数字通信 4 第二节模 数转换器一 A D转换器的基本原理二 MSP430ADC12介绍 5 一 A D转换器的基本原理 模拟输入量 数字输出量 000 001 010 011 000 001 010 011 1v 2v 3v 4v 5v 6v 7v A D转换器 量化 6 工作原理 特点 计数式 结构简单 转换速度慢 精度低 实际少用 双积分式 精度高 转换速度慢 抗干扰性能好 逐次逼近式 转换速度较快 精度较高 实际常用 抗干扰性能不如积分式 高速并行式 转换速度快 价格高 精度低 A D转换器分类 式 7 1 分辨率 指A D转换器所能分辨的最小模拟输入量 通常用A D的位数表示 如 8位A D的分辨率为8位 10位A D的分辨率为10位 2 转换精度 指实际输入的模拟值与理论输入的模拟值 根据A D输出推算 之间的偏差 常用数字量最低有效位LSB的几分之几表示 3 转换时间和转换速度 转换时间指完成一次A D转换所需的时间 从启动信号开始到转换结束 得到稳定数字量的时间 转换速度是转换时间的倒数 A D转换器的主要技术指标 8 逐次逼近式A D转换器原理图 D A 转换器 输出缓冲器 控制电路 启动信号START CLK时钟 EOC转换结束信号 D 7 D 0 比较器 模拟输入 数字输出NADC Vin OE输出使能信号 SAR VREF VDA 9 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 D7 D6 D5 D4 D0 D1 D3 D2 10 A D转换器的典型信号 电源 地 A D转换器 模拟量输入信号 A D转换启动信号 数字量输出 A D转换完成信号 输出使能信号 ADC时钟 电源 模拟地 数字地 参考电源 11 A D转换的启动 电平启动 高电平启动 低电平启动 脉冲沿启动 上升沿启动 下降沿启动 启动方法 软件启动 硬件启动 启动信号 12 CPU对ADC转换结果的读取方式 程序延时方式程序查询方式中断方式 13 二 MSP430ADC12介绍 ADC12模块是一个转换速度高达200ksps 采样时间可编程的12 bit逐次逼近型模数转换器 由12 bit的SAR核 采样保持电路 模拟开关 参考电压产生与选择电路 ADC时钟选择电路 采样与转换控制电路 16个转换结果存储缓冲器及其对应的16个存储控制寄存器 中断系统 片上集成温度传感器等组成 ADC12可以在没有CPU的参与下 独立实现多达16次的采样 转换和存储操作 ADC12模块可以独立断电 以便于低功耗设计 MSP430X13X MSP430X14X MSP43015X和MSP430X16X等芯片中均有ADC12模块 14 ADC12模块 15 ADC12的特点与性能指标 采样率可达200ksps 采样率可编程 分辨率12 bit 内含16路模拟开关 其中8路外部模拟输入 1路内部温度传感器输入等 内含采样保持电路 采样时间可编程 可由软件 Timer A或Timer B启动转换过程 参考电压可编程 内部 1 5V或2 5V 外部 4种转换模式 ADC核和内部参考电源可编程断电 以实现节能 具有中断 子 向量寄存器 供18路ADC中断译码用 具有16个转换结果存储寄存器 16 12 BITSARADC 参考电压源 时钟电路 采样 保持器 模拟开关 采样与转换控制电路 结果存储缓冲器与相应的控制寄存器 MSP430ADC12原理框图 17 18 ADC12的模数转换部分原理图 19 NADC 4095 当Vin VR NADC 0 当Vin VR VR 和VR 可由软件编程设置 ADC12的转换结果NADC 20 参考电压源VR VR 电路 21 BIS REFON REF2 5V Vr Vref 举例 ADC12通道0使用内部2 5V参考电压源 SREF2SREF1SREF0001 SREF 1 22 BIS REFON Vr Vref 举例 ADC12通道0使用内部1 5V参考电压源 SREF2SREF1SREF0001 SREF 1 23 举例 VR 使用外部正参考电压源VeREF BIS B SREF 2 ADC12MCTL0 SREF2SREF1SREF001x SREF 2or SREF 3 orBIS B SREF 3 ADC12MCTL0 24 ADC12工作时钟 ADC12CLK 编程设置 例 BIS ADC12SSEL 2 ADC12CTL1 25 MSP430F149转换时钟 转换时间 电源建立时间和采样时间等参数 13 6 3 2 06 13 3 7 3 51 26 ADC12的模拟输入及其多路模拟开关例 BIS B INCH 4 ADC12MCTL0 ADC12中的采样保持器 模拟开关输出 什么是采样保持器 为什么需要采样保持器 请参见本章附录 28 Sample HoldInputSignal SAMPCON为高电平时 采样保持器工作在采样模式SAMPCON为低电平时 采样保持器工作在保持模式SAMPCON的下降沿与ADC12CLK同步后启动AD转换 采样信号源选择 极性选择 采样方式选择 采样与转换控制 采样定时器 29 采样与转换控制 ADC12SC 0ENC 1MSC 7SHT0 x 8 11SHT1x 12 15ISSH 8SHP 9SHSx 10 11 ADC12CTL0 ADC12CTL1 30 SHP 0 SAMPCON SHI 非采样定时器采样方式 ExtendedSampleMode SHP 1 SAMPCON 采样定时器输出 采样定时器采样方式 PulseSampleMode 采样方式选择 31 非采样定时器采样方式 ExtendedSampleMode SHP 0 SAMPCON SHI tsample 采样保持输入信号 SHI 的宽度 32 采样定时器采样方式 PulseSampleMode SHP 1 SAMPCON 采样定时器输出 tsample 采样定时器输出信号的宽度 采样保持输入信号的宽度 0 1 ADC12CLK 4 ADC12CLK tsample 1024 ADC12CLK 33 采样定时器设置设置采样时间tsample 4 ADC12CLK tsample 1024 ADC12CLK SHT0 xADC12CTL0 8 11SHT1xADC12CTL0 12 15 tsample Rs 2k 9 011 40pF 800ns 12 bit分辨率下的最小采样时间计算公式 当Rs 10k 时 tsample 5 13 s 35 举例 ADC12通道0 7 使用采样定时器采样方式 采样时间 16 ADC12CLK SHT0 x 2 采样时间 16 ADC12CLK BIS SHT0 2 Usesamplingtimer 36 每进行一次采样和转换均需要SHI上升沿去触发采样定时器 除了启动第一次采样和转换时需要SHI的上升沿触发采样定时器外 后续的采样和转换过程无需SHI的上升沿触发 一旦上一次转换完毕 紧接着自动开始下一次的采样和转换过程 MSC 多次采样和转换控制位 仅序列或重复方式下有效 MSC ADC12CTL0 7 MSC 0 MSC 1 37 采样保持信号源选择 同步 SHSx 00 ADC12SCbit软件启动SHSx 01 Timer AOutputUnit1启动SHSx 10 Timer BOutputUnit0启动SHSx 11 Timer BOutputUnit1启动 ENC SHI 采保源 ENC SHI 采保源 ISSH 0 ISSH 0 SHSx ADC12CTL1 10 11 38 MSP430F149Timer AOutputUnit1具有内部启动采样转换信号 39 16个12 bit的转换结果存储缓冲器 16个8 bit的转换存储控制寄存器 一一对应 ADC12转换结果存储缓冲器 存储指针 转换方式 40 ADC12转换存储控制寄存器 ADC12MCTLx 参考电压源选择模拟输入通道选择 通道序列结束标志 EOS 1的通道是序列转换中最后转换的通道 41 n CSTARTADD ADC12MEM0 ADC12MEM1 ADC12MEMn ADC12MEM15 ADC12MCTL0 ADC12MCTL1 ADC12MCTLn ADC12MCTL15 ADC12通道 channel 的概念 ADC12通道n 一个ADC12通道 简称通道 由通道号 该通道的转换结果存储缓冲器 该通道的参考电压源配置 该通道的模拟输入以及通道序列结束标志等组成 ADC12通道n可以对应于16个模拟输入中的任何一个 不同的ADC12通道可以对应于同一个模拟输入 不同的ADC12通道可以有不同的参考电压源 ADC12通道与传统的模拟输入通道有很大的不同 CSTARTADD ADC12CTL1的最高4位的值 0 15 42 ADC12的通道序列 sequenceofchannels n CSTARTADD ADC12MEMn ADC12MEMn 1 ADC12MEMn 2 ADC12MEMn m 000111 EOS 序列开始 序列结束 k n m 16循环队列 例 从n号ADC12通道开始的 长度 m 1的通道序列 k 43 0 1 n 15 14 队首 队尾 n n 1 16 n CSTARTADD 0 0 0 0 1 EOS 1 有限长通道序列 某些通道的EOS 1 1 1 0 0 0 0 44 无限长通道序列 所有通道的EOS 0 0 1 n 15 14 队首 n n 1 16 n CSTARTADD 0 0 0 0 0 0 0 0 0 0 0 45 ADC12的4种转换方式 运行方式 单通道单次转换方式 通道序列单轮转换方式 单通道重复转换方式 通道序列重复转换方式 46 常用转换方式 通道序列单轮转换方式 每一轮通道序列中第一通道的采样和转换都由定时器 TA1 TB0 TB1 启动 然后由采样定时器自动启动后续通道的快速采样和转换 直到EOS 1的通道转换完毕 完成第一轮 47 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn WaitforTrigger Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet ENC ENC SAMPCON SAMPCON 1 SAMPCON 12 ADC12CLK 1 ADC12CLK EOS n 1 ifn 15thenn n 1elsen 0MSC 1andSHP 1andEOS n 0 ADC12ON 1 停止条件 状态转换图 48 定时器TA1启动的通道序列单轮转换方式举例 通道序列定义 通道号结果存储缓冲器模拟输入参考电压源EOS0ADC12MEM0A0内部2 5V01ADC12MEM1A1内部2 5V02ADC12MEM2A2内部2 5V03ADC12MEM3A3内部2 5V1 49 定时器TA 采样定时器 采样间隔 A0A1A2A3 第一轮 A0A1A2A3 第二轮 ADC12IFG3interrupt ADC12IFG3interrupt 50 BIS B BIT0 BIT1 BIT2 BIT3 EnableADC12IFG3interrupt ADC12初始化编程 51 Timer A初始化编程采样间隔 TACCR0 单位 Timerclock周期 正脉冲宽度 TACCR0 TACCR1 OUT1 52 BIS B BIT2 SMCLK upmode 53 ADC12模块 ADC12OV ADC12TOV ADC12IFG0 ADC12IFG1 ADC12IFG15 ADC12的中断 分3类 共18个中断源 ADC12MEMx装入新数据中断 ADC12MEMx被覆盖中断 上一次转换结果尚未读出 新的转换结果又写入同一个存储缓冲器中 ADC12转换时间溢出中断 采样转换间隔太短 前一次尚未转换完毕 又启动新的AD转换 中断优先级高 中断优先级低 如果ADC12OV ADC12TOV中断是最高优先级的已请求的中断 则读写ADC12IV寄存器将自动复位ADC12OV ADC12TOV 54 ADC12IFG0 ADC12IFG1 ADC12IFG15 ADC12中断控制 ADC12IE0 ADC12IE1 ADC12IE15 GIE CPU 0Nointerruptpending1Interruptpending 0Interruptdisable1Interruptenable 读取ADC12MEMx将自动清零中断标志位ADC12IFGx ADC12IFGx也可由软件清零 存取ADC12IV寄存器不会清零中断标志位 ADC12OV ADC12TOV ADC12OVIE ADC12TOVIE ADC12CTL0 3 ADC12CTL0 2 优先级 总控 分控 0FFEEh 共享中断向量 55 ADC12的中断 子 向量寄存器 readonlyregister ADC12中断服务子程的跳转表 56 注意 ADC12OV和ADC12TOV没有相应的可供读取的标志位 57 ADC12中断服务子程结构ADC12 ISRADDcheckotherintpending 58 ADM1MOV 59 ADC12编程举例 ADC12CTL0 ADC12CTL1 ADC12MCTLx ADC12MEMx ADC12IFG ADC12IE P6SEL ADC12IV ADC12的编程结构 不考虑TA1 TB0 TB1 60 与ADC12有关的引脚 61 模拟开关 A0 A7 P6SEL x 1 必须为高阻态 P6SEL BIS B BITx P6SEL 62 注意 应符合硬件互斥设计原则ADC12的8个模拟输入引脚 A0 A7 与P6数字输入输出引脚复用 因此当上电复位后或编程选择这些引脚为I O的输出功能的同时施加模拟输入信号 将有可能导致大电流流经这些引脚的输出电路和模拟信号源 违反了互斥设计原则 为了实现互斥操作 应将与模拟信号相连接引脚的P6SEL x置为 1 BIS B BIT x P6SEL 63 ADC12CTL0 自动快速连续采样转换控制 内部参考电压源控制位 ADC12模块供电控制 溢出中断使能控制 转换使能控制 软件启动采样转换控制 8 15通道采样时间设置 0 7通道采样时间设置 64 ADC12CTL1 通道序列起始通道号设置 采样信号源选择 采样方式选择 采样保持信号反向控制位 ADC12时钟分频设置 ADC12时钟源选择 转换方式选择 ADC12 忙 指示位 65 ADC12MCTLn 参考电压源选择模拟输入通道选择 通道序列结束标志 n通道属性控制寄存器 注意 ADC12CTL0 ADC12CTL1和ADC12MCTLn三种控制寄存器的大部分控制位 灰色背景 需在ENC 0的情况下才能编程修改 66 ADC12控制寄存器的复位值 不使用内部参考电压源 ADC12模块处于断电状态 禁止溢出中断 ENC 0 未使能状态 通道号或通道序列起始通道号 0 采样信号源为ADC12SC 软件启动 采样方式 不使用采样定时器 ADC12时钟为内部时钟 不分频 转换方式 单通道单次转换 ADC12CTL1 0000h ADC12MCTLn 00h ADC12CTL0 0000h 模拟输入通道为A0 参考电压源 VR AVSS VR AVCC 非结束通道 EOS 0 SHT0 x 0 SHT1x 0 MSC 0 必须编程 ADC12IE 0000h 禁止ADC12IFGx中断 67 举例00 全部采用复位值 查询方式转换完毕后通过P1 0输出一个负脉冲 bis b 01h EnableADC12 相关寄存器初始化编程 68 软件启动单通道单次转换方式状态转换图 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet ADC12ON 1 ENC SAMPCON 1 ENC 1orand ADC12SC SAMPCON 12个ADC12CLK 1个ADC12CLK ENC 0 ENC 0 ENC 0 Conversionresultisunpredictable 软件启动 采样期间 转换时间 存储等时间 给模块供电 转换完毕后ADC12SC自动清零 69 includeORG01100h ProgramStartRESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD P1 0 1jmpMain 70 InterruptVectorsUsedMSP430 x13x 14x 15x 16x ORG0FFFEh MSP430RESETVectorDWRESET END 问题 请实验验证程序设计的正确性 如何改正 提示 采样时间 AD转换启动信号 ADC12SCautomaticallyclearedatEOC 71 举例 使用采样定时器 采样时间 16 ADC12CLK 其它采用复位值 查询方式 转换完毕后通过P1 0输出一个负脉冲 SHT0 x 2 采样时间 16 ADC12CLK 72 bis b 01h EnableADC12 相关寄存器初始化编程 73 includeORG01100h ProgramStartRESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD P1 0 1jmpMain 74 InterruptVectorsUsedMSP430 x13x 14x 15x 16x ORG0FFFEh MSP430RESETVectorDWRESET END 75 举例01 使用采样定时器 采样时间 16 ADC12CLK 使用ADC12IFG0中断 其它采用复位值 IfA0 0 5 AVcc P1 0set elsereset InMainMSP430waitsinLPM0tosavepoweruntilconversioncomplete ADC12 ISRwillforceexitfromLPM0inMainonreti 76 bis b 01h EnableADC12 相关寄存器初始化编程 77 include ORG01100h ProgramStart RESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD Again 78 ADC12 ISR ExitanyLPMxonretibic b 01h END 79 举例02 使用内部2 5V参考电压源 使用采样定时器 采样时间 16 ADC12CLK 其它采用复位值 查询方式 转换完毕后通过P1 0输出一个负脉冲 80 SREF2SREF1SREF0001 SREF 1 81 相关寄存器初始化编程 bis b BIT0 Enableconversions 82 include ORG01100h ProgramStart RESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD Enableconversions 83 bis b 01h END 84 举例04 使用采样定时器 采样时间 1024 ADC12CLK 使用ADC12IFG0中断 其它采用复位值 并将转换结果转存到R5中 SHT0 x 15 采样时间 1024 ADC12CLK 85 include ORG01100h ProgramStart RESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD Enableconversions 86 Mainbis ADC12SC Returnactivereti 87 InterruptVectors ORG0FFFEh MSP430RESETVectorDWRESET ORG0FFEEh ADC12InterruptVectorDWADC12ISR END 88 举例05 使用外部正参考电压源VeREF 使用采样定时器 采样时间 16 ADC12CLK 其它采用复位值 查询方式 转换完毕后将转换结果转存到R5中 相关寄存器初始化编程 bis b BIT0 Enableconversions 89 include ORG01100h ProgramStart RESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD Enableconversions 90 Mainbis ADC12SC END 91 举例06 重复通道序列转换方式 使用采样定时器 采样时间 256 ADC12CLK 使用ADC12IFG 3中断 其它采用复位值 并将转换结果转存到RAM中 SHT0 x 8 采样时间 256 ADC12CLK 92 通道序列定义 通道号结果存储模拟输入RAM缓冲器通道号0ADC12MEM0A00 x200 0 x20E1ADC12MEM1A10 x210 0 x21E2ADC12MEM2A20 x220 0 x22E3ADC12MEM3A30 x230 0 x23E注意 通道号与模拟输入通道号可以不一致 因此上述的通道定义也可以如下 通道号结果存储模拟输入RAM缓冲器通道号0ADC12MEM0A30 x200 0 x20E1ADC12MEM1A10 x210 0 x21E2ADC12MEM2A20 x220 0 x22E3ADC12MEM3A00 x230 0 x23E 93 通道号结果存储模拟输入RAM缓冲器通道号0ADC12MEM0A10 x200 0 x20E1ADC12MEM1A10 x210 0 x21E2ADC12MEM2A30 x220 0 x22E3ADC12MEM3A30 x230 0 x23E通道号结果存储模拟输入RAM缓冲器通道号5ADC12MEM5A60 x200 0 x20E6ADC12MEM6A00 x210 0 x21E7ADC12MEM7A50 x220 0 x22E8ADC12MEM8A30 x230 0 x23E 94 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet SAMPCON 1 ENC 1orand ADC12SC SAMPCON 1 ADC12CLK ENC 0andEOS n 1 ifEOS n 1thenn CSTARTADDxelse ifn 15thenn n 1elsen 0 MSC 1andSHP 1and ENC 1orEOS n 0 ADC12ON 1 软件启动 12 ADC12CLK 停止条件 通道序列重复转换方式状态转换图 由软件启动第一轮首通道 通道0 的采样和转换 然后由采样定时器自动实现后续通道的快速采样和转换 到EOS 1的通道 通道3 转换完毕后又立即从通道0开始新一轮的采样和转换 直到停止条件满足为止 期间无需CPU的干预 EOS 3 1 CSTARTADDx 0 95 includeA0resultEQU0200h ChannelA0resultsA1resultEQU0210H ChannelA1resultsA2resultEQU0220H ChannelA2resultsA3resultEQU0230H ChannelA3results ORG01100h ProgramStart RESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD Clearpointer 96 bis b BIT0 BIT1 BIT2 BIT3 软件启动后 通道序列的采样和转换无需CPU的干预 97 ADC12ISR 当通道3转换完毕后进入该中断子程movEND 98 问题 请实验验证程序设计的正确性 如何改正 99 举例07 单通道重复转换方式 使用采样定时器 采样时间 256 ADC12CLK 使用ADC12IFG 0中断 其它采用复位值 并将转换结果转存到RAM中 SHT0 x 8 采样时间 256 ADC12CLK 100 includeResultsEQU0200h BeginingofResultstable ORG01100h ProgramStart RESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD 软件启动后 通道序列的采样和转换无需CPU的干预 101 ADC12ISR InterruptServiceRoutineforADC12movEND 102 103 举例08 通道序列单轮转换方式 使用采样定时器 采样时间 1024 ADC12CLK 使用ADC12IFG 1中断 其它采用复位值 通道序列定义 通道号结果存储模拟输入转换结果缓冲器通道号转存到0ADC12MEM0A8R51ADC12MEM1A9R6 VeREF VeREF 104 ADC12的模拟输入及其多路模拟开关 A8 A9 105 include ORG01100h ProgramStart RESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD SETBREAKPOINTHERE 106 ADC12ISR InterruptServiceRoutineforADC12movEND 107 108 举例09 通道序列单轮转换方式 使用采样定时器 采样时间 16 ADC12CLK 使用ADC12IFG 3中断 其它采用复位值 通道序列定义 通道号结果存储模拟输入转换结果缓冲器通道号转存到0ADC12MEM0A0R51ADC12MEM1A1R62ADC12MEM2A2R73ADC12MEM4A3R8 109 include ORG01100h ProgramStart RESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD SETBREAKPOINTHERE 110 ADC12ISR InterruptServiceRoutineforADC12bic CPUOFF 0 SP movEND 111 112 片上集成温度传感器的使用模拟通道 INCHx 1010 0Ah 注意 采样时间 30 s 113 114 举例03 单通道重复转换方式 使用TA1作为采样信号源 使用内部2 5V参考电压源 使用采样定时器 采样时间 256 ADC12CLK SHT0 8 使用ADC12IFG 0中断 其它采用复位值 通道定义 通道号结果存储模拟输入缓冲器通道号0ADC12MEM0A10 115 UseADC12andtheintegratedtemperaturesensortodetect temperaturegradients Thetemperaturesensoroutputvoltageissampled every80msandcomparedwiththedefineddeltavaluesusinganISR ADC12OSC 256 determinessampletimewhichneedstobegreaterthan 30usfortemperaturesensor ADC12isoperatedinrepeat singlechannelmodewiththesampleand converttriggersourcedfromTimer ACCR1 TheADC12IFGattheend ofeachconversionwilltriggeranISR ACLK n a MCLK SMCLK default DCO 800kHz ADC12CLK ADC12OSC 116 include ORG01100h ProgramStart RESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD WDTCTL Stopwatchdogmov SHS 1 SHP CONSEQ 2 upmode SMCLK 117 bis LPM0 GIE SR EnterLPM0 Enableinterruptsbic CCIE Requiredonlyfordebugger 118 TA0 ISR ISRforCCR0clr 119 InterruptVectorsUsedMSP430 x13x 14x 15x 16x ORG0FFFEh MSP430RESETVectorDWRESET ORG0FFEEh ADC12VectorDWADC12 ISR ORG0FFECh Timer A0VectorDWTA0 ISR END 120 举例10 单通道单次转换方式 使用内部1 5V参考电压源 使用采样定时器 采样时间 256 ADC12CLK SHT0 8 使用ADC12IFG 0中断 其它采用复位值 通道定义 通道号结果存储模拟输入缓冲器通道号0ADC12MEM0A10 121 AsinglesampleismadeonA10Tempwithreferencetointernal1 5VVref SoftwaresetsADC12SCtostartsampleandconversion ADC12SC automaticallyclearedatEOC ADC12internaloscillatortimessample andconversion InMainloopMSP430waitsinLPM0tosavepoweruntil ADC10conversioncomplete ADC12 ISRwillforceexitfromanyLPMxin Mainlooponreti ResultisconvertedtoTemperaturerepresentedas BCD0000 0145representingoCsavedat0200hand0000 0292representing oFsavedat0202h ACLK n a MCLK SMCLK default DCO 800kHz ADC12CLK ADC12OSC 举例10 122 include ORG01100h ProgramStart RESETmov 0A00h SP Initializestackpointermov WDTPW WDTHOLD Enableinterrupt 123 Mainbis ENC ADC12SC breakpointhere 124 Trans2TempC SubroutinecovertsR12 R12 4096 423 278 oC x 4096 1500mV 986mV 1 3 55mV x 423 4096 278 Input R120000 0FFFh R11workingregister Output R120000 091hmovR12 125 Trans2TempF SubroutinecovertsR12 R12 4096 761 468 oF x 4096 1500mV 923mV 1 1 97mV x 761 4096 468 Input R120000 0FFFh R11workingregister Output R120000 0262movR12 126 BIN2BCD4 SubroutineconvertsbinarynumberR12 Packed4 digitBCDR13 Input R120000 0FFFh R15workingregister Output R130000 4095 mov 16 R15 LoopCounterclrR13 0 RESULTLSDBIN1rlaR12 BinaryMSBtocarrydaddR13 R13 RESULTx2LSDdecR15 Through jnzBIN1 Notthroughret 127 TA0 ISR ISRforCCR0clr 128 InterruptVectorsUsedMSP430 xx4x ORG0FFFEh MSP430RESETVectorDWRESET ORG0FFEEh ADC12VectorDWADC12 ISR ORG0FFECh Timer A0VectorDWTA0 ISR END 129 附录1 转换方式详解 130 单通道单次转换方式对指定的通道n CSTARTADDx 进行一次采样和转换 并将结果存入转换结果存储缓冲器ADC12MEMn中 CONSEQx 00 单通道单次转换方式停止条件 清零ENC位可立即停止采样和转换过程 但转换结果不可预测 为了得到正确的转换结果 应查询ADC12BUSY位 待ADC12BUSY 0后 再读取转换结果 然后清零ENC位 以准备下一次采样和转换 也可以查询ADC12IFGn位 131 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn WaitforTrigger Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet CONSEQ 00 ADC12ON 1 ENC ENC ENC SAMPCON SAMPCON 1 SHSx 0and ENC 1orand ADC12SC SAMPCON 12 ADC12CLK 1 ADC12CLK ENC 0 ENC 0 ENC 0 Conversionresultisunpredictable 单通道单次转换方式状态转换图 软件启动 定时器启动 给模块供电 中断和查询条件 132 ADC12模块供电 断电控制位 采样和转换使能控制位 清零ADC12ON位 可以将ADC12模块断电 以降低功耗 使用ADC12模块前应置位ADC12ON 否则ADC12模块无电 另外 在采样和转换前应置位ENC位 否则ADC12模块不工作 注意 ADC12模块的大部分控制位 灰色 需在ENC 0的情况下才能编程修改 133 软件启动采样和转换控制位 当选择软件启动方式时 SHSx 00 编程置位ADC12SC位 可以启动采样和转换过程 134 ADC12模块 忙 状态位 转换结果的起始存储指针 起始通道号 135 SHSx 00h 单通道单次转换方式状态转换图 软件启动 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet ADC12ON 1 ENC SAMPCON 1 ENC 1orand ADC12SC SAMPCON 12个ADC12CLK 1个ADC12CLK ENC 0 ENC 0 ENC 0 Conversionresultisunpredictable 软件启动 采样期间 转换时间 存储等时间 给模块供电 ADC12SC自动清零 136 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn WaitforTrigger Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet ADC12ON 1 ENC ENC ENC SAMPCON SAMPCON 1 SHSx 0 SAMPCON 12 ADC12CLK 1 ADC12CLK ENC 0 ENC 0 ENC 0 Conversionresultisunpredictable 单通道单次转换方式状态转换图 定时器启动 toggleENC进行下一次采样转换 137 单通道重复转换方式 CONSEQx 10 对指定的通道n CSTARTADDx 进行重复 连续地采样和转换 并将每一次转换的结果都存入同一个转换结果存储缓冲器ADC12MEMn中 因此 需及时读取转换结果 以免下一个转换结果将当前的转换结果覆盖掉 单通道重复转换方式停止条件 在单通道重复转换过程中 清零ENC位 可在当前的转换过程结束后停止采样和转换过程 清零CONSEQx和ENC 可立即停止采样和转换过程 但转换结果不可预测 138 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn WaitforTrigger Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet CONSEQ 10 ENC ENC ENC SAMPCON SAMPCON 1 SHSx 0and ENC 1orand ADC12SC SAMPCON 12 ADC12CLK 1 ADC12CLK ENC 0 单通道重复转换方式状态转换图 MSC 1andSHP 1andENC 1 ADC12ON 1 MSC 0orSHP 0 andENC 1 软件启动 定时器启动 停止条件 MSC 1连续多次 SHP 1脉冲采样方式 139 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet SAMPCON 1 SHSx 00h ADC12SC SAMPCON 12 ADC12CLK 1 ADC12CLK ENC 0 MSC 1andSHP 1andENC 1 ADC12ON 1 ENC 1orand 停止条件 单通道重复转换方式状态转换图 由软件启动第一次采样和转换 然后由采样定时器自动实现后续的快速重复采样和转换 140 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn WaitforTrigger Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet ENC ENC SAMPCON SAMPCON 1 SAMPCON 12 ADC12CLK ENC 0 ADC12ON 1 MSC 0orSHP 0 andENC 1 单通道重复转换方式状态转换图 由定时器TA1 TB0 TB1实现重复采样和转换 SHSx 00h 停止条件 MSC 0单次 SHP 1脉冲采样方式 ENC 1 ADC12CLK SHP 0扩展采样方式 与采样定时器 MSC无关 141 单通道重复转换方式状态转换图 由定时器启动第一次采样和转换 然后由采样定时器自动实现后续的快速重复采样和转换 SHSx 0 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn WaitforTrigger Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet ENC ENC ENC SAMPCON SAMPCON 1 SAMPCON 12 ADC12CLK 1 ADC12CLK ENC 0 MSC 1andSHP 1andENC 1 ADC12ON 1 定时器启动 停止条件 MSC 1连续多次 SHP 1脉冲采样方式 142 通道序列单轮转换方式 CONSEQx 01 对指定的通道序列 起始通道号n CSTARTADDx 按顺序进行一轮采样和转换 直到EOS 1的通道转换完毕后停止本轮采样和转换 并将每一次的采样和转换的结果依次存入相应通道的转换结果存储缓冲器中 当由软件启动时 每置位一次ADC12SC 就可以实现新的一轮采样和转换过程 当由其它触发源 定时器 启动时 每轮之间需要toggleENC 即一轮结束时先清零ENC 再置位ENC 这样造成了一个ENC的上升沿 就可以开始下一轮的采样和转换过程 143 ADC12off n CSTARTADDxWaitforEnable Sample InputChannelDefinedinADC12MCTLn WaitforTrigger Convert ConversionCompleted ResultStoredintoADC12MEMn ADC12IFGnisSet CONSEQx 01 ENC ENC SAMPCON SAMPCON 1 SHSx 0and ENC 1orand ADC12SC SAMPCON 12 ADC12CLK 1 ADC12CLK EOS n 1 通道序列单轮转换方式状态转换图 ifn 15thenn n 1elsen 0MSC 1andSHP 1andEOS n 0 ADC12ON 1 ifn 15thenn n 1elsen 0 MSC 0orSHP 0 andEOS n 0 软件启动 定时器启动 停止条件 144 通道序列单轮 重复转换方式停止条件 在通道序列单轮 重复转换过程中 清零ENC位 可在当前通道序列转换结束 即EOS 1的通道转换结束 后停止采样和转换过程 注意 如果不存在EOS 1的通道 即无限长度通道序列 则清零ENC将不会停止通道序列的转换 此时若想停止该无限长度的通道序列转换过程 则首先应编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年健康管理实务考试试题及答案解析
- 2025年建筑环境设计师专业水平检测试题及答案解析
- 2025年航空安全管理专家考试试题及答案解析
- 2025年机关消防演练测试题及答案
- 机电润滑基础知识培训课件
- 2025年企业员工安全考核题库及答案
- 2025年慈善基金会招聘笔试预测题
- 2025年安全生产安全文化测试题含答案
- 2025年工程造价师资格认证考试试题及答案解析
- 2025年复工复产安全培训测试题含答案
- IT运维服务方案信息运维服务方案
- ZSL1000、ZSL750塔吊外挂架施工方案
- 文化自信作文800字议论文
- GB/T 28287-2012足部防护鞋防滑性测试方法
- GB/T 27677-2017铝中间合金
- GB/T 19627-2005粒度分析光子相关光谱法
- 芜湖宜盛置业发展有限公司招聘3名编外工作人员(必考题)模拟卷
- 混凝土结构设计原理教学教案
- 齿轨卡轨车课件
- 中国监察制度史
- 供水公司主要安全风险公告栏(总)
评论
0/150
提交评论