10% less than the programmed value AD5757 output current

Use the AD5757 sample two.Circuit in accordance with the "UG-244.pdf" in the manufacture of circuit PCB. All register reads and writes are correct. Select the OUTEN bit to enabled,Output current measurement results only programmed current value of the 10%, that is, if the programming current 20mA, actual measurements only 2mA.Error in the? register are set as follows:

public class Program
    {
        //Program entry
        public static void Main()
        {
            AD5757 adc = new AD5757();

            // Write first AD5757 DCDC register (only one DCDC per AD5757 register), the value is 0x1C6044,(00011100,01100000,01000100)
            // DC-DC MaxV=23V,DC-DC Freq=410KHZ,DC-DC Phase=all dc-to-dc converters clock on the same edge (default),
            // DC-DC Comp=bypasses the internal compensation resistor for the dc-to-dc converter.
            adc.Cmd_Write(AD5757.ControlREGAddress.Writir_DA0_Control, AD5757.ControlREG.DCtodc_control, AD5757.DCDC_DEFAULT);

            // Read the first AD5757 DCDC register, the value is 0x0044
            adc.Readback(AD5757.ReadAddressDecode.Read_Dev0_dctodc_control_reg);

            // Write DAC control registers for the first AD5757 channel A register, the value is 0x1C4115,(00011100,01000001,00010101)
            // R2, R1, R0=0 mA to 20 mA current range
            // DC_DC = 1, power up the dc-to-dc converter
            // RSET = 0, selects the external resistor (default)
            // OUTEN = 0, disables the channel (default)
            // CLR_EN = 0, channel does not clear when the part is cleared (default)
            // INT_ENABLE=1,Powers up the dc-to-dc converter, DAC, and internal amplifiers for the selected channel.
            // After the line of code is executed, DCDC output from 4.95V up to 7.4V
            adc.Cmd_Write(AD5757.ControlREGAddress.Writir_DA0_Control, AD5757.ControlREG.DAC_control, AD5757.DAC_OUTDISEN);

            // Read the first AD5757 channel A DAC control register, the value is 0x0115
            adc.Readback(AD5757.ReadAddressDecode.Read_DA0_control_reg);

            // Read the first AD5757 channel A gain and offset registers, respectively, the default value 0xFFFF and 0x8000
            adc.Readback(AD5757.ReadAddressDecode.Read_DA0_gain_reg);
            adc.Readback(AD5757.ReadAddressDecode.Read_DA0_offset_reg);

            // Problem: write the first AD5757 channel A data register to 20mA, when the current output at both ends of ammeter,
            // the measured only 2mA
            adc.Data_Write(AD5757.WritirDataReg.Writir_DA0_Data, 0xffff);

            // Read the first AD5757 channel A data register, a value of 0xFFFF,Correct!
            adc.Readback(AD5757.ReadAddressDecode.Read_DA0_data_reg);

            // Again Write DAC control registers for the first AD5757 channel a register, the value is 0x1C4155, select DAC_OUTEN to Enable
            // After you execute the following line of code, current output if no load, DCDC output 22.78V,FAULT LED light;
            // when the current output at both ends of ammeter, FAULT light out, DCDC is a 7.4V
            adc.Cmd_Write(AD5757.ControlREGAddress.Writir_DA0_Control, AD5757.ControlREG.DAC_control, AD5757.DAC_OUTEN);

            // Problem: write read the first AD5757 channel A data register to 10mA, when the current output at both ends of ammeter,
            // the measured only 1mA
            adc.Data_Write(AD5757.WritirDataReg.Writir_DA0_Data, 0x7fff);
        }
    }

Parents
  • 0
    •  Analog Employees 
    on Sep 12, 2011 3:33 PM

    Hi,

    A0 and A1 are digital inputs and can be connected directly to DVcc or GND.

    Just to be clear, when you programme 20mA, you are measuring 2mA, and likewise when you program 10mA you

    measure 1mA?  Can you check the exact value of the external Rset that you are using.  Also can you repeat the

    issue using the internal Rset instead via the DAC Control Register.

    It certainly appears to be a scaling issue of the current output.

    Your sequence of commands appears correct.

    Can you check the above first and let me know the outcome.

    Regards,

    Michael Collins

    PDA Applications Engineer.

Reply
  • 0
    •  Analog Employees 
    on Sep 12, 2011 3:33 PM

    Hi,

    A0 and A1 are digital inputs and can be connected directly to DVcc or GND.

    Just to be clear, when you programme 20mA, you are measuring 2mA, and likewise when you program 10mA you

    measure 1mA?  Can you check the exact value of the external Rset that you are using.  Also can you repeat the

    issue using the internal Rset instead via the DAC Control Register.

    It certainly appears to be a scaling issue of the current output.

    Your sequence of commands appears correct.

    Can you check the above first and let me know the outcome.

    Regards,

    Michael Collins

    PDA Applications Engineer.

Children
No Data