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

DAC8571求助

电路输出电压一直不对,要么一直输出电源电压,要么输出一些奇怪的电压值。

写入时序是这样:开始、写入0x98、写入0x10、写入数据高位、写入数据低位、停止

qizhou cui:

Vcc 为3V

bo zhang9:

回复 qizhou cui:

您好,对于DAC8571的I2C通信问题始终无法解决,就是说我发完DA芯片地址指令(1001 1000,即0x98)之后,接着应该在第九位将SDA拉高,等着DA芯片的应答,但是问题出现了,发现SDA无法拉高,后来经检查发现是由于DA芯片在第八个脉冲下降沿一到就立即就将SDA拉低了,导致单片机无法在第八个脉冲结束时将SDA拉起,当过了第九个脉冲之后,单片机就可以将SDA拉高了,这是什么原因呢?即使如此,如果我忽略这些,过了第九位之后,我接着发DA的控制指令(0x10),数据的高八位,低八位,转出的电压值也是不正确的。如图,

user3853968:

跪求楼主帮忙,我不知道我的这个DAC8532的芯片地址啊

QQ1:

回复 qizhou cui:

楼主可以分享一下这个芯片的程序吗?写了几天了,不知道问题出在哪里,谢谢!

qizhou cui:

回复 QQ1:

/*写DAC8571*/ void Write8571(unsigned int dat) { GIEH=0; //关中断,防止I2C通讯错误 SEN1 = 1; //启动 CheckSSPIF(); SSP1BUF = 0x98; //器件在I2C总线地址 CheckSSPIF(); if(ACKSTAT1) //判断是否已接收应答 return; SSP1BUF = 0x10; //子地址 CheckSSPIF(); if(ACKSTAT1) return; SSP1BUF = dat>>8; //数据 CheckSSPIF(); if(ACKSTAT1) return; SSP1BUF = dat&0xFF; //数据 CheckSSPIF(); if(ACKSTAT1) return; PEN1 = 1; //停止 CheckSSPIF(); GIEH=1; //开中断,防止I2C通讯错误 }

rui xiao:

回复 qizhou cui:

时序是按照楼主程序上所说的写的,输出电压一直是0呢,不知道还有什么要注意的

rui xiao:

回复 QQ1:

请问解决了吗?我也在做这个,找不到问题原因,电压一直是0

zhuangyuan zhuang:

回复 rui xiao:

我的也是这样  解决了吗 ?谢谢

赞(0)
未经允许不得转载:TI中文支持网 » DAC8571求助
分享到: 更多 (0)