Forum: Mikrocontroller und Digitale Elektronik Channel Auswahl vom ADC


von Bernd (Gast)


Lesenswert?

Hallo zusammen,

eine Anfängerfrage zum ADC des dsPIC33FJ32MC202/204:
http://ww1.microchip.com/downloads/en/DeviceDoc/70283K.pdf

Ich ich möchte die analogen Eingänge AN0 bis AN6 messen. Die Eingänge 
sind verteilt auf die Channels 0 bis 3. Eigentlich hatte ich nun 
gedacht, dass ich erst einen Eingang auf einen Channel legen und dann 
den entsprechenden Channel wandeln muss.

Z.B. wenn ich AN3 messen möchte, hätte ich CH123SB = 1 gesetzt und so 
AN3 mit Channel 1 verbunden. Dann müsste ich nur noch Channel 1 wandeln 
und das Ergebnis aus ADC1BUF0 auslesen. Im Datenblatt kann ich aber 
nicht die Einstellung finden, in der ich den zu messenden Channel 
definiere. Zumindest nur begrenzt. Ich kann nur CH0, CH0+CH1 oder 
CH0+CH1+CH2+CH3 wandeln, aber nicht einfach nur CH1. Muss ich in meinem 
Beispiel also CH0 und CH1 wandeln? Und wie werden die Ergebnisse dann 
gespeichert? Für etwas Klarheit wäre ich sehr sehr dankbar!

von Bernd (Gast)


Lesenswert?

Das muss doch schon mal jemand gemacht haben O.o

von Hans-Georg L. (h-g-l)


Lesenswert?

Leider gibt es Datenblätter noch nicht als Hörbuch, deshalb sollte man 
lesen lernen ;)

20.2 ADC Initialization
To configure the ADC module:
1. Select  port  pins  as  analog  inputs
(AD1PCFGH<15:0> or AD1PCFGL<15:0>).
2. Select voltage reference source to match
expected  range  on  analog  inputs
(AD1CON2<15:13>).
3. Select the analog conversion clock to match the
desired data rate with the processor clock
(AD1CON3<7:0>).
4. Determine how many sample-and-hold chan-
nels will be used (AD1CON2<9:8> and
AD1PCFGH<15:0> or AD1PCFGL<15:0>).
5. Select  the  appropriate  sample/conversion
sequence  (AD1CON1<7:5>  and
AD1CON3<12:8>).
6. Select the way conversion results are presented
in the buffer (AD1CON1<9:8>).
7. Turn on the ADC module (AD1CON1<15>).
8. Configure ADC interrupt (if required):
a) Clear the AD1IF bit.
b) Select the ADC interrupt priority.

von Bernd (Gast)


Lesenswert?

Das habe ich natürlich gelesen. Aber genau hier habe ich auch mein 
Verständnis Problem

Hans-Georg Lehnard schrieb:
> 4. Determine how many sample-and-hold chan-
> nels will be used (AD1CON2<9:8> and
> AD1PCFGH<15:0> or AD1PCFGL<15:0>).

Was passiert denn, wenn ich z.B. alle 4 Channels wähle? Werden dann 4 
Wandlungen durchgeführt? Ich verstehe einfach nicht, wie ich nur Channel 
1 messen kann.

von PICfan (Gast)


Lesenswert?

Hallo,

Lese mal bitte den "Family Reference Manual" Ch 16 - ADC.

Da wird einiges genauer erklärt.

http://ww1.microchip.com/downloads/en/DeviceDoc/70183D.pdf

Du muss im grunde alle Kanäle (AN0 bis AN6) nacheinander auf CH0 
zuschalten wenn du die alle sequenzielle abtasten möchtest.  Die CH1 bis 
CH3 sind da wenn mann zb. 4 Kanäle simultan erfassen möchte.


mfg,
PICfan

von Bernd (Gast)


Lesenswert?

PICfan schrieb:
> Du muss im grunde alle Kanäle (AN0 bis AN6) nacheinander auf CH0
> zuschalten wenn du die alle sequenzielle abtasten möchtest.  Die CH1 bis
> CH3 sind da wenn mann zb. 4 Kanäle simultan erfassen möchte.

Super, vielen Dank.
Mein Fehler lag in der Interpretation des Bildes 20-1. Es sah so aus, 
als könne ich auf Channel 0 nur AN0 oder AN8 schalten. Ich habe aber die 
Punkte dazwischen übersehen. Tatsächlich kann ich AN0 BIS AN8 darauf 
schalten... -.-

von Hans-Georg L. (h-g-l)


Lesenswert?

Steht doch alles im Datenblatt und im Blockschaltbild kann man doch auch 
deutlich sehen welcher Anologeingang welchem Kanal zugeordnet werden 
kann.

Der Chip hat im 10Bit Betrieb 4 SH und im 12 Bit Betrieb 1 SH
aber immer nur einen AD Wandler.

Este Seite Datenblatt ..

Advanced Analog Features
• ADC module:
- Configurable as 10-bit, 1.1 Msps with four S&H or 12-bit, 500 ksps 
with one S&H

Aber wie immer im Leben muss man sich erst mal entscheiden was man will 
...

Im 10Bit Betrieb kannst du 4 Eingänge gleichzeitig in die SH Stufen 
(channel 0-3) übernehmen. Die 4 Ausgänge der SH Stufen (Ladung der SH 
Kondensatoren) werden dann sequenziell digitalisiert.

Im 12 Bit Betrieb werden bis zu 6(8) Analogeingänge sequenziell über 
Channel0 digitalisiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.