AnsweredAssumed Answered

AD7322 vs. AD7324 output data range / resolution

Question asked by Vaughan on Apr 21, 2015
Latest reply on Apr 22, 2015 by KarenNE

In an older design, we used an AD7324 A to D Converter. The 13-bit output data range is 0000 (- 10V) to 1FFF (+ 10V). Two of the four channels are monitored in single-ended mode. Coding is straight binary. Range is -10V to +10V.

   

The Control register is:

 

CTL_REG_DIN <= "1000010000111000";

-- bit 15 = "WRITE"           = 1 (write to addressed reg.)

-- bit 14-13 = "REGISTER SELECT" = 00 (select control reg.)

-- bit 12 = "ZERO"             = 0 (must write "0" for this bit)

-- bit 11-10 = "ADD<1:0>" = 01 (max channel # in scan is 1)

-- bit 9-8 = "MODE<1:0>"  = 00 (4 single-ended analog inputs)

-- bit 7-6 = "PM<1:0>"       = 00 (normal power mode)

-- bit 5 = "CODING"          = 1 (straight binary, not 2's complement)

-- bit 4 = "REF"                 = 1 (use internal voltage reference)

-- bit 3-2 = "SEQ<1:2>"    = 10 (use continuous sequence from chan. 0)

-- bit 1 = "ZERO"              = 0 (must write "0" for this bit)

-- bit 0                               = 0 (must write "0" for this bit)

    

The Range Register is:

RANGE_REG_DIN <= "1010000000000000";

-- bit 15      = "WRITE"      = 1 (write to addressed reg.)

-- bit 14-13 = "REGISTER SELECT" = 01 (select range reg.)

-- bit 12-11 = "VIN0<A:B>" = 00 (Chan 0 range is -10 V to +10 V)

-- bit 10-9   = "VIN1<A:B>" = 00 (Chan 1 range is -10 V to +10 V)

-- bit 8-7     = "VIN2<A:B>" = 00 (Chan 2 range is -10 V to +10 V)

-- bit 6-5     = "VIN3<A:B>" = 00 (Chan 3 range is -10 V to +10 V)

-- bit 4-0     = 00000 (must write "0" for this bit)

 

In a new design, we used an AD7322 A to D Converter. This time, the output range is only 0000 (- 10V) to 1000 (+ 10V).  This is only half the range and resolution, not the full 0000 to 1FFF range of the AD7324 device. One of the two channels is monitored in single-ended mode. Coding is straight binary. Range is -10V to +10V.

 

The Control register is:

 

CTL_REG_DIN <= "1000000000110000";

-- bit 15    = "WRITE"           = 1  (write to addressed reg.)

-- bit 14    = "ZERO"            = 0  (must write "0" for this bit)

-- bit 13    = "REGISTER SELECT" = 0  (select control reg.)

-- bit 12-11 = "ZERO"            = 0  (must write "0" for this bit)

-- bit 10    = "ADD<0>"          = 0  (selects Vin0, not Vin1)

-- bit 9-8   = "MODE<1:0>"    = 00 (2 single-ended analog inputs)

-- bit 7-6   = "PM<1:0>"         = 00 (normal power mode)

-- bit 5     = "CODING"          = 1  (straight binary, not 2's complement)

-- bit 4     = "REF"                 = 1  (use internal voltage reference)

-- bit 3-2   = "SEQ<1:2>"      = 00 (the channel sequencer is not used)

-- bit 1     = "ZERO"              = 0  (must write "0" for this bit)

-- bit 0     = 0                         = 0  (must write "0" for this bit)

 

The Range Register is:

 

RANGE_REG_DIN <= "1010000000000000";

 

-- bit 15    = "WRITE"           = 1  (write to addressed reg.)

-- bit 14    = "ZERO"            = 0  (must write "0" for this bit)

-- bit 13    = "REGISTER SELECT" = 1  (select range reg.)

-- bit 12-11 = "VIN0<A:B>"    = 00 (Chan 0 range is -10 V to +10 V)

-- bit 10-9  = "ZERO"             = 00 (must write "0" for these bits)

-- bit 8-7   = "VIN1<A:B>"      = 00 (Chan 2 range is -10 V to +10 V)

-- bit 6-5   = "ZERO"              = 00 (must write "0" for these bits)

-- bit 4-0   =  00000                = 00000 (must write "0" for this bit)

 

Why do I lose half of my resolution in the AD7322 design? Board layouts are very similar.

Outcomes