TotalPhase-Blog-Erlebniswelten

SPI/I2C Esclavo AA_COMMUNICATION_ERROR utilizando un Aardvark

¿Has activado un esclavo I2C/SPI, ya has recibido mensajes de él y ahora quieres desactivarlo, pero recibes un código de estado AA_COMMUNICATION_ERROR? ¡Probablemente no se trate de un error de tu código!

 

Explicación:

Puede ocurrir que un maestro envíe grandes cantidades de datos y, por tanto, ocupe completamente el búfer de recepción del PC anfitrión para el adaptador de host I2C / SPI Aardvark. El error de comunicación significa que, mientras el PC enviaba la solicitud de desactivación al esclavo, no se recibía ningún acuse de recibo del adaptador Aardvark. 

 

En la mayoría de los casos, es probable que el esclavo estuviera desactivado. Si el adaptador Aardvark ha desactivado al esclavo, no se enviarán ni recibirán más datos, por lo que la conexión/buffer ya no podrá ocuparse por completo. Una llamada posterior para desactivar el esclavo debería devolver sin error.

 

Posibles soluciones:

Aunque no se trata necesariamente de un problema crítico en tu código, puedes mejorar la situación de varias formas. 


a.) Una es reducir la cantidad de tráfico enviado desde el maestro. Esto requiere la capacidad de reconfigurar el dispositivo maestro infractor. 

 

b.) Otra forma es sondear periódicamente al esclavo para obtener los mensajes asíncronos pendientes. Ten en cuenta que cada llamada para leer mensajes pendientes puede tener un tiempo de espera de hasta 500 ms. Por tanto, si hay otro código de tiempo crítico que deba ejecutarse al mismo tiempo, es mejor utilizar un modelo de hilos. (Las llamadas a la API del adaptador Aardvark no son seguras para los hilos, pero pueden utilizarse si van acompañadas de las correspondientes llamadas de sincronización de hilos)


Para los entornos de desarrollo más potentes, es aconsejable utilizar dos adaptadores Aardvark. Un adaptador Aardvark puede configurarse para recibir los mensajes asíncronos I2C / SPI esclavo, y el otro puede utilizarse para la comunicación síncrona I2C / SPI maestro. Con esta configuración, un hilo de la aplicación puede ejecutar un bucle cerrado para procesar los mensajes esclavos y otro hilo puede procesar las operaciones síncronas. 

Herramientas de desarrollo I2C y SPI

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 €*