TotalPhase-Blog-Erlebniswelten

Realizar lecturas aleatorias con un esclavo I2C

Introducción

El objetivo principal de este artículo es mostrarte cómo encontrar información relevante en la hoja de datos de tu máquina para que puedas alcanzar tus objetivos utilizando el Centro de Control.
 
El método para realizar una lectura aleatoria difiere entre dispositivos, y puede ser necesario modificar el método descrito en este artículo para que funcione con tu dispositivo I2C.
 
Para este artículo utilizaremos la EEPROM I2C AT24C02 de Atmel incluida en nuestra placa de actividades I2C / SPI.
 
Realiza una lectura aleatoria
Vamos a leer el byte almacenado en la posición 0x60. Ten en cuenta que la dirección de 7 bits de nuestro esclavo es 0x50.

Buscar en la hoja de datos

La interfaz de comunicación de cada chip debe estar claramente definida en la hoja de datos del fabricante. Para determinar cómo se realiza una lectura aleatoria para el AT24C02, busquemos en la hoja de datos la sección que explica los detalles:
 
Sección Lectura aleatoria de la hoja de datos del AT24C02
 
Diagrama de lectura aleatoria de la hoja de datos del AT24C02
 
Hay tres puntos importantes en la información anterior:
 
La dirección de la palabra de interés debe escribirse primero.
No debe enviarse ningún bit de parada después de escribir la dirección de palabra.
El esclavo devuelve los datos de interés después de enviar una instrucción de lectura.
random_read_figure

En el centro de control

random_read_control_center

Activa la alimentación del objetivo y las resistencias pull-up I2C.
Introduce la dirección del esclavo de 7 bits en el campo de texto "Slave Addr". ¡Recuerda que cuando envías una instrucción, el Aardvark añade automáticamente el bit R /! W.
Marca la casilla "Sin Parada" (la hoja de datos indica que no debe haber ningún bit de parada después de la escritura ficticia).
Escribe la dirección de memoria deseada en el esclavo (en este caso 0x60).
Lee 1 byte de la ubicación de memoria deseada.
GUI del Centro de Control después de la lectura aleatoria
 
El registro de transacciones del Centro de Control anterior muestra que el byte 0xAA se ha almacenado en la dirección 0x60.
 
Nota : El AT24C02 incrementa automáticamente la dirección de palabra después de cada lectura. Así que si vuelves a pulsar "Lectura maestra", el byte se leerá desde la dirección 0x61, luego desde la 0x62 y así sucesivamente. Como se muestra en la captura de pantalla, 0xAB se ha almacenado en la dirección 0x61.

En modo por lotes

Los pasos para realizar una lectura aleatoria son los mismos independientemente del método seleccionado. Para ello, utiliza el siguiente archivo XML en el modo por lotes del Centro de Control:
 
 
<aardvark>
<configurar i2c="1" spi="0" gpio="0" tpower="1" pullups="1" />
<i2c_bitrate khz="100" />
<i2c_write addr="0x50" count="1" radix="16" nostop="1"> 60 </ i2c_write>
<i2c_read addr="0x50" count="1" />
</ aardvark>

I2C Herramientas de prueba y medición

Las herramientas adecuadas son esenciales cuando se desarrolla con I2C para ahorrar tiempo de comercialización y dinero.

Adaptador de host I2C/SPI AardvarkAdaptador de host I2C/SPI Aardvark
Adaptador de host I2C/SPI Aardvark
TP240141
El adaptador de host I2C/SPI Aardvark es una herramienta innovadora para su uso con sistemas de bus I2C y SPI.

309,00 €*
Beagle I2C/SPI Protokoll Analyzer - Total Phase
Analizador de protocolos I2C/SPI Beagle
TP320121
El Analizador de protocolos I2C/SPI Beagle es un adaptador de host de bus I2C y SPI rápido y potente a través de USB

369,00 €*
Plataforma universal Promira I2C/ SPI/ eSPI
TP500110-S
La plataforma universal I2C/SPI/eSPI Promira puede utilizarse para una amplia gama de aplicaciones

Variantes de 900,00 €*
1.060,00 €*