TI中文支持网
TI专业的中文技术问题搜集分享网站

求助–dac7742无结果输出?

想用dac7742y做一个高精度的锯齿波,可发现无波形输出。 按技术文档中的常规电路连接

 Vss:-15v,Vcc:+15v,Vdd:5v .

 

时序 按 技术文档来操作:比如说写时序:

RW = 0;

DATA = XX;

CS = 0;

DELAY();

CS =1;

LDAC = 0;

RW = 1;

LDAC = 1;

LDAC = 0;        我用的单片机每个指令要1us。   求解释,为什么无输出!!

 

 

Van Yang:

你好,ldac仅仅是将input reg刷新到dac reg,所以在你完成数据写操作之后不用再置零。你可以尝试读操作,看是否通信成功。谢谢

kindoen stevel1:

按照您的说明我修改了下程序,可还是不行!要是能找到一个关于adc7742官方的样例程序就好了,我是新手,请告诉赐教!!

Van Yang:

你好,首先建议你在初始化da时进行复位操作,再次,尝试进行读操作,看数据是否写入,通过示波器能不能看下你的软件操作时序是否符合要求。最后,这个DA的建立时间是5us。LDAC的下降沿后需要至少5us才有输出。

Bruce Wei:

另外,可以在网上找找seed的开发板带的DAC7744的参考代码

kindoen stevel1:

首先,不知道为什么,我不能对各位高手的答复直接进行回复,就是我点那个回复button没有反应。

我按照你们的提示对程序进行了适当的修改,但只能出部分波形。我用的是stc89c52单片机,这是一个开发板。

修改后的程序如下:

RW = 0;//写

delay();

CS = 0;

delay();

P3 = temp_H;//16位数据的高八位。

P0 = temp_L;//16位数据的低八位。

delay();

CS = 1;   //这个是放这里吗?

delay();

LDAC = 0;  

delay();

RW = 1;

delay();

LDAC = 1;

delay();

LDAC = 0;

/*     (unsigned char) temp_H,temp_L的初值为255,temp_L是从255循环递减到0,当temp_L为0时,temp_H减1, */

此程序对应的波形如下:   (图1)

 

  (图2)

现在问题就是波形不稳定,而且线性度太差,还不如8位的DAC出的来的波形好。不知道为什么??? 

 

 

kindoen stevel1:

后来,我修改程序:把数据的低八位(temp_L)(P3口)始终置为0,把数据的高八位(temp_H)(P0口)输入一个uchar变量,让它从255递减到0,循环。也就是如下改动:

          delay();

P3 = 0x00;                                                //数据的第八位  temp_L;

P0 = temp_H;                                          //数据的高八位

delay();

出来的波形如下:   (图1)

 

   (图2)

波形是干净了些,但是效果离目标还是差得太远。。

按照我这样修改的程序,是不是把16位的DAC当做8位的DAC来使用呢??

怎样才能做出一条高精度的锯齿波呢?

kindoen stevel1:

最早出不来波形,我按照各位高手给的提示,一上电就对DAC7742进行复位操作,然后就可以有波形输出了。

关于 seed的开发板带的DAC7744的参考代码,我正在寻找……………………….

Van Yang:

如果你的指令执行时间是1us,那么并不需要这么多delay。只是LDAC下降沿之后需要delay到DAC的setting time。太多的delay会让你的波形像阶梯波。所以建议你用示波器抓图,按照写时序来对照。DAC的输出会有glitch,需要外部滤波。另外,按照手册Figure10,需要对ref滤波降噪。

kindoen stevel1:

我增加外部滤波 和 对ref滤波降噪后,16位的DAC(DATA从0增加到65535)输出波形如下图:

[ (图1)

波形效果还是不是很好哦。这几天头都大了?

赞(0)
未经允许不得转载:TI中文支持网 » 求助–dac7742无结果输出?
分享到: 更多 (0)