Continuing the discussion from Addressing SAM D21 ADC:
Not sure how to setup several ADC channels in parallel (e.g. A0 and A1)?
Continuing the discussion from Addressing SAM D21 ADC:
Not sure how to setup several ADC channels in parallel (e.g. A0 and A1)?
If you're trying to use MartinL's high-res code, you'd change this line:
ADC->INPUTCTRL.bit.MUXPOS = 0x0;
But the mapping from Analog pins to MUXPOS values is a bit ... odd.
See Section 7 of the datasheet "I/O Multiplexing and Considerations."
For an Arduino Zero, it looks like A0..A5 are [0, 2, 3, 4, 5, 10]
(See the appropriate section of the variant.cpp file
(and you should be able to look up the MUX channel from a pin number with
if (pin < A0) {
pin += A0;
}
ADC->INPUTCTRL.bit.MUXPOS = g_APinDescription[pin].ulADCChannelNumber;
Thanks for reply! Does that mean that I have to go through the whole setup code every time I change the channel or only have to change the muxpos?
I’m not sure. Almost certainly NOT the whole initialization, but perhaps more than just the muxpos. (In particular, I think some ADCs can require an extra bit of waiting after changing the muxpos, or two conversions, or something like that, to make sure the s&h settles.
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.