Forum: Mikrocontroller und Digitale Elektronik MSP zur Frequenzmessung


von msp_newbie (Gast)


Lesenswert?

Hallo,

ich habe leider keinerlei Erfahrung, muss aber eine Möglichkeit finden, 
meinen MSP430F2303 dazu zu bringen, folgendes zu tun:

- Ich habe eine Frequenz von 133kHz, die als Systemtakt dienen soll.
- Es soll in der Anwendung dann ein Signal bei ca. 20kHz gemessen 
werden. (Das ist die Ausgabegröße einer Messschaltung.)

Ich finde zur Zeit keinen Weg, die gegebenen Anschlüsse des MSP so zu 
nutzen, dass ich den internen Takt des µControllers nicht nutzen muss. 
Es soll möglichst wenig Stromverbrauch bei rum kommen.


Ich wollte das externe 133kHz Signal zuerst an den XIN port legen, aber 
dieser ist wohl auf max.50kHz ausgelegt.
Wie bekomme ich den Takt als Systemtakt in den MSP???

Ich danke euch für jede mögliche Hilfe!

von Christian R. (supachris)


Lesenswert?

Also den F2303 gibts nicht. Ich nehme mal an, du hast den 2003. Und ja, 
da geht tatsächlich nicht mehr als 50kHz am Quarzanschluss, steht so im 
User Guide:

"MSP430x20xx: LFXT1 does not supportHFmode, XT2 is not present,ROSC
is not supported."

Mit 133kHz Systemtakt wirds eh schwierig die 20kHz genau zu messen.

von Msp N. (msp-newbie)


Lesenswert?

oops, ich meinte auch eigentlich den MSP430F2013 !!!
Sorry!

und wie groß sollte der Systemtakt denn sein, damit ich die Frequenz gut 
messen kann?

von Christian R. (supachris)


Lesenswert?

Wie genau willst du die Frequenz denn messen? Das macht man ja 
sinnvollerweise mit der Capture-Einheit des Timers. Die Freqenz des 
Timers entscheidet dann über die Messgenauigkeit der Periodendauer.

von szimmi (Gast)


Lesenswert?

Kannst auch anders rangehen. Ich weiss ja nicht, was Dein Controller 
sonst noch für Aufgaben hat. Aber wenn er nur zählen muss, kannst Du 
über TACLK die zu messende Frequenz einspeisen und damit den Timer 
takten. Die Zeitbasis erhälst Du über den Watchdog-Timer, den Du über 
über den Systemtakt oder eine andere Quelle an ACLK taktest.
Bei dieser Lösung kannst Du mit einem geringen CPU-Clock arbeiten, da 
Dir die HW die ganze Zählerei abnimmt.
Falls Du noch einen Uhrenquarz übrig hast, kannst Du z.B. mit den 
Watchdogtimer eine Messzeit von 1 Sekunde realisieren, so dass Du dann 1 
Hz Auflösung hast (abgesehen von der Genauigkeit des Quarzes).
Einfach bei jedem Watchdog-Interrupt den TAR-Wert auslesen und davon den 
vorherigen TAR-Wert abziehen. Ergibt die Frequenz in Hz. Da Du maximal 
20kHz voliegen hast, brauchst Du keine Überläufe zu beachten, da der TAR 
maximal um 20000 inkrementiert wird.
Einfach, billig, geschmacklos. Sollte funktionieren.

von szimmi (Gast)


Lesenswert?

Hmmm, wer lesen kann ist klar im Vorteil.
Das hilft Dir natürlich nicht bei Deinem Problem, die 133kHz in den 
Controller zu bringen. Besteht die Möglichkeit, den ausserhalb des MSP 
z.B. durch 4 zu teilen?

von Msp N. (msp-newbie)


Lesenswert?

@ Christian R.
Ich verstehe die Capture-Compare-Einheit nicht so recht. Ich kann nur 
mit der Zählfunktion des Timers etwas anfangen. Wie kann ich "Capture" 
für meine Messung nutzen?

@ szimmi
Danke, vielleicht hilft mir das ja weiter, wenn ich vorerst den internen 
Takt nehme. Ich wollte den DCO nicht nutzen, sondern die in meiner 
Schaltung vorhandene Frequenz 133kHz, um Strom zu sparen.

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.