2
\$\begingroup\$

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!

\$\endgroup\$
  • 2
    \$\begingroup\$ Is your battery shorting any via? Or causing the battery holder to do so? \$\endgroup\$ – Wesley Lee Oct 3 '17 at 23:16
  • 2
    \$\begingroup\$ Put a link to the schematic in the comments and one of us can add it to your question. A picture of your actual board would be good too, as Wesley said, your battery may be shorting a via, pictures of the soldermask would be very helpful. \$\endgroup\$ – uint128_t Oct 3 '17 at 23:41
  • \$\begingroup\$ @WesleyLee was absolutely correct. The via furthest to the left was shorting when the battery was inserted. You can write this as an answer and I'll mark it as correct \$\endgroup\$ – Jordan Lewallen Oct 3 '17 at 23:42
2
\$\begingroup\$

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.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.