Programmieren eines I2C EEPROMS mit Promira

Programmieren eines I2C EEPROMS mit Promira

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

Dieser Artikel konzentriert sich darauf, wie Sie die Informationen aus einem EEPROM-Datenblatt übernehmen können und die Befehle im „Command Line Mode“ der Control Center-Anwendung unter Verwendung von „Batch Befehlen“ und der Beispieldatei auszuführen. Obwohl die folgende Erläuterung die Schritte für den Atmel I2C EEPROM AT24C02 auf dem I2C / SPI Activity Board beschreibt, können ähnliche Schritte für andere Geräte verwendet werden.

Die Promira-Plattform schreibt und liest mehrere Bytes vom AT24C02. Hier ist die Promira-Plattform der I2C-Master und das AT24C02 im I2C/SPI Activity Board ist der I2C-Slave. Die Promira-Plattform ist über das 34-10 I2C/SPI-Kabel mit dem AT24C02 im I2C/SPI Activity Board verbunden. Die Promira-Plattform liefert 3,3 V I2C-Signale und 5 V VDD-Signale an das I2C / SPI Activity Board. Weitere Informationen zum Board finden Sie im I2C/SPI activity board users manual und im AT24C02 Datenblatt.

 

AT24C02 


Die Leitungen der SCL (Serial Clock Input) und der SDA (Serial Data) vom AT24C02-EEPROM sind entsprechend mit den SCL- und SDA-Leitungen der Promira-Plattform verbunden. Die AT24C02 Pins A0 - A2 (Adresseingabe), WP (Schreibschutz) und GND (Masse) sind mit Masse verbunden. Der AT24C02-VCC-Pin (Netzteil) wird an 3,3 V angeschlossen.

AT24C02 Pinouts

AT24C02 Pinbelegung

 

Das I2C-EEPROM „AT24C02“ auf der Activity-Karte hat eine hardwaremäßig konfigurierbare I2C-Zieladresse. Die Standard-I2C-Zieladresse ist 1010000b, also 0x50.  Die Standard-I2C-Zieladresse 0x50 wird verwendet. Weitere Informationen finden Sie im Knowledge Base-Artikel 7-Bit-, 8-Bit- und 10-Bit-I2C-Slave-Adressierung.

Das AT24C02-EEPROM auf dem I2C/SPI-Aktivitätsboard erhält die I2C-Pull-Ups und die Stromversorgung von der Promira-Plattform. Um die I2C-Pull-Ups und die Zielleistung an das Activity-Board zu liefern, werden die Promira-Plattform und das Control Center Serial mit dem Batch-Befehl "configure" zum I2C / SPI-Modus konfiguriert (i2c = "1" spi = "1" gpio) = "0"), I2C Pull-Ups aktiviert (Pullups = "1") und Zielleistung aktiviert (tpower = "1"). 

Die hier verwendete Schreiboperation für den AT24C02 ist Page Write. Die Page-Write-Operation für den AT24C02 erfordert eine 7-Bit-Geräteadresse, eine Byte-Speicheradresse und zwei oder mehr Byte an Speicherdaten. Das Ausführen einer „Memory Write“ Operation mit der Promira-Plattform erfordert einen einzelnen Befehl des Adapters und des Control Centers Serial. In diesem Fall wird das Batch-Modus-Beispiel "i2c-eeprom-write" des Control Center verwendet, um 256 "i2c_write" -Befehle der Daten 0x00 - 0xFF an die Speicheradressen 0x00 bis 0xFF mit der I2C-Geräteadresse 0x50 auszuführen. Sehen Sie sich zum Beispiel die ersten und letzten i2c_write-Befehle an.

<i2c_write addr="0x50" count="2" radix="16">00 00</i2c_write>
<i2c_write addr="0x50" count="2" radix="16">FF FF</i2c_write>

Der erste Befehl enthält die Geräteadresse (addr = "0x50"), die Anzahl der Datenbytes (count = "2"), das Datenformat (radix = "16"), die Speicheradresse (0x00) und die Speicherdaten (0x00). Während der letzte "i2c_write" -Befehl die I2C-Geräteadresse (addr = "0x50"), die Anzahl der Datenbytes (count = "2"), das Datenformat (radix = "16"), die Speicheradresse (0xFF) und die Speicherdaten enthält (0xFF).

AT240C Page Write

AT240C Page Write

 

Die hier verwendete AT240C-Leseoperation ist das sequentielle Lesen. Die sequentielle AT240C-Leseoperation führt zuerst den I2C-Schreibvorgang mit einer 7-Bit-Geräteadresse ohne Stopp aus. Dann führt die sequentielle AT240C-Leseoperation „I2C-Lesen“ mit einer 7-Bit-Geräteadresse, zwei oder mehr Bytes von Speicherdaten durch und stoppt. Das Ausführen einer Speicherleseoperation mit der Promira-Plattform erfordert zwei Befehle aus dem Batch-Modus des Adapters und des Control Center Serial. In diesem Fall wird das Batch-Modus-Beispiel "i2c-eeprom-read" des Control Center verwendet, um 256 Byte von Adresse 00 mit der I2C-Geräteadresse 0x50 zu lesen. Die Speicherleseoperation enthält die folgenden zwei Batch-Modus-Befehle Aardvark-Adapter und Control Center Serial:

<i2c_write addr="0x50" count="1" radix="16" nostop="1">00</i2c_write>
<i2c_read addr="0x50" count="256"/>

 

  1. Der erste Befehl ist "i2c_write" mit der I2C-Geräteadresse (addr = "0x50"), Anzahl der Datenbytes (count = "1"), Datenformat (radix = "16"), Speicheradresse (0x00), mit keinen stopps (nostop = "1"). Dieser Schreibbefehl dient zum Konfigurieren des internen Datenwortadressenzählers auf eine bestimmte Adresse (0x00).
  2. Der zweite Befehl lautet "i2c_read" und enthält die I2C-Geräteadresse (addr = "0x50") und die Anzahl der Datenbytes (count = "256"). Dieser Lesebefehl dient zum Lesen der Daten ab Adresse 0x00.

Weitere Informationen finden Sie im AT24C02 Datenblatt.

AT240C Sequential Read

AT240C Sequential Read

 

Schreiben und Lesen eines EEPROMs mit Linux


1. Verbinden Sie den USB-Anschluss der Promira-Plattform mit dem PC-USB-Anschluss.
2. Laden Sie die neueste Version von Promira USB Drivers Linux herunter und entpacken Sie sie.
3. Folgen Sie den Schritten für Linux in der Installationsanweisung für den Promira, um die Ethernet-über-USB-Schnittstelle zu konfigurieren.

Promira lsusb & ifconfig commands ATD24C02

lsusb & ifconfig commands

 

4. Laden Sie die neueste Version von Promira FW Utility für Linux herunter und entpacken Sie sie. Wenn die Promira FW nicht die neueste FW ist, aktualisieren Sie den Promira auf die neueste FW mit der neusten Promira FW Utility für Linux.

5. Laden Sie die neueste Version von Control Center Serial herunter und entpacken Sie sie

6. Verbinden Sie den I2C / SPI-Anschluss der Promira-Plattform über das 34-10-Kabel mit dem I2C / SPI Activity Board.
7. Starten Sie das Control Center Serial.  
8. Verbinden Sie das Control Center Serial mit der Promira-Plattform. 

  1. Klicken Sie auf Adapter und wählen Sie Verbinden.
  2. Wählen Sie die Promira-Plattform.
  3. Klicken Sie auf OK, um eine Verbindung zur Promira-Plattform herzustellen.

Promira Control Center Serial Configure Adapter Window

Configure Adapter Window

 

9. Schreiben und Lesen des I2C EEPROM auf der Total Phase I2C / SPI-Aktivitätskarte mit der Promira-Plattform und dem seriellen Befehlszeilenmodus des Control Center.
a.) Starten Sie die Terminal-Anwendung auf dem Computer
b.) Wechseln Sie zum Control Center Serial-Ordner mit der Datei controlctr
c.) Tippen Sie: "controlctr -c"
d.) Geben Sie "connect 2416-606091" ein (Ändern Sie den 2416-606091 zu Ihrer Promira SN)
e.) Geben Sie "Batch ./examples/i2c-eeprom-read.xml" ein
f.) Geben Sie "disconnect 2416-606091" ein (Ändern Sie den 2416-606091 zu Ihrer Promira SN)
g.) Geben Sie "Beenden" ein

Write and Read AT24C02

Figure 6: Write and Read AT24C02