Forum: Mikrocontroller und Digitale Elektronik MSP430 Bootloader


von Ralf Walter (Gast)


Lesenswert?

Hallo miteinander,

ohne mittlerweile mit dem MSP430 ins Eingemachte gegangen zu sein
interessiert mich aus aktuellem Anlass die Möglichkeit, einen bereits
bestückten µC per Bootloader programmieren zu können. Hat jemand das
schon in der Schublade liegen??
Hintergrund ist der, dass idealerweise so eine Art transportabler
Programmierapparillo gebastelt werden soll, der dann auf Knopfdruck das
Target programmiert. Man könnte beispielsweise dann jemandem, der
überhaupt keine Ahnung von nix hat, dieses (schon programmierte)
Handgerät zusenden und derjenige braucht das Dings dann nur noch
kontaktieren und Knöpfchen drücken. Simmsalabim, die "Fernwartung"
ist fertig!!
Gerne kann ich auch die Hardware beisteuern (mit professionell
hergestellten und bestückten Platinen o. ä.), wenn jemand die passende
Software zur Vewrfügung stellt.
Im Zuge der Vorbereitung habe ich mir Mini-Platinen herstellen lassen,
die ALLE Pins nach aussen führen (also ähnlich den
OLIMEX-Spielzeugen)und auch schon 8MHz-Resonator, RS485-Baustein usw.
enthalten.
Will da jemand mitspielen??

Bye

Ralf

von Zimmi (Gast)


Lesenswert?

Hiho,
wenn ich Dich richtig verstehe, suchst Du etwas, was TI mit seinen
EV-Boards bereits bietet. Die kann man wahlweise ueber JTAG als auch
BSL ISP programmieren. (siehe
http://focus.ti.com/docs/toolsw/folders/print/msp-fet430p120.html)
BSL-Programmiergeräte bietet. z.B. recht preisguenstig
http://www.gessler-electronic.de/msp430/
an.
Gruss
Zimmi

von Ralf Walter (Gast)


Lesenswert?

Hallo Zimmi,

genau DAS hatte ich ja ausgeschlossen!!! Ich will nix, wo auf der einen
Seite ein PC dranhängen muss (ausser zur einmaligen Programmierung des
Masters).
Also nochmal in Kürze:
Kleines Kästchen, batteriebetrieben, Knöpfchen für START,
Kabelschwänzchen für die ISP per Bootloader (nicht mit JTAG wegen
zerballerter Fuses)
Dieses Kästchen wird dann programmiert (mit PC und IAR) und kann dann
als Stand-Alone-Einheit z. B. in der Hosentasche mitgenommen werden, um
dann eben mal vor Ort in der Produktion o. ä.
"mal-eben-aus-der-Hüfte-scheissend" einen MSP per ISP programmieren
zu können.

Sorry, ich hatte meine Mail-Adresse in der Eile falsch geschrieben. Nun
stimmt sie aber.

Bye

Ralf

von KoF (Gast)


Lesenswert?

hmm...
ich glaube, ich habe mal irgendwo ein msp-jtag-stack gesehen... glaube
es war sogar ne appnote von ti.
wenn du die in einen msp gießt, dazu eventuell noch ein serielles flash
(vielleicht reicht ja ein 24C512(i2c-eeprom) oder eins von
atmel-dataflashs(spi)) und noch ne schnittstelle zum beschreiben des
flashs/eeprom und dann könnte es klappen.

von szimmi (Gast)


Lesenswert?

Hiho nochmal,
wenn die ganze Sache reif ist, lass es mich wissen, waere daran
interessiert (gegen ein gewisses Entgelt versteht sich).
Ich werde in naher Zukunft eine andere Sache in Angriff nehmen,
naemlich einen Bootloader, welcher im Segment 0 abgelegt wird. Dieser
wird einmalig geflasht und dann nicht mehr angefasst. Über diesen kann
dann die Applikation über die UART in den Controller gelangen. Bei den
meisten MSP430-Anwendungen wird bei uns nur die UART herausgeführt und
nicht die BSL/JTAG-Leitungen. Sonst waere die Sache ja zu einfach.Falls
jemand diesbezueglich schon Vorarbeit geleistet hat, einfach melden,
vielleicht könnte man das ganze koordinieren.

von Ralf Walter (Gast)


Lesenswert?

Hallo Szimmi,

prinzipielle wäre ich auch an einer Programmierung über die UART sehr
interessiert, weil auch wir schon mal Anwendungen haben, wo (wegen
Verguss) eine nachträgliche Umprogrammierung über BSL/JTAG nicht
möglich ist....
Melde Dich mal, wenn so was in Angriff genommen wird.
Oder ich setze mich in einer ruhigen "Minute" mal selbst dran...

Bye

Ralf

von Florian (Gast)


Lesenswert?

Der MSP430 hat keine FUSEBITS. Alles wird während dem laufen
programmiert. Man kann also unter keinen Umständen mit einem Programm
das Programmieren verhindern.

von Ralf Walter (Gast)


Lesenswert?

Hallo Florian,

Du hast die Bemerkung "wegen Verguss" überlesen!
Die Programmierung über BSL/JTAG ist nicht mehr möglich, weil die
Kontakte einfach nicht mehr zugänglich sind.
Wieder einmal gilt hier die alte Newsgroup-Weissheit:
Lesen->überlegen->verstehen->Antwort schreiben->nochmal überlegen->dann
erst absenden!

von Florian (Gast)


Lesenswert?

Ich wollte lediglich darauf hinweisen, dass der MSP430 keine Fusebits
hat.
So wie das in dem Post steht, kommt da erstmal nix mit vergiesen raus,
da s steht erst später dort.
Auch der hinweis, dass bloß die Uart herausgeführt wird kommt erst
später.
TI hat in seinen softwarebeispielen beschrieben, wie man das rom
programmieren kann. Da würd ich mich mal drann orientiern. Wenn das
geht muss man dann bloß noch die kommunikation über uart dranbauen.

von Tenner (Gast)


Lesenswert?

"Der MSP430 hat keine FUSEBITS. Alles wird während dem laufen
programmiert. Man kann also unter keinen Umständen mit einem Programm
das Programmieren verhindern."

florian, das ist so nicht ganz richtig, der msp hat am jtag eine fuse
die mit entsprechendem strom "durchgeschossen" werden kann. ein
programmieren über das jtag ist dann nicht mehr möglich.

der bsl ist durch ein programmierbares 256 bit passwort geschütz. das
macht zwar ein neuprogramieren nicht unmöglich, erschwert es aber
zumindest.

von Florian (Gast)


Lesenswert?

Das sind dann aber mit sicherheit keine FUSEBITS ala avr.
Und so stands in dem Post drinn.

von TheMason (Gast)


Lesenswert?

@ralf

also ich bin zwar interessiert an einem bootloader (auch jetzt nicht
über bsl/jtag weil gibts ja schon) steh aber auch erst am anfang
(brainstorming, ausloten der möglichkeiten, ideen sammeln,
konflikte/probleme erkennen)
ich stelle mir ein bootloader vor den ich einmal in meinem msp
reinschreibe, und das eigentliche programm per rs232 oder evtl. sogar
sd/mmc karte in den msp flashe und dann das programm starte. ist
allerdings nur eine überlegung. realisiert ist da wie gesagt noch
nichts.
das größte problem wird sein den bootloader so zu programmieren das der
(bis auf jtag oder bsl) nicht zerschossen werden kann aber auch
andersherum programme die falsch geflasht wurden nicht ausführt.
ist ein nicht ganz einfaches thema (vor allem muß man aufpassen mit den
vektoren usw.) also ich glaube ne lösung aus der schublade ziehen wird
da nicht so einfach sein. und die größe des bootloaders spielt ja auch
eine rolle.

gruß
rene

von szimmi (Gast)


Lesenswert?

Hiho,
habe, wie gesagt, genau so eine Loesung im Auge.Mein Ansatz waere
folgender:
1. Bootloader (bleibt unangetastet) liegt in Segment 0 mit folgender
Funktionalität:
- Kommunikation
- Flash-Routinen
Sollte in 512 Byte reinpassen.
Die ISR-Vektoren (und zwar alle) zeigen auf feste Adressen in Segment
1
2. Applikation liegt in den verbleibenden Segmenten, wobei folgendes zu
beachten ist:
- auf den Adressen, auf welche die ISR-Vektoren zeigen, steht immer ein
CALL und danach ein RETI
- in einem Assembler-File, welches immer zu einer Applikation gelinkt
werden muß, werden die CALL Adressen definiert und muessen dann als
"ISR-Ersatz" in der Applikation verwendet werden.
- nachteilig an dieser Loesung ist, dass der CALL bei einer ISR
zusaetzlich Laufzeit kostet, aber eine andere Loesung sehe ich im
Moment nicht.
Falls jemand eine andere Idee hat, bitte melden...

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.