Programmazione EEPROM I2C con Aardvark e modalità Batch
La programmazione e la lettura di dispositivi di memoria I2C è un caso d'uso comune per l'adattatore host Aardvark I2C / SPI. Esistono diversi modi per farlo con l'adattatore Aardvark, tra cui l'utilizzo del Control Center, del Flash Center o dell'API Aardvark. Questo articolo si concentra su come trasferire le informazioni in una scheda dati EEPROM e su come eseguire i comandi in modalità batch del Control Center.
Sebbene i passi seguenti siano descritti per la EEPROM I2C AT24C02 sulla scheda I2C / SPI Activity, passi simili possono essere utilizzati per altri dispositivi. Lo scopo di questo articolo è dimostrare come scrivere più byte a un indirizzo specifico e poi come leggere questi byte.
L'adattatore Aardvark è il master I2C e l'Atmel I2C EEPROM AT24C02 sulla scheda di attività I2C / SPI è lo slave I2C.
AT24C02 Dettagli
Le linee SCL (Serial Clock Input) e SDA (Serial Data) della EEPROM AT24C02 sono collegate alle linee SCL e SDA corrispondenti all'Aardvark. I pin A0 - A2 dell'AT24C02 (ingresso indirizzo), WP (protezione da scrittura) e GND (terra) sono collegati a terra. Il pin VCC dell'AT24C02 (alimentazione) è collegato a 3,3 V.
La EEPROM I2C "AT24C02" della scheda attività ha un indirizzo di destinazione I2C configurabile via hardware. L'indirizzo target I2C predefinito è 1010000b, ovvero 0x50. Questo articolo utilizza l'indirizzo target I2C predefinito 0x50. Per maggiori informazioni, consulta l'articolo della Knowledge Base Indirizzamento slave I2C a 7 bit, 8 bit e 10 bit.
La EEPROM AT24C02 sulla scheda di attività I2C/SPI riceve i pull-up I2C e l'alimentazione dalla piattaforma Promira. Per fornire i pull-up I2C e l'alimentazione target alla scheda activity, la piattaforma Promira e il Control Center Serial sono configurati in modalità I2C / SPI (i2c="1" spi="1" gpio)="0"), i pull-up I2C abilitati (pull-up="1") e l'alimentazione target abilitata (tpower="1") utilizzando il comando batch "configure".
L'operazione di scrittura utilizzata per l'AT24C02 è la scrittura di pagina. L'operazione di scrittura di pagina per l'AT24C02 richiede un indirizzo del dispositivo a 7 bit, un indirizzo di memoria a byte e due o più byte di dati di memoria. L'esecuzione di un'operazione di "Scrittura della memoria" con la piattaforma Promira richiede un unico comando da parte dell'adattatore e del centro di controllo seriale. In questo caso, l'esempio di modalità batch del Centro di Controllo "i2c-eeprom-write" viene utilizzato per eseguire 256 comandi "i2c_write" di dati 0x00 - 0xFF agli indirizzi di memoria 0x00 - 0xFF con indirizzo dispositivo I2C 0x50. Ad esempio, guarda il primo e l'ultimo comando i2c_write.
<i2c_write addr="0x50" count="2" radix="16">00 00</i2c_write>
<i2c_write addr="0x50" count="2" radix="16">FF FF</i2c_write>.
Il primo comando contiene l'indirizzo del dispositivo (addr="0x50"), il numero di byte di dati (count="2"), il formato dei dati (radix="16"), l'indirizzo di memoria (0x00) e i dati di memoria (0x00).
Mentre l'ultimo comando "i2c_write" contiene l'indirizzo del dispositivo I2C (addr="0x50"), il numero di byte di dati (count="2"), il formato dei dati (radix="16"), l'indirizzo di memoria (0xFF) e i dati di memoria (0xFF).
L'operazione di lettura dell'AT240C qui utilizzata è di tipo sequenziale. L'operazione di lettura sequenziale dell'AT240C esegue prima l'operazione di scrittura I2C con un indirizzo del dispositivo a 7 bit senza fermarsi. Poi l'operazione di lettura sequenziale dell'AT240C esegue la "lettura I2C" con un indirizzo del dispositivo a 7 bit, due o più byte di dati di memoria e si ferma. L'esecuzione di un'operazione di lettura della memoria con la piattaforma Promira richiede due comandi dalla modalità batch dell'adattatore e dal Control Center Serial. In questo caso, l'esempio di modalità batch del Centro di Controllo "i2c-eeprom-read" viene utilizzato per leggere 256 byte dall'indirizzo 00 con indirizzo dispositivo I2C 0x50. In questo articolo, l'operazione di lettura della memoria comprende i seguenti due comandi in modalità batch dell'adattatore Aardvark e del Control Center Serial:
<i2c_write addr="0x50" count="1" radix="16" nostop="1">00</i2c_write>
<i2c_read addr="0x50" count="256"/>.
Il primo comando è "i2c_write" con l'indirizzo del dispositivo I2C (addr="0x50"), il numero di byte di dati (count="1"), il formato dei dati (radix="16"), l'indirizzo di memoria (0x00), senza stop (nostop="1"). Questo comando di scrittura viene utilizzato per configurare il contatore interno degli indirizzi delle parole di dati a un indirizzo specifico (0x00).
Il secondo comando è "i2c_read" e contiene l'indirizzo del dispositivo I2C (addr="0x50") e il numero di byte di dati (count="256"). Questo comando di lettura viene utilizzato per leggere i dati dall'indirizzo 0x00.
Per maggiori informazioni, consulta la scheda tecnica dell'AT24C02.