www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie kann ich einen 130 Khz Takt mit dem MSP430 erzeugen?


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte mit meinem MSP430F1232 einen Takt mit ca 130 kHz generieren. 
Ist das möglich? Und wie geh ich's am besten an?
Mir ist klar, dass das über Timer realisiert werden muss, nur leider 
steige ich gerade nicht richtig dahinter und bräuchte einen Denkanstoß.

Gruß
Klaus

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am einfachsten geht das mit dem Timer und den Output Units. Schau dir 
mal den User Guide zu dem MSP an, da findest du unter Timer jede Menge 
Infos. Wenn du die Register passend setzt, dann kannst du bei einem 
bestimmten Zählerstand den Ausgabe-Pin setzen und bei einem anderen 
Zählerstand bzw. Timer-Überlauf wieder rücksetzen lassen.

Es gibt da auch ein schönes Beispiel von TI:
//******************************************************************************
//  MSP-FET430X120 Demo - Timer_A, Toggle P1.1/TA0, Up Mode, 32kHz ACLK
//
//  Description: Toggle P1.1 using hardware TA0 output. Timer_A is configured
//  for up mode with CCR0 defining period, TA0 also output on P1.1. In this
//  example, CCR0 is loaded with 10-1 and TA0 will toggle P1.1 at TACLK/10.
//  Thus the output frequency on P1.1 will be the TACLK/20.  No CPU or software
//  resources required. Normal operating mode is LPM3.
//  ACLK = TACLK = 32kHz, MCLK = default DCO ~800kHz
//  As coded with TACLK = ACLK, P1.1 output frequency = 32768/20 = 1.6384kHz
//  //* External watch crystal installed on XIN XOUT is required for ACLK *//
//
//           MSP430F123(2)
//         -----------------
//     /|\|              XIN|-
//      | |                 | 32kHz
//      --|RST          XOUT|-
//        |                 |
//        |         P1.1/TA0|--> ACLK/20
//
//  M. Buccini
//  Texas Instruments Inc.
//  Feb 2005
//  Built with IAR Embedded Workbench Version: 3.21A
//******************************************************************************

#include  <msp430x12x2.h>

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P1DIR |= 0x02;                            // P1.1 output
  P1SEL |= 0x02;                            // P1.1 option select
  CCTL0 = OUTMOD_4;                         // CCR0 toggle mode
  CCR0 = 10-1;
  TACTL = TASSEL_1 + MC_1;                  // ACLK, upmode

  _BIS_SR(LPM3_bits);                       // Enter LPM3 w/interrupt
}

Das müsstest du halt an deine Frequenz und Taktquelle anpassen. Wenn die 
Ausgangsfrequenz halbwegs genau sein soll, müsstest du einen passenden 
Quarz dran bauen.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, so wie's da steht, ist die maximal mögliche Frequenz 32,768 KHz?
Also müsst ich für 130 KHz einen entsprechenden Quarz verbaun?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig. Oder halt den internen DCO benutzen, der geht ja bei den neuen 
Typen bis 16MHz. Wenn du den passend einstellst, und Temperaturdrift 
nicht weiter stört, kannst du den als Taktbasis nutzen.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt mal das Oszi rangehangen. Der DCO ist nicht gerade sehr genau.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sag ich doch. Steht ja aber auch im Datenblatt und im User Guide.

Autor: Jörg S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der DCO ist nicht gerade sehr genau.
Externen Oszillatorwiderstand benutzen, dann wird's wesentlich genauer.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...aber immer noch weit entfernt von einem Quarz.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab vor einen anderen Quarz zu installieren.

Autor: Jörg S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ...aber immer noch weit entfernt von einem Quarz.
Für ein "ca 130 kHz" wird es dicke reichen.

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.