Cerberus RTC won’t initialize

I don’t think GHI needs to recall the boards, as the RTC wasn’t a feature of them when they sold (and I don’t believe that the RTC is listed as a feature even now). I don’t feel a lot of sympathy on this particular issue, however, as anyone who read the datasheet would have seen the very clear warning labelled “Caution” about never using a 12.5 pF crystal. It’s right there in the wiki, now, in the datasheet screenshot.

Anyway, Gus, the explanation in the wiki for Cerb40 is now quite clear, thank you.

Has anyone gotten the RTC crystal to stabilize on Cerberus or Cerbuino boards?

I pulled out the stock caps, added a 32.768 (6pf spec.) crystal and it seems to work fine with no load caps. I have attached a photo showing this and the $10 iron I used to remove the caps.

The Cerb40 is a little tighter, especially after the crystal has already been installed. I don’t think I’ll try to salvage the one I installed a crystal in, I’ll put it in a location where it can have ethernet and use NTP.

Rajesh, where is the crystal in your photo?

Here are some images to aid users in setting up the RTC Crystal on the Cerb-Family of boards: http://wiki.tinyclr.com/index.php?title=Cerb-Family#Real_Time_Clock

I soldered the crystal on the cap pads after I removed them. Look close on the yellow circle above the stm32

Thanks GHI for your time and patience.

I finally got a chance to check out the RTC with the 12.5 pf crystal (sans capacitors) and it worked!

I set the date to today (09/21/12) – but when I looped Debug.Print(RTC.GetTime().ToString()) – the date in the output window is wrong. It reads 09/05/12.

The output in Rajeshs photo claims its 09/05/2012 as well.

Any Ideas?

We noticed the date being incorrect as well. We are looking into why it seems to be returning the wrong date.

It’s because you are using “DayOfWeek” instead of “Day” when the getting the date in RTC.cs. Replace “RTC_WeekDay” with “RTC_Day” in the DateTime constructor call below.

private static DateTime GetTimeCerb()
        {
            Cerb.RTC_GetTime();
            Cerb.RTC_GetDate();

            return new DateTime((Cerb.RTC_Year + 1980), Cerb.RTC_Month, Cerb.RTC_WeekDay, Cerb.RTC_Hours, Cerb.RTC_Minutes, Cerb.RTC_Seconds, Cerb.RTC_H12);
        }

You’re welcome.

The issue should not effect any timers (System.Threading.Timer), right?

No, it shouldn’t.

Perfect, thanks!