Buenos días a todos;
Soy nuevo en este foro, estoy en último curso de ing tec industrial de electronica y tengo un problema con un proyecto:
Tengo un ts7500 que es un miniordenador con debian que tiene un micro arm9 en su interior y un sensor distv3 que es un sonar i2c. Quiero comunicar el ts7500 con el distv3. Las líneas i2c (scl y sda) del ts7500 son a 3.3v mientras que las líneas i2c del distv3 son a 5v. Para que conmuten tengo un integrado MAX3370EXK en cada línea (sda y scl) de tal forma que éste es el circuito que tengo:

Con los dos integrados la señal conmuta de 3.3v a 5v y viceversa sin ningún problema de velocidad.
El problema está en que la comunicación es demasiado rápida para el sensor (distv3 en éste caso).
Por ejemplo si escribo desde el ts7500 el byte 0 en el distv3 y quiero leer de ese registro 4 bytes:
La parte de 3.3v: (amarillo=SDA y verde=SCL).

El registro 0x0 del distv3 contiene la información: V3.00. El primer byte a mandar del distv3 al ts7500 sería V= 0x56=0101 0110; pero lo que se está mandando es 0x2B=0010 1011 que es 0x56 desplazado a la derecha. El primer bit de 0x56 se empieza a mandar en el segundo periodo de SCL del tiempo que tiene que mandar los 8 bits por lo que la información es errónea.
Parte de 5v:

Hay dos resistencias de pullup en la parte de alto voltaje (Rph) (en la parte de bajo voltaje no hacen falta debido a que el ts7500 ya las lleva integradas, en estado de reposo son 3.3v sus líneas i2c) he hecho pruebas cambiándolas hasta un mínimo de 1k y obtengo el mismo resultado.
¿Alguna idea?.
Las hojas características del max3370 y del distv3:
MAX3370 distv3