LTC2497 Conversion

Hi

I am using LTC2497. I am trying to get the ADC conversion reading, could anyone explain how does the conversion of 2's compliment to decimal works on this ADC? I tried many times and it does not seem to be working.

Thank you.

Parents
  • 0
    •  Analog Employees 
    on Jun 8, 2020 3:14 PM

    The LTC2497 is 16 Bits + Sign. B22-B6 are in two's complement format. For example Code 1010 0000 0000 0000 0000 0000 

    B23 and B22 are 10. This indicates the output code is greater than or equal to 0 and less than full scale . Bits 22-6 are 0 1000 0000 0000 0000. This is equal to decimal +32768. 

    A negative code example would be 0111 1111 1111 1111 1111 1111. B23 and B22 are 01. This indicates the output code is less than 0 and reater than or equal to -FS. Bits 22-6 are 1 1111 1111 1111 1111. this is equal to decimal -1.

  • I did quite a few data sets and all point to having a amplified digital value of 2.78-2.80.

    Any possible error which might have caused this readings?

  • The ADC is driven by a variable resistor now for testing.

    No, the trace is short, about 7-8cm.

    VSS is driven by Isolated DCDC converter, powered by USB.

    Thanks for your help and suggestion, maybe i will test with another supply.

    I do have another question, I am trying to read the ADC internal registers in sequence but it is returning 24bits of '1' when the ADC is grounded. As per our convo earlier, GND => '00'. I wanted to check if there is any setting bits i missed?

    Upon completing the conversion, I wrote a '1' to the ADC but it still returns 24 bits of '1'. Am i doing this right?

  • +1
    •  Analog Employees 
    on Jun 12, 2020 1:48 PM in reply to SLee144

    After the conversion, it is necessary to send the read address which the LTC2497 should ACK and then read out the data. It sounds like the ADC is not acknowledging the read address you are providing. Can you send an oscilloscope photo of the data transfer?

  • Hi ghoover

    You are right, it seems the ADC is NACK my change of channel register. I attached the photo of the osocilloscope I2C comms and serial output.

  • 0
    •  Analog Employees 
    on Jun 15, 2020 1:52 PM in reply to SLee144

    Decoding your oscilloscope photo, this appears to be a read not a write (A 1 is sent after the 7-bit address). The ADC ACKs the read address and sends 5C0D40 as a result. The controller NACKs after the data is read ending the read.

  • Hi ghoover

    With some help, I got to the following step,

    I decoded the waveform to derive at "0x14 and 0xB0" which is my ADC address and channel 0. On both waveform, the MCU ACK the values.

    I applied 5v to the ADC Channel 0 and it returns "0xC000" which translates to "11".

    I am still having issues updating the channel to the ADC. On my serial monitor, it does shows that my channel is updated but it is not the case on the ADC. Any idea what might be the issue?

Reply
  • Hi ghoover

    With some help, I got to the following step,

    I decoded the waveform to derive at "0x14 and 0xB0" which is my ADC address and channel 0. On both waveform, the MCU ACK the values.

    I applied 5v to the ADC Channel 0 and it returns "0xC000" which translates to "11".

    I am still having issues updating the channel to the ADC. On my serial monitor, it does shows that my channel is updated but it is not the case on the ADC. Any idea what might be the issue?

Children