Forum: Mikrocontroller und Digitale Elektronik MSP430 Software laden


von franz (Gast)


Lesenswert?

Servus Leute!

Blöde Frage, aber irgendwie komm ich nicht drauf! Ich habe ein
MSP430F169 Header Board mit JTAG USB TINY und check einfach nicht, wie
ich die Software von der IAR Kick Start Umgebung in meinen Prozessor
laden kann. Muss doch irgendwie gehen, oder?
Ich kann nur compilen und debuggen. So schwer kann das doch nicht sein
... muss doch irgendwo einen Button geben "Load Software in
Processor" oder was auch immer!?

von Steffen (Gast)


Lesenswert?

hast du in den Projekt Options von Simulation auf FET Debugger
umgestellt? schau mal...

von SupaChris (Gast)


Lesenswert?

Wenn man dann wie oben geschrieben den Debugger ausgewählt hat, wird bei
jedem Start des Debuggers das Programm in den Flash geladen. Man sollte
aber Suppress Download ankreuzen, damit man bei einem bloßen
nachgucken, was der Przessor macht, nicht jedesmal den Flash
strapaziert.

von Steffen (Gast)


Lesenswert?

stimmt, auf jeden fall ist beim anlegen eines neuen projektes
standardmäßig die simulation eingestellt...

von franz (Gast)


Lesenswert?

ich glaube es funktioniert, zumndest passiert was !
Aber wenn ich einen Port mit 1 belege muss ich da doch gegen Vss auch
einen Spannung messen können?

von Kai (Gast)


Lesenswert?

hast du angegeben, dass der entsprechende Portpint ein Ausgang sein
soll? PxDIR = ...

von franz (Gast)


Lesenswert?

Ja. Also P1Dir = 0xFF;

von SupaChris (Gast)


Lesenswert?

Das sollte dann stimmen. Es sei denn, du hast noch P1SEL irgendwie
deklariert. Aber auf P1 sind ja keine Zusatzfunktionen, wenn ich mich
recht erinnere....

von franz (Gast)


Lesenswert?

Ich habe P1SEL=0x00; sollte ich das vielleicht mal weglassen, oder?

von SupaChris (Gast)


Lesenswert?

0 schaltet die normale Portfunktion ein. 1 wäre die alternative
Funktion, aber da wäre ja eh nur der SMCLK irgendwo...

von franz (Gast)


Lesenswert?

Nochmal blöde Frage: Liege ich in der Annahme falsch, dass ich das
Header Board ohne den zusätzlichen Oszillator Q2 lediglich mit dem
JTAG-Anschluss in Betrieb nehmen kann?

von SupaChris (Gast)


Lesenswert?

Ahsoooo...dann is kein Wunder das nicht läuft. Ich nehme an, du hast gar
keinen Quarz drauf, oder? Auf dem original TI Header Board fehlen ja
beide Quarze. Also der X1 muss mindestens bestückt sein, sonst läuft
natürlich nix los. Im Debugging-Mode wird im Einzelschrittbetrieb auch
so das Programm abgearbeitet, aber ohne Quarz läufts nicht.
Wenn der 32Khz Quarz an XT1 bestückt ist, müsste das Programm auch so
anlaufen. Es sei denn, du schaltest den Takt auf den XT2 um, dann is
natürlich auch nix...

von Jörg S. (Gast)


Lesenswert?

Der MSP hat doch einen internen DCO, der läuft auch ohne externe Quarze.

von SupaChris (Gast)


Lesenswert?

Da muss aber ein Oszillator-Widerstand angeschlossen sein. Ganz ohne
alles gehts nicht. Der DCO macht ja ähnlich einer PLL eine höhere aus
einer niedrigeren Frequenz.

von franz (Gast)


Lesenswert?

Also ein 32,768 kHz Quarz ist auf dem Header Board drauf. Die Anschlüße
dafür sind auf der Platine mit Q1 und Q3 bezeichnet. Den Takt schalte
ich gar nicht. Sollte ich den vorher irgendwie schalten?

von Jörg S. (Gast)


Lesenswert?

Ohne Widerstand geht's auch :) Mit dem Widerstand kann man die
Genauigkeit erhöhen, aber wenn man nicht gerade UART mit der Kiste
machen will, geht es auch so.

Nach dem "booten" ist ja kein Register gesetzt, d.h. externe Quarze
oder der Widerstand sind nicht eingeschaltet. Somit muss man diese
Sachen alle erst einstellen. Und das Einstellen kann man natürlich nur
erledigen, wenn der µC auch rennt.

von SupaChris (Gast)


Lesenswert?

Stimmt, das sind dann immer die berühmten ~800Khz aus den App-Notes.

von Jörg S. (Gast)


Lesenswert?

Ich betreibe beispielsweise einen MSP430F122 und einen MSP430F2012 ohne
externe Quarze und ohne Widerstand. Mit ein wenig einstellerei geht
auch der UART beim F122 problemlos (zumidest bei Zimmertemperatur ;) ).

von franz (Gast)


Lesenswert?

Also müsste der 32,786 Quarz auf dem Header Board reichen, um den
MSP430F169 in Betrieb zu nehmen!?

Aber trotzdem kann ich keine Spannung am Ausgang erzeugen, wenn ich
z.B. P1.0 auf "1" setze.
Oder liegt es an meinem Programm? Aber das hatten wir vorher schon mit
P1DIR = 0xFF; usw.
In den Controller kann ich, wie es zumindest den Anschein hat, die
Software laden, wenn ich den FET-Debugger einstelle.
Die Versorgungsspannung des Controllers bekomme ich über den
JTAG-Anschluss. Ich kann dabei auch 3,3V zwischen AVcc und AVss bzw.
zwischen DVcc und DVss messen
Das müsste doch dann gehen, oder?

von szimmi (Gast)


Lesenswert?

Hiho,
nochmal,der MSP läuft auch ohne Quarz. Ohne jegliches Zutun (ausser
natuerlich den Watchdog stoppen), läuft der MSP mit dem internen
DCO(ca. 800 kHz) los. Poste mal bitte Dein Programm.

von SupaChris (Gast)


Lesenswert?

Hast du eingestellt: "Leave Target Running?" Da war doch bei der IAR
da irgendwo nan Haken zu setzen, oder so nen Button.
Ist der Wachhund gestoppt? Der setzt in der Ausgangskonfiguration alle
~32ms den Prozessor zurück.

von franz (Gast)


Lesenswert?

So sieht mein Testprogram aus:

#include<msp430x16x.h>+

void main(void)
{
 WDTCTL=WDTPW+WDTHOLD;
 P1DIR = 0xFF;
 P1OUT = 0x00;

 while(1)
 {
  P1OUT = 0xFF;
 }
}

von szimmi (Gast)


Lesenswert?

Das Programm sieht gut aus. Mal eine provokante Frage,nicht persönlich
nehmen:
Bist Du sicher, dass Du an Pin 1.0 die Spannung misst?
Wenn der Debugger läuft, kannst Du auch versuchen, im C-Spy über die
Anzeige der Register (Port1) die Direction und den Output mal online zu
setzen.

von franz (Gast)


Lesenswert?

Also ich bin mir eigentlich schon sicher, P1.0 entspricht dem Pin 12 des
Header Boards von dort messe ich gegen DVcc. Das müsste doch so sein,
oder?

von Kai (Gast)


Lesenswert?

Vielleicht ist es nur ein Schreibfehler von dir, aber du musst gegen
DVss messen. DVcc ist die Versorgung P1 hast du ja auf high, d.h.
Versorgung gesetzt. Somit hast du dann dort eine Spannung von 0V.

von franz (Gast)


Lesenswert?

Schreibfehler hab ich eigentlich nicht. Hab beim Compilen und Simulieren
keine Fehlermeldungen.
Vielleicht bin ich echt zu blöd zum messen :( . Das komische ist, ich
habe sowohl gegen DVcc als auch gegen DVss gemessen und hab aber immer
0V. Ich müsste doch dann, wenn P1 low ist eine Spannung von 3,3V gegen
DVcc und 0V gegen DVss messen und wenn P1 high ist eine Spannung von
3,3V gegen DVss messen und 0V gegen DVcc messen können.
Versorgungsspannung ist auf jeden Fall da: 3,3V
Ich könnte echt heulen, dachte das wäre ne Sache von 30 Minuten für den
ersten Funktionstest und jetzt häng ich schon fast 'ne Woche drüber und
nix geht :(

von Jörg S. (Gast)


Lesenswert?

So viele möglichkeiten was falsch zu machen gibt es doch eigentlich
überhaupt nicht :)

Hast du dir mal die Code Examples von Texas angeschaut?
http://www-s.ti.com/sc/techzip/slac015.zip

//*******************************************************************
//  MSP-FET430P140 Demo - Software Toggle P1.0
//
//  Description: Toggle P1.0 by xor'ing P1.0 inside of a software
loop.
//  ACLK= n/a, MCLK= SMCLK= default DCO ~800k
//
//                MSP430F149
//             -----------------
//         /|\|              XIN|-
//          | |                 |
//          --|RST          XOUT|-
//            |                 |
//            |             P1.0|-->LED
//
//  M. Buccini
//  Texas Instruments Inc.
//  Feb 2005
//  Built with IAR Embedded Workbench Version: 3.21A
//*******************************************************************

#include  <msp430x14x.h>

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer
  P1DIR |= 0x01;                            // Set P1.0 to output
direction

  for (;;)
  {
    volatile unsigned int i;

    P1OUT ^= 0x01;                          // Toggle P1.0 using
exclusive-OR

    i = 50000;                              // Delay
    do (i--);
    while (i != 0);
  }
}

von franz (Gast)


Lesenswert?

Ok, ich probier das mal aus.
Noch ne Frage im Debug Log Fenster erhält man Rückmeldungen beim laden
des Programs. Die letzte Meldung heißt bei mir dann Target Reset. Heißt
das, dass beim laden meines Programms in den Controller dieser direkt
wieder geresetet wird, so dass mein Programm schon gar nicht mehr
läuft, wenn ich messe?

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
Noch kein Account? Hier anmelden.