Hallo, wie kann ich bei einem MSP430 (F449) die SMCLK, MCLK, ACLK mit einem Oszi messen? Grüße
Gast
#401605
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.
Gast
#401606
Ja ist richtig, SEL und evt. DIR setzen, dann kommt der CLK raus.
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...
Gast
#401608
Wie sieht denn die externe Beschaltung der 3 Pins in Deiner Applikation aus?
keine ext. Beschaltung
Gast
#401610
Kannst Du bitte mal Dein C-Quellfile posten?
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;
}
Lass den Controller mal nicht schlafen, könnte daran liegen, dabei wird ja alles ausgeschaltet.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.