Información de fondo
Estoy diseñando una PCB pequeña para dispositivos 4 * I2C, la velocidad en baudios del I2C no es un problema importante, por lo que 100 kHz era el objetivo. Los dispositivos I2C son un RTC, LM75, 24AA04 y un MSP23017 para manejar un LCD, la placa se fabrica utilizando una máquina de fresado LPKF. Antes de poblar completamente el tablero, pensé que probaría uno de los dispositivos y el LM75 parecía la opción más fácil. Edición rápida: VCC es 5V y los Pull-Ups son 10K
Se han incluido algunas imágenes para darle una idea del diseño:
La imagen1ª muestra la vista superior de la PCB (los puentes de dirección están en la parte superior derecha, todos conectados a tierra para la prueba)
LasegundaimagenmuestralostrazadosI2C,ladimensióndelacuadrículaquesemuestraesde1.27mm(J11alaizquierdaestáconectadaalpindelsistemaoperativo,perosedejaflotandoenestemomento)
El problema
Estoy probando esto con un Arduino Uno (5V VDD) con un código muy simple que sondea el LM75 cada segundo. Establecer una lectura válida es intermitente, pero una vez establecido, funciona bien durante aproximadamente 2 minutos y luego se cuelga, ambas líneas I2C se elevan. Para establecer un enlace nuevamente, encontré que enviar una dirección de esclavo alternativa varias veces y volver a la dirección correcta normalmente funciona, entonces ocurrirá lo mismo.
Una vez más, tengo algunas más imágenes para capturar el apretón de manos en mi osciloscopio:
La tercera imagen muestra la configuración (no es la mejor que conozco, ignora las resistencias de los puentes que se ajustaron originalmente 1k aquí y los enlaces de cortocircuito insertados como en la primera imagen))
Laimagen4ªmuestralaprimeratrazadelosciloscopiocondatosválidosyalgunasconversacionescruzadasvisibles(conuncírculoenrojo).¿Valelapenapreocuparseporesteniveldeconversacionescruzadas?Buenapublicaciónqueestabaleyendosobreestetema
5ªessolounabasedetiempomáspequeñaparaquelaformadeondasepuedaverconmásdetalle
Estaría realmente interesado en cualquier consejo posible, probablemente necesito volver a trabajar con la junta, pero cualquier sugerencia sobre las pruebas sería genial. He leído algunas publicaciones y tuve la impresión de que I2C en estas longitudes y velocidades bajas debería estar bien, ¡pero estoy seguro de que he cometido un error de novato!
Gracias de antemano, Hormiga
----UPDATE----
Encontré el problema finalmente una semana atrás, pero no tuve tiempo de publicar una actualización hasta ahora. Estaba convencido de que era mi PCB, pero resultó que solo estaba solicitando 1 byte del LM75A cuando necesitaba solicitar 2.
Todos los punteros en el hardware fueron increíblemente útiles, me permitieron mejorar el diseño y, finalmente, me decidí por los pull-ups 2k2, lo que mejoró la forma de onda I2C (imagen de abajo).
Acepté la única respuesta y también algunos de los comentarios, ya que todos demostraron ser útiles.