www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 Software laden


Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!?

Autor: Steffen (Gast)
Datum:

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

Autor: SupaChris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Steffen (Gast)
Datum:

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

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Kai (Gast)
Datum:

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

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Also P1Dir = 0xFF;

Autor: SupaChris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....

Autor: franz (Gast)
Datum:

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

Autor: SupaChris (Gast)
Datum:

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

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: SupaChris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Jörg S. (Gast)
Datum:

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

Autor: SupaChris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jörg S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: SupaChris (Gast)
Datum:

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

Autor: Jörg S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;) ).

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: szimmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: SupaChris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So sieht mein Testprogram aus:

#include<msp430x16x.h>+

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

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

Autor: szimmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Kai (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :(

Autor: Jörg S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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);
  }
}

Autor: franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.