Forum: Mikrocontroller und Digitale Elektronik fAD Frequenz M16C


von Michael (Gast)


Lesenswert?

Hallo,

ich bin ein ziemlicher Anfänger beim Programmieren von MCUs und frage 
mich wie die Taktfrequenz der A/D-Wandler-Clock "fAD" von der 
System-Clock abhängt. Über welche Register stellt man die ein?

Ich initialisiere den A/D-Wandler folgendermaßen:

vcut=1;ch0=1;ch1=0;ch2=1; //AN2 selected(adcon0 bit 0-2)
adgsel0=1;adgsel1=1;      //Port P1/P9 group(AN2i) selected(adcon2 bit 1 
and 2)
md0=0;md1=0;md2=0;        //One Shot selected(adcon0 bit 3-4,adcon1 bit 
2)
cks0=0;cks1=0;cks2=1;     //fAD divide by 12 selected(adcon0 bit 
7,adcon1 bit 4,adcon2 bit 4)
bits=1;                   //10-bit mode selected(adcon1 bit 3)
smp=1;                    //With sample and hold(adcon2 bit 0)
trg=0;                    //Software trigger selected(adcon0 bit 5)

Aus dieser Initialisierung und dem Datenblatt des M16C habe ich folgende 
Berechnung zur Samplerate des A/D-Wandlers aufgestellt:

Grundtaktung:                    20 MHz
geteilt durch
A/D-Operating Clock:             fAD devided by 12  = 20 MHz / 12
geteilt durch
A/D-Conversion Speed per pin:    sample and hold 10bit: 33 fAD-Cycles

= 20 MHz durch 12 durch 33  ???
= 20 * 10^6 durch 12 durch 33 = 50505,05 Hz = ca. 50 kHz = 50.000 Werte 
pro Sekunde?

Da kann doch irgendwas nicht stimmen mit meinen Berechnungen!! 
Wahrscheinlich ist fAD ungleich der Grundtaktung von 20 MHz, oder? Wo 
finde ich die Taktung von fAD bzw. wie stelle ich sie ein?

von Martin (Gast)


Lesenswert?

> Wo finde ich die Taktung von fAD bzw. wie stelle ich sie ein?

Im Datenblatt unter "Clock Generating Circuit".

> fAD devided by 12  = 20 MHz / 12

Die 12 ist kein fester Wert, denn kannst du ändern im CKS Bits in den 
Registern ADCON0 bis ADCON2

von Michael (Gast)


Lesenswert?

Hallo Martin,

danke für die schnelle Antwort!

> Im Datenblatt unter "Clock Generating Circuit".
Dort finde ich lediglich unter 7.5.2 Peripheral Function Clock den 
folgenden Satz zur fAD clock, der mir nicht wirklich weiterhilft:

"The fAD clock is produced from the main clock, PLL clock or on-chip 
oscillator clock, and is used for the A/D converter."

> Die 12 ist kein fester Wert, denn kannst du ändern im CKS Bits in den
> Registern ADCON0 bis ADCON2
Eigentlich will ich den gar nicht ändern. Die Anwendung läuft mit der 
Einstellung wunderbar. Ich möchte lediglich wissen welche Frequenz die 
fAD clock hat, um in der Anwendungsdoku die Berechnung der 
Samplingfrequenz angeben zu können.

von Judge (Gast)


Lesenswert?

Schau mal Dir mal die grafische Veranschaulichung unter "Clock 
Generation Circuit" an und vergleiche mit den Registerwerten die im 
Clock-Modul gesetzt sind. Dann wird deutlich woher der A/D-Wandler den 
Takt bezieht.

Gruß
Judge

von Michael (Gast)


Lesenswert?

Danke für die Hilfe!

von Martin (Gast)


Lesenswert?

> The fAD clock is produced from the main clock

Das bedeutet fAD = Main Clock. Wenn Main Clock vom Quarz kommt, dann fAD 
= Quarzfrequenz. Ich finde auch, das es in der Grafik gut zu erkennen 
ist.

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.