ATtiny1616 Multiplexer Pinzuweisung für ADC

OP #5138602
Lesenswert?
• ▲
▼
Der ATtiny1616 (20 pin Gehäuse) hat 2 ADCs. Im Datenblatt auf Seite 18 
findet man, dass ADC0-AIN8 auf Pin 6 geht und ADC1-AIN8 auf Pin 14.

Im Abschnitt "ADC" (ab Seite 356) findet man aber nicht, wie man 
zwischen beiden ADCs umschaltet. Es gibt nur 1 Ergebnisregister, nur 1 
Controllregister usw.

Ich brauche 10 analoge Eingänge, daher muss ich beide ADCs nutzen. 
Schaltplan ist angehängt.

Was habe ich übersehen?

Viele Grüße!
 Marko
Angehängte Dateien:
Gast #5138756
Lesenswert?
• ▲
▼
Marko R. schrieb:
> Im Abschnitt "ADC" (ab Seite 356) findet man aber nicht, wie man
> zwischen beiden ADCs umschaltet. Es gibt nur 1 Ergebnisregister, nur 1
> Controllregister usw.

Den Registersatz, der ab S. 356 beschrieben wird, gibt es für jede 
Instanz des ADCs einmal. Du musst den Adressoffset zur jeweiligen 
Basisadresse des gewünschten ADC dazuzählen.

Alos: x610 ist Ergebnisregister für ADC0, 0x650 ist das Ergebnisregister 
für ADC1
Gast #5139204
Lesenswert?
• ▲
▼
P. M. schrieb:
> Seite 33
>
> 7.1 Peripheral Module Address Map

So isset, da findet sich die Basisadresse im Datenblatt.


Die header-Datei iotn1616.h wäre auch eine gute Quelle:

#define ADC0                  (*(ADC_t *) 0x0600) /* Analog to Digital 
Converter */
#define ADC1                  (*(ADC_t *) 0x0640) /* Analog to Digital 
Converter */
...
typedef struct ADC_struct
{
    register8_t CTRLA;  /* Control A */
    register8_t CTRLB;  /* Control B */
....

oder wenn man nicht mit dem ADC_struct arbeiten mag:
#define ADC0_RES  _SFR_MEM16(0x0610)
#define ADC1_RES  _SFR_MEM16(0x0650)


Auch die Code-Vervollständigung im Atmel-Studio hilft weiter, wenn man 
einfach mal AD eingibt und sich die Auswahlmöglichkeiten anschaut.
Gast #5345628
Lesenswert?
• ▲
▼
Peter D. schrieb:
> AIN[11:0] gehen auf ADC0 und auf ADC1.
> Jeder ADC hat sein eigenes MUXPOS-Register.

Ich stelle an einem ATTiny1614 Rev.A gerade etwas anderes fest.
An sämtlichen ADC-Pins AIN0-AIN0B (ADC1_MUXPOS= 0-0bH) lese ich mit ADC1 
nur irgendwas Nähe 3FFH aus (dasselbe wie bei ADC1_MUXPOS 0bH= Internal 
Reference). ADC0 mit der Source-Auswahl in ADC0_MUXPOS funktioniert 
normal lt. Beschreibung im Datenblatt.
Gast #5348142
Lesenswert?
• ▲
▼
Gerhard schrieb:
> Peter D. schrieb:
>> AIN[11:0] gehen auf ADC0 und auf ADC1.
>> Jeder ADC hat sein eigenes MUXPOS-Register.
>
> Ich stelle an einem ATTiny1614 Rev.A gerade etwas anderes fest.

Hab mich etwas vertan, sorry.
Die physischen analogen Portpins sind außerdem den Muxpositionen AINx 
bei ADC0 und ADC1 sehr unterschiedlich zugeordnet. Das hatte ich so 
intuitiv wie irrtümlich bei beiden ADCs als gleich vorausgesetzt.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.