I’m trying to figure out how to use the Colibri iMX7’s analogue inputs to read some pots, battery voltage, etc, and have run into a few issues.
The Colibri ARM SOM iMX7 data sheet says (5.20) that “the input voltage range is only 1.8V and not 3.3V as on other Colibri modules. On the module, there are 10k series resistors placed in the ADC lines in order to protect the SoC input.”
Firstly, is the 1.8 V ADC reference available anywhere on the SODIMM connector? It doesn’t appear to be.
Secondly, NXP recommends a 250 ohm max source impedance for the analogue inputs (iMX7SCEC, 4.12, table 82, Riext). I can’t find a spec for the ADC input current. The GPIO pins are spec’d at ±5 uA (iMX7SCEC, 4.6.1, table 22, Ioz). If this does apply to the ADC then those 10k resistors introduce a ±50 mV error, or ±2.8% of Vref, reducing the 12-bit converter to about a 5-bit accuracy.
Also, the Colibri carrier board design guide seems to have some mistakes. In section 2.15, table 21 shows the touch panel interface but the table is called “Digital audio signals.” In the next section, table 22 is supposed to show the analogue inputs but it has the same pins as table 21.
I need about a 10-bit ADC or at worst 8. I could work around the missing Vref by calibration but the 10k series resistors look like a killer because the input current is not predictable. Hopefully I am missing something somewhere - is this right? What accuracy could I expect? Alternatively there’s the AD7879 touch controller - could it work for this? Would it need a custom linux driver? Any comments welcome - thanks.