-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Howdy,
There currently appears to be an issue with obtaining correct analogRead() measurements with the Artemis Processor.
Plugging into the MicroMod Data Logging Carrier Board and running the Artemis example: Example4_analogRead
reveals that when tied to GND, the analog measurement is correct (0). However, when 3.3 V is applied, the analog reading maxes out at ~15890/16384.
10:23:12.517 -> SparkFun Arduino Apollo3 Analog Read example
10:23:12.517 -> A0: 0 VCC/3: 8799 VCC: 3.22V internalTemp: 26.85 vss: 0
10:23:12.620 -> A0: 0 VCC/3: 8799 VCC: 3.22V internalTemp: 27.18 vss: 0
10:23:12.726 -> A0: 0 VCC/3: 8801 VCC: 3.22V internalTemp: 27.54 vss: 0
10:23:12.799 -> A0: 0 VCC/3: 8806 VCC: 3.22V internalTemp: 27.54 vss: 0
10:23:12.908 -> A0: 0 VCC/3: 8801 VCC: 3.22V internalTemp: 27.32 vss: 0
10:23:13.010 -> A0: 0 VCC/3: 8801 VCC: 3.22V internalTemp: 27.10 vss: 0
10:23:13.110 -> A0: 0 VCC/3: 8802 VCC: 3.22V internalTemp: 27.21 vss: 0
10:23:13.213 -> A0: 0 VCC/3: 8801 VCC: 3.22V internalTemp: 26.59 vss: 0
10:23:13.316 -> A0: 0 VCC/3: 8805 VCC: 3.22V internalTemp: 27.10 vss: 0
10:23:13.417 -> A0: 0 VCC/3: 8803 VCC: 3.22V internalTemp: 26.81 vss: 0
10:23:13.520 -> A0: 0 VCC/3: 8805 VCC: 3.22V internalTemp: 27.21 vss: 0
10:23:13.626 -> A0: 0 VCC/3: 8801 VCC: 3.22V internalTemp: 27.14 vss: 0
...
10:23:19.105 -> A0: 15889 VCC/3: 8808 VCC: 3.23V internalTemp: 26.66 vss: 0
10:23:19.208 -> A0: 15882 VCC/3: 8801 VCC: 3.22V internalTemp: 26.88 vss: 0
10:23:19.311 -> A0: 15891 VCC/3: 8799 VCC: 3.22V internalTemp: 26.26 vss: 0
10:23:19.417 -> A0: 15890 VCC/3: 8808 VCC: 3.23V internalTemp: 27.32 vss: 0
10:23:19.524 -> A0: 15894 VCC/3: 8808 VCC: 3.23V internalTemp: 26.77 vss: 0
10:23:19.627 -> A0: 15890 VCC/3: 8800 VCC: 3.22V internalTemp: 27.07 vss: 0
10:23:19.702 -> A0: 15882 VCC/3: 8801 VCC: 3.22V internalTemp: 27.29 vss: 0
10:23:19.803 -> A0: 15885 VCC/3: 8806 VCC: 3.22V internalTemp: 26.77 vss: 0
10:23:19.909 -> A0: 15880 VCC/3: 8802 VCC: 3.22V internalTemp: 27.36 vss: 0
10:23:20.013 -> A0: 15883 VCC/3: 8799 VCC: 3.22V internalTemp: 27.36 vss: 0
10:23:20.117 -> A0: 15885 VCC/3: 8802 VCC: 3.22V internalTemp: 26.85 vss: 0
10:23:20.224 -> A0: 15892 VCC/3: 8802 VCC: 3.22V internalTemp: 27.03 vss: 0
10:23:20.329 -> A0: 15878 VCC/3: 8802 VCC: 3.22V internalTemp: 27.14 vss: 0
Similarly, when running the ADC.ino
example included in the Artemis Processor repo, applying 3.3 V to both A0 and A1 reveals incorrect voltage measurements.
10:28:59.335 -> A0 voltage: 3.197 A1 voltage: 3.211 battvin: 6188 Batt voltage: 1.246
10:28:59.369 -> A0 voltage: 3.197 A1 voltage: 3.209 battvin: 6195 Batt voltage: 1.248
10:28:59.438 -> A0 voltage: 3.199 A1 voltage: 3.205 battvin: 6191 Batt voltage: 1.247
10:28:59.471 -> A0 voltage: 3.199 A1 voltage: 3.205 battvin: 6189 Batt voltage: 1.247
10:28:59.538 -> A0 voltage: 3.198 A1 voltage: 3.210 battvin: 6188 Batt voltage: 1.246
10:28:59.574 -> A0 voltage: 3.200 A1 voltage: 3.207 battvin: 6186 Batt voltage: 1.246
10:28:59.642 -> A0 voltage: 3.199 A1 voltage: 3.211 battvin: 6198 Batt voltage: 1.248
10:28:59.711 -> A0 voltage: 3.199 A1 voltage: 3.210 battvin: 6191 Batt voltage: 1.247
10:28:59.746 -> A0 voltage: 3.199 A1 voltage: 3.206 battvin: 6198 Batt voltage: 1.248
10:28:59.781 -> A0 voltage: 3.199 A1 voltage: 3.207 battvin: 6184 Batt voltage: 1.246
10:28:59.852 -> A0 voltage: 3.199 A1 voltage: 3.206 battvin: 6191 Batt voltage: 1.247
10:28:59.885 -> A0 voltage: 3.198 A1 voltage: 3.210 battvin: 6183 Batt voltage: 1.245
10:28:59.952 -> A0 voltage: 3.198 A1 voltage: 3.205 battvin: 6184 Batt voltage: 1.246
10:28:59.987 -> A0 voltage: 3.199 A1 voltage: 3.206 battvin: 6197 Batt voltage: 1.248
I suspect this issue is linked to the incorrect battery measurements in #3 and ultimately connected to the resistor dividers on the TSV524 op-amp channels, but I must admit that I'm not overly familiar with op-amps. Will users need a correction factor to apply to all analog readings?
Cheers,
Adam