Wie wähle ich eine Erinnerung richtig aus?

Ich bin dabei, einen Chip zu wählen, um eine MP3-Datei (wenige MO) darin zu speichern. Aber ich weiß wirklich nicht, wie man eine solche Erinnerung gut auswählt. Sollte ich mich für einen Flash-Speicher entscheiden? EEPROM? Und? Noch?

Welche Parameter sollte ich bei meiner Wahl berücksichtigen?

Beim Konsultieren eines Online-Shops eines Händlers stellte ich fest, dass SPI-Kommunikation anstelle von I2C oder UART weit verbreitet ist. Gibt es dafür einen Grund?


Der Speicher speichert nur eine Datei von wenigen Monaten. Die Idee des Designs besteht darin, einen Teil der Datei in den MSP430 (den von mir verwendeten µC) zu laden, die Daten zu verarbeiten und sie dann an einen DAC zu senden. Da MP3-Dateien eine Abtastrate von 44100 Hz haben, muss die Übertragungsgeschwindigkeit meiner Meinung nach 4- oder 5-mal höher sein. Ich verwende niemals einen Speicher oder sogar eine Audiokonvertierung (von Digital oder Analog), daher kenne ich die erforderliche Geschwindigkeit nicht genau.

Eine viel zu weit gefasste Frage. Welche Art von Prozessor? Welche Art von Software wird ausgeführt? Anzahl der Dateien und Größe pro Datei? Wie schnell müssen Sie in der Lage sein, sie zu kopieren? Warum SPI und nicht I2C - UARTs auf einzelne Datenbytes und nicht auf Massenübertragungen ausgelegt sind, ist I2C langsam. SPI ist viel schneller und hat einen geringeren Overhead. Und dann sind da noch alle nicht seriellen Anschlussmöglichkeiten.
@Andrew Lassen Sie mich die Frage bearbeiten, um dann weitere Informationen zu erhalten
Werden Sie die MP3 im MSP340 dekodieren?
@RogerRowland Wenn es möglich ist, ja, wenn nicht, werde ich mich für den TM4C1294 entscheiden
Ich würde es ganz anders machen. Anstatt einen Chip zu verwenden, würde ich auf eine SD-Karte abzielen, MSP430 verfügt über eine Schnittstelle dafür, und es sollten Softwaretreiber verfügbar sein, um darauf zuzugreifen ti.com/lit/an/slaa281b/slaa281b.pdf . Auf diese Weise haben Sie Wechselmedien und ein unabhängiges Flash-Speicher-Verschleißmanagement.
@Anonymous Diese SD-Kartenschnittstelle verwendet SPI und nicht die 4 Bit breite Full-SD-Schnittstelle. Das hat den Vorteil, dass Sie die Datei mit einem PC auf die Karte kopieren können, aber den Nachteil, dass Sie dann ein FAT-Dateisystem mit dem damit verbundenen Software-Overhead verwenden müssen.
@Anonymous Ich habe noch nie von dieser Schnittstelle gehört. ich schau mal :)
@Andrew Einverstanden, es ist komplexer, aber früher oder später wird OP sowieso dazu kommen. Betrachten Sie elm-chan.org/fsw/ff/00index_e.html , ich habe es nicht selbst verwendet (ich schreibe meine eigenen Treiber), aber ich sehe Leute, die Fragen stellen und positives Feedback dazu geben.
@Anonym Einverstanden, eine SD-Karte im FAT-Format ist der Weg, den ich auch gehen würde, vorausgesetzt, der Overhead ist kein Problem (wenn er MP3s dekodieren möchte, benötigt er die gesamte RAM- und CPU-Leistung, die der MSP ihm geben kann). Wenn Größe, mechanische Robustheit (SD-Karten können herausfallen) oder CPU/RAM-Overhead ein Problem sind, dann ist ein aufgelöteter SPI-FLASH-Chip möglicherweise die bessere Wahl.
@M.Ferru Gibt es einen bestimmten Grund, warum Sie sich für diese Methode zum Abspielen einer MP3-Datei aus Flash entscheiden? Es gibt dedizierte MP3-Wiedergabe-Chips, die Ihr Leben viel einfacher machen würden, wenn das alles ist, was Sie tun müssen. Einige haben sogar einen eingebauten Blitz zum Halten des Tons.
@Andrew Ich habe dieses Jahr gerade meinen EE-Abschluss, ich weiß nicht wirklich viel über diese Art von Chip. Ich dachte, dass das Lesen von Daten aus dem Speicher und das anschließende Berechnen mit µC der einfache Weg sei. Aber wenn es diese Art von Chip gibt, werde ich sie verwenden. Es ist ein Heimprojekt, also habe ich nicht viel dafür gefunden. Auch wenn ein solcher Chip vielleicht nicht so teuer ist.
Beispiel vlsi.fi/en/products.html aus Finnland, wählen Sie ein Produkt aus, das Ihren Anforderungen entspricht, und studieren Sie die Datenblätter. Mit einem einzelnen Kern ist das Lesen von RAM und das Ausführen von Berechnungen aufgrund des einzelnen Threads möglicherweise nicht möglich (es sei denn, es gibt eine spezielle Interrupt-Routine). Um Dinge parallel zu erledigen, benötigen Sie möglicherweise FPGA oder mehr als einen Kern. Ach ja, und übrigens haben diese Chips eine MP3-Lizenz dabei; in Ihrer Situation vielleicht nicht wichtig, aber es lohnt sich, daran zu denken.
@M.Ferru Ich habe dies zuvor verwendet: coolcomponents.co.uk/en/audio-fx-mini-sound-board.html zuvor, indem ich es mit developer.mbed.org/platforms/mBuino zur Steuerung kombiniert habe (ich ' d benutze heutzutage ein microBit) und eine Reihe weißer LEDs, die ich zu einer ziemlich effektiven Donner- und Blitzmaschine gemacht habe. Es gibt auch billigere SD-Karten-basierte Geräte wie dieses: coolcomponents.co.uk/en/audio-sound-breakout-wtv020sd.html
Sind Sie sicher, dass der MSP MP3 in Echtzeit dekodieren kann?
"Da eine MP3-Datei eine Abtastrate von 44100 Hz hat" - falsch, eine Standard-WAV-Datei hat normalerweise eine Abtastrate von 44100 Hz (dh CD-Qualität), aber eine MP3-Datei hat keine Abtastrate, weil sie den Ton völlig anders organisiert Weg. Es kann eine maximale Streaming-Rate von 320 kbps haben, aber diese kann nur 16 kbps betragen.
Verwenden Sie einen handelsüblichen SPI-Flash-Chip (z. B. von Microchip ). Eine MP3-Datei hat höchstens etwa 320 kbit/s an Daten. Jeder Chip, der deutlich mehr ausgeben kann, ist geeignet, wenn Sie einen so langsamen finden würden. Ein paar MHz Übertragungstakt reichen aus.
@JimmyB Nein, ich bin mir nicht sicher, ob der MSP damit umgehen kann. Ich werde versuchen, zu sehen. Wenn es nicht funktioniert, verwende ich einen Arm-Cortex-m4-Prozessor

Antworten (2)

Lassen Sie mich auf der Grundlage der Diskussion die Antwort zusammenstellen -

  1. EEPROM/Flash-Lösung scheint die einfachste zu sein, und MSP430 hat dafür eine eingebaute Schnittstelle, aber es gibt mehrere Nachteile: Sie müssen eine manuelle Fehlerbehandlung/-korrektur implementieren; Chip ist nicht entfernbar; und schließlich kann es sich abnutzen (möglicherweise müssen Sie Verschleißausgleichsmaterial implementieren).
  2. Ich empfehle, sich auf die etwas andere Architektur zu konzentrieren:

    • Verwenden Sie die SD-Karte als Speicher über SPI; es erledigt alle Low-Level-Aufgaben für Sie, ist entfernbar und für häufiges Umschreiben gedacht und im Allgemeinen bequemer;
    • Sie müssen jedoch die Dateisystembehandlung des Volumes implementieren. Ich bin auf das generische FAT-Dateisystemmodul von Elm-Chan mit Beispielcode zur Steuerung von MMC/SDSC/SDHC (FatFs) gestoßen. Ich habe es nicht selbst verwendet, aber positives Feedback darüber gehört ; es scheint Ihre MCU zu unterstützen;
    • Sie können erwägen, einen speziellen IC für die MP3-Decodierung zu verwenden - dadurch wird die Rechenleistung der MCU für etwas Nützlicheres als die MP3-Decodierung freigesetzt. Ich kenne VLSI Oy aus Finnland, ich bin sicher, dass Sie weitere Hersteller finden werden (zB über Digikey). Beachten Sie, dass diese Chips über eine MP3- und andere Codec-Lizenz verfügen, sodass Sie in dieser Hinsicht rechtlich sauber sind, wenn Sie irgendwann entscheiden, dass Ihr Gerät gut für den Verkauf auf dem Markt ist.

Bearbeiten: @AndrewMorton wies auf die MP3-Pressemitteilung hin, in der es heißt: "Lizenzierungsprogramm für bestimmte mp3-bezogene Patente ... wurde beendet", wenn Sie dem weiteren Link folgen, den Sie sehen können

Das Ende des mp3-Lizenzprogramms bedeutet jedoch nicht automatisch, dass die gesamte mp3-Technologie jetzt lizenzfrei verfügbar ist. Abgesehen von den im Lizenzprogramm enthaltenen mp3-Kernpatenten kann es noch einige implementierungsspezifische Patente (oder Patente für andere funktionale Erweiterungen) geben, die noch nicht abgelaufen sind. Daher müssen Hersteller zuerst die Situation in Bezug auf ihre beabsichtigten Produkte überprüfen, bevor sie mp3 aufnehmen.

Es kann also immer noch ein rechtliches Risiko bestehen.

@AndrewMorton Sie haben Recht, die Antwort wurde leicht geändert.

Bei der Auswahl eines Speichers haben Sie möglicherweise mehrere Spezifikationen.

  • Typ. Flüchtig/nicht flüchtig.
  • Größe. Wie viele Bits.
  • Geschwindigkeit. ZB: Das Schreiben von RAM ist schneller als ein FLASH/EEPROM.
  • Ausdauer. Wie viele Schreibzyklen.
  • Schnittstelle. Wie schnell lesen/schreiben?
  • Preis. Bei großen Mengen mit einmaligem Schreiben von Daten könnte das ROM billiger sein.

Sie möchten mehrere MB MP3 speichern, und zwar langfristig. Vermutlich nicht oft wechseln.
Nach obiger Liste möchten Sie: großen, schnell lesbaren, wenige Male programmierbaren nichtflüchtigen Speicher.

Dies schließt EEPROM, FRAM und (batteriegepufferten) SRAM aus, da es sich bei allen um kleine Speicher handelt, die darauf ausgelegt sind, häufig beschrieben zu werden (hohe Lebensdauer). Jeder RAM ist Random-Read-Write, EEPROM ist wort- oder seitenlöschbar, dauert einige Zeit, ist aber dennoch flexibel zu verwenden.

FLASH hingegen hat ein langsames Löschen, da es sich um ganze Seiten handelt, wird aber dennoch schnell gelesen und ist in großen Mengen (Größe) billig herzustellen. Sie können FLASH nicht unbegrenzt neu schreiben, wie dies bei RAM oder FRAM der Fall ist.
EEPROM ist technisch immer noch FLASH, aber dann byte- oder wortlöschbar.

Sie benötigen FLASH. Um eine MP3 abzuspielen, benötigen Sie einen gewissen Durchsatz. Hier kommt die Schnittstelle ins Spiel. I2C wird am langsamsten sein, Single-SPI ist schneller, Quad-SPI ist sogar noch besser. Und paralleler Blitz ist der schnellste, den Sie bekommen können.

Ich denke, Sie können mit einem SPI-FLASH-Chip machen, was Sie wollen. Wie eine SD-Karte. Sie könnten aber auch eine Flash-Chip-Lösung auf dem Markt verwenden. Solange Sie es verbinden können.

Wenn ich mich nicht irre, unterstützt die eMMC-Karte keine SPI-Schnittstelle mehr. Sie benötigen stattdessen eine spezielle MMC-Schnittstelle.
@nickagian du hast recht.