Forum: Mikrocontroller und Digitale Elektronik Bootstrap-loader am MSP430 aktivieren


von Black F. (black_friday)


Lesenswert?

Hallo,
vieleicht kann mir jemand von Euch hier im Forum weiterhelfen.
Ich habe mir einen Sensor gebaut, in dem ein MSP430 arbeitet. Da der 
Sensor draußen angebracht weden soll, will ich ihn vergießen, jedoch 
später trotzdem noch die Möglichkeit haben, die Firmware zu ändern.
Über den im MSP430 standardmäßig integrierten Bootstrap-loader sollte 
das eigentlich funktionieren.
Mein Problem ist jetzt nur, dass ich an dem Sensorstecker nur noch max. 
1 Leitung frei habe, alle BSL-Adapter, die ich bislang gefunden habe, 
jedoch mindestens 2 Leitungen (zusätzlich zur RS232 Schnittstelle) 
benötigen.
Gibt es auch eine andere Möglichkeit, den BSL zu aktivieren oder kann 
man die Standardschaltung so umstricken, dass man mit einer nach außen 
geführten Leitung auskommt?

von Stefan (Gast)


Lesenswert?

Also ich nehme mal an, dass Du mit "RS232 Schnittstelle" die beiden 
BSL_TX und BSL_RX Signale meinst?!
Wenn ja, dann brauchst Du keine weiteren Pins mehr, denn Du kannst den 
BSL per Software starten.
Schau Dir die SLAA089.pdf von TI an.
Die Frage ist dann nur, wie Du dem µC sagst, er soll jetzt die 
Software-BSL-Start-Routine starten?

von Christian R. (supachris)


Lesenswert?

Hmm...genau an dem Punkt bin ich auch hängen geblieben. Ich möchte auch 
den BSL aus der Software heraus starten, hab´s aber nicht geschafft, mit 
der in der SLAA089 geschriebenen Befehlsfolge landet der MSP im Nirvana. 
Komisch.
Ansonsten wäre Spy-Bi-Wire vielleicht eine Alternative.

von Stefan (Gast)


Lesenswert?

Was heißt bei Dir, er landet im Nirvana?
Nach Ausführung der Befehlsfolge befindet sich der µC im BSL-Modus, 
sprich er reagiert nur noch auf Befehle, die über den BSL_RX-Pin 
reinkommen. Die "normale" Applikation wird nicht mehr ausgeführt!

Oder was meinst Du?

von Christian R. (supachris)


Lesenswert?

Schön, wenn es so wäre. Nachdem ich an Adresse 0x0C00 gesprungen bin, 
reagiert er nicht auf BSL-Kommandos, und macht nach einer Weile meistens 
einen Neustart, manchmal döst er bei irgendwelchen Adressen ganz unten 
rum. Irgenwas scheint da noch nicht zu stimmen.

Ich versuche so in den BSL zu kommen:
1
void EnterBootloader(void)
2
{
3
  BCSCTL2 = 0x00;
4
  WRITE_SR(0);
5
  asm("mov #3072, R15");
6
  asm("br R15");
7
  
8
}

von Stefan (Gast)


Lesenswert?

Du darfst ja auch nicht nach 0x0C00 springen, sondern an die Adresse, 
die in 0x0C00 steht!

daher ja auch: br &0x0C00

von Christian R. (supachris)


Lesenswert?

Achja, stimmt, das hatte ich falsch verstanden. Irgendwie rödelt er 
jetzt zumindest schon mal weiter. Mal sehn, ob ich Kontakt zum 
Bootloader bekomme.

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.