El esclavo no puede manejar el bus I2C bajo

1

Estoy tratando de usar un aislador I2C IC ( ADuM1251 ) para aislar a 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:

Estoyusandocondensadoresdedesacoplamientode1μF.Elmaestroestáconectadoallado1yelesclavoallado2.Lasresistenciasdepull-upencadaladoseeligenparaqueeltiempodesubidadelaseñalencadaladoestédentrodelaespecificaciónI2C.

Usandoelaislador,unalecturadesdeelesclavofuncionaráporunospocosbytesyluegodejarádefuncionar.Desdeelpuntodevista,meparecequeelesclavonopuedebajarelbus.

Esto hace que el maestro lea los primeros bytes correctamente y 0xFF para el resto. El esclavo debe poder generar suficiente corriente para eliminar las líneas (3.3V, 2.2kΩ, la fuente de corriente máxima por pin es de 4 mA).

¡Cualquier consejo sobre cómo proceder es increíble!

    
pregunta beenjaminnn

1 respuesta

0

La hoja de datos dice que la Cara 2 dibujará 1.6 a 2.8mA cuando se conecte a 3.3V. La configuración de resistencia que ha proporcionado dibuja 1.5 mA de cada resistencia si tanto SDA como SCL son bajos, excediendo el límite de la fuente.

Puede aumentar el tamaño de la resistencia de modo que solo usen .5mA 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.3 V en el lado esclavo para quitar la fuente de alimentación del esclavo.

    
respondido por el Hayden James Dekker

Lea otras preguntas en las etiquetas