Programmieren eines SPI Flash mit der Promira S...

Programmieren eines SPI Flash mit der Promira Serial Platform und der Flash Center Software

 

Das Programmieren von SPI-Speichergeräten ist ein häufiger Anwendungsfall für die Promira ™ Serial Plattform mit der SPI Active - Level 1 Anwendung. Es gibt mehrere Möglichkeiten, dies mit der Promira Serial Plattform mit der SPI Active - Level 1 Anwendung zu tun, einschließlich der Verwendung von Control Center ™ Serial Software, Flash Center ™ Software oder der Promira Software API von Total Phase


Die Verwendung der Promira-Plattform mit der Flash-Center-Software macht es sehr einfach, EEPROM- und Flash-Geräte zu programmieren. Mit einem Flash Center-Klick kann der Benutzer ein gesamtes Gerät löschen, programmieren und verifizieren. 

Dieser Artikel beschäftigt sich mit der Programmierung von einem SPI-Flash mit dem Flash Center und einer Promira-Plattform. Obwohl im Folgenden das SPI Flash M25P32 von ST Micro beschrieben wird, das auf der Flash-Demo-Board für Hochgeschwindigkeits-SPI montiert ist, können ähnliche Schritte für andere Geräte verwendet werden. Das Ziel dieses Artikels ist es, zu demonstrieren, wie man SPI-Flash programmiert und dann die Daten zurückliest.

In diesem Artikel löscht, programmiert und liest die Promira-Plattform den M25P32. Die Promira-Plattform ist der SPI-Master und der SPI-Flash auf der SPI-Flash-Demo-Platine ist der SPI-Slave. Es ist zunächst hilfreich, die verschiedenen von Flash Center bereitgestellten Betriebsoptionen zu verstehen. Insbesondere gibt es drei Programmiermodi: Programmieren, Programm + Verify, Programmieren (Kein Löschen). Darüber hinaus gibt es Read Device-, Verify- und Erase-Operationen. 

  • Programm + Verify - Schreibt Daten auf ein oder mehrere angeschlossene Speichergeräte und liest die Daten dann zurück, um sie auf Korrektheit zu überprüfen. Wenn das Gerät ein SPI-Flash ist, wird zuerst ein Löschzyklus durchgeführt. Das Löschen deckt nur die Sektoren ab, die geschrieben werden. Beachten Sie, dass mehr Daten geschrieben werden können als gelöscht werden können, wenn ein Schreibvorgang in der Mitte eines Sektors endet. In diesem Fall wird eine Warnung protokolliert. Wenn die zu schreibenden Daten groß genug sind, um das Löschen der gesamten Vorrichtung zu erfordern und die Speichervorrichtung einen Befehl "Erase all" aufweist, verwendet die Software die Anweisung "Erase all". 
     
  • Programm - Schreibt Daten auf das Gerät, führt jedoch keinen Bestätigungsschritt durch. Wenn es sich bei dem Gerät um einen SPI-Flash handelt, wird zuerst ein Löschzyklus mit den gleichen Vorbehalten wie "Programm + Verify" durchgeführt.
     
  • Programm (Kein Löschen) - Ein spezieller Modus für SPI-Flash-Geräte. Es schreibt Daten in das Gerät, führt jedoch keinen Löschzyklus durch. Dies ist nützlich, wenn mehrere Speicherbilder auf dem Gerät programmiert werden sollen. Verwenden Sie FF als Pad-Wert beim Laden jedes Speicherabbilds, um die Beschädigung bereits geschriebener Daten zu vermeiden. Da das Gerät möglicherweise vor diesem Vorgang programmiert wurde, führt es den Verifizierungsschritt nicht durch.
     
  • Read Device - Liest den Inhalt des ausgewählten Geräts und ersetzt den aktuellen Inhalt des Datenpuffers mit diesem.
     
  • Verify - Überprüft den Inhalt der ausgewählten Geräte mit dem Inhalt des Datenpuffers. 
     
  • Erase - Ermöglicht dem Benutzer das Löschen des gesamten Speichergeräts oder das Löschen eines Teils davon. Zum teilweisen Löschen können Benutzer die Startadressen und die Länge im Löschparameterdialog entweder als Dezimalwert oder als Hexadezimalwert angeben.

 

M25P32 Details


The 32 Mbit (4M bytes) SPI Flash M25P32 found on the SPI Flash Demo Board has 64 sectors. Each sector has 256 pages or 65,536 (64K, 0x10000) bytes. Each page has 256 bytes. Therefore, the memory has 16,384 pages or 4,194,304 (0x400000) bytes. The whole memory can be erased using the Bulk Erase instruction, or a sector at a time, using the Sector Erase instruction. For reference, provided below are the M25P32 instructions list and memory map. 

MP25P32 Memory Map

M25P32 Speicherzurodnung

M25P32_Instuctions_List_1

M25P32 Anweisungsliste

Anleitung Speicherprogrammierung/Lesen 

 
 
  1. Verbinden Sie den USB-Anschluss der Promira-Plattform mit dem PC-USB-Anschluss. 
  2. Befolgen den Installationsanweisungen für den Promira, um die Ethernet-über-USB-Schnittstelle zu konfigurieren. 
  3. Laden Sie die neueste Version der Flash-Center-Software herunter und entpacken Sie sie. 
  4. Verbinden Sie den I2C / SPI-Anschluss der Promira-Plattform über das 34-10-Kabel mit der SPI Flash Demo-Karte. 
  5. Starten Sie das Flash Center. 
  6. Verbinden Sie die Promira-Plattform mit Flash Center. 
    1. Klicken Sie auf Adapters> Add Adapters. 
    2. Wählen Sie die Promira-Plattform. 
    3. Klicken Sie auf Add, um eine Verbindung zur Promira-Plattform herzustellen.
  7. Konfigurieren Sie die Target Power (Pin 4, 6) auf 5 V; IO Power (Pin 22, 24) auf Disable, Level Shift auf 3,3 V.  Aktivieren Sie Target Power. 
  8. Klicken Sie auf Operations > Choose Target und wählen Sie M25P32. 
  9. Konfigurieren Sie die Bit Rate auf 12,5 MHz. 
  10. Lesen Sie das Speichergerät
    1. Klicken Sie auf Operations > Read Target
 

Promira_platform_Reads_From_M25P32

Promira platform liest vom M25P32

11. Programmieren und lesen Sie den M25P32.
 
a.) Klicken Sie auf Operations> Programm + Verify. 
b.) Klicken Sie auf Operations> Read Target.

Promira platform Writes to M25P32 and Reads

Der Promira programmiert und liest den M25P32​

 

SPI Flash Speicher unterstützt vom Flash Center

Atmel:
AT25DF041A   AT25F1024A  AT25F2048  AT25F4096  AT25F512A  AT25FS010  AT25FS040  
AT26DF041  AT26DF081A  AT26DF161  AT26DF161A  AT26DF321  AT26F004  AT45DB011B  
AT45DB021B  AT45DB041B  AT45DB041D/256  AT45DB041D/264  AT45DB081B  
AT45DB081D/256  AT45DB081D/264  AT45DB161D/512  AT45DB161D/528  AT45DB321C  
AT45DB321D/512  AT45DB321D/528   AT45DB642D/1024  AT45DB642D/1056

ISSI:
IS25CD010  IS25CD025  IS25CD512  IS25LP032/032A/032D  IS25LP064/064A/064B
IS25LP128/128B/128D  IS25LQ010B  IS25LQ016B  IS25LQ020B  IS25LQ025B
IS25LQ032B  IS25LQ040B  IS25LQ080  IS25LQ080B  IS25LQ512B
IS25WP016/016C/016D  IS25WP032/032A/032D  IS25WP064/064A
IS25WP080/080C/080D  IS25WP128  IS25WQ020  IS25WQ040

Micron Technology:
M25P05-A  M25P10-A  M25P128  M25P16  M25P20  M25P32  M25P40  M25P64  M25P80
M25PE10  M25PE16  M25PE20  M25PE40  M25PE80  M45PE10  M45PE16  M45PE20
M45PE40  M45PE80 

Macronix:
MX25L1005  MX25L1006E  MX25L1021E  MX25L1026E  MX25L12835F  MX25L12839F
MX25L12855F  MX25L12873F  MX25L1605 MX25L1605A  MX25L1605D  MX25L1606E 
MX25L1633E  MX25L1635E  MX25L1636E  MX25L1673E  MX25L2005  MX25L2006E  MX25L2026E  
MX25L25635F  MX25L25639F  MX25L25655F  MX25L3205  MX25L3205A  MX25L3205D 
MX25L3206E  MX25L3235E  MX25L3239E  MX25L3273E  MX25L4005A  MX25L4006E  
MX25L4026E  MX25L512  MX25L5121E  MX25L512E  MX25L6405  MX25L6405D  MX25L6406E  
MX25L6435E  MX25L6439E  MX25L6445E  MX25L6456E  MX25L6473E  MX25L8005  MX25L8006E
MX25L8035E  MX25L8036E  MX25L8073E  MX25U3235F  MX25U6435F  MX25V1006E
MX25V2006E  MX25V4006E  MX25V4035  MX25V512E  MX25V8006E  MX25V8035
MX66L1G45G  MX66L51235F


Micron
N25Q008A 8-Mbit 1,8 V  N25Q00AA 1-Gbit 1,8 V  N25Q00AA 1-Gbit 3,3 V
N25Q016A 16 Mbit 1,8 V  N25Q032A 32-Mbit 1,8 V  N25Q032A 32-Mbit 3,3 V
N25Q064A 64-Mbit 1,8 V  N25Q064A 64-Mbit 3,3 V  N25Q128A 128-Mbit 1,8 V
N25Q128A 128-Mbit 3,3 V  N25Q256A 256-Mbit 1,8 V  N25Q256A 256-Mbit 3,3 V
N25Q512A 512-Mbit 1,8 V  N25Q512A 512-Mbit 3,3 V

Chingis Technologies:
Pm25LQ010B  Pm25LQ020B  Pm25LQ025B  Pm25LQ040B  Pm25LQ512B  Pm25LV010
Pm25LV010A  Pm25LV016  Pm25LV016B  Pm25LV020  Pm25LV040  PM25LV080
PM25LV080B  PM25LV512  Pm25LV512A

Spansion:
S25FL004A  S25FL008A  S25FL016A  S25FL032A  S25FL032P  S25FL040A Uniform 
S25FL064A  S25FL064P  S25FL116K  S25FL128P_256KB  S25FL128P_64KB  
S25FL128S_256KB  S25FL128S_64KB  S25FL204K  S25FL208K  S25FL216K  
S25FL256S_256KB  S25FL256S_64KB  S25FL512S

Intel:
S33 16-Mbit  S33 32-Mbit  S33 64-Mbit

SST
SST25LF020A  SST25LF040A  SST25PF020B  SST25PF040B  SST25PF080B
SST25VF010  SST25VF010A  SST25VF016B  SST25VF020  SST25VF020B
SST25VF032B  SST25VF040  SST25VF040B  SST25VF064C  SST25VF080B
SST25VF512  SST25VF512A  SST25WF010  SST25WF020  SST25WF020A
SST25WF512

Winbond/NexFlash:
W25P10/NX25P10  W25P16/NX25P16  W25P20/NX25P20  W25P32/NX25P32
W25P40/NX25P40  W25P80/NX25P80  W25Q16  W25Q32  W25Q80  W25X10
W25X10L  W25X16  W25X20  W25X20L  W25X32  W25X40  W25X40L
W25X64  W25X80  W25X80L