电流输出型DA转换器AD5545的原理应用及编程Word格式.docx

上传人:b****5 文档编号:20795706 上传时间:2023-01-25 格式:DOCX 页数:7 大小:169.19KB
下载 相关 举报
电流输出型DA转换器AD5545的原理应用及编程Word格式.docx_第1页
第1页 / 共7页
电流输出型DA转换器AD5545的原理应用及编程Word格式.docx_第2页
第2页 / 共7页
电流输出型DA转换器AD5545的原理应用及编程Word格式.docx_第3页
第3页 / 共7页
电流输出型DA转换器AD5545的原理应用及编程Word格式.docx_第4页
第4页 / 共7页
电流输出型DA转换器AD5545的原理应用及编程Word格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

电流输出型DA转换器AD5545的原理应用及编程Word格式.docx

《电流输出型DA转换器AD5545的原理应用及编程Word格式.docx》由会员分享,可在线阅读,更多相关《电流输出型DA转换器AD5545的原理应用及编程Word格式.docx(7页珍藏版)》请在冰豆网上搜索。

电流输出型DA转换器AD5545的原理应用及编程Word格式.docx

其中REQ为Vref引脚到Iout引脚间的等效电阻,其值与数字量D有关;

RFB为RFB引脚到Iout引脚间的电阻值。

(n:

DAC的位数;

N:

输入的二进制数;

Rin:

输入阻抗)

假设,芯片本身的增益误差为0,即Rin=Rfb,

,即有

,即放大倍数为

将DA转换器用作双极性输出:

电路如图4所示,其在本质上的等效电路如图5所示。

图4双极性输出

图5等效电路

图5中REQ为Vref引脚到Iout引脚间的等效电阻,其值与数字量D有关;

根据运放原理,有

(根据

对于AD5545(或者DAC8812),则有

有Vout=(-Vref~+Vref)

 

对AD5545的操作:

图6AD5545操作时序

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由P3.1控制。

自己认为,在软件设计中,难的是对数据的处理,尤其是2位地址+16位数据构成的18位格式的数据。

不过好在,在AD5545的datasheet上下面一段话:

IftheappliedmicrocontrolleroutputsserialdataindifferentlengthsthanAD5545,suchas8-bitbytes,threerightjustifieddatabytescanbewrittentotheAD5545。

TheAD5545ignoresthesixMSBandrecognizesthe18LSBasvaliddata。

Afterloadingtheserialregister,therisingedgeofCStransferstheserialregisterdatatotheDACregisterandupdatestheoutput;

即碰到MCU的位数和AD5545位数不匹配的情况,比如8位的MCU。

传送的18位数据通常通过传送3个8位数据来实现。

AD5545(自动)忽略前6个MSB,只接受后18个LSB数据,当所有数据都送入串行移位寄存器后,在CS的上升沿将数据送入DAC寄存器,同时更新输出(模拟值A)。

对于AD5545这款DAC的操作,自己认为,归根结底还是如何把数据从MCU送给它,尤其是碰到像上述提及的位数不匹配的情况,因此编写了两个程序段,分别用于发送8位数据和用于转换18位格式数据。

(每个程序段中,中间有所省略,相信读者可以自行补全)

voidAD5545SendByte(ucharSByte)

{

……

for(i=0;

i<

8;

i++)

{

P3OUT&

=~(AD5545_CLK);

//时钟CLK低电平

if(SByte&

BIT7)//判断高位是否为1

P3OUT|=AD5545_SDI;

//为1,发送1

else

=~(AD5545_SDI);

//否则,发送0

delayus(5);

//延时一点时间

P3OUT|=AD5545_CLK;

//时钟CLK高电平(上升沿)

SByte<

<

=1;

//数据左移1位

}

}

/******************************************************

描述:

DA转换器AD5545BRUZ转换函数

AD5545自动忽略前6位MSB,只接受18位LSB

******************************************************/

voidAD5545_Convert(longintDA_Value,ucharDA_CS_num,ucharAD5545_chnum)

if(AD5545_chnum==0)

DA_Value=0x010000|DA_Value;

//AD5545_chnum=0,useChA

elseif(AD5545_chnum==1)

DA_Value=0x020000|DA_Value;

//AD5545_chnum=1,useChB

else

DA_Value=0x030000|DA_Value;

//AD5545_chnum=2,useChAandChBsimultaneity

lo_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);

//选通通道的DA

AD5545SendByte(hi_byte);

……

AD5545SendByte(mi_byte);

AD5545SendByte(lo_byte);

AD5545_disenable(DA_CS_num);

//禁止通道的DA

对双极性输出电路结果的测量,

参考电压

输入数字量N

计算公式

理论结果(V)

实测结果(V)

2.492

0x0000

-2.492

-2.490

2.492

0xAAAA

0.831

0.838

0xFFFF

2.501

注:

本文ADI技术论坛原创首发,转载请注明。

谢谢!

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

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1