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.
Tool/software:
Hi AMC131-Team,
we are developing a system, which measures current and voltage on several channels using AMC131M02 ADCs.
Is it possible, that a reading in the response of the ADC is corrupted,
but an error (in the value of the STATUS-register) is reported only in the response (to the NULL-command)
following the corrupted reading?
With corrupted I think of events other than an RX-CRC-error, for example a SEC_FAIL.
And would a corrupted reading be zero, at least with a some or a higher probability?
Thank you in advance,
Niko
Hi Niko,
Can you provide some more information on your application?
What kind of error/corruption are you expecting?
You would typically read the ADC values by sending the NULL command, in which case the response has the status register, then the adc readings, and then the CRC. The data read would only be considered valid if the SEC_FAIL bit is 0b. Invalid data wouldn't necessarily be 0.
Thanks.
Hi Saleh,
thank you for the quick response!
I do not really know, what kinds of errors or corruption could be expected, besides the errors signaled by the STATUS. We noticed, the AMC131M02/M03 is quite complex, and got several types of errors during the tests (indeed all of them were signaled), but i.e. for the SEC_FAIL, we discovered, two different manifestations, which required different handling.
We can handle all of the identified error-cases, but I want to be sure, that there are no other known cases, such as the value being wrong, before a SEC_FAIL is detected.
I could imagine a response to a NULL command which has no CRC error, no SEC_FAIL in the STATUS, but the value is wrong (i.e. zero) and the next response (again to a NULL command) has the SEC_FAIL set.
If you tell me, this cannot happen, all is perfectly fine (-;
More info to our application:
We use several of the AMC131M02 (4 on 1 SPI-bus). Multiple samples are taken at OSR 16k with only one of the channels activated in the CLOCK-register.
Since the ADCs were not calibrated and the inputs externally shorted, the ADCs gave readings with an average near 0 milliamperes.
The minimum-, maximum- and average-value of each row of samples were output.
The appropriate conversion-factor for our shunt is 0,0007152 mA per ADC-count.
The output of the results of the measurements is precise enough to distinguish, if the count is exactly 1 (0.000715 mA) or -1 (-0.000715 mA) or 0 (0 mA).
Readings in ADC-replies to the NULL-command, which have any of the bits for REG_MAP, CRC_ERR, FUSE_FAIL or SEC_FAIL set, are not added to the row of measurements.
Although at least short-time statistics showed NO significance for the zero-values being the minimum too often, readings like the following collection made me think about a possibility of something like the aforementioned...
min: 0 mA max: 0.082966 mA avg: 0.041408 mA
[..]
min: 0 mA max: 0.087258 mA avg: 0.040449 mA
[..]
min: 0 mA max: 0.080105 mA avg: 0.043078 mA
[..]
min: 0 mA max: 0.078675 mA avg: 0.041593 mA
[..]
min: 0 mA max: 0.072953 mA avg: 0.039990 mA
[..]
Hi Nikolaus,
Not sure if you've discovered any new info on this, but I'm not sure why you'd get 0mA readings as min either. If it is from valid data I would've expected some small negative values as the min. Do you have a spi frame collected with the zero data?
Thanks.
Hi Saleh,
I have not found new info on the phenomenon, but I found an SPI-frame with a zero-measurement in a logfile. For me it looks ok. It is from the tests with the AMC131M03, so there are 5 42-bit words...
Only Channel0 is activated for the ADC:
[RX]: 01 01 00 | 00 00 00 | 00 00 00 | 00 00 00 | 5f c5 00 |
[TX]: 00 00 00 | cc 9c 00 | 00 00 00 | 00 00 00 | 00 00 00 |
We still have no significance for too many zero-readings in the statistics, so I do not expect it to be a problem, especially as we now only consider samples as valid, if the next transfer is also error-free.