电流输出型DA转换器AD5545的原理应用及编程_第1页
电流输出型DA转换器AD5545的原理应用及编程_第2页
电流输出型DA转换器AD5545的原理应用及编程_第3页
电流输出型DA转换器AD5545的原理应用及编程_第4页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电流输出型 DA 转换器 AD5545 的原理,应用及编程原理:图 1DA 转换器内部结构图用作 DA 转换时,推荐系统连接如图所示,ADR03 提供 2.5V 的参考电压。上述电路图, 在本质上相当于一个反相放大器,构成反相放大的两个电阻为Rfb 与 Iout之间的等效电阻 R1,Vref 和 Iout 之间的等效电阻R2。则有 VoutVrefR1,通常情况R2下,忽略芯片本身影响, 则有 R1RNN,所以有 VoutVrefN。R22nR2n6553665536N当用作可编程增益放大器时,一般外部都配接一个运放,构成如图2 所示电路,而图2在本质上也相当于一个反相放大电路,如图3 所示。

2、VinDinIoutRfbGNDVrefIoutVrefRfb(Vin)VoutVout图 2 可编程增益电路图 3 等效电路VoutREQ则有增益 GRFB,Vin其中 REQ 为 Vref 引脚到 Iout 引脚间的等效电阻,其值与数字量D 有关; RFB 为 RFB 引脚到 Iout 引脚间的电阻值。有 REQ2n Rin (n: DAC 的位数; N :输入的二进制数; Rin :输入阻抗)N假设,芯片本身的增益误差为0,即 Rin=Rfb ,Vout2n Rin2n则有NGVinRFBN记 DN,即有 Vout1 Vin ,即放大倍数为1 。2n65536DD则有 VoutVinN将

3、 DA 转换器用作双极性输出:电路如图4 所示,其在本质上的等效电路如图5 所示。图 4 双极性输出10K10KVrefREQ ( Iout ) RFB4.99KVrefVout2Vout1图 5等效电路图 5 中 REQ 为 Vref 引脚到 Iout 引脚间的等效电阻,其值与数字量D 有关; RFB 为 RFB引脚到 Iout 引脚间的电阻值。根据运放原理,有RFBVref ,Vout1REQVout 2Vref2Vout1VrefRFBVrefRFBN RFB1 Vref221 Vref2nRinREQREQ2N1 V r e f(根据 REQ2n Rin, RinRFB )2n 1N对

4、于 AD5545 (或者 DAC8812 ),则有 VoutN1 Vref32768有 Vout=( -Vref +Vref)对 AD5545 的操作:图 6 AD5545 操作时序AD5545 操作采用 SPI 方式的 3 线接口,数据 SDI 、时钟 CLK 、片选 CS。A1 、A0 用来选择通道,如图 7 所示。数据位 16 为精度数据, MSB 在前。图 7 通道地址编码软件实现: MCU 用 MSP430F149, DA 转换器用上述提及的AD5545 , SPI 时序用软件模拟的方式实现。电路设计中SPI 接口的 CS 由 P1.0 控制、 CLK 由 P3.3 控制、 SDI

5、由 P3.1控制。自己认为,在软件设计中,难的是对数据的处理,尤其是2 位地址 +16 位数据构成的18 位格式的数据。不过好在,在AD5545 的 datasheet上下面一段话:If the applied microcontroller outputs serial data in different lengths than AD5545, such as8-bit bytes ,three right justified data bytes can be written to the AD5545。The AD5545 ignores thesix MSB and recogniz

6、es the 18 LSB as valid data。After loading the serial register,therisingedge of CS transfers the serial register data to the DAC registerand updates the output;即碰到 MCU 的位数和AD5545 位数不匹配的情况,比如 8 位的 MCU 。传送的 18 位数据通常通过传送3 个 8 位数据来实现。AD5545 (自动)忽略前6 个 MSB ,只接受后18 个LSB 数据,当所有数据都送入串行移位寄存器后,在 CS 的上升沿将数据送入DA

7、C 寄存器,同时更新输出(模拟值A )。对于 AD5545 这款 DAC 的操作, 自己认为, 归根结底还是如何把数据从MCU 送给它,尤其是碰到像上述提及的位数不匹配的情况,因此编写了两个程序段,分别用于发送8 位数据和用于转换18 位格式数据。(每个程序段中,中间有所省略,相信读者可以自行补全)void AD5545SendByte(uchar SByte)for(i=0;i<8;i+)P3OUT &= (AD5545_CLK);/ 时钟CLK低电平if(SByte & BIT7)/判断高位是否为1P3OUT |= AD5545_SDI;/ 为 1,发送 1elseP

8、3OUT &= (AD5545_SDI); /否则,发送0delayus(5);/延时一点时间P3OUT |= AD5545_CLK;/时钟 CLK 高电平(上升沿)delayus(5);/延时一点时间SByte <<= 1;/ 数据左移1 位/*描述: DA 转换器 AD5545BRUZ转换函数AD5545 自动忽略前6 位 MSB ,只接受18 位 LSB*/void AD5545_Convert(long int DA_Value,uchar DA_CS_num,uchar AD5545_chnum)if(AD5545_chnum = 0)DA_Value = 0x0

9、10000 | DA_Value;/AD5545_chnum=0,use ChAelse if(AD5545_chnum = 1)DA_Value = 0x020000 | DA_Value;/AD5545_chnum=1,use ChBelseDA_Value = 0x030000 | DA_Value;/AD5545_chnum=2,use ChA and ChB simultaneitylo_byte = (uchar)(DA_Value & 0xff); /取出低字节,即16 位数据的低8 位mi_byte = (uchar)(DA_Value >> 8);/ 取出中间字节,即16 位数据的高8 位hi_byte = (uchar)(DA_Value >> 16);/ 取出高字节,即24 位数据格式中的最高8 位AD5545_enable(DA_CS_num);/ 选通通道的DAAD5545SendByte(hi_byte);AD5545SendByte(mi_byte);AD5545SendByte(lo_byte);AD5545_disenable(DA_CS_num);/ 禁止通道的DA对双极性输出电路结果的测量,参考电压输入数字量N计算公式2.4920x0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论