This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LMP90100: LMP90100

Part Number: LMP90100

Dear All,

     The above ADC is interfaced with RENESAS S7G2 series of controller over SPI communication (clock freq is 2Mhz), I have configured it into Single-Channel Continuous Conversion mode. Once I read  the converted data of set channel, Then i used to configure next channel for convertion and wait for some time and after reading the converted data channel is set  total four channel are scanned continuosly in this manner.

       After random time period  start receiving same data for all channel. If same data received for more than 10 times then we reinitialized ADC, but after re-initialization also getting the same data for all channel. Please guide why this same data we receive & what shouldbe done to come out of this.

  • Sachin,



    I think I'm going to need a bit more information about this problem. In this particular case, I think I'll need more information about your command sequence and what you are trying to measure. Are you able to send me some code about how you are running the device? I think it would be helpful to debug the sequence.

    Also when you do get the same data, does the data always get set to the same output each time after the device starts to repeat the same code? Also, have you used an oscilloscope or logic analyzer to look at the output data to make sure that the device is really putting out the same output data, and that this isn't a problem in the microcontroller reporting back the the wrong data?

    Regardless, I think I'll need more information before I can help debug this problem.



    Joseph Wu
  • Joseph Wu,
    Thanks for reply
    We are using this ADC to read the PT100 RTD & 4-20mA sensor input Total six input are given (VN0 - VN5), out of this six four are periodically scanned for input.
    ################################## Following is the initialization sequence ##################################
    1) 0x69 -> 0x12 -- Set for Reset-Syscals on Reset Note: with internal clock
    2) 0xc3 -> 0x00 -- Issue master reset
    3) 0x00 -> 0x10 -- Disable Background Calibration Control
    4) 0x00 -> 0x17 -- Set System Calibration Normal Mode
    5) Set up all channels (stream registers 0x20 through 0x2d)

    0x60, ///< Write Data, Start Address 0x00 (LRB), 3+ bytes
    0x14, ///< 0x14 -> 0x20 CH0=4-20mA#1 -- Vref1
    0x30, ///< 0x30 -> 0x21 CH0cnfg=SPS13.42, Gain = 1, Buff=En
    0x1C, ///< 0x1c -> 0x22 CH1=4-20mA#2 -- Vref1 (Future)
    0x30, ///< 0x30 -> 0x23 CH1cnfg=SPS13.42, Gain=1, Buff=En
    0x41, ///< 0x41 -> 0x24 CH2=RTD -- VN0-VN1, Vref2
    0x45, ///< 0x45 -> 0x25 CH2cnfg=SPS13.42, Gain=4, Buff=Disabled
    0x37, ///< 0x37 -> 0x26 CH3="Vref2" as compared to Vref1
    0x30, ///< 0x30 -> 0x27 CH3cnfg=SPS13.42, Gain=1, Buff=En
    0x01, ///< 0x01 -> 0x28 CH4=VN0-VN1 as compared to Vref1 (absolut of RTD)
    0x30, ///< 0x30 -> 0x29 CH4cnfg=SPS13.42, Gain=1, Buff=En
    0x2C, ///< 0x2c -> 0x2a CH5=(VN5-VN4), Vref1 --- +(VBATC)
    0x30, ///< 0x30 -> 0x2b CH5cnfg=SPS13.42, Gain=1, Buff=En
    0x25, ///< 0x25 -> 0x2c CH6=(VN4-VN5), Vref1 --- -(Vbatc)
    0x30, ///< 0x30 -> 0x2d CH6cnfg=SPS13.42, Gain=1, Buff=En
    0x00, ///< 0x00 -> 0x2e Reserved
    0x00, ///< 0x00 -> 0x2f Reserved
    0x00, ///< 0x00 -> 0x30 CH0offset
    0x00, ///< 0x00 -> 0x31 CH0offset
    0x00, ///< 0x00 -> 0x32 CH0offset
    0x80, ///< 0x80 -> 0x33 CH0gain
    0x00, ///< 0x00 -> 0x34 CH0gain
    0x00, ///< 0x00 -> 0x35 CH0gain
    0x01, ///< 0x01 -> 0x36 CH0SysScaling
    0x00, ///< 0x00 -> 0x37 CH0SysBits
    0x00, ///< 0x00 -> 0x38 CH1offset
    0x00, ///< 0x00 -> 0x39 CH1offset
    0x00, ///< 0x00 -> 0x3a CH1offset
    0x80, ///< 0x80 -> 0x3b CH1gain
    0x00, ///< 0x00 -> 0x3c CH1gain
    0x00, ///< 0x00 -> 0x3d CH1gain
    0x01, ///< 0x01 -> 0x3e CH1SysScaling
    0x00, ///< 0x00 -> 0x3f CH1SysBits
    0x00, ///< 0x00 -> 0x40 CH2offset
    0x00, ///< 0x00 -> 0x41 CH2offset
    0x00, ///< 0x00 -> 0x42 CH2offset
    0x80, ///< 0x80 -> 0x43 CH2gain
    0x00, ///< 0x00 -> 0x44 CH2gain
    0x00, ///< 0x00 -> 0x45 CH2gain
    0x01, ///< 0x01 -> 0x46 CH2SysScaling
    0x00, ///< 0x00 -> 0x47 CH2SysBits
    0x00, ///< 0x00 -> 0x48 CH3offset
    0x00, ///< 0x00 -> 0x49 CH3offset
    0x00, ///< 0x00 -> 0x4a CH3offset
    0x80, ///< 0x80 -> 0x4b CH3gain
    0x00, ///< 0x00 -> 0x4c CH3gain
    0x00, ///< 0x00 -> 0x4d CH3gain
    0x01, ///< 0x01 -> 0x4e CH3SysScaling
    0x00 ///< 0x00 -> 0x4f CH3SysBits

    6) 0x29 -> 0x12 -- Force Internal clock and 900uA excitation current
    7) 0x00 -> 0x1f -- Start Channel 2 stop channel 0 (Analog Input 1), continuous scan
    8) 0x01 -> 0x0b Issue A/D restart


    ################################### Periodic Channel Scanning Sequence ######################################

    1) Read Data, Address 0x0a (LRB), 3 bytes
    2) Set up for next cycle -- Write Data, Address 0x0f (LRB), 1 byte
    3) 0x01 -> 0x0b Issue A/D Restart

    Sachin Kalaskar
  • Sachin,


    I'm not sure what is the problem at this point. Are you able to look at a logic analyzer output for the this device? What result from output data do you get stuck on? I may help to have the full output run from the device reporing back the data through to when the data output gets stuck.

    Have you looked at the DRDYB line? It might indicate that the device has stopped its conversion for whatever reason.

    If I had to guess, the device may have received some errant command and gotten kicked out of ScanMode2 (Multiple-Channels Continuous Scan). After that, it might be reading the same output data over and over again. Are you able to read back the registers (before, when the device is first setup, and after when the data repeats with the same output)? You can post the register readback here.

    If there is some sort of problem, it might help to clean up the SPI. If there is noise/glitching on the SCLK line, this might explain some of the problem. I'd consider attaching some capacitance onto SCLK to see if it helps.

    There are a few downloads that discuss communication between an MSP430 to an LMP90100. I don't know if this will help you, because it appears that you are already able to get communications from the device. Regardless, I put it here just in case you wanted to see them.

    MSP430-LMP90100 interfacing application note:
    www.ti.com/.../snaa134.pdf

    code zip download:
    www.ti.com/.../snac029


    Joseph Wu