dac8560使用方法
现在使用dac8560,电路图如图,使用端口模拟spi,现在问题是,初始化使用外部基准后,此时输出为0v,一旦往dac里写数据就输出3.3v,下图是信号时序,第一个图是写入指令,使用外部2.5v参考源,第三幅图是写入数字量转成对应的电压,写0输出是0,写其他值输出就是3.3,dac供电vout=3.3V
经过调试发现我的时序不对,现在已经能够输出电压了,可是又发现新问题了,为什么我的参考电压是2.5V,可是我dac8560最大输出电压是1.25V求解答,发给dac8560的数字量已经是最大值了,可是电压仍然是1.25V
之前是vfb和vout没连接到一起,现在已经连接到一起了,可是输出电压最大还是参考电压的0.5,1.25v
碰到了同样的问题,还是时序的问题,注意,数据时下降沿写入。估计您也是少些了一个bit,变成了0x7FFF.
附demo:
DAC8560_SCLK_1_();
DAC8560_SYNC_0_();
for(i=0;i<8;i++)
{
DAC8560_SCLK_1_();
if(com&0x80)
{
DAC8560_DIN_1_();
}
else
{
DAC8560_DIN_0_();
}
DAC8560_SCLK_0_();
com<<=1;
}
for(i=0;i<16;i++)
{
DAC8560_SCLK_1_();
if(dat&0x8000)
{
DAC8560_DIN_1_();
}
else
{
DAC8560_DIN_0_();
}
DAC8560_SCLK_0_();
dat<<=1;
}
DAC8560_SYNC_1_();
可以给我看看你的代码吗,我也遇到这样的问题,
问题原因是写入时序错误。注意写入时序,下降沿写入。少写了一个1会导致 0xFFFF,变成0x7FFF。代码上面已经附上了。
之前用单片机IO口模拟SPI 时序操作DAC8562都可以正常运行,程序没有太大改动(换了三个IO口)操作DAC8560居然没有成功。都不知道是不是芯片出了问题。