原创 DAC90X调试

2011-9-13 15:48 1153 2 2 分类: MCU/ 嵌入式

 

在做一个电化学的仪器,实现功能是测量葡萄糖和双氧水的浓度。辅助电极需要提供一个负0.2V到正0.6V以50mV为步长的交变的电压。控制采用ATmega128单片机,DA模块采用DAC902芯片。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

DAC902是一款高速的数模转换芯片,提供了12位的转换精度,完全满足项目的需求。

故下面分享一些调试心得yle="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">

DAC902满比例输出电流(the full-scale output current)Iref由(Internall reference voltage )内部参考电压为Vref=1.24V和外部电阻Rset共同决定,Iref=Vref/Rset,最终输出全摆幅电流Ioutfs由Iref与乘积因素32相乘得到,Ioutfs=Iref*32(即:Ioutfs=32*Vref/Rset),其有效区间必须在2~20mA之间。   

这里我们选择内部参考电压Vref=1.24v,Rset选择为2k,这样输出的全摆幅电流Ioutfs为20mA。

总电流输出Ioutfs由两部分组成:Ioutfs=Iout+I~out。且两输出电流Iout和I~out由12位数据输入的数据大小Code决定:Iout=Ioutfs*(Code/2^12);  I~out=Ioutfs*(4095—Code)/2^12。

电流输出通过负载电阻(Rload)转化为电压输出,Vout=Iout*Rload,V~out=I~out*Rload。

Rload选择为50k,Vout+V~out=2V。

上述两输出电压Vout和V~out能够算出差分输出摆动电压,公式如下:

Voutdiff=Vout-V~out=(2*Code-4095)/4096*Ioutfs*Rload

          

(V1-Vn)/R1=(Vn-Vout)/R2     (1)

(V2-Vp)/R3=(Vn-0)/R4        (2)

Vp=Vn                     (3)

……

联立上述公式的Vout=2*(V2-V1)

由于Ioutfs=20mV,Rload=50Ω,所以Vout=2*(2*Code-4095)/4096V,Vout的范围为负2V到正2V。符合项目要求的电压范围。

DAC902芯片管脚图:

DAC902典型电路如下:

时序分析:

程序如下:

void DAC902_write_dat(uint16 data) 

{

DDRB |= 0xf0;

DDRC = 0xff;

DDRE = 0xff;

PORTC |= 0x40;  //PC6 = 1

PORTE = data % 256;  //将低8位写入PE口

PORTB = data >> 4;  //将高4位写入PB口

PORTC &= ~0x40;  //PC6 = 0

nop(1);

PORTC |= 0x40;  //PC6 = 1

nop(1);

}

系统时钟为16M。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /3 下一条