www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik fAD Frequenz M16C

Autor: Michael (Gast)
Datum: 13.04.2008 22:46

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?
Autor: Martin (Gast)
Datum: 13.04.2008 22:54

> 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
Autor: Michael (Gast)
Datum: 13.04.2008 23:06

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.
Autor: Judge (Gast)
Datum: 14.04.2008 00:08

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
Autor: Michael (Gast)
Datum: 14.04.2008 00:53

Danke für die Hilfe!
Autor: Martin (Gast)
Datum: 14.04.2008 07:24

> 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.

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net