Dear Sirs,
On the 3-terminal RTD connection example shown in figure 38 at page 46 of the LMP90080 datasheet, if I understand right, CH1 (configured as VIN1 - VIN6) uses VREF2 (VIN6 - VIN7) as reference. So, generally speaking, is it possible to use one of the REF2 pins as reference and as part of an input channel in the same time?
E.G, is it also OK to configure a (single-ended) channel with positive input = VIN0, negative input = VIN7 and reference = REF2?
Thanks
Hi again Nicola,
We've got some folks looking into this LMP90080 query for you - since your two questions are both about the LMP90080, they may both be answered simultaneously, so we'll link the two posts together for you.
Regards,
Tom
Hi Nicola,
Yes, you can have the channels formed the way you have described.
Regards,Murali
I have another question regarding channel configuration on LMP90xxx...
Do sensor diagnostic flags (register SENDIAG_FLAGS, 0x19) remain functional for a channel if burnout currents are disabled for that channel (BURNOUT_EN = 0), and/or "globally disabled" (e.g. in scan mode 2)?
Thank you
Yes, the Flags will be active. But wont reflect correct values unless you turn on the burn-out currents.
In case modulator Overflows, it can be detected even without burnout currents.
Dear Murali,
I have done some tests with LMP90079. I have configured all 6 available channels with burnout current enabled (BURNOUT_EN = 1); I have set CH_SCAN_SEL in scan mode 3 and enabled CRC.
In my code, first I check data availability by reading register ADC_DONE (0x18), then I read 5 registers, from SENDIAG_FLAGS to SPI_CRC_DAT, and all seems to work correctly.
1) I assume that, reading data in this way, diagnostic flags and ADC channel reading are both relative to the channel indicated by SAMPLED_CH field. Is this correct?
2) On channels with inputs disconnected ("floating") and relative VREF correctly set, I get ADC reading of 32767 and OFLO_FLAGS = 0x02; on channels with relative VREF inputs disconnected (only for test, not a real case), I get "random" ADC values (seems correct). In both cases RAILS_FLAG remains 0 (I have tried to tie inputs to rails and I've seen RAILS_FLAG going to 1, so it seems there's no error in my code). Is RAILS_FLAG behavior correct?
3) Now, I need a way to detect "floating" inputs, e.g. a disconnected RTD probe terminal (obviously in the final circuit there will be no "floating" VREF inputs...). Can I assume that ADC readings of 32767 (positive full scale) are due to burnout currents on "floating" inputs?
1. Yes, you are right.
2. Yes, Your observations are correct. RAILS flags will trigger only when you take the inputs to rails.
3. For floating Input detection, you can use the rails flag. when the Input is floating, burnout currents will charge the capacitance on the line (between the connector and the input pin) and intern take the input to rails thus triggering the rail flags.
In my tests, as I wrote, on channels with inputs disconnected RAILS_FLAG always remains 0. So reply 3 seems in contrast with reply 2, unless you mean that I have to increase external line capacitance on floating inputs, right? In fact, now I have floating inputs with line capacitance very low (input pins of the ADC are left unconnected).
To size external input capacitance, can I consider that, with input buffer ON, I should see only IIN (input leakage current, 500pA with gains 1 to 8) current on input pins?
Yes, 10nF / 0.1uF on both the differential line should be fine and yes you can consider it with the input buffer ON.
Are burnout currents injected also on reference inputs? I have two consecutive channels that use the same reference input, and I want to make sure that burnout currents does not interfere with the measures...
I am using Scan Mode 3 with burnout currents enabled on all channels.
I guess you are using VREF 1 as reference.
Burnout Currents are not injected on the VREF 1 pins. However on the VREF 2 which is muxed with Vin6 and Vin7, care has to be taken by not forming a channel between vin6 and vin7. Use the BURNOUT_EN bit.
Thank you for your reply.
So, for example, if I configure one channel as VIN0 - VIN1 with VREF2 as reference, and no other channels are configured and/or using VIN6/VIN7 pins, burnout currents are not injected on VIN6 and VIN7 pins. But if I configure one channel as VIN0 - VIN6 and still use VREF2, I will see that burnout currents are applied at VIN6 pin. Am I correct?
If a channel is formed with VINP as Vin0 and VINN as Vin6, burnout current will be injected on Vin0 and the return path would be on Vin6 if it is not externally grounded. But, as you are in scan mode-3 with Two channels being scanned, when the conversion on Channels Vin0-Vin6 is happening, burnout current will be injected on the second channel. Hence doesn't effect the current channel being converted (Non-Invasive Sensor Diagnostics).
Thanks for the clarification. I forgot to mention that in my example I was not considering scan mode 3 active, I was only trying to understand the burnout current path.
Of course, with scan mode 3 enabled, I have to consider things differently.
Now I'm facing a curious problem. I have configured my LMP90079 using all 7 channels, in the following configuration:
CH0 = VIN2 - VIN3 using VREF2, gain = 4;CH1 = VIN4 - VIN5 using VREF1, gain = 1;CH2 = VIN3 - VIN6 using VREF2, gain = 4;CH3 = VIN4 - VIN5 using VREF1, gain = 1;CH4 = VIN0 - VIN1 using VREF2, gain = 4;CH5 = VIN1 - VIN6 using VREF2, gain = 4;CH6 = VIN4 - VIN5 using VREF1. gain = 1;
I have configured scan mode 3, background cal mode 2 and burnout currents disabled for all channels.
VIN5 input is tied to ground, and VIN4 is connected to a multiplexer. In this way, I'm trying to manage to read multiple inputs; this is why I have 3 "same" channels (CH1, CH3 and CH5). To switch the multiplexer input, I wait until ADC tells me that a measure on channels CH1/CH3/CH5 is available; then I do the input change.I'm assuming that, when the ADC signals that a measure is completed, the next channel is under conversion (e.g. when I read CH1 result, ADC is doing a conversion on CH2); so by interleaving "multiplexed" channels with "static" channels (CH2, CH4, CH6), I suppose that I can switch the multiplexer without interfering with measures.
I have 5 inputs to the multiplexer, so to complete all the "multiplexed" measures, I have to wait two ADC "measure loops".
The problem is that when reading from channel 3 of the first ADC "measure loop" of the two, I get a "wobbling measure". E.g., (on the first loop) I read 1.605V, then (at the third loop) I read 1.595V, then (fifth loop) again 1.605V, then 1.595V, and so on. Oddly, on the second ADC loop, channel 3 readings gives correct results!
I've made many tries with different settings, but the only thing that resolves the issue is to disabling background calibration mode. Set it to zero, no more wobbling!The issue seems also related in some way to what voltage levels are presented on the VIN4 pin from the multiplexer inputs on the other measure steps.
Can you help me to catch what I'm doing wrong? Am I allowed to multiplex the ADC input in that way?It seems that multiplexing the ADC input "fools" the background calibration system in some way, but I didn't find any information about background calibration internals (timings and methods) on the datasheet...
I would like to appreciate your understanding of the sampling sequence. It is perfectly right.
When you say channel 3 in " The problem is that when reading from channel 3 of the first ADC "measure loop" of the two, I get a "wobbling measure". E.g., (on the first loop) I read 1.605V, then (at the third loop) I read 1.595V, then (fifth loop) again 1.605V, then 1.595V, and so on. Oddly, on the second ADC loop, channel 3 readings gives correct results!" do you mean CH3 or channel 3 connected to external multiplexer ?
Also, how are you controlling the MUX during the second ADC "measure loop" ? is it connected to 5th line on the external mux or some other condition ?
Also, please note that Background calibration is available only on four channels from CH0-CH3. Ref: Sec 16.2.1 on Pg 27 of the datasheet.