1 votos

I2C Overshoot con Teensy 4.1 y TCA9406 Level Shifter

Estoy tratando de comunicarme entre varios MCUs con I2C usando un Teensy como maestro y un TCA9406DCTR como desplazador de nivel. Actualmente estoy probando las señales I2C del Teensy sin ningún otro MCU conectado.

Parece que estoy recibiendo una gran cantidad de sobreimpulso en las líneas de reloj y de señal en el Teensy, más de 500mV que me preocupa que pueda dañarlo y las comunicaciones son inestables. 3.3V I2C Clock

El lado de 5V del TCA9406DCTR es aún peor, alrededor de 1,8V de sobreimpulso y -1V de subimpulso. 5V I2C Clock

Mi idea actual es que probablemente tengo que revisar mi diseño de PCB un poco y asegurarse de que las trazas entre el Teensy y el TCA9406DCTR son tan cortos como sea posible, aunque no son que largo (aprox. 120 mm). Posiblemente tenga que encontrar una alternativa mejor al TCA9406DCTR.

¿Qué puedo hacer para reducir el rebasamiento y conseguir una señal I2C más estable?

EDITAR:

El problema está ahí sin otras MCUs conectadas.

Aquí está el esquema en cuestión:

Teensy I2C

La disposición de la placa de circuito impreso en esa zona:

Teensy PCB

Señal de reloj I2C directamente desde un Teensy autónomo, medido con el mismo método que antes, sólo para confirmar que la tierra del osciloscopio debería ser adecuada (sólo estoy usando el clip de resorte en la sonda directamente a tierra en la placa Teensy):

I2C Teensy signal

1voto

Justme Puntos 201

El chip traductor de nivel puede ser más complejo de lo que se espera de un simple traductor de nivel I2C. Tiene una etapa de empuje interna para la aceleración del tiempo de subida y puede trabajar hasta señales opendrain de 2 Mbps y señales pushpull de 24 Mbps. Así que si no tiene carga conectada, también el borde de subida se acelera para que parezca una onda cuadrada cuando no hay carga. El chip también tiene pull-ups internos de 10k a la alimentación respectiva que es una carga muy ligera.

Por lo tanto, con técnicas de sondeo incorrectas y sondas mal compensadas, el interior del chip traductor de nivel explica los excesos y defectos que se ven en el osciloscopio. Usted utilizó el resorte de tierra, también asegúrese de que las sondas están en la configuración de 10x, y que la compensación de la sonda se ajusta correctamente.

También recomiendo cambiar a un chip traductor de nivel más normal que el TCA9406.

Definitivamente ponga resistencias pull-up I2C separadas, ya que puede dejarlas fuera si no las necesita.

0voto

Kevin White Puntos 5504

Asegúrese de que está sondeando la señal correctamente - la causa más común es que el cable de tierra del osciloscopio es demasiado largo. Hágalo MUY corto y vea cómo se ve.

Es probable que no haya nada malo en su señal I2C.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X