您好,
目前,我们有25个带有DAC7750的PCB,这些PCB由一家专业装配公司组装。
在测试第一批时,我们注意到25个批次中有9个未能正确输出。 后来有3个印刷电路板输出
电流第一次正确,第二次无法正确输出。 并非所有的多氯联苯都经过了重新测试。
输出电流是编程电流的17到22倍。 示例:配置了DAC
要输出8 mA,它将输出0.04 mA。
我尝试将每个寄存器更改为所有可能的值和模式,寄存器似乎是正确的,并执行它们的操作
应该这样做,但输出电流仍比其应有的电流低~20倍。
配置:
使用的原理图是数据表中的参考设计。 AVDD = 24V,DVDD = 3.3V。
- 已启用Slewrate
- SRCLK 25.8065万 Hz
- SRSTEP 8.
- 范围0 - 20 mA
- 用户校准已启用
- 增益0x8000
- 零0x0000
代码:
//重置芯片 M_ClearPin.ResetBit(); WriteRegister (DAC_write_reset_REG);//执行软件重置 //发送NOP WriteRegister (DAC_NO_OP_REG); //将输出设置为0 mA WriteRegister (DAC_write_data_REG); //设置DAC (无RSET,SRCLK 25.8065万 Hz,SRSTEP 8,已启用回转控制,无daisychain, 范围0-20 mA) WriteRegister (DAC_write_control_REG | 0x00F6); //设置DAC (用户校准已启用,无HART通信,无CRC,无监视器) WriteRegister (DAC_write_configuration_REG | 0x0000); //设置DAC (增益至全范围0x000 - 0xFFF) WriteRegister (DAC_write_gain _CALIB_REG | 0x8000); //设置DAC (零到0x0000) WriteRegister (DAC_write_zero_CALIB_REG); //启用输出 WriteRegister (DAC_write_control_REG | 0x10F6); //验证DAC中的设置 M_initialized =(0x0000 == ReadRegister (DAC_READ_DATA_REG)); M_Initialized &=(0x10F6 ==(ReadRegister (DAC_READ_CONTINT_REG)& 0x3FFF)); M_Initialized &=(0x0000 ==(ReadRegister (DAC_READ_CONFIGURATION_REG)& 0x003F)); M_Initialized &=(0x8000 == ReadRegister (DAC_READ_GAING_CALIB_REG)); M_Initialized &=(0x0000 == ReadRegister (DAC_READ_ZERO_CALIB_REG));
//将输出设置为4 mA WriteRegister (DAC_write_data_REG | 0x3330);