www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430: SMCLK, MCLK, ACLK messen


Autor: Jürgen R. (duke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie kann ich bei einem MSP430 (F449) die SMCLK, MCLK, ACLK mit einem
Oszi messen?

Grüße

Autor: szimmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lt. Datenblatt kannst Du die Signale an folgenden Pins abgreifen:
Pin 82 (P1.5): ACLK
Pin 83 (P1.4): SMCLK
Pin 86 (P1.1): MCLK
Wenn mich nicht alles täuscht, sollte es reichen, die entsprechenden
PxSEL und PxDIR zu setzen, damit die Signale an die Pins
durchgeschaltet werden.
Probiere es halt aus.

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

Bewertung
0 lesenswert
nicht lesenswert
Ja ist richtig, SEL und evt. DIR setzen, dann kommt der CLK raus.

Autor: Jürgen R. (duke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe folgendes versucht:

P1SEL = 0x32;       //  xx11 xx1x = Pins werden nicht als I/O
                    //              verwendet, sondern als
                    //              Peripheral Funktion (ACLK...)

P1DIR |= 0x32;      //  xx11 xx1x
                    //         1  = P1.1 = MCLK
                    //     1      = P1.4 = SMCLK
                    //    1       = P1.5 = ACLK

jedoch leider ohne Erfolg.

Muss man evtl. einen externen pull-up vorsehen um überhaupt etwas
messen zu können?

In der i/o schematic erkenne ich nichts...

Autor: szimmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sieht denn die externe Beschaltung der 3 Pins in Deiner Applikation
aus?

Autor: Jürgen R. (duke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keine ext. Beschaltung

Autor: szimmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst Du bitte mal Dein C-Quellfile posten?

Autor: Jürgen R. (duke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
here we are:

#include <msp430x44x.h>


int main(void)
{
  WDTCTL = WDTPW + WDTHOLD; // Stop Watchdog Timer WDT
  FLL_CTL0 |=0x30;

  P1SEL = 0x32;       // 0011 0010  = Pins werden nicht als I/O
verwendet
                      //              sondern als Peripheral Funktion
(ACLK...)
  P1DIR |= 0x39;      //  0011 1010
                      //         1  = P1.1 = MCLK
                      //       1    = P1.3 = LED
                      //     1      = P1.4 = SMCLK
                      //    1       = P1.5 = ACLK


  TACTL = TASSEL_1 + MC_2 + ID_0; // Timer A Init

  TACCTL0 = CCIE;
  TACCR0 = 32767;

  // gehe schlafen
    _BIS_SR(LPM3_bits + GIE);// (CPUOFF); // Enter LPM0
}



#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
  P1OUT ^= 0x08; // Toggle P1.3
  TACCR0 += 32767;
}

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass den Controller mal nicht schlafen, könnte daran liegen, dabei wird
ja alles ausgeschaltet.

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.