3.8-数模转换器(DAC)PPT演示课件.ppt

上传人:rrsccc 文档编号:9929968 上传时间:2021-04-04 格式:PPT 页数:39 大小:826.50KB
返回 下载 相关 举报
3.8-数模转换器(DAC)PPT演示课件.ppt_第1页
第1页 / 共39页
3.8-数模转换器(DAC)PPT演示课件.ppt_第2页
第2页 / 共39页
3.8-数模转换器(DAC)PPT演示课件.ppt_第3页
第3页 / 共39页
3.8-数模转换器(DAC)PPT演示课件.ppt_第4页
第4页 / 共39页
3.8-数模转换器(DAC)PPT演示课件.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《3.8-数模转换器(DAC)PPT演示课件.ppt》由会员分享,可在线阅读,更多相关《3.8-数模转换器(DAC)PPT演示课件.ppt(39页珍藏版)》请在三一文库上搜索。

1、3.8 DAC数模转换 (Digital to Analog Converter) 本节内容 DAC液晶显示器简介 MSP430 DAC控制器 DAC简介(1/3) 数字处理的最后阶段 数字输出模拟信号(电压或电流等) 数模转换器(DAC) Digital-to-Analog Converter 数字量-模拟量的一种电子器件或电路 DAC简介(2/3) 一般常用的线性D/A转换器,其输出模拟电压Uo和输入数字量Dn之间成正比 关系。UREF为参考电压。 Uo = DnUREF 数字值Dn 参考电压 UREF DAC 连续输出信 号Uo D/A转换器实质上是一个译码器(解码器) DAC简介(3/

2、3) 注:在一个单一时间周期内,时钟信号将锁存数字数据序列,DAC输出端 将保持模拟电压值. 理想DAC输出 一系列脉冲经过过滤 后得到的时间上连续 的模拟信号 由奎斯特频率决定采 样信号重建精确度 实际DAC输出 重建并不精确 过滤器具有有限的相 位延迟 量化误差 vs DAC 类型(1/3) 二进制加权DAC -DAC的每个位都对应到一个电阻(或电源) R-2R梯形DAC - 由阻值为R和2R的电阻反复级联构成的二进制加权DAC - MSP430中的DAC12模块采用的就是这种结构. DAC 类型(2/3) 加权DAC:先将每位代码按其权的大小转换成相应的模拟量,然后将 这些模拟量相加,即

3、可得到与数字量成正比的总模拟量,从而实现了 数字/模拟转换。 D/A转换器 Vo 输出输入 D0 D1 Dn-1 0 1 2 3 4 5 6 7 001010011100101110111 vo/V D000 DAC 类型 (3/3) R/2R梯形 DAC: - 运算放大器阴极电流输入转换为虚拟接地 例如: R/2R 4位DAC体系结构: DAC 应用 DAC是将数字量转换成模拟量输出的设备,DAC在实际的应用中可以方 便地产生规则(梯形波和三角波)或不规则的模拟波形,用来控制一 些模拟设备,大多数都应用在音频方面。 ADC DAC 话筒放大器放大器扬声器 简单语言编码 DAC性能参数 (1/

4、2) 分辨率 (n): DAC转换器使用的位数, D/A转换器模拟输出电压可能被分离的等级 数。 输入数字量位数越多,分辨率越高。所以,在实际应用中,常用数 字量的位数表示D/A转换器的分辨率。 (2)转换速率(SR)在大信号工作状态下模拟电压的变化率。 (1)建立时间(tset)当输入的数字量发生变化时,输出电压变化到相应 稳定电压值所需时间。最短可达0.1S。 转换速度 DAC性能参数 (2/2) 单调性: 转换器的模拟输出值与数字输入值同增同减. 偏移误差: 当输入的数字量为0时,DAC输出的模拟量的大小。 温度系数 在输入不变的情况下,输出模拟电压随温度变化产生的变化量。一般用满刻 度

5、输出条件下温度每升高1,输出电压变化的百分数作为温度系数。 DAC12 模块 MSP430中的12位DAC模块(DAC12)输出的信号是电压 所有的MSP430硬件开发工具都有这个模块 实验板上的MSP430F6638单片机具有两个DAC12模块, 它们可以组合在一起使用,并且可以输出同步更新 DAC12 模块 DAC12 框图 : DAC12 特征 12 位单调输出 8位或12位电压输出分辨率 可编程的时间对能量的消耗 内部或外部参考电压 二进制或二进制补码形式 具有自校验功能 多路DAC同步更新 可直接用存储器存储(DMA) DAC12 操作(1/4) 动态范围控制: DAC分辨率: 8位

6、或12位 (DAC12RES位); 满量程输出: 1xVREF 、2xVREF 或 3xVREF (DAC12IR位和DAC12OG位); 输入数据格式: 二进制或二的补码 (DAC12DF位). 位数DAC12RESDAC12OGDAC12IR输出电压格式 12位 000Vout = Vref 3 (DAC12_xDAT/4096) 12位 010Vout = Vref 2 x (DAC12_xDAT/4096) 12位 0 x1Vout = Vref (DAC12_xDAT/4096) 8位 100Vout = Vref 3 (DAC12_xDAT/256) 8位 110Vout = Vr

7、ef 2 (DAC12_xDAT/256) 8位 1X1Vout = Vref (DAC12_xDAT/256) - 输出电压 (二进制数据格式): DAC12内核: DAC12 操作 (2/4) DAC12_xDAT数据格式: 数据格式与满量程输出电压的关系: DAC12 操作 (3/4) 配置DAC12LSELx位: DAC12LSELx = 0: 新写入数据立即输出; DAC12LSELx = 1: 分组(数据被锁存); DAC12LSELx = 2: 数据在Timer_A的CCR1输出信号的上升沿被锁存; DAC12LSELx = 3: 数据在Timer_B的CCR2输出信号的上升沿被

8、锁存. 更新DAC12 输出电压 (DAC12_xDAT寄存器): DAC12 操作 (4/4) 这种结构提供了: 更强的系统灵活性; 没有必需要执行的代码; 低功耗; 更高的效率. DAC12中断: - DAC12输出和DMA控制器共用同一个中断向量 DAC12 寄存器(1/4) 参考电压选择 选择稳定时间 及电流消耗 组合控制位 数据寄存器 分辨率 触发源选择 DAC使能 输出校准 DAC12 寄存器(2/4) DAC12_xCTL, DAC12 控制寄存器 15141312111098 DAC12OPSDAC12SREFxDAC12RESDAC12LSELxDAC12CALONDAC12

9、IR 76543210 DAC12AMPxDAC12DFDAC12IEDAC12IFGDAC12ENCDAC12GRP 8DAC12IRDAC12inputrange: DAC12IR=0DAC12full-scaleoutput:3xreferencevoltage DAC12IR=1DAC12full-scaleoutput:1xreferencevoltage BitDescription 15DAC12OPSDAC12output: DAC12OPS=0DAC12_0onP6.6,DAC12_1onP6.7 DAC12OPS=1DAC12_0onVeREF+,DAC12_1onP5.1

10、 14-13DAC12REFxDAC12referencevoltage: DAC12REF1DAC12REF0=00VREF+ DAC12REF1DAC12REF0=01VREF+ DAC12REF1DAC12REF0=10VeREF+ DAC12REF1DAC12REF0=11VeREF+ 12DAC12RESDAC12resolution: DAC12RES=012bitresolution DAC12RES=18bitresolution 11-10DAC12LSELxDAC12 load: DAC12LSEL1DAC12LSEL0 = 00DAC12_xDAT written DAC

11、12LSEL1DAC12LSEL0 = 01all grouped DAC12_xDAT written DAC12LSEL1DAC12LSEL0 = 10 Rising edge of Timer_A.OUT1 (TA1) DAC12LSEL1DAC12LSEL0 = 11Rising edge of Timer_B.OUT2 (TB2) 9DAC12CALONDAC12calibrationinitializedorinprogresswhenDAC12CALON=1 DAC12 寄存器(3/4) DAC12_xCTL, DAC12控制寄存器 15141312111098 DAC12OPS

12、DAC12SREFxDAC12RESDAC12LSELxDAC12CALONDAC12IR 76543210 DAC12AMPxDAC12DFDAC12IEDAC12IFGDAC12ENCDAC12GRP 7-5DAC12AMPxDAC12amplifiersetting: AMP2AMP1AMP0=000 AMP2AMP1AMP0=001 AMP2AMP1AMP0=010 AMP2AMP1AMP0=011 AMP2AMP1AMP0=100 AMP2AMP1AMP0=101 AMP2AMP1AMP0=110 AMP2AMP1AMP0=111 f:frequency(speed) I:curre

13、nt Inputbuffer: Off Off Lowf/I Lowf/I Lowf/I Mediumf/I Mediumf/I Highf/I Outputbuffer: DAC12off(highZ) DAC12off(0V) Lowf/I Mediumf/I Highf/I Mediumf/I Highf/I Highf/I 4DAC12DFDAC12dataformat: DAC12DF=0Straightbinary DAC12DF=1Twoscomplement BitDescription 3DAC12IEDAC12interruptenablewhenDAC12IE=1 2DA

14、C12IFGDAC12InterruptflagDAC12IFG=1wheninterruptpending 1DAC12ENCDAC12enablewhenDAC12ENC=1andDAC12LSELx0. 0DAC12GRPGroupsDAC12_xwiththenexthigherDAC12_xwhenDAC12GRP=1(exceptionforDAC12_1) 76543210 DAC12AMPxDAC12DFDAC12IEDAC12IFGDAC12ENCDAC12GRP DAC12 寄存器(4/4) 数据格式: DAC12SREFDAC12DFDAC12DFJ DAC12数据格式

15、00012位二进制数据,右对齐,位11是最高位 00112位二进制数据,左对齐,位15是最高位 01012位二的补码数据,右对齐,位11是符号位 01112位二的补码数据,左对齐,位15是符号位 1008位二进制数据,右对齐,位7是最高位 1018位二进制数据,左对齐,位15是最高位 1108位二的补码数据,右对齐,位7是符号位 1118位二的补码数据,左对齐,位15是符号位 DAC12_xDAT, DAC12数据寄存器 DAC12 库函数(1/3) DAC12_VREF_X DAC12_AMP_X DAC12_enableGrouping( ) DAC12_setData() DAC12_T

16、RIGGER_X DAC12_SUBMODULE_X DAC12_calibrateOutput() DAC12_enableConversions() DAC12_init() DAC12 库函数(2/3) 片选 DAC12_SUBMODULE_0 DAC0 DAC12_SUBMODULE_1 DAC1 DAC12_init(_MSP430_BASEADDRESS_DAC12_2_, ) 参考电压 DAC12_VREF_VCC Default VCC DAC12_VREF_INT 内部参考电压 DAC12_VREF_EXT 外部参考电压 触发源 DAC12_TRIGGER_ENCBYPASS

17、Default DAC12_xDAT写操作 DAC12_TRIGGER_ENC 组合DAC12_xDAT写操作 DAC12_TRIGGER_TA Timer_A.OUT1(TA1)上升沿 DAC12_TRIGGER_TBTimer_B.OUT2(TB2)上升沿 DAC12 库函数(2/3) DAC12_init(_MSP430_BASEADDRESS_DAC12_2_, ) 选择输出 DAC12_OUTPUT_1 Default DAC12_OUTPUT_2 稳定时间/电流 Input buffer Output buffer DAC12_AMP_OFF_PINOUTHIGHZ off DAC

18、12off(highZ) DAC12_AMP_OFF_PINOUTLOW offDAC12off(0V) DAC12_AMP_LOWIN_LOWOUTLowf/ILowf/I DAC12_AMP_LOWIN_MEDOUT Lowf/IMediumf/I DAC12_AMP_LOWIN_HIGHOUT Lowf/IHighf/I DAC12_AMP_MEDIN_MEDOUT Mediumf/IMediumf/I DAC12_AMP_MEDIN_HIGHOUT Mediumf/IHighf/I DAC12_AMP_HIGHIN_HIGHOUTHighf/IHighf/I DAC12 库函数(3/3

19、) DAC12_calibrateOutput(_MSP430_BASEADDRESS_DAC12_2_, DAC12_SUBMODULE_X); DAC12_setData(_MSP430_BASEADDRESS_DAC12_2_, DAC12_SUBMODULE_X, data); DAC12_enableConversions(_MSP430_BASEADDRESS_DAC12_2_, DAC12_SUBMODULE_X); DAC12_enableGrouping(_MSP430_BASEADDRESS_DAC12_2_) 实验 : 电压斜坡产生器 (1/16) 综述: 本次实验将构造

20、一个电压斜坡生成器。DAC模块参考电压可从ADC 模块获得; DAC模块为12位分辨率、二进制输入数据格式; DAC在Timer_A每毫秒产生一次中断时更新一次输出值; 按键SW1和SW2用于手动修改DAC输出值; 当单片机不执行任何任务时,则进入低功耗模式. 实验 : 电压斜坡产生器 (2/16) A. 资源: DAC12_0 模块采用VREF+作为参考电压。因此在ADC12模式下需要 激活这个参考电压; 当Timer_A产生中断时,更新DAC的输出。将Timer_A配置成每毫秒 产生一次中断; DAC输出刷新之后,系统回到低功耗模式LPM3; 通过按键SW1和SW2可以手动更改DAC的输出

21、值. 实验 : 电压斜坡产生器 (3/16) B. 软件应用组织: 停止看门狗 配置Timer_A Timer_A产生中断时更新 DAC的输出 按键SW1和SW2分别连接到端口P1.0和 P1.1 设置端口类型为输入使能端口中断 配置DAC ISR中断源: 按钮SW1-DAC输出增加 按钮SW2-DAC输出减少 按钮键控 斜波产生 实验 : 电压斜坡产生器 (4/16) C. 系统配置: DAC12 配置: DAC12_0输出连接到P6.6; DAC12_0配置成12位分辨率; 当一个二进制格式的DAC12数据写入到DAC12_0DAT寄存器时立即更新 输出; 满量程输出必须等于VREF+ 2

22、.5 V 内部参考电压 ; 通过选择中频/电流的输入和输出缓冲区来选择一个时间与电流消耗之间 的折中办法; 实验 : 电压斜坡产生器 (6/16) C. 系统配置 (续): Timer_A 配置: 配置Timer_A寄存器每毫秒产生一次中断; 使用ACLK时钟信号作为时钟源; 将Timer_A配置为向上计数模式,一直计数直到TAR值等于TACCR0值. 实验 : 电压斜坡产生器 (7/16) C. 系统配置 (续): I/O 端口配置: 当按下按键SW1或SW2时,端口P1的引脚P1.0和P1.2将产生电平变化, 并在低电平到高电平跳变时产生中断. 实验 : 电压斜坡产生器(8/16) D.

23、操作分析: 使用示波器监听模拟信号: 连接示波器 测量电流: 分配不同值到DAC12AMP0的比特组; 暂停执行应用程序并且直接改变寄存器; 禁用DAC12EC位. 这一位在之后需启用. 请注意一些特殊的情况: DAC12关闭; 高阻抗输出和DAC12关闭; 输出: 0 V. 实验 : 电压斜坡产生器 (9/16) DAC12 配置(寄存器): DAC12_0DAT=0 x00;/DAC_0输出0V DAC12_0CTL0=DAC12IR|DAC12AMP_5|DAC12ENC; /P6.6输出 /1倍输出 /中速度/电流 ADC12_0CTL0 =REF2_5V|REFON;/2.5V参考电

24、压 实验 : 电压斜坡产生器 (9/16) DAC12 配置(库函数): DAC12_setData(_MSP430_BASEADDRESS_DAC12_2_, DAC12_SUBMODULE_0, 0 x000);/DAC_0输出0V DAC12_init(_MSP430_BASEADDRESS_DAC12_2_, DAC12_SUBMODULE_0,/DAC0 DAC12_OUTPUT_0,/P6.6输出 DAC12_VREF_INT,/2.5V参考电压 DAC12_VREFx1,/1倍输出 DAC12_AMP_MEDIN_MEDOUT,/中速度/电流 DAC12_TRIGGER_ENCB

25、YPASS); DAC12_calibrateOutput(_MSP430_BASEADDRESS_DAC12_2_, DAC12_SUBMODULE_0);/中速度/电流 实验 : 电压斜坡产生器 (10/16) Timer_A 配置(寄存器): TAR=0;/TAR重置 TACCR0=13600; TACCTL0|=CCIE;/比较模式,中断 TACTL=TACLR|MC_1|TASSEL_2;/增计数模式,SMCLK 实验 : 电压斜坡产生器 (10/16) Timer_A 配置(库函数): #define TIMER_PERIOD 13600 Timer_startUpMode(_MS

26、P430_BASEADDRESS_T0B7_,/增计数模式 TIMER_CLOCKSOURCE_SMCLK,/SMCLK TIMER_CLOCKSOURCE_DIVIDER_1,/1倍分频 TIMER_PERIOD, TIMER_TAIE_INTERRUPT_ENABLE,/允许中断 TIMER_CAPTURECOMPARE_INTERRUPT_ENABLE,/比较模式,中断 TIMER_DO_CLEAR/TAR重置 ); 实验 : 电压斜坡产生器(11/16) 端口配置(寄存器): /SW1 和 SW2 P1SEL/P1.0和P1.1端口 P1DIR/P1.0和P1.1输入 P1IFG=0 x00;/清除中断标志 P1IE|=0 x03;/允许端口中断 实验 : 电压斜坡产生器(11/16) 端口配置(寄存器): /SW1 和 SW2 P1SEL/P1.0和P1.1端口 P1DIR/P1.0和P1.1输入 P1IFG=0 x00;/清除中断标志 P1IE|=0 x03;/允许端口中断

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1