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.

Problems of reading with LMP 90100

Other Parts Discussed in Thread: LMP90100

Hello,

I am trying to program the LMP90100 with the MSP430

There are two problems, I can't understand

1. Sending control sequences does not lead to setting the excitation current of the thermistor.(for example, the code 0x0A sends the excitation current of the 1 mA resistance to the register ADC_AUXCN; all the necessary order - the formation of the sequences INST1 and INST2 - is observed) 

2. An attempt to read data from the ADC_DOUT 0, 1, 2 ADC output registers also does not result in any pulses at the DOUT output (observe the DOUT state on the oscilloscope).

Could you help me with that?

Thanks in advance

  • Alexander,


    It looks like you're having problems with the SPI control of the LMP90100, so let's start by looking at the commands that your sending. For both the write to the auxiliary control register (ADC_AUXCN) and the read from the ADC_DOUT register, I'd like to see an oscilloscope plot of the SPI lines.

    Here's what I think the SPI transmissions should look like:

    1. For the first control sequence to set the IB1 and IB2 magnitudes, you need to set the ADC_AUXCN:RTD_CUR_SEL bits.

    Transaction 1 - URA setup for ADC_AUXCN (ADDR 0x12)
    0x10 for write address
    0x01 for URA

    Transaction 2 - write 1 byte (of 0x0A for 1000uA) to ADC_AUXCN
    0x02 for write data, 1 byte, 0x2 for LRA
    0x0A to set 1000uA

    2. To read the data back from ADC_DOUT, here's a method just using the register address read. I'll keep in Transaction 1 to be complete.

    Transaction 1 - URA setup for ADC_DOUT (ADDR 0x1A)
    0x10 for write address
    0x01 for URA

    Transaction 2 - read 3 bytes (starting at 0x1A)
    0xCA for read data, 3 bytes, 0xA for LRA
    Clock out 3 data bytes

    You may need to track DRDYB to indicate when fresh data is available. You can read through different cases of using the DRDYB for reading data. This is covered in the datasheet, starting in section 9.5.8 on page 35 going to 9.5.11.

    Additionally, there is a mode with data only read transaction, where you can get the data directly from the bus without an instruction byte. This is discussed in 9.5.12 on page 38.

    Regardless, if you continue to have problems communicating with the LMP90100, get an oscilloscope plot of the SPI communication and post the result here. We can review it and see where the problem might be.


    Joseph Wu
  • Joseph,

    Thank you for answer

    There are really was a problem in the SPI protocol, actually, there are were some mistakes in my code in Transaction 2.

    I already fix it, and now it works properly

    Thank you once more, it was useful advice