We are reading a 4-20mA input signal on the Monitor One using a custom application (no monitor edge services in the background). Curious which take is correct here:
monitor-edge suggests that the current loop input on M1 actually maxes out at 33mA (0.033A), which would correspond to ADC output of 4095. That makes sense and seems correct (assuming 3.3V is the correct reference voltage). If I'm do my math correctly, that means a 20mA input should read about 2480 on the ADC.
The Monitor One datasheet says 20mA should be 4095, but that might apply only to user applications built on top of monitor-edge?
Are there any other pin configurations or power settings that impact how the current loop input is read by the ADC? Thanks!
I believe the datasheet is incorrect. The 4 mA is the lower ADC value, closer to 0. 20 mA is the larger value, closer to 4095, but it's not actually pinned to the full range of the 12-bit ADC.
The formula in the Monitor Edge code is what you should use.
Just want to make sure I understand correctly: when the ADC reads 0 (via analogRead()
), the input value is close to 4mA, and when the ADC reads 4095 it's...somewhere above 20mA? Any advice on how I should verify that the input value is "large enough" to clamp it to 20mA before passing along to the rest of my application? More simply, is an ADC output of 2480 reliably "close to" 20mA on the nRF52?
Updated the Monitor One datasheet to correct the ADC values for reading the 4-20mA current loop input on the I/O card.
1 Like