Cómo hacer una conversión ADC de un solo canal sam3x

Tengo un Sam3x (hardware Arduino Due, pero no uso el IDE o las bibliotecas de Arduino, y no uso las bibliotecas de Atmel, solo la interfaz de registro en sam.h).

Tengo varios pines configurados como pines ADC. ¿ Cómo puedo hacer una conversión AD en uno de estos pines? La forma en que está escrito el capítulo de la hoja de datos relevante parece suponer que siempre quiero hacer una conversión de TODOS los pines que están configurados como entrada.

Hoja de datos http://www.atmel.com/images/atmel-11057-32-bit-cortex-m3-microcontroller-sam3x-sam3a_datasheet.pdf El ADC comienza en la página 1317.

¿Puede dar a la página de la hoja de datos el registro ADC y el código real de sam.h? Normalmente, establece el valor en el registro que representa qué ADC se encenderá.
Ese parece ser mi problema: habilitar la función ADC en un pin parece implicar que se incluirá en una conversión. Pero IFAIK es una mala práctica poner un valor analógico en un juego de palabras digital, por lo que todos los pines que reciben un valor analógico deben configurarse como analógicos.

Respuestas (1)

Parece que el registro de secuencia de usuario puede admitir múltiples conversiones de una sola entrada durante la secuencia, por lo que esto puede servir para su propósito. Sin embargo, con las entradas de disparo Schmitt en el PIO, creo que tal vez esté demasiado preocupado (a menos que le preocupe el avance del ruido de los análogos sin muestrear).

Recuerdo de otros chips que aplicar una señal que no es un nivel digital definido da como resultado un comportamiento malo o inferior al estándar, pero tal vez soy demasiado paranoico.
Consulte la sección PIO en el manual. Lo peor que puede pasar es que la lógica de entrada cambie y consuma algo de energía, pero el camino será bastante corto.