您好!
我正在我的模块中将 DAC7750用于4 -20 mA 输出。 根据数据表、我将 DAC 值(代码值)写入 DAC7750_WRITE_DAC_register (0x01)。 然而、对于代码值15-32 、我们将获得随机 mA 输出(8个-19 mA 之间)。 另外、对于输出的值1376 - 1392 4mA、DAC 输出的 mA 对应于所有其他值。
空 Init_DAC7750 ()
{
DAC7750_LATCH_Pulse ();
SPI_CLR_PIN_HIGH;
__delay_cycles (10);//最小延迟40ns
SPI_CLR_PIN_LOW;
DAC7750_Reset ();
DAC7750_Nop ();
DAC7750_WriteReg ((DAC7750_RANGE_4mA_20mA + DAC7750_OUTEN)、DAC7750_WRITE_CONTROL_REGISTER);
DAC7750_WriteReg (0、DAC7750_WRITE_CONFIGURATION_寄存 器);
DAC7750_WriteReg (0、DAC7750_WRITE_GAIN_CALIBRATION_寄存 器);
DAC7750_WriteReg (0、DAC7750_WRITE_ZERO _CALIBRATION_寄存 器);
}
void SetmAOutput (unsigned int guimAOutput) // 发送到该函数的值15-32和1376-1392。
{
无符号 int Write2DACReg;
nop();
Write2DACReg = guimAOutput;
Write2DACReg = Write2DACReg <<4;
nop();
DAC7750_WriteReg (Write2DACReg、DAC7750_WRITE_DAC_register);//ms_delay (1000);
}
空 DAC7750_WriteReg (unsigned int writeValues、无符号字符地址)
{
uint8_t wRtospi[3];
wRtospi[0]=地址;//addreess
wRtospi[1]=(writeValues 和0xFF00)>> 8;//更高字节
wRtospi[2]=(writeValues 和0x00ff);//低位字节
Write_SPI (wRtospi[0]);//将地址写入 SPI
Write_SPI (wRtospi[1]);//将较高字节写入 SPI
write_spi (wRtospi[2]);//将较低字节写入 SPI
DAC7750_LATCH_Pulse ();
}
如果我缺少任何内容,请检查并恢复。
谢谢你。