Läßt sich der SBW Debugger Teil beim Launchpad als USB-Uart in Richtung PC verwenden? Ich habe beim Suchen nichts darüber gefunden, aber im Prinzip sollte das doch so funktionieren, oder? (Ich habe mit dem Ding noch gar Nichts gemacht, entschuldigt die platte Frage..) Gruß, Holm
Habe ich noch nicht gesehen (obwohl ich es gut hätte gebrauchen können, habe schon diverse MSP430-Projekte gemacht). Frag mal bei e2e.ti.com nach, da sitzen die wahren Experten. Max
Holm Tiffe schrieb: > Läßt sich der SBW Debugger Teil beim Launchpad als USB-Uart in Richtung > PC verwenden? Muss wohl gehen. Die aufgeflashte App-Note kommuniziert per Softuart über diese Schnittstelle mit dem PC. Schau mal in die Sourcen...
Das geht, welchen MSP Typ hast du auf dem Board ?
Ich habe momentan hier nur einen G2231 oder einen G2211, müßte das also mit einem Softuart machen. Da ich nur wenige Daten mit 4800 Baud zu behandlen habe, sollte das trotzdem funktionieren. Ich werde mal ausprobieren wie weit ich komme. Dankeschön, Holm
Ja, Softuart ist korrekt.
1 | /*
|
2 | Hello World example.
|
3 | ---- Code 248 Byte ----
|
4 | |
5 | MSP430g2231
|
6 | --------------
|
7 | +3,5V --|DVCC GND|-- DVSS
|
8 | rote LED --|P1.0 P2.6|--
|
9 | TXD --|P1.1 P2.7|--
|
10 | --|P1.2 TEST|-- TEST/SBWTCK
|
11 | Taster --|P1.3 RESET|-- RST/NMI/SBWTDIO
|
12 | --|P1.4 P1.7|--
|
13 | --|P1.5 P1.6|-- grüne LED
|
14 | --------------
|
15 | */
|
16 | |
17 | #include "msp430g2231.h" |
18 | #include "inttypes.h" |
19 | |
20 | #define TXD BIT1 // TXD an P1.1
|
21 | #define BitTime 104 // 9600 Baud, SMCLK=1MHz (1MHz/9600)=104
|
22 | |
23 | // globale Variablen
|
24 | uint16_t TXByte; // TXByte + Start/Stop BIT's |
25 | |
26 | // Prototypes
|
27 | void putChar (uint8_t c); |
28 | void printfEasy (const char *s); |
29 | |
30 | void main (void) |
31 | {
|
32 | WDTCTL = WDTPW | WDTHOLD; // Stop WDT |
33 | BCSCTL1 = CALBC1_1MHZ; // Set range |
34 | DCOCTL = CALDCO_1MHZ; // SMCLK = DCO = 1MHz |
35 | |
36 | P1SEL |= TXD; // TXD connected @ Timer |
37 | P1DIR |= TXD; // als Ausgang |
38 | |
39 | // ---- Soft. UART Timer Setup ----
|
40 | CCTL0 = OUT; // TXD Idle as Mark = '1' |
41 | TACTL = TASSEL_2 | MC_2; // SMCLK, continuous mode |
42 | |
43 | __bis_SR_register (GIE); // interrupts enabled |
44 | |
45 | printfEasy ("Hello World\n\r"); |
46 | |
47 | while (1) {} |
48 | }
|
49 | |
50 | // ---- simple printf ----
|
51 | |
52 | void printfEasy (const char *s) |
53 | {
|
54 | while (*s) { |
55 | putChar (*s++); |
56 | }
|
57 | }
|
58 | |
59 | // TXing a byte
|
60 | void putChar (uint8_t c) |
61 | {
|
62 | while (CCTL0 & CCIE); // Warten bis die ISR alle BITs ausgesendet hat |
63 | TXByte = 0x200 | (c << 1); // Char + Stop BIT in TXByte einfügen |
64 | CCR0 = TAR + 16; |
65 | CCTL0 = CCIS0 | OUTMOD0 | CCIE; // re-Enable Interrupts, trigger Transmit ISR |
66 | }
|
67 | |
68 | // Timer A0 interrupt service routine
|
69 | #pragma vector=TIMERA0_VECTOR
|
70 | __interrupt void Timer_A (void) |
71 | {
|
72 | if (TXByte) { // Wenn alle BITs ausgesendet sind... |
73 | (TXByte & 1) ? (CCTL0 &= ~ OUTMOD2) : (CCTL0 |= OUTMOD2); |
74 | TXByte >>= 1; |
75 | CCR0 += BitTime; // BIT Zeit aufaddieren |
76 | } else { |
77 | CCTL0 &= ~ CCIE; // ...disable interrupt |
78 | }
|
79 | }
|
Anbei der Code.
Danke. Ich werde mich aber wohl weiter kümmern müssen, ich brauche die 16Mhz CPU Clock und nicht zu letzt muß ich auch mit der RS232 empfangen können. Außerdem noch SPI mit der USI .. Mal gucken, habe noch nie einen MSP430 näher behandelt. Das mit den Typen scheint mir reichlich unübersichtlich zu sein. Gruß, Holm
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.