Ich arbeite derzeit an einem Atmel-Mikrocontroller, dem EVK1104S , der das UC32-Datenblatt enthält. Wir haben diesen Chip tatsächlich auf eine kundenspezifische Leiterplatte gepflanzt und sind dabei, weitere Firmware zu schreiben.
Derzeit muss ich dem ADC auf der Micro Controller Unit (MCU) mitteilen, dass er mit 8.000 Samples / Sekunde abtasten soll. In Wirklichkeit dient dies zum Abtasten eines Mikrofons. In jedem Fall ist die Dokumentation ziemlich unklar (aus meiner Sicht) und ich suchte nach einer Klärung.
Ich weiß, dass ich zum Ändern der Abtastrate das sogenannte Modusregister ändern muss, das Register, mit dem der ADC für die Verwendung konfiguriert wird (Seite 799 im obigen Link). Dies ist das Register, mit dem ich die ADCclock
.
Beispiel (ab Seite 799):
ADCClock = CLK_ADC / ( (PRESCAL+1) * 2 )
Soweit ich weiß, muss ich nur den ändern, PRESCAL
um den Betrieb bei 8 kHz zu ermöglichen ADCClock
. Das Problem ist, dass PRESCAL
die Auflösung auf 8 Bit begrenzt ist.
Wenn der Controller beispielsweise auf 12 MHz/x = 8 kHz eingestellt ist, müsste x 1500 sein. Da x auf 8 Bit begrenzt ist, wie ich zuvor sagte, scheint dies unmöglich zu sein, da das Maximum 255 beträgt.
Ich habe das Gefühl, dass ich hier etwas falsch mache oder nicht verstehe, was das Datenblatt von mir will. Kann jemand bestätigen, worüber ich gerade gesprochen habe, oder mir weiterhelfen?
Wie kann ich im Grunde angeben, dass es ADCclock
mit 8 kHz ausgeführt werden soll, wenn es PRESCAL
sich nur um einen 8-Bit-Wert handelt, vorausgesetzt, die CPU läuft mit 12 MHz?
Ihr Missverständnis liegt darin, dass "ADCClock" nicht die "Samplingrate" ist, sondern die interne Uhr, mit der das ADC-Modul auf dem Mikrocontroller arbeitet:
"Das Umwandeln eines einzelnen analogen Werts in digitale 10-Bit-Daten erfordert Abtast- und Haltetaktzyklen, wie im Feld Abtast- und Haltezeit des Modusregisters (MR.SHTIM) und 10 ADC-Taktzyklen definiert." (Abschnitt 29.6.1, S. 792)
Mit anderen Worten, um ein einzelnes Sample von Ihrem ADC zu erhalten, sind tatsächlich einige (mindestens 13, wenn ich das Datenblatt oberflächlich gelesen habe) ADC-Taktzyklen erforderlich, und nicht nur einen. Ihre Abtastrate ist einfach eine Funktion davon, wie (oft) Sie eine Konvertierung auslösen (Abschnitt 29.6.5). Dazu würden Sie wahrscheinlich eines der Timer-Module verwenden, die Ihnen höchstwahrscheinlich mehr Flexibilität bei den tatsächlichen Intervallen geben, damit Sie Ihre 8-kHz-Zielrate erreichen können.
Olin Lathrop
Engelgroß
Olin Lathrop