您好!
我已经在 SPI 总线上将 PIC 控制器连接到 DAC7750、并为两个电路提供了一个公共电源(12V 直流)。 我能够写回所有寄存器、如控制、配置、DAC 数据寄存器等
我已经检查了 DVDD=4.6V、REFIN=REFOUT=5V、R3-SENSE =BOOST=AVDD=12V 时的电压、根据数据表、这些电压也很好。 我在这里分享了一个原理图、其中有什么问题?
。
//Following is the initialization code for DAC7750, //----------------------------------------------------------------------------------------------------------------------------------------------------- void Init_DAC7750(void) { uint16_t data; char lbuf[100]; //IC reset command. DAC7750_Write_Register(DAC7750_ADDR_WR_RESET,0x0001); __delay_ms(100); //External current setting resistor disable, Output enable, Slew Rate disable, Daisy-chain disable, Output range = 4-20mA. DAC7750_Write_Register(DAC7750_ADDR_WR_CTRL,0x1005); __delay_ms(10); data = DAC7750_Read_Register(DAC7750_READ_CTRL); sprintf(lbuf,"Control register value=%X\r\n",data); Tx_String(lbuf); //calibration enable, HART interface disable, frame error checking disable, Watchdog timer disable DAC7750_Write_Register(DAC7750_ADDR_WR_CFG,0x0020); __delay_ms(10); data = DAC7750_Read_Register(DAC7750_READ_CFG); sprintf(lbuf,"Configure register value=%X\r\n",data); Tx_String(lbuf); DAC7750_Write_Register(DAC7750_ADDR_WR_DAC_GAIN,0x8000); __delay_ms(10); data = DAC7750_Read_Register(DAC7750_READ_DAC_GAIN); sprintf(lbuf,"Gain register value=%X\r\n",data); Tx_String(lbuf); DAC7750_Write_Register(DAC7750_ADDR_WR_DAC,0x0000); __delay_ms(10); data = DAC7750_Read_Register(DAC7750_READ_DAC_DATA); sprintf(lbuf,"DAC register value=%X\r\n",data); Tx_String(lbuf); }
//--------------------------------------------------------------
输出端子是我所期望的、
控制寄存器值=1005
配置寄存器值=0020
增益寄存器值=8000
DAC 寄存器值= 0
//--------------------------------------------------------------
这意味着我的代码工作正常、但当我连接数字万用表以检查电流时、即使我向 DAC 数据寄存 器加载0xFFF0值、电流始终为0mA。
请在这方面帮助我。
此致、
桑托什。