Ich hab das Eval Board MSP-TS430PZ100 von Texas Instruments und hab gerade mal angefangen mich mit dem Teil vertraut zu machen. Ich hab zwar Kenntnisse in 80C167 und PIC Programmierung und darf ruhig behaupten, dass ich nicht schlecht darin bin, aber der MSP will einfach nicht. Ich hab einen 32768Hz Uhrenquarz aufs Evalboard gelötet, ohne Kondensatoren, aber die kann man ja intern konfigurieren. Ich hab einen RS232 Adapter mit ST3232CN der die Verbindung zwischen PC und MSP herstellt. Spannung ist auf 3V eingestellt und sämtliche Massen miteinander verbunden. Mit HyperTerminal empfange ich sogar etwas aber leider das falsche :-( Kann mir zufällig werd den Code, C-Code, rüberschicken, aber ich weiß nicht was das ist und habe keine Zeit mich länger damit zu beschäftigen, weil es ist Teil einer Projektarbeit für die Schule und mich stresst eh schon alles. Entweder ist die Hardware kaputt oder ich bin zu dämlich dafür ;-) Also die UART0 soll verwendet werden mit 9600 BAUD, Interrupts interessieren mich jetzt mal nicht, weil ich verwende zur Zeit eine while(1) und ein Delay, damit immer der gleiche Char rausgeschrieben wird und keine Konflikt entsteht. Hat zufällig wer einen C-Compiler für den MSP430F449, aber mit Windows Oberfläche?
Wenn ich mich nicht irre ist standardmäßig der interne Oszillator aktiviert; ändern kann man das zur Laufzeit in irgendwelchen Registern. Einen kostenlosen, uneingeschränkten Compiler mit Windows-Oberfläche gibt es nicht.
Hallo, zuerst im 449 die FLL initial.: InitFll(TRUE,108,1); Damit läuft dann SMCLK mit 7.1434 MHz Dann Uart initial.: /******************************************************* Initialisieren der USART0 Eingestellt wird UART-Mode ********************************************************/ USHORT InitUARTPhysical(USHORT teiler) { P2SEL |= 0x30; // Alternativfunktionen (TxD RxD) // USART Controlregister U0CTL U0CTL = CHAR; // Reset USART und 8Bit pro Zeichen // Transmitcontrolregister U0TCTL U0TCTL = SSEL0 | SSEL1; // Taktquelle auf SMCLK setzen // Receivercontrolregister U0RCTL = 0x00; // Baudratenregister U0BR0 = teiler & 0xff; U0BR1 = (teiler >> 8) & 0xff; // Moduleenableregister1 ME1 |= (UTXE0 + URXE0); // Enable USART0 TXD/RXD IE1 |= URXIE0; // Enable USART0 RX interrupt U0CTL &= ~SWRST; return(0); // Kein Fehler } unsigned short InitFll(BOOL dcoplus, UCHAR n, UCHAR d) { if(dcoplus == TRUE) FLL_CTL0 = XCAP0PF | DCOPLUS; else FLL_CTL0 = XCAP0PF; SCFQCTL = (n & 0x7f); // Multiplikationsfaktor setzen SCFI0 = ((d & 3) << 6) | FN_3; return(0); } jetzt nocht die Defs. : typedef enum {FALSE,TRUE} BOOL; typedef unsigned char UCHAR; #define FRQ_MCLK 7143424 // Frequenz des Mastertaktes #define BAUDRATE 9600 #define BRTEILER FRQ_MCLK/BAUDRATE Es muessen natuerlich die Interruptroutinen vorhanden sein, damit man was empfangen oder senden kann. Hier ist nur der Empfangsinterrupt freigegeben. der Sendeinterrupt wird bei Bedarf benutzt. Die 7.xxx Mhz habe ich gewaehlt, da bei dieser Frequenz die Leistungsfaehigkeit des MSP bei mit (Vcc=3.3V) voll ausgenutzt wird und der Fehler der tatsächlichen Baudratenfrequnz verglichen mit der Sollfrequenz klein ist. MfG
Am besten fängst Du mit den Beispielen von Ti an, um erstmal zu testen ob die serielle Schnittstelle richtig angesprochen wird, denn die hat ja selbst bei einer Geschwindigkeit noch dutzende Modi. Von IAR gibt es eine kostenlose Version bis 4 kB Code und von anderen ähnliches, was meist Laufzeitbeschränkt ist. Es gibt aber den kostenlosen MSPGCC. Ich benutze den unter Linux mit der bash, aber auch für Win gibt's dazu kostenlose Oberflächen.
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.