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 getting hang

Other Parts Discussed in Thread: LMP90100

Dear sir!


We use lmp90100 in the manufacture of linux-based industrial controllers.
Several hundred devices is mounted yet.
Measurement quality (RTD sensors) is very good, but sometimes (found about ten cases)
occur stop of the measurements.Data exchange with lmp90100 continues, measuring channels are switched,
the excitation current is regulated, but the data on the connected channels are clamped to fullscale.
Only power recycling can help to quit this failure state.
The command sequence is as follows:
Reset registers
Setting (spi, GPIO, channels, ..)
power sleep mode
power active mode
pause
reading dummy measurement
pause
reading result

Log of command sequence is here.
Was there any one else this situation and how to get out of this state?

tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 1b 80 00 00 92
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 1b 80 00 00 92
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 00
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 60 01 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 80
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -236.-01 ->  value[3]=-8388608 (ff800000)
krotv1_ailmp_dp_do_job: value Diags VIN <  -1.3VREF/GAIN   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 10 7f ff ff 74
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 10 7f ff ff 74
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 01
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 62 13 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 89
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -235.-20 ->  value[0]=8388607 (7fffff)
krotv1_ailmp_dp_do_job: value Diags VIN > 1.3VREF/GAIN   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 11 80 00 00 89
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 11 80 00 00 89
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 02
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 64 25 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 92
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -234.-39 ->  value[1]=-8388608 (ff800000)
krotv1_ailmp_dp_do_job: value Diags VIN > 1.3VREF/GAIN   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 0a 7f ff ff 57
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 0a 7f ff ff 57
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 03
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 66 37 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 9b
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -233.-58 ->  value[2]=8388607 (7fffff)
krotv1_ailmp_dp_do_job: value Diags ADC clamped to fullscale   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 1b 80 00 00 92
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 1b 80 00 00 92
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 00
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 60 01 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 80
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -232.-77 ->  value[3]=-8388608 (ff800000)
krotv1_ailmp_dp_do_job: value Diags VIN <  -1.3VREF/GAIN   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 10 7f ff ff 74
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 10 7f ff ff 74
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 01
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 62 13 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 89
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -231.-96 ->  value[0]=8388607 (7fffff)
krotv1_ailmp_dp_do_job: value Diags VIN > 1.3VREF/GAIN   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 11 80 00 00 89
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 11 80 00 00 89
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 02
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 64 25 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 92
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -231.-08 ->  value[1]=-8388608 (ff800000)
krotv1_ailmp_dp_do_job: value Diags VIN > 1.3VREF/GAIN   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 0a 7f ff ff 57
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 0a 7f ff ff 57
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 03
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 66 37 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 9b
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -230.-27 ->  value[2]=8388607 (7fffff)
krotv1_ailmp_dp_do_job: value Diags ADC clamped to fullscale   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 1b 80 00 00 92
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 1b 80 00 00 92
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 00
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 60 01 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 80
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -229.-46 ->  value[3]=-8388608 (ff800000)
krotv1_ailmp_dp_do_job: value Diags VIN <  -1.3VREF/GAIN   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 10 7f ff ff 74
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 10 7f ff ff 74
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 01
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 62 13 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 89
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -228.-65 ->  value[0]=8388607 (7fffff)
krotv1_ailmp_dp_do_job: value Diags VIN > 1.3VREF/GAIN   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 11 80 00 00 89
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 11 80 00 00 89
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 02
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 64 25 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 92
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -227.-84 ->  value[1]=-8388608 (ff800000)
krotv1_ailmp_dp_do_job: value Diags VIN > 1.3VREF/GAIN   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 0a 7f ff ff 57
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 0a 7f ff ff 57
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 03
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 66 37 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 9b
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -227.-03 ->  value[2]=8388607 (7fffff)
krotv1_ailmp_dp_do_job: value Diags ADC clamped to fullscale   
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 1b 80 00 00 92
tilmp90100spi_do_request: Sending (9 bytes):
 10 01 e8 00 00 00 00 00 00
tilmp90100spi_rcv: receive (6 bytes):
 00 1b 80 00 00 92
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 00 c3
tilmp90100spi_do_request: Sending (2 bytes):
 01 08
tilmp90100spi_do_request: Sending (2 bytes):
 0e 07
tilmp90100spi_do_request: Sending (2 bytes):
 0f 00
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 02 0a
tilmp90100spi_do_request: Sending (2 bytes):
 8e 00
tilmp90100spi_rcv: receive (1 bytes):
 00
tilmp90100spi_do_request: Sending (5 bytes):
 10 02 60 01 18
tilmp90100spi_do_request: Sending (4 bytes):
 10 01 0f 80
tilmp90100spi_do_request: Sending (2 bytes):
 03 10
tilmp90100spi_do_request: Sending (2 bytes):
 00 00
tilmp90100spi_do_request: Sending (2 bytes):
 01 a3
tilmp90100spi_do_request: Sending (4 bytes):
 10 00 08 03
tilmp90100spi_do_request: Sending (2 bytes):
 08 00
krotv1_ailmp_dp_do_job:  -226.-22 ->  value[3]=-8388608 (ff800000)
krotv1_ailmp_dp_do_job: value Diags VIN <  -1.3VREF/GAIN   

  • Hello,

    You can try sending 0xC3 to register 0x00. This is supposed to reset the registers and converter. You will need to set up the registers in the part after doing this.

    Something you can check is the voltage at the inputs of the LMP90100. Is this voltage within the input voltage range or has something happened to move it out of range?

    I am not understanding what you are doing in the code:

    tilmp90100spi_do_request: Sending (9 bytes):
    10 Write Address
    01 Set upper address to 1
    e8 Read data, Streaming until CSB deasserted, lower address 8
    00 Read address 0x18
    00 Read address 0x19
    00 Read address 0x1A
    00 Read address 0x1B
    00 Read address 0x1C
    00 Read address 0x1D
    At this point is CSB being deasserted?

    tilmp90100spi_rcv: receive (6 bytes):
    CSB asserted?
    00 Write data, 1 byte, lower address 0
    1b Write address 0x10, BgcalMode3
    80 Read data, 1 byte, lower address 0
    00 Read address 0x10
    00 Write data, 1 byte, lower address 0
    92 Write address 0x10, BgcalMode2
    At this point is CSB being deasserted?
    What is this set of instructions supposed to do?

    Mike
  • Hello, Mike!

    I'll try to explain more detailed.

    We use hardware dma-based SPI controller.
    CS is desasserted at the end of each transaction.
    Reset conversion and registers - in each cycle.
    ADC reference is in normal range (2.74 kOhm * 1000 uA = 2.74 V).

    110 Ohm RTD connected, 110 mV  on resistor  when channel sampled. 

    Later, part of the exchange protocol (If it is interesting for you, I can send sources of  the my linux driver)

    It is "the tail" of previous request (channel 3).
    Yes, here is "Streaming until CSB deasserted",
    3 bytes command + 6 dummy zero to read from 18 to 1D - ADC_DONE,SENDIAG_FLAGS,ADC_DOUT(3),SPI_CRC_DAT

    tilmp90100spi_do_request: Sending (9 bytes):
    10 01 e8 00 00 00 00 00 00
    tilmp90100spi_rcv: receive (6 bytes):
    00 1b 80 00 00 92

    It was the dummy reading, early we'd use ADC_RESTART command, first measurement was invalid
    (according rev.R document).
    Awaiting 400 ms, then retry reading (this is the normal result of measure)


    tilmp90100spi_do_request: Sending (9 bytes):
    10 01 e8 00 00 00 00 00 00
    tilmp90100spi_rcv: receive (6 bytes):
    00 1b 80 00 00 92

    And after,
    reset all registers, 0xC3 to RESETCN
    tilmp90100spi_do_request: Sending (4 bytes):
    10 00 00 c3

    SPI_HANDSHAKECN SDO is Hi-Z always
    tilmp90100spi_do_request: Sending (2 bytes):
    01 08

    GPIO_DIRCN - outputs
    tilmp90100spi_do_request: Sending (2 bytes):
    0e 07

    GPIO_DAT - now is channel 0 on mux is selected
    tilmp90100spi_do_request: Sending (2 bytes):
    0f 00

    ADC_AUXCN - RtdCurrent is 1000 uA, clock autodetect
    tilmp90100spi_do_request: Sending (4 bytes):
    10 01 02 0a

    Can I programm channels? Read CH_STS
    tilmp90100spi_do_request: Sending (2 bytes):
    8e 00
    Yes, all right!
    tilmp90100spi_rcv: receive (1 bytes):
    00
    Set up channel VinP, VinN, Vref, ODR, Gain=16 (CH0_INPUTCN + CH0_CONFIG)
    tilmp90100spi_do_request: Sending (5 bytes):
    10 02 60 01 18

    CH_SCAN: "from 0 to 0, ScanMode2"
    tilmp90100spi_do_request: Sending (4 bytes):
    10 01 0f 80

    SPI_CRC_CN - Enable CRC
    tilmp90100spi_do_request: Sending (2 bytes):
    03 10

    BGCALCN - Off
    tilmp90100spi_do_request: Sending (2 bytes):
    00 00

    SPI_DRDYBCN: Do not reset CRC! FGA_BGCAL not used.
    tilmp90100spi_do_request: Sending (2 bytes):
    01 a3

    PWRCN - Standby
    tilmp90100spi_do_request: Sending (4 bytes):
    10 00 08 03

    PWRCN - Active
    tilmp90100spi_do_request: Sending (2 bytes):
    08 00

    New Cycle is started now, and we translate previously acquired data from channel 3
    (00 1b 80 00 00 92)
    (00) Data was ready
    (1b) 3rd channel, value Diags VIN < -1.3VREF/GAIN
    (80 00 00) data, extend sign to int_32t (ff800000)
    (92) - CRC is OK, wery well!!!
    krotv1_ailmp_dp_do_job: -236.-01 -> value[3]=-8388608 (ff800000)
    krotv1_ailmp_dp_do_job: value Diags VIN < -1.3VREF/GAIN


    Now we waiting 400 ms to complete measurements from channel 0...

    Read dummy...
    tilmp90100spi_do_request: Sending (9 bytes):
    10 01 e8 00 00 00 00 00 00
    tilmp90100spi_rcv: receive (6 bytes):
    00 10 7f ff ff 74

    Now we waiting 400 ms for the second measurement...


    tilmp90100spi_do_request: Sending (9 bytes):
    10 01 e8 00 00 00 00 00 00
    tilmp90100spi_rcv: receive (6 bytes):
    00 10 7f ff ff 74

    Done. Reset and restart for channel 1

    tilmp90100spi_do_request: Sending (4 bytes):
    10 00 00 c3
    tilmp90100spi_do_request: Sending (2 bytes):
    01 08
    tilmp90100spi_do_request: Sending (2 bytes):
    0e 07
    tilmp90100spi_do_request: Sending (2 bytes):
    0f 01
    tilmp90100spi_do_request: Sending (4 bytes):
    10 01 02 0a
    tilmp90100spi_do_request: Sending (2 bytes):
    8e 00
    tilmp90100spi_rcv: receive (1 bytes):
    00
    tilmp90100spi_do_request: Sending (5 bytes):
    10 02 62 13 18
    tilmp90100spi_do_request: Sending (4 bytes):
    10 01 0f 89
    tilmp90100spi_do_request: Sending (2 bytes):
    03 10
    tilmp90100spi_do_request: Sending (2 bytes):
    00 00
    tilmp90100spi_do_request: Sending (2 bytes):
    01 a3
    tilmp90100spi_do_request: Sending (4 bytes):
    10 00 08 03
    tilmp90100spi_do_request: Sending (2 bytes):
    08 00

    Use data from channel 0

    krotv1_ailmp_dp_do_job: -235.-20 -> value[0]=8388607 (7fffff)
    krotv1_ailmp_dp_do_job: value Diags VIN > 1.3VREF/GAIN
    tilmp90100spi_do_request: Sending (9 bytes):


    Waiting 400 ms .. Etc.

    Now RTD is connected only on channel 2, other channels is opened
    Result for channel 2:
    00 0a 7f ff ff 57
    value[2]=8388607 (7fffff)
    value Diags: ADC clamped to fullscale

    If we disconnect RTD, We'll see VIN > or < +/-1.3VREF/GAIN
    If we connect RTD to another channel, I'll see "ADC clamped to fullscale" on that chan.

    If I'll change sequence to PWRCN -"ADC off", I'll see ADC_DONE - 0xFF - NOT Available.
    If I'll start system calibration mode ( exited With 2 reset ) ADC_DONE - 0xFF - NOT Available.

    But after return to worked code - "ADC clamped to fullscale" on all connected channels.
    If I'll short spi lines, I'll get CRC errors, but after opening - all resume work as was.

    Just I'll power off/on adc (or short ADC power to gnd), ADC starts acquire normal data.

    This is a very rare cases, about 10 faults to 500 devices/per year.
    May be a interrupted command touch any reserved bits?

    PS. We'll rebuild PCB design to switch off ADC's power supply.

    Best wishes.