微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 求助,dac8760一直没输出,原因

求助,dac8760一直没输出,原因

时间:10-02 整理:3721RD 点击:

最近,我和同学一直在调dac8760,但一直没输出,而且ALARM引脚一直输出高电平。不知道是什么原因,求解答。谢谢

在没有通电的情况下,先量一下电阻,看看短路没有。然后开电后量一下电源电压是否正常。然后看看reset,Powerdown等管脚的状态

楼主是根据这个参考设计的吗?

DAC8760,一直没输出。。

建议:

1.首先检查下程序有没有问题,可以通过软件仿真或者JTAG等工具仿真。

2.这个一般都是软件问题。重点检查下时序。

3.再检查下硬件芯片的输入引脚是否是你预期的输入。。

ALARM'管脚是报警管脚,当开路、过温、超时时候才输出低电平。你这个ALARM'为高电平说明电路处于正常状态。

请楼主依次检查以下相关地方:

1:确保硬件电路是手册44页Figure91的链接方法。(或者相似的连接方式)

2:根据手册12页写入时序,检查写入时序是否正确。

3:检查寄存器是否配置正确。

4:根据手册13页读取时序,编写读取函数,写入寄存器之后,看看能不能读取出来一样的数值。确保数据正确的写入。

以上就是检查的方法。我基本都是按照以上几个步骤检查的,一般都能检查出来问题的。

是按照这个图设计的。现在可以输出了,不过这误差那是相当大,而且每个值输出都不成比例,请问您知道是哪里影响到吗,最大输出电流也是错了

是按照这个图设计的。现在可以输出了,不过这误差那是相当大,而且每个值输出都不成比例,请问您知道是哪里影响到吗,最大输出电流也是错了

你这个给的信息太少,不是很好分析。你比可以按照以下步骤再次检查一下:

1:写入寄存器之后,在读取一下,看看读取出来的数值一样不一样。确定一下数据确实写入了寄存器。

2:测量一组数据:分别把数字量按照一定步长写入DAC,比如让ADC输出从0x0000到0xffff一直循环。把VOUT接入到示波器上,正常情况下应该是锯齿波,也就是线性上升,达到最大值之后重新降为0.如果不是这样,把波形发上来,进一步查找原因。

谢谢你的建议。这个是读函数:读不回来,正在还在调试中,你能帮忙看看。谢谢。

 uint DAC8760_read_byte(unsigned char com, unsigned int dat)
{
uint data=0;
uchar i;

DAC8760_write_byte(com,dat);
DAC8760_DIN_0;
DAC8760_LATCH_0;
DAC8760_SCLK_0;
for(i=8;i>0;i--)
{
DAC8760_SCLK_1;
DAC8760_SCLK_0;

}
for(i=16;i>0;i--)
{
DAC8760_SCLK_1;

if(DAC8760_SDO)
{
data|=0x01;
}
DAC8760_SCLK_0;
//DAC8760_delay(2);
data<<=1;
}
DAC8760_LATCH_1;
return data;

你好,我现在遇到了同样的情况!请问您是怎么解决的!谢谢

配置寄存器不要配置

http://www.deyisupport.com/question_answer/analog/data_converters/f/58/t/67495.aspx

配置寄存器不配置就可以

楼主 你能把你做得读函数发给我吗 我现在在搞DAC7750思路不太清晰,希望能参考一下 。

抱歉,我只写了写函数,读函数没有

那你的最终的DAC原理图和写程序就是你发在帖子上的吗?

好像不是,加Q805854169

你好 那你能把你的测试程序和原理图截个图发我看看吗? QQ:813136083 求帮助! 谢谢!

你好,我最近在用DAC8750调试,也是一直没有输出,你的现在可以输出了吗?

void DAC8750_Config1(void)//配置DAC8750寄存器
{
DAC8750_Write1(0x56,0x0001);// 0000 0000 0000 0001复位所有寄存器

DAC8750_Write1(0x55,0x100d);//0001 0000 0000 1101 DB12输出使能,菊花链操作使能,电流4~20ma,控制

DAC8750_Write1(0x57,0x0000);//0000 0000 0000 0000 配置寄存器


DAC8750_Write1(0x01,0xfdff);// 写DAC数据寄存器,输出0

DAC8750_Write1(0x01,0);// 写DAC数据寄存器,输出0
}

void DAC8750_Write1(uchar add,uint dat)//写第1片DAC 8位地址+16位数据 写DAC8750寄存器
{
uchar i;
uchar h_8bit;//高8位
uchar l_8bit;//低8位
unsigned long data;

h_8bit=(dat>>8)&0x00ff;//取高8位数据
l_8bit=dat&0x00ff;//取低8位数据
data=(((unsigned long)add)<<16)|(dat);

LAT_0;
DAC8750_SCL0;

for(i=0;i<24;i++)//传送24位数据
{
//DAC8750_SCL0;
if(data&0x800000)
{
DAC8750_DIN1;//写1
}
else
{
DAC8750_DIN0;//写0
}

DAC8750_SCL0;
DAC8750_SCL1;
//DAC8750_SCL0;

data<<=1;
}

//DAC8750_SCL0;

LAT_1;

}

您帮我看看是咋回事吗?谢谢,

你好,我想问一下你,你的DAC8760现在可以输出了吗?能参考一下你的程序吗?我的还是不行,谢谢了。

   加我Q 805854169

hi,你的能输出了么?

请问参考设计里面的隔离芯片 ISO7631FC 是必需的吗?

你好,测试的时候,不是必须的。

不是必须的,昨儿还能输出电流,今儿输出不了了,抓了一下时序都没问题的,很奇怪的问题,我准备换成DAC8760这个芯片试一下。。。。。。。

你重新换个芯片试一下。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top