This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
使用dac7563,同一批板子,芯片供电是3.3v,与mcu 通信,上电初始化流程如下:
DAC7563_WRITE(0x28,0x0001);//Reset all registers and update all DACs (Power-on-reset update)
DAC7563_WRITE(0x30,0x0003);//LDAC pin inactive for DAC-B and DAC-A
DAC7563_WRITE(0x20,0x0003);//Power up DAC-A and DAC-B
DAC7563_WRITE(0x38,0x0001);//Enable internal reference and reset DACs to gain = 2
DAC7563_WRITE(0x18,1348<<4); //1.65v
DAC7563_WRITE(0x19,1348<<4);
测试发现下面异常问题:
1.部分板子输出参考电压异常,正常的板子参考电压为2.54v左右,不正常的为3.3V和2.7v左右
2.部分板子通道写入其中一个通道输出无反应,有的两个通道都没反应
3.部分板子通道都能写入,但是值异常,比如写入的1348对应输出电压值为1.65v左右,实际输出为800mv左右
您好,
1、内部参考电压是2.5V,最大误差是5mV,您实测参考电压为2.54V已经超出了这个范围,您是否将内部输出参考电压用作其他信号驱动?
您实测供电电压正常吗?供电电压纹波大吗?
部分板子出现此问题有可能是焊接的问题,也请检查板子上焊接是否良好,是否存在虚焊?
2、这也可能是焊接的问题,所以请检查焊接情况;
另外,也建议您用示波器查看下通信波形是否有干扰或时序是否正确?
3、这也可能是焊接问题,也可能是通信问题,所以也请做这两方面的检查。
写入1348是16进制数吗?这样的话对应的十进制数是4936,。使用内部基准2.5V,设置增益为2的话,输出根据以下公式可计算将近5V,这已经超出了3.3V供电时可以输出的最大范围AVDD。
你好,1348是十进制的,
//DAC7563 :MSB First,spi_software void DAC7563_WRITE(uint8_t cmd,uint16_t data) { DAC8563_SYNC_H(); Delay_us(100); DAC8563_SYNC_L(); DAC8563_SCLK_L(); for(uint8_t s=0;s<8;s++) { if((cmd&0x80)==0x80){DAC8563_DIN_H();} else{DAC8563_DIN_L();} Delay_us(100); DAC8563_SCLK_H(); Delay_us(100); cmd<<=1; DAC8563_SCLK_L(); } for(uint8_t s=0;s<16;s++) { if((data&0x8000)==0x8000){DAC8563_DIN_H();} else{DAC8563_DIN_L();} Delay_us(100); DAC8563_SCLK_H(); Delay_us(100); data<<=1; DAC8563_SCLK_L(); } DAC8563_SYNC_H(); }
SPI时序符合DAC要求即可,因此可以使用其他接口模拟SPI时序。
看您的异常现象都是部分板子出现的问题,因此有可能是硬件问题也可能是软件问题。硬件方面就是板子是否存在焊接问题或虚焊导致的板子不稳定。软件方面就是SPI时序是否正确、通信波形是否有干扰,检查此问题最有效的方法就是使用示波器查看SCLK、SYNC、DIN通信波形。