Forum: Mikrocontroller und Digitale Elektronik MSP430 mit externem Speicher Code


von Luis (Gast)


Lesenswert?

Hallo zusammen,

Ich bin gerade an einem Projekt beschäftigt, bei dem ich gerne den 
MSP430F5529 verwenden möchte. Da ich hier allerdings Daten mitloggen 
möchte, ist mir der interne Speicher zu klein und benötige deshalb einen 
externen Speicher.

Der MSP verfügt ja nun leider nicht über ein Speicherinterface, weshalb 
die Kommunikation mit dem externen Speicher(über serielle Schnittstelle) 
selbst gecodet werden muss.


Mein Frage hierzu wäre:
Gibt es iwo eine Art Sample-Code (.c), wie diese Kommunikation 
realisiert werden könnte?

Oder gar ein bestehendes Projekt, bei dem ein Code verfügbar ist?


Würde mich über Eure Hilfe freuen.



Vielen Dank.


Gruß

Luis

von Jörg S. (joerg-s)


Lesenswert?

Wenn du nicht weißt welcher Speicher (und somit welches Interface) du 
hast, wird dir Sample Code wohl nichts bringen.
Oder was verstehst du unter "serielle Schnittstelle". SPI? I2C?

von Eumel (Gast)


Lesenswert?

Um was für einen mysteriösen Speicher geht es denn?

von G-Forma (Gast)


Lesenswert?

Meinst Du, Du waerst nicht schneller zu Erkenntnissen gekommen, wenn Du 
einfach
eine Suchmaschine angeworfen haettest?

von Luis (Gast)


Lesenswert?

Hätte da an SPI gedacht.

Der Speicher ist tatsächlich noch mysteriös, da ich mich noch nicht 
entschieden habe.

Ich würde mich einfach gerne mal einlesen, was Code-seitig alles nötig 
ist, um diese Anbindung realisieren zu können.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn es um das (dauerhafte) Aufzeichnen von Daten geht, ist die 
Verwendung von SD-Karten als externer Speicher nahezulegen, die Dinger 
sind spottbillig, problemlos am PC zu lesen und bieten ganz erhebliche 
Speicherkapazität.

Was Du also benötigst, ist Code für die Ansteuerung von SD-Karten; der 
ist von den Low-Level-Routinen zur Ansteuerung der Hardwareschnittstelle 
(SPI oder "hand-made" per Bit-Banging) nicht vom verwendeten Controller 
abhängig, und leicht mit der Forensuche zu finden.

Es empfiehlt sich allerdings, das für die SD-Karte vorgesehene 
Dateisystem (FAT16 bei SD, FAT32 bei SDHC) zu verwenden und nicht auf 
fest adressierte Datenblöcke zurückzugreifen, denn das erschwert das 
spätere Auslesen am PC erheblich. Der 'F5529 bietet mit 128 kiB Flash 
auch ausreichend Codespeicher für die Implementierung eines richtigen 
Dateisystemtreibers.

von Luis (Gast)


Lesenswert?

Ok, Danke schon mal hierfür.

SD-Karte wollte ich jedoch keine verwenden, falls möglich.


Allzu dauerhaft müssten die Daten gar nicht verfügbar sein.

Ganz konkret ist es eher so, dass ich die Daten auf nem LCD-Display 
darstellen möchte. Dies könnten dann zum Beispiel die letzten 5-10 
abgespeicherten Werte sein.

Danach können diese aber gerne wieder überschrieben werden oder 
Ähnliches.

Hätte da vll an ein FRAM oder MRAM mit SPI-Schnittstelle gedacht.

von Eumel (Gast)


Lesenswert?

Luis schrieb:
> Dies könnten dann zum Beispiel die letzten 5-10
> abgespeicherten Werte sein.

Und das passt nicht ins Ram rein? Sollen die Daten denn nach dem 
ausschalten erhaltenbleiben?
Nimm doch einfach ein simples i2c/spi EEPROM. Dafür wirds auch genügend 
Beispiele geben.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Luis schrieb:
> Dies könnten dann zum Beispiel die letzten 5-10
> abgespeicherten Werte sein.

Wieviel Speicher meinst Du denn zu benötigen?

von Dr G. Reed (Gast)


Lesenswert?

Recht brauchbar sind auch zB die Atmel DataFlash, werden auch per SPI 
angesteuert und gibts bis etliche MegaBit im SO8 Gehäuse

Die sind auch um einiges einfacher als eine SD Karte anzusteueren, halt 
ohne Dateisystem...

von Luis (Gast)


Lesenswert?

Ob es in den internen Speicher passt, is fraglich, vll müssens auch mal 
mehr Daten sein.

Auf ein EEPROM bin ich auch schon gestoßen, mal sehen welches ich 
letztendlich verwende.


Allerdings hab ich noch gar kein Beispielprojekt in Zusammenhang mit nem 
MSP gesehen?

Hat hier jemand schon mal eines gesehen?

von Thosch (Gast)


Lesenswert?

Luis schrieb:
> Hätte da vll an ein FRAM oder MRAM mit SPI-Schnittstelle gedacht.

wieviel Speicherkapazität brauchst Du?
reichen 32 KiB?

FRAM: z.B. von Ramtron den FM25V02 oder den FM25W256
ersterer läuft mit bis zu 40MHz SPI-Takt, letzterer nur bis 20MHz,
dafür ist der noch 5V-kompatibel...

MRAM: gibts z.B. von Everspin
MR25H256 (32 KiB, SPI 40MHz, 3,3V)
MR25H10  (128 KiB, SPI 40MHz, 3,3V)
MR25H40  (512 KiB, SPI 40MHz, 3,3V)

Die Teile (FRAM und MRAM) gibts z.B. bei Digikey, die 32 KiB Versionen 
kosten als Einzelstück da ca. 5,-€

Gruß,
Thosch

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Luis schrieb:
> Allerdings hab ich noch gar kein Beispielprojekt in Zusammenhang mit nem
> MSP gesehen?

Das ist doch, sofern Du nicht ausgerechnet in Assembler programmieren 
willst, auch ziemlich zweitrangig, für welchen Controller so ein Projekt 
ist (sofern nicht ein externes Speicherinterface genutzt wird). Ob der 
ein EEPROM oder FRAM per SPI ansteuernde Controller ein AVR, ein ARM 
oder ein MSP430 ist, unterscheidet sich nur im "low-level"-Ansteuern der 
jeweiligen Peripherie, alles, was darauf aufbaut, kann praktisch 1:1 
übernommen werden.

Wie die Peripheriemodule des MSP430 zu nutzen sind, zeigt einem der 
Beispielcode, den es von TI für die unterschiedlichen Familienmitglieder 
gibt, und also kannst Du auch Code, der für einen AVR geschrieben ist, 
leicht auf den MSP430 portieren.

Du hast aber wesentliche Fragen noch nicht geklärt:
- Welche Speichermenge ist erforderlich?
- Wie schnell muss der Speicher sein?
- Wie oft soll der Speicher beschrieben werden?

Prinzipiell kann auch das Flash des MSP430 selbst zur Speicherung von 
Daten genutzt werden; der von Dir gewählte Controller hat 128 kiB, die 
Du nur mit viel Aufwand mit einem Programm vollgestopft bekommen wirst.

von Luis (Gast)


Lesenswert?

Ja stimmt schon, ist ja letztendlich egal welcher µc, da nur 
Kommunikation über SPI stattfindet.

Dazu hätte ich jetzt nur ne dumme Frage: Was darf ich unter dem 
"low-level-Ansteuern" verstehen?

Hat zufällig jemand nen Link zu nem Beispiel-Projekt mit, sagen wir mal, 
SPI-EEPROM parat?

Ja ich weiß, man könnte googlen oder sonstige Suchmaschinen bemühen, 
jedoch habt ihr ja vll selbst mit dem Thema schon Kontakt gehabt und 
seit damals auf was Nützliches gestoßen.



Wie schnell, bzw wie groß der Speicher sein sollte, kann ich jetzt aus 
dem Stegreif leider nicht beantworten.

Es sollte daran jedoch nicht scheitern, sollte dadurch der Preis 
ordentlich steigen, ist erst mal egal ;)

Beschreiben sollte schon ziemlich oft möglich sein, am Besten solange es 
iwie geht..

von Eumel (Gast)


Lesenswert?

Also SPI EEPROMs sind wirklich kinderleicht anzusteuern. Schau dir doch 
mal an, wie man das SPI Interface der MSP430 benutzt. Dazu hat TI sicher 
was auf lager, schau mal bei den Launchpad Codebeispielen. Dann hast du 
das "low level" Zeug schon hinter dich gebracht. Du kannst jetzt nämlich 
Bytes über SPI senden.
Dann suchst du dir ein EEPROM raus und schaust ins Datenblatt. Da steht 
drin, was für Bytes du wie senden musst um etwas zu speichern oder zu 
laden. Das wars schon, alles keine Hexenwerk ;)

von Luis (Gast)


Lesenswert?

Ok, perfekt ;)

Dann bin ich ja beruhigt und probiers mit Learning by doing.


Vielen Dank für Eure Hilfe!

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.