Skip to content

Incorrect analogRead() measurements #4

@adamgarbo

Description

@adamgarbo

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

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions