Estoy tratando de usar un IC aislador I2C ( ADuM1251 ) para aislar uno de los esclavos en mi bus I2C.
Sin el aislador, la comunicación funciona bien. Con el aislador, mi configuración es la siguiente:
Estoy usando condensadores de desacoplamiento de 1 μF. El maestro está conectado al lado 1 y el esclavo al lado 2. Las resistencias pull-up en cada lado se eligen de manera que el tiempo de subida de la señal en cada lado esté dentro de la especificación I2C.
Usando el aislador, una lectura del esclavo funcionará durante unos pocos bytes y luego dejará de funcionar. Desde el alcance, me parece que el esclavo no puede conducir el autobús bajo.
Esto da como resultado que el maestro lea correctamente los primeros bytes y 0xFF
el resto. El esclavo debe poder generar suficiente corriente para bajar las líneas (3,3 V, 2,2 kΩ, la fuente de corriente máxima por pin es 4 mA).
¡Cualquier consejo sobre cómo proceder es increíble!
La hoja de datos dice que el Lado 2 consumirá de 1,6 a 2,8 mA cuando se conecte a 3,3 V. La configuración de la resistencia que ha proporcionado extrae 1,5 mA de cada resistencia si tanto SDA como SCL están bajos, superando el límite de la fuente.
Puede aumentar el tamaño de la resistencia para que solo usen 0,5 mA cada uno, pero eso aumentará la constante de tiempo RC y limitará la velocidad de su reloj I2C si necesita un I2C rápido.
De lo contrario, podría usar un regulador de 3.3v en el lado esclavo para quitar la fuente de alimentación del esclavo.
Usuario323693
adam lorenzo
kevin blanco
vaquerodan
ben voigt
estadojaminnn