¿El reloj en tiempo real pierde la señal SCL I2C cuando se agrega la batería de respaldo?

Tengo un módulo de reloj en tiempo real en mi diseño (las mismas partes que este módulo de Sparkfun: https://www.sparkfun.com/products/12708 ), cuando tengo mi sistema configurado SIN la batería de respaldo, puedo veo la hora y la fecha en el monitor en serie, pero cuando enchufo la batería de respaldo, el monitor en serie deja de enviar esta información inmediatamente.

Revisé la salida SCL del módulo DS1307 RTC en un osciloscopio antes de agregar la batería y puedo ver la señal del reloj maestro, pero cuando se inserta la batería, esta lectura se queda plana...

Aquí está el esquema de la placa de primer plano (el módulo RTC se indica mediante U9 (texto al revés)):ingrese la descripción de la imagen aquí

Y, por último, el esquema de cableado: no puedo agregar porque mi representante es demasiado bajo, así que comente si lo necesita

Si hay algo más que pueda proporcionar para ayudar a depurar, ¡hágamelo saber!

¿Tu batería está cortocircuitando alguna vía? ¿O haciendo que el soporte de la batería lo haga?
Ponga un enlace al esquema en los comentarios y uno de nosotros puede agregarlo a su pregunta. Una imagen de su placa real también sería buena, como dijo Wesley, su batería puede estar cortando una vía, las imágenes de la máscara de soldadura serían muy útiles.
@WesleyLee tenía toda la razón. La vía más a la izquierda estaba en cortocircuito cuando se insertó la batería. Puedes escribir esto como respuesta y lo marcaré como correcto.

Respuestas (1)

Al colocar la batería, se puede cortocircuitar su cuerpo a una o más vías. O su colocación puede provocar que el soporte se deforme y acorte las vías.

Una solución rápida podría ser colocar cinta Kapton u otro material aislante en la PCB.

Una forma de ayudar a evitar que esto suceda durante el diseño es crear áreas restringidas para vías/almohadillas/trazos en el paquete, por lo que los DRC deberían advertirle:

ingrese la descripción de la imagen aquí

pd: aparentemente, los DRC ignorarán las vías colocadas manualmente que entran en conflicto con vRestrict, por lo que para las vías colocadas manualmente necesita tRestrict o bRestrict. Parece que vRestrict estaba destinado al enrutador automático.