MSP430 Launchpad (MSP-EXP430G2) TUSB als Uart?

Gast #3181266
Lesenswert?
• ▲
▼
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
Gast #3182285
Lesenswert?
• ▲
▼
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
Gast #3182441
Lesenswert?
• ▲
▼
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.
Gast #3184148
Lesenswert?
• ▲
▼
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

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.