I'm testing the ADC overflow conditions in the si1133 and I'm getting a weird behavior when changing the Channel setup right after an overflow condition. Here's the setup:
Here's what happens:
My suspicion without knowing how is the controller of this chip implemented, is that this is a bug in the chip in the error handling case: when there's an ADC overflow or SW_GAIN accumulation overflow the internal pointer to the output buffer (HOSTOUTx) is not reset when a PARAM_SET (0x82, 0x83 ....) command is send before the next FORCE; but it is reset when the next command is directly FORCE. To be clear:
HW_ID is 0x03
REV_ID is 0x10
Are you aware of this issue? Is there a workaround? I didn't find any errata on the topic. The only way I have found to work is to issue a RESET_SW but that requires to wait additional 25ms for the device to exit the "Initialization Mode" again and reconfigure everything. Arguably one should be able to change the sw_gain to a lower value when an accumulation error is detected.
It's unlikely that you're getting an accumulation overflow with SW_GAIN set to 1. So basically, one channel's measurement has saturated in your test. You shouldn't change the SW_GAIN setting, but instead, you should reduce the sensitivity of the sensor to avoid saturation. For example, setting HSIG to 1 in outdoor applications to avoid saturation.
I'm not sure why you're getting this weird behaviour. Did you accidentally set COUNTER_INDEX in MEASCONFIG register? Can you post your configuration code?
Impressive! The command is working, your the best!
Sam | hvacpros.nyc