Forum: Mikrocontroller und Digitale Elektronik MSP430F149 Taktfrequence


von Andrej T. (plumbum)


Lesenswert?

Hallo an alle!

Ich habe vor kurzem mit der Programmierung von MSP430F149 angefangen.
Kann mir jemand sagen mit welcher Taktfrequence dieser Controller läuft
(by default)? Und wie kann man den auf die gewünschte Taktfrequence
einstellen? Zum Beispiel 3 oder 5 MHz. Kann das jemand auf einfache
Weise erklären? Am besten mit einem Beispiel.
Aus UsersManual bin ich nicht wirklich schlauer geworden. Und die Suche
hat auch nicht viel geholfen.

Zu meinem Controller: ist ein MSP430F149 auf dem HeaderBoard von
Olimex. Soweit ich weiss der hat einen externen 32.768-er Quarz. Als
Software benutze ich "MSP430 IAR C/C++"

Danke schon mal.

von marc (Gast)


Lesenswert?

HI,

nun dein Quarz läuft mit 32kHz. Wenns schneller gehen soll kannst du
als Takt den DCO benutzen. S.119 im User-Guide. Besser du kaufst dir
nen Quarz und hängst in an XT2. Kostet nen Euro.

Gruß Marc

von Andrej T. (plumbum)


Lesenswert?

Danke für die Antwort.

Soweit ich verstanden habe, ist das nur der Referenzquarz. Der
Processor tickt dank Multiplikator(en) aber schneller. ACLOCK tickt
tatsächlich mit 32kHz.
Im "MSP430 Praxisbuch" auf der Seite 143 habe ich folgendes
gefunden:
"Falls fSystem = 1.048 MHz die gewünschte Arbeitsfrequenz ist, braucht
nichts weiteres getan zu werden". Allerdigns bezieht sich das Buch auf
MSP430F449 mit FLL+. Ob das auch für MSP430F149 gilt?

Für meine Anwendung reichen die 1.048 MHz vollkommen. Allerdings muss
ich die tatsächliche Arbeitsfrequenz wissen.
Angenommen ich brauche ein Delay für 400µs. Wie macht man das ohne zu
wissen wie lange ein Takt dauert?

Die S.119 im UserQuide schlage ich gleich auf.

von marc (Gast)


Lesenswert?

Also wenn du nicht herraus bekommst mit welchem Takt dein uC läuft
kannst du z.B ne schleife schreiben. Bei beginn eine LED einschalten.
Am ende wieder ausschalten und die Zeit stoppen. Dann brauchst du noch
die Anzahl duchgelaufener Taktschritte für deine Schleife.
Stell dir lieber den DCO richtig ein oder Kauf dir besser einen 4Mhz
Quarz und teile ihn runter. Ich weiß nämlich nicht wie schnell der DCO
laufen kann ohne einen externen Widerstand an Rsoc zu klemmen.
Bei Default läuft er mit DCO.
"After a PUC, MCLK and SMCLK are sourced from DCOCLK at ~800 kHz (see
device-specific datasheet for parameters) and ACLK is sourced from
LFXT1 in LF mode." im UserGuide
gruß marc

von Dieter (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

soweit ich weiß, läuft der MSP430f149 mit der MCLK also mit ca. 800kHz
sofern du nichts anderes ausgewählt hast.

Auf der Seite von TI gibt es ausführliche C und ASM Codebeispiele.

Weiß nicht, ob die von mir angehängten der aktuellste Stand sind.
Jedoch findest du darin Beispiele, wie du den MSP430 mittels DCO auf
deine gewünschte Taktfrequenz bringst.

Gruß

von Andrej T. (plumbum)


Lesenswert?

Vielen Dank. Ich fange langsam an das zu verstehen :)

Grüß Andrej

von B.T. (Gast)


Lesenswert?

Du kannst ein externer Quarz (theoritisch  bis 8MHz)als Taktfrequenz
fuer den MSP einsetzen und dieser als Systemtakt auswaehlen.In der
Praxis habe ich den MSP bis 17 MHz ohne Probleme uebertakt .Ich musste
aber 4,5V als Betriebsspannung verwenden.

von Andrej T. (plumbum)


Lesenswert?

Im Moment brauche ich keine höhere Taktfrequenz für meine Anwendung. Ich
wollte in erster Linie wissen wie schnell er by Default läuft. Sollte
ich höhere Frequenz brauchen, werde ich wahrscheinlich wirklich einen
externen Quarz dazuschalten. Habe irgendwo gelesen/gehört dass wenn man
es per DCO schneller taktet, ist die Taktfrequenz nicht kostant weil
temperaturabhängig. Stimmt das? Wenn ja, kann man es wohl für z.B
UART-Kommunikation mit höheren Baudraten als 9600 nicht benutzen.

von Zimmi (Gast)


Lesenswert?

Hiho,
Du solltest den DCO in den MSP430Fx1xx generell nicht fuer UART
nehmen,da er wirklich sehr stark ueber die Temperatur schwankt und auch
stark exemplarabhängig ist.
In den neuen MSP430Fx2xx werden im Werk Kalibrierwerte im Info-Flash
abgelegt. Diese muss man dann bei der Initialisierung in die
DCO-Register schreiben. Der DCO schwingt dann ziemlich genau mit der
eingestellten Frequenz (ich glaube 1,8,12 oder 16 MHz,3% Toleranz über
den gesamten Temperaturbereich) Dies sollte fuer eine saubere
UART-Kommunikation reichen.
Waeren die neuen Derivate eine Option fuer Dich?

von Andrej T. (plumbum)


Lesenswert?

>Waeren die neuen Derivate eine Option fuer Dich?

Sorry, was meinst du damit?

von Dieter (Gast)


Lesenswert?

Hallo,

also ich spare mir den externen Quarz > 32.768 Hz und verwende den  DCO
auch für UART.
Der DCO ist wie aus dem Datenblatt hervorgeht sehr stark
Temperaturabhängig. Dieses Schwanken über der Temperatur kann durch
einen externen Widerstand am rosc Portpin minimiert werden.

Im slac069.zip File gibt es Beispiele wie der DCO auf eine bestimmte
Frequenz eingestellt werden kann. B.z.w. die eingestellte Frequenz
überprüft und gegebenenfalls nachgeregelt wird. Kleinste Schrittweite
ist da meineswissens 32768Hz/8 = 4096Hz. Bei 5MHz ist dieser Fehler
somit < 0,1%. UART Anwendungen weit über 9600 baud sind damit nach
meiner Erfahrung gut machbar.

Weiß vielleicht jemand wieso TI der 2XX Serie die bis 16MHz taktbar
ist, keinen Hardware Multiplyer spendiert hat?

Gruß

von Zimmi (Gast)


Lesenswert?

Hiho,
meines Wissens sind bisher nur die kleinen Derivate der 2xx verfügbar.
Die haben keinen HW-Multiplizierer, wie Du richtig erwähnst. Ich denke
mal rein aus Kostengruenden. Sollten demnaechst auch die groesseren
folgen, wird er wieder mit an Bord sein, denke ich. Ich habe seit zwei
Wochen den F2013 in der Mache, der geht gut ab und der neue DCO haelt
bisher, was er verspricht.

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.