So führen Sie eine sam3x-Einkanal-ADC-Konvertierung durch

Ich habe ein Sam3x (Arduino Due-Hardware, aber ich verwende weder die Arduino IDE noch Bibliotheken und ich verwende keine Atmel-Bibliotheken, sondern nur die Registerschnittstelle in sam.h).

Ich habe mehrere Pins als ADC-Pins konfiguriert. Wie kann ich eine AD-Konvertierung an einem dieser Pins durchführen? Die Art und Weise, wie das entsprechende Datenblattkapitel geschrieben ist, scheint zu vermuten, dass ich immer eine Konvertierung ALLER Pins durchführen möchte, die als Eingang konfiguriert sind.

Datenblatt http://www.atmel.com/images/atmel-11057-32-bit-cortex-m3-microcontroller-sam3x-sam3a_datasheet.pdf ADC beginnt auf Seite 1317.

Können Sie der Seite des Datenblatts das ADC-Register und den tatsächlichen Code von sam.h geben? Normalerweise stellen Sie den Wert im Register ein, der darstellt, welcher ADC eingeschaltet wird.
Das scheint mein Problem zu sein: Das Aktivieren der ADC-Funktion an einem Pin scheint zu implizieren, dass er in eine Konvertierung einbezogen wird. Aber IFAIK ist es eine schlechte Praxis, einen analogen Wert auf ein digitales Wortspiel zu setzen, daher sollten alle Pins, die einen analogen Wert erhalten, als analog konfiguriert werden.

Antworten (1)

Das Benutzersequenzregister sieht so aus, als ob es mehrere Konvertierungen einer einzelnen Eingabe während der Sequenz unterstützen kann, sodass dies Ihrem Zweck dienen kann. Ich denke jedoch, dass Sie bei Schmitt-Trigger-Eingängen am PIO möglicherweise übermäßig besorgt sind (es sei denn, der Rauschdurchbruch von den nicht abgetasteten Analogen ist Ihr Anliegen).

Ich erinnere mich von anderen Chips, dass das Anlegen eines Signals, das kein definierter digitaler Pegel ist, zu schlechtem oder minderwertigem Verhalten führt, aber vielleicht bin ich zu paranoid.
Überprüfen Sie den PIO-Abschnitt im Handbuch. Das Schlimmste, was passieren kann, ist, dass die Eingangslogik umschaltet und etwas Strom verbraucht – aber der Weg dorthin wird ziemlich kurz sein.