Forum: Mikrocontroller und Digitale Elektronik MSP430 mehr als 16kB Daten


von Robert B. (robai)


Lesenswert?

Hallo zusammen,

ich müsste mit einem MSP430 einen Sound abspielen. Dazu will ich einfach 
die Samples auf dem ADC ausgeben, auf nen Audioverstärker und dann auf 
nen Lautsprecher. Ich vermute hier nicht das Problem. Das Problem wird 
wohl eher, den Sound ohne zusätzliche Bauteile (also im Flash-ROM) des 
MSP zu speichern. Zumindest mit dem Code Composter. Oder, und das ist 
die Frage, liege ich da falsch?

Mal folgende Annahme. Ich möchte 8kHz, 8bit und 3 Sekunden speichern. 
Dann wären wir ja schon bei 24kByte + Code

Ist die Gesamtgröße des beschreibbaren Flash bei der light-Version auf 
16kB beschränkt oder nur die Code-Größe? Ich möchte größtenteils ja 
Daten darin speichern, der Code wird sich stark in Grenzen halten. Hab 
das noch nie ausprobiert und auch grad kein laufendes System zur Hand, 
in das man mal Daten schreiben könnte.

Sollte das mit dem CCE nicht gehen, hat jemand schon mal mit der 
Platinum Version mit nem MSP430 gearbeitet? Geht das da? zumindest in 
den ersten 30 Tagen?

Danke schonmal!

Grüße
Robert

von Peter D. (pdiener) Benutzerseite


Lesenswert?

>die Samples auf dem ADC ausgeben

Der ADC gibt nichts analoges aus.
Ein ADC ist ein Analog nach Digital Wandler, er ließt Analogwerte ein 
und liefert sie als digitale Repräsentation.

Wenn das nicht das Problem ist, dann würde ich einfach den 
unbeschränkten MSPGCC verwenden und das Codegrößenproblem gibt es nicht 
mehr.

Grüße,

Peter

von Robert B. (robai)


Lesenswert?

Ahh.. sorry, ich meinte natürlich den DAC (MSP430F2619). Danke erstmal 
Peter für den Hinweis und die Idee mit dem MSPGCC.

Ja, daran hatte ich auch schon gedacht. Hab halt bisher immer mit dem 
Code Composer gearbeitet.
Gibt es für die freie Umgebung nen Debugger? Würde gerne über SpyByWire 
debuggen können und das geht wahrscheinlich nur mit dem CC oder?

Hat jemand schon probiert, mehr als 16kB mit dem CC auf nen MSP zu 
bekommen, wenn der Großteil davon Daten sind? Oder kann das auf die 
Schnelle mal jemand probieren? Es is ein recht dringendes Problem und 
ich würde gerne am WE die Schematics machen und hab bis dahin keinen 
Zugriff mehr auf ein System, mit dem ich das selbst ausprobieren kann.

Grüße und danke
Robert

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Es gibt den gdb als Debugger, ich glaube, der mspgcc lässt sich sogar 
irgendwie in Code Composer Studio integrieren.

Das mit der Codegröße hab ich nur mal mit einer alten Version von Code 
Composer Essentials ausprobiert, da war es so, dass zu den 16 kB nur das 
Codesegment zählt, nicht das Datensegment.

Wie das mit Code Composer Studio jetzt ist, weiß ich nicht. Ich verwende 
die Version 4 davon nicht.

Grüße,

Peter

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn Du die abzuspielenden Daten nicht im Programm selber unterbringst, 
sondern das Programm diese Daten über eine der seriellen Schnittstelle 
laden und selbst ins Flash-ROM programmieren lässt, hast Du kein 
Codegrößenproblem. Und die erweiterte Funktionalität, daß Du Deinen 
Aufbau ohne Neuprogrammierung mit neuen Audiodaten beschicken kannst.

von Pothead (Gast)


Lesenswert?

Da hast du keine Probleme. Einfach die Daten als Assembler-Listing 
einfügen und gut ist. Das wird nicht auf die Beschränkung angerechnet. 
Und: Lass den Composter, nimm IAR.

DC8 0x01 0x02 ...

von Robert B. (robai)


Lesenswert?

@Rufus: Danke für den Vorschlag. Ich werde auf jeden Fall eine serielle 
Schnittstelle vorsehen, um mir diesen Weg offen zu halten.

@Pothead: IAR gibts nur als Demo-Version für 30 Tage oder? Für dieses 
Projekt wäre das auf jeden Fall ausreichend. Muss, wie gesagt, ziemlich 
schnell fertig werden. Fand halt den CC bisher immer recht komfortabel, 
weil man nix groß konfigurieren musste.

von Robert B. (robai)


Lesenswert?

@Pothead: Noch ne Frage: Ist das unten schon das Assembler Listing? Hab 
sowas noch nie gemacht. Kannst du ein Minimalbeispiel posten, in dem man 
irgendwo die Daten als ASM Listing definiert und in C-Code drauf 
zugreift? Oder ein Link, wo ich das finde. Das wäre super.

Danke und Gruß
Robert

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Wenn es geht, Constantenarrays hinzuzufügen, ohne, dass das als 
Codegröße gezählt wird, dann auch in C:
1
const signed int sound[] = 
2
{
3
  1, 24, -15, 27 //usw.
4
};

Der Zugriff funktioniert genau so wie auf normale Arrays, mit der 
Ausnahme, dass die Daten durch das "const" eben im Programmspeicher 
liegen. Das ist beim MSP430 wegen der Von-Neumann-Architektur viel 
einfacher als beim AVR.
1
  signed int Destination;
2
  Destination = sound[0]; //ließt das erste Sample und schreibt es in das Ram (Variable Destination)

Grüße,

Peter

von Robert B. (robai)


Lesenswert?

Sauber Peter! Das wäre natürlich am einfachsten, wenn es so gehen würde. 
So hatte ich mir das eigentlich erhofft. Ich werde es erstmal so 
probieren.

Gruß und vielen Dank
Robert

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.