Últimamente he estado trabajando con i2c entre un beaglebone y un Atmel 328P donde el Atmel controla varios dispositivos bajo la dirección del beaglebone. Para lograr lo que he hecho hasta ahora, he estado usando el Biblioteca Adafruit_I2C para Python .
Por lo que entiendo de i2c (he leído numerosos artículos sobre el protocolo), todas las comunicaciones que ocurren entre las condiciones de inicio y parada (sin contar los bits de control) son simplemente una dirección de 7 bits y un número de bytes de 8 bits. para la carga útil. En ninguna parte he visto nada sobre cuánto tiempo puede ser esta carga útil. Eso es lo que busco específicamente.
Ahora, al usar la biblioteca Adafruit, hace una serie de suposiciones. Específicamente, todas sus funciones se modelan en torno a la lectura o escritura de valores (generalmente de 8 o 16 bits) dentro o fuera de los registros (en el chip direccionado). También tienen una función writeList()
, que presumiblemente intentaron escribir en un número de registros consecutivos.
Su función writeList()
, aunque solo puede manejar un máximo de 32 bytes de datos. Me pregunto: ¿es esto una limitación real de i2c o es un límite arbitrario establecido en su biblioteca?