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!
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.
oops, ich meinte auch eigentlich den MSP430F2013 !!! Sorry! und wie groß sollte der Systemtakt denn sein, damit ich die Frequenz gut messen kann?
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.
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.
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?
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.