Forum: Mikrocontroller und Digitale Elektronik MSP430 LED Cube Muster vom PC ins Flash


von reflection (Gast)


Lesenswert?

Salu zusammen

Ich habe noch ein anderes "Problem" oder besser gesagt, ich habe einfach
keinen Plan wie ich das angehen soll.

Geht immer noch um den 3D Cube

Schlussendlich möchte ich auf dem PC ein GUI haben mit welchem ich die
Muster erzeugen kann. Programmierung des GUI ist kein Problem (eine
Kollegin von mir ist ein JAVA3D Crack :o)
So, dann trudeln die Daten irgendwie über die serielle Schnittstelle zum
MSP (als File oder wie auch immer).
Ich sehe das Problem nicht darin, dass ich die Muster "online" anzeigen 
kann, aber abspeichern und bei einem Neustart des Cube (ohne PC 
Anbindung)
wieder ablaufen lassen.

Fragen die sich mir stellen:

1. Wo müssen die Daten hin? --> Flash? Wie macht man das mit der Adresse 
ect? Programmiere in C.

2. Wie spreche ich die Daten bei einem Start des MSP an?

3. Wie speichere ich die Muster ab, kann ich von diesen übermittelten
Daten auf Funktionen zugreiffen die sich bereits in meinem Programm (im
MSP) befinden? Also z.B. Delay Funktion

4. In welchem Format müssen die Daten an den MSP übertragen werden? Habe
ja keinen externen Compiler, oder übertrage ich da gleich die Hex Werte
mit denen ich den Cube steuere (MAX7221)

Sorry für die wahrscheinlich dummen Fragen, aber mit so etwas musste ich
mich halt bis Dato nie beschäftigen.

Für eine allfällige Hilfe wäre ich sehr dankbar

Gruss aus der Schweiz

reflection

von Sebastian (Gast)


Lesenswert?

Die Hex-Werte abzuspeichern scheint mir ein guter Ansatz. Ist im 
Programmspeicher genügend Platz (ein ganzer Block frei)? Soweit ich 
weiß, läßt sich der Flash nur blockweise löschen. Teile der Firmware 
dürfen dabei nicht in Mitleidenschaft gezogen werden. Wenn das nicht 
geht, wäre seriell angebundener EEPROM oder DataFlash eine Lösung (über 
SPI oder I2C). Die Firmware im MSP muß in jedem Fall geändert werden, um 
die Daten aus dem Speicher statt über die serielle Schnittstelle zu 
lesen. Vielleicht konfigurierbar über Abfrage einens externen Schalters.

von Christian R. (supachris)


Lesenswert?

Wie viel Daten hast du denn zu speichern? Und welchen MSP430 genau hast 
du? Wie man den Flash beschreibt, löscht usw. steht in einem C-Demo von 
TI. Ist bissl mehr als einfach nur drauf schreiben. Wenn du mehr als den 
INFO-Mem benötigst, musst du am besten den Compiler anweisen, dir eine 
Section dafür zu reservieren, Linker-File anpassen. Dann hast du die 
Sektoren dann auf jeden Fall frei.

von reflection (Gast)


Lesenswert?

Hallo zusammen

Also ich habe einen MSP430F149. Ouha, wiviele Daten -> keine Ahnung :o) 
Denke das ist nicht sooooooo viel. Aber eben, wie kann ich dann z.B. ein 
Delay einbauen, kann ich auf Funktionen die ich im MSP Programmiert habe 
zugreiffen, oder kann ich "nur" Werte für den MAX7221 speichern?

Sagen wir mal um eine Zeile anzuzeigen muss ich zuerst den Chip Select 
der korrekten Ebene im Cube auf Low ziehen, dann die Adresse, z.B. 0x01 
und den Wert 0xAA. So dann würde in der ersten Zeile ein Bitmuster 
erscheinen, aber dann muss ich ja warten bis ich das nächste Muster 
anzeige, ist ja sonst viel zu schnell. Muss ich dann in den Übertragenen 
Daten die Delay Funktion bereits einbauen, oder wie mache ich das?

Denke das mit dem Flash schreiben bekomm ich schon irgendwie gebacken, 
aber von der Logik der abgelegten Daten habe ich keine Ahnung. Sorry ist 
ein wenig schwer zu beschreiben, hoffe ihr kommt trotzdem draus!

Greets reflection

von Sebastian (Gast)


Lesenswert?

Die "Musteranzeigeroutine", oder zumindest die Funktionen davon, die 
immer gleich sind - wie Ausgeben der Daten an den MAX7221 und warten - 
sollten schon in der MSP-Firmware realisiert werden. Im MSP läuft dann 
ein "Abspielprogramm" für die am PC vorbereiteten Daten, die an den 
MAX7221 gesendet werden sollen.

von Christian R. (supachris)


Lesenswert?

Du könntest das z.B. so in linearer Darstellung machen:

Anzahl Datenwerte
Adresse
Datenwert
Delay
Adresse
Datenwert
Delay....

Dann musst du das am PC ausrechnen, und übertragen. Allerdings musst du 
schon wissen, wieviele Datensätze zu einem Muster gehören, woher sollen 
wir das wissen? Die Funktionen sind natürlich in der Firmware fest, du 
nimmst dann lediglich die Parameter aus dem Flash und führst eine nach 
der anderen aus. Ganz vorne steht ja, wieviele Muster pro Durchlauf 
sind.

von reflection (Gast)


Lesenswert?

Hö, so einfach kann die Welt sein. Danke für die Hilfe, denke ich habe 
es jetzt kapiert wie ich es machen muss. Ist ja eigentlich auch logisch!

Mit ich weiss nicht wieviel Daten, meinte ich, dass ich halt nicht genau 
weiss wie ein Muster aufgebaut ist. Kann ja z.B. nur aus einem 
Buchstaben bestehen, aber genau so gut kann es aus einem anzuzeigenden 
String bestehen. Dann wären das natürlich viel mehr Daten.

Werde mich mal ins Flash Proggen einlesen. Habe schon den slaa von TI 
durchgelesen und das scheint einigermassen klar. Also das mit Flash 
freigeben ect.

Werde mich wieder melden wenn noch Fragen auftauchen sollten!

Merci schonmal für die Antworten

Gruss reflection

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.