Electronic – Real time clock loses SCL I2C signal when backup battery is added

i2cpcbrtc

I have a real time clock module in my layout (same parts as this module from Sparkfun: https://www.sparkfun.com/products/12708 ), when I have my system set up WITHOUT the backup battery, I am able to see the time and date on the serial monitor, but when I plug in the backup battery, the serial monitor immediately stops outputting this information.

I checked the SCL output of the DS1307 RTC module on a oscilloscope before the battery is added and I can see the master clock signal, but when the battery is inserted, this reading flatlines…

Here is the closeup board schematic (the RTC module is indicated by U9 (backwards text)):
enter image description here

And lastly the wiring schematic:
I can't add since my rep is too low, so just comment if you need it

If there is anything else I can provide to help debug, please let me know!

Best Answer

When placing the battery, its body can be shorted to one or more vias. Or its placement can cause the holder to deform and short vias.

A quick fix could be placing some Kapton tape or other insulating material on the PCB.

A way to help prevent this from happening during design is creating restricted areas for vias/pads/traces on the package, so DRCs should warn you:

enter image description here

p.s.: apparently DRCs will ignore manually placed vias conflicting with vRestrict, so for manually placed vias you need either tRestrict or bRestrict. It seems that vRestrict was intended for the autorouter.