Wie wähle ich den richtigen SPI-Flash für einen bestimmten Mikrocontroller (pic32mx795f) aus?

Ich bin daran interessiert, wie man SPI-Flash für Mikrocontroller richtig auswählt.

Spezifikationen:

Hochleistungs-32-Bit-RISC-CPU:

  • MIPS32® M4K® 32-Bit-Kern mit 5-stufiger Pipeline
  • • 80 MHz maximale Frequenz
  • • 1,56 DMIPS/MHz (Dhrystone 2.1) Leistung bei Null-Wartestatus-Flash-Zugriff
  • • Einzelzyklus-Multiplikations- und Hochleistungs-Divisionseinheit
  • • MIPS16e®-Modus für bis zu 40 % kleinere Codegröße
  • • Zwei Sätze von 32 Kernregisterdateien (32 Bit) zur Verringerung der Interrupt-Latenz
  • • Cache-Modul vorabrufen, um die Ausführung von Flash zu beschleunigen

Im Folgenden sind einige der wichtigsten Funktionen des SPI-Moduls aufgeführt:

  • Master- und Slave-Modi werden unterstützt
  • Vier verschiedene Uhrenformate
  • Erweiterte Framed SPI-Protokollunterstützung
  • Benutzerkonfigurierbare 8-Bit-, 16-Bit- und 32-Bit-Datenbreite
  • Separate SPI-FIFO-Puffer für Empfang und Übertragung
  • FIFO-Puffer fungieren als 4/8/16-Level-tiefe FIFOs basierend auf 32/16/8-Bit-Datenbreite
  • Programmierbares Interrupt-Ereignis bei jeder 8-Bit-, 16-Bit- und 32-Bit-Datenübertragung
  • Betrieb im Ruhe- und Leerlaufmodus der CPU
  • Schnelle Bitmanipulation mit CLR-, SET- und INV-Registern

Vollständiges Datenblatt

meine Bedenken:

  1. Wie viele Bits / Pins der SPI-Schnittstelle wären optimal (32, 16, 8)?

  2. Was ist die maximale Geschwindigkeit, die ich zum Lesen/Schreiben erreichen kann?

  3. Sollte ich andere Schnittstellen (PMP, Serial, I^2C usw.) oder Speichertypen in Betracht ziehen, um die beste Leistung zu erzielen?

    Zweck: mögliche Codeausführung, Speicherung von Audiodateien (Badging from Network). Ich suchte nach etwa 256-512 MB. Danke.

Was sind die Spezifikationen des SPI-Moduls der MCU?
Ich habe den Datenblattlink hinzugefügt, Seite 143 beschreibt SPI
Was ist der Zweck dieses Flash-Geräts? Code speichern? Parameterspeicherung? Massenspeicherung von Daten? Was ist die erforderliche Größe? Für die Codespeicherung und -ausführung schließen Sie lieber ein Gerät an den Daten-/Adressbus SPI an, da es sich bei einem seriellen Bus um einen erheblichen Einfluss auf die Ausführungsgeschwindigkeit Ihres Programms handelt.
Ich bin mir nicht sicher, ob ich zusätzlichen Speicher für die Codeausführung benötige. Ich nehme an, wenn ich nur 1-4 MB benötige, sollte ich pmp mit parallelem Speicher verwenden, die teurer sind. Ich werde auf jeden Fall etwas Speicherplatz für Dateien brauchen. Und ich möchte, dass sie die CPU-Geschwindigkeit minimal beeinflussen. Meine größte Sorge ist, dass die CPU eine 5-stufige Pipeline hat, sodass die tatsächliche Taktrate 16 MHz beträgt. Also ich glaube nicht, dass ich dann schneller lesen kann.

Antworten (1)

  1. Wie viele Bits .... Wenn Sie einen SPI-Flash-IC verwenden, spielt die interne Datenbreite aus Sicht Ihrer MCU keine Rolle.
  2. Wie schnell ... lesen Sie den entsprechenden Abschnitt des Datenblatts für Ihre MCU; Timing-Informationen für PIC-E/A und Peripheriegeräte finden Sie in den technischen Daten am Ende des Dokuments.
  3. Sollte ich andere Schnittstellen in Betracht ziehen ... hängt von Ihren Anforderungen ab; Für die meisten nichtflüchtigen Speicheranforderungen ist SPI vollkommen ausreichend und hat viele Vorteile (kleine physische Größe und minimale Verwendung von MCU-I/O-Pins sind Schlüsselbeispiele).
Sie sagen also, dass ich unabhängig davon, ob ich 16 oder 32 Bit verwende, in einem minimalen Taktzyklus lesen und schreiben kann?
@vveliev es scheint nicht, dass du verstehst, dass spi eine serielle Schnittstelle mit einer Breite von 1 Bit ist.
Ich stimme zu .... ich habe es mit parallel verwechselt ....