I2C EEPROM Programmierung mit Aardvark und Batc...

I2C EEPROM Programmierung mit Aardvark und Batch Mode

Das Programmieren und Lesen von I2C-Speichergeräten ist ein häufiger Anwendungsfall für den Aardvark I2C / SPI Host-Adapter. Es gibt mehrere Möglichkeiten, dies mit dem Aardvark-Adapter zu tun, einschließlich der Verwendung des Control Centers, Flash Centers oder der Aardvark-API. Dieser Artikel konzentriert sich darauf, wie Sie die Informationen in ein EEPROM-Datenblatt übernehmen können und wie die Befehle im Batch-Modus der Steuerzentrale auszuführen sind. 


Obwohl die folgenden Schritte für das I2C-EEPROM AT24C02 auf dem I2C / SPI Activity Board beschrieben wird, können ähnliche Schritte für andere Geräte verwendet werden. Das Ziel dieses Artikels besteht darin, zu demonstrieren, wie Sie mehrere Bytes an eine bestimmte Adresse schreiben können und wie Sie diese Bytes dann auslesen können. 

 

Der Aardvark-Adapter der I2C-Master und das Atmel I2C-EEPROM AT24C02 auf dem I2C / SPI-Activity Board ist der I2C-Slave.

AT24C02 Detailed

Die Leitungen der SCL (Serial Clock Input) und der SDA (Serial Data) vom AT24C02-EEPROM entsprechend mit den SCL- und SDA-Leitungen dem Aardvark 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 Pin Configuration

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. Dieser Artikel verwendet die Standard-I2C-Zieladresse 0x50. 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).

 

AT24C02_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. In diesem Artikel enthält die Speicherleseoperation 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"/>

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).

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

Figure 3: AT240C sequentielles Lesen

 

ANLEITUNG FÜR DAS PROGRAMMIEREN UND LESEN DES EEPROMS

 

1. Laden Sie die neueste Version des Total Phase USB Drivers Installer herunter und führen Sie diese aus.
 
2. Laden Sie die neueste Version von Control Center herunter und entpacken Sie sie. 
 
3. Verbinden Sie den Aardvark-Adapter über den USB-Anschluss mit dem PC.
 
4. Verbinden Sie den Aardvark-Adapter über den I2C / SPI-Anschluss mit dem I2C / SPI-Activity Board. 
 
5. Starten Sie das Kontrollzentrum. 
 
6. Stellen Sie eine Verbindung zum Aardvark-Adapter her.
a.) Klicken Sie auf Aardvark Adapter konfigurieren.
b.) Wähle den Aardvark Adapter aus.
c.) Klicken Sie auf OK, um eine Verbindung mit dem Adapter herzustellen.
 
7. Klicken Sie auf Aardvark und wählen Sie Batch Mode.
 
8. In den Speicher schreiben.
a.) Klicken Sie auf Laden und wählen Sie i2c-eeprom-write.
b.) Klicken Sie auf Öffnen und dann auf Ausführen.
 
 

Aardvark Adapter Writes 256 Bytes To AT24C02

Aardvark Adapter schreibt 256 Bytes auf den AT24C02

9. Aus dem Speicher lesen 
a.) Klicken Sie auf Laden und wählen Sie i2c-eeprom-read. 
b.) Klicken Sie auf Öffnen und dann auf Ausführen.

 

Aardvark Adapter Reads 256 Bytes From AT24C02

Aardvark Adapter liest 256 Bytes von dem AT24C02​