DAC8571求助
电路输出电压一直不对,要么一直输出电源电压,要么输出一些奇怪的电压值。
写入时序是这样:开始、写入0x98、写入0x10、写入数据高位、写入数据低位、停止
Vcc 为3V
问题已解决,3、4脚要短接,另焊接的时候要注意,这个芯片容易挂,第一个测试的时候也短接上了还是没输出,换了个片子就好了。
您好,对于DAC8571的I2C通信问题始终无法解决,就是说我发完DA芯片地址指令(1001 1000,即0x98)之后,接着应该在第九位将SDA拉高,等着DA芯片的应答,但是问题出现了,发现SDA无法拉高,后来经检查发现是由于DA芯片在第八个脉冲下降沿一到就立即就将SDA拉低了,导致单片机无法在第八个脉冲结束时将SDA拉起,当过了第九个脉冲之后,单片机就可以将SDA拉高了,这是什么原因呢?即使如此,如果我忽略这些,过了第九位之后,我接着发DA的控制指令(0x10),数据的高八位,低八位,转出的电压值也是不正确的。如图,
跪求楼主帮忙,我不知道我的这个DAC8532的芯片地址啊
楼主可以分享一下这个芯片的程序吗?写了几天了,不知道问题出在哪里,谢谢!
/*写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通讯错误 }
时序是按照楼主程序上所说的写的,输出电压一直是0呢,不知道还有什么要注意的
请问解决了吗?我也在做这个,找不到问题原因,电压一直是0
我的也是这样 解决了吗 ?谢谢