EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Corrupted RTC Data

Started by pondindustrial January 19, 2005

Hi group,

I recently placed a DS1307 RTC on a breadboard and wired it to a
PIC16F877 and started reading data. I was displaying this data on a
PC through serial, via VB. Every once in a while (couple of minutes)
I would read a mess for the date and time, but ONLY for the date and
time values, hence, the delimiters (/: etc.) displayed as expected,
no corruption.

At the time, I attributed the problem to the rats nest of comm. wires
strung across the breadboard and didn't give it much further thought,
especially since the delimiters continued to display properly (which
are added in the PIC of course) and only the RTC data did not, i.e.:
garbage in, garbage out! Well, a few days ago I wired in a 4x20 LCD
and started displaying the data on it instead of the PC, I still got
the garbage, as expected. I then soldered the RTC to the PIC
development board I'm using and made sure all communication wires
were short and isolated as best possible between the RTC and PIC,
I'll be dammed, I'm still displaying the intermittent garbage.

Any clues where the source is, IMO it has to be coming from the RTC
correct? But why, and how can I possibly get rid of it?

As a footnote, I also added a separate routine immediately following
the date/time routine to display an incrementing variable on a
different line on the LCD, the incrementing variable never displays
corrupted, only the RTC data

Thanks in anticipation!
Eric





got bypass caps?

--- In , "pondindustrial" <pondindustrial@y...>
wrote:
>
> Hi group,
>
> I recently placed a DS1307 RTC on a breadboard and wired it to a
> PIC16F877 and started reading data. I was displaying this data on a
> PC through serial, via VB. Every once in a while (couple of minutes)
> I would read a mess for the date and time, but ONLY for the date and
> time values, hence, the delimiters (/: etc.) displayed as expected,
> no corruption.
>
> At the time, I attributed the problem to the rats nest of comm. wires
> strung across the breadboard and didn't give it much further thought,
> especially since the delimiters continued to display properly (which
> are added in the PIC of course) and only the RTC data did not, i.e.:
> garbage in, garbage out! Well, a few days ago I wired in a 4x20 LCD
> and started displaying the data on it instead of the PC, I still got
> the garbage, as expected. I then soldered the RTC to the PIC
> development board I'm using and made sure all communication wires
> were short and isolated as best possible between the RTC and PIC,
> I'll be dammed, I'm still displaying the intermittent garbage.
>
> Any clues where the source is, IMO it has to be coming from the RTC
> correct? But why, and how can I possibly get rid of it?
>
> As a footnote, I also added a separate routine immediately following
> the date/time routine to display an incrementing variable on a
> different line on the LCD, the incrementing variable never displays
> corrupted, only the RTC data
>
> Thanks in anticipation!
> Eric





No bypass caps at the RTC, but yes across the supply entering the
development board...

Are you thinking a cap at the RTC power pins would solve it? --- In , "Phil" <phil1960us@y...> wrote:
>
> got bypass caps?
>
> --- In , "pondindustrial"
<pondindustrial@y...>
> wrote:
> >
> > Hi group,
> >
> > I recently placed a DS1307 RTC on a breadboard and wired it to a
> > PIC16F877 and started reading data. I was displaying this data on
a
> > PC through serial, via VB. Every once in a while (couple of
minutes)
> > I would read a mess for the date and time, but ONLY for the date
and
> > time values, hence, the delimiters (/: etc.) displayed as
expected,
> > no corruption.
> >
> > At the time, I attributed the problem to the rats nest of comm.
wires
> > strung across the breadboard and didn't give it much further
thought,
> > especially since the delimiters continued to display properly
(which
> > are added in the PIC of course) and only the RTC data did not,
i.e.:
> > garbage in, garbage out! Well, a few days ago I wired in a 4x20
LCD
> > and started displaying the data on it instead of the PC, I still
got
> > the garbage, as expected. I then soldered the RTC to the PIC
> > development board I'm using and made sure all communication wires
> > were short and isolated as best possible between the RTC and PIC,
> > I'll be dammed, I'm still displaying the intermittent garbage.
> >
> > Any clues where the source is, IMO it has to be coming from the
RTC
> > correct? But why, and how can I possibly get rid of it?
> >
> > As a footnote, I also added a separate routine immediately
following
> > the date/time routine to display an incrementing variable on a
> > different line on the LCD, the incrementing variable never
displays
> > corrupted, only the RTC data
> >
> > Thanks in anticipation!
> > Eric





its always a good idea. does the PIC have a bypass cap? I'd try
putting one on each IC (not just the whole board). it may not solve
the problem but is fairly cheap and easy.

you might also check the chip errata if you haven't already.

--- In , "pondindustrial" <pondindustrial@y...>
wrote:
>
> No bypass caps at the RTC, but yes across the supply entering the
> development board...
>
> Are you thinking a cap at the RTC power pins would solve it? > --- In , "Phil" <phil1960us@y...> wrote:
> >
> > got bypass caps?
> >
> > --- In , "pondindustrial"
> <pondindustrial@y...>
> > wrote:
> > >
> > > Hi group,
> > >
> > > I recently placed a DS1307 RTC on a breadboard and wired it to a
> > > PIC16F877 and started reading data. I was displaying this data on
> a
> > > PC through serial, via VB. Every once in a while (couple of
> minutes)
> > > I would read a mess for the date and time, but ONLY for the date
> and
> > > time values, hence, the delimiters (/: etc.) displayed as
> expected,
> > > no corruption.
> > >
> > > At the time, I attributed the problem to the rats nest of comm.
> wires
> > > strung across the breadboard and didn't give it much further
> thought,
> > > especially since the delimiters continued to display properly
> (which
> > > are added in the PIC of course) and only the RTC data did not,
> i.e.:
> > > garbage in, garbage out! Well, a few days ago I wired in a 4x20
> LCD
> > > and started displaying the data on it instead of the PC, I still
> got
> > > the garbage, as expected. I then soldered the RTC to the PIC
> > > development board I'm using and made sure all communication wires
> > > were short and isolated as best possible between the RTC and PIC,
> > > I'll be dammed, I'm still displaying the intermittent garbage.
> > >
> > > Any clues where the source is, IMO it has to be coming from the
> RTC
> > > correct? But why, and how can I possibly get rid of it?
> > >
> > > As a footnote, I also added a separate routine immediately
> following
> > > the date/time routine to display an incrementing variable on a
> > > different line on the LCD, the incrementing variable never
> displays
> > > corrupted, only the RTC data
> > >
> > > Thanks in anticipation!
> > > Eric




Are you following the procedures in App Note 504 to ensure you do not
read during a register update?

Chad

--- Phil <> wrote:

>
> its always a good idea. does the PIC have a bypass cap? I'd try
> putting one on each IC (not just the whole board). it may not solve
> the problem but is fairly cheap and easy.
>
> you might also check the chip errata if you haven't already.
>
> --- In , "pondindustrial"
> <pondindustrial@y...>
> wrote:
> >
> > No bypass caps at the RTC, but yes across the supply entering the
> > development board...
> >
> > Are you thinking a cap at the RTC power pins would solve it?
> >
> >
> >
> >
> >
> > --- In , "Phil" <phil1960us@y...> wrote:
> > >
> > > got bypass caps?
> > >
> > > --- In , "pondindustrial"
> > <pondindustrial@y...>
> > > wrote:
> > > >
> > > > Hi group,
> > > >
> > > > I recently placed a DS1307 RTC on a breadboard and wired it to
> a
> > > > PIC16F877 and started reading data. I was displaying this data
> on
> > a
> > > > PC through serial, via VB. Every once in a while (couple of
> > minutes)
> > > > I would read a mess for the date and time, but ONLY for the
> date
> > and
> > > > time values, hence, the delimiters (/: etc.) displayed as
> > expected,
> > > > no corruption.
> > > >
> > > > At the time, I attributed the problem to the rats nest of comm.
>
> > wires
> > > > strung across the breadboard and didn't give it much further
> > thought,
> > > > especially since the delimiters continued to display properly
> > (which
> > > > are added in the PIC of course) and only the RTC data did not,
> > i.e.:
> > > > garbage in, garbage out! Well, a few days ago I wired in a 4x20
>
> > LCD
> > > > and started displaying the data on it instead of the PC, I
> still
> > got
> > > > the garbage, as expected. I then soldered the RTC to the PIC
> > > > development board I'm using and made sure all communication
> wires
> > > > were short and isolated as best possible between the RTC and
> PIC,
> > > > I'll be dammed, I'm still displaying the intermittent garbage.
> > > >
> > > > Any clues where the source is, IMO it has to be coming from the
>
> > RTC
> > > > correct? But why, and how can I possibly get rid of it?
> > > >
> > > > As a footnote, I also added a separate routine immediately
> > following
> > > > the date/time routine to display an incrementing variable on a
> > > > different line on the LCD, the incrementing variable never
> > displays
> > > > corrupted, only the RTC data
> > > >
> > > > Thanks in anticipation!
> > > > Eric >
>


=====
My software has no bugs, only undocumented features.

__________________________________________________






Chad,

> Are you following the procedures in App Note 504 to ensure you do
>not read during a register update?

Well, I never read that App-Note before now. Therefore, I can't
truthfully say that I abided by all of what's listed in it. I'm
currently dotting the `I's' and crossing the `T's' with respect to
504. Ill let you know what the results are!

Thanks for the information...

Thanks, Eric

--- In , Chad Russel <chadrussel@y...> wrote:
> Are you following the procedures in App Note 504 to ensure you do
not
> read during a register update?
>
> Chad
>
> --- Phil <phil1960us@y...> wrote:
>
> >
> > its always a good idea. does the PIC have a bypass cap? I'd try
> > putting one on each IC (not just the whole board). it may not
solve
> > the problem but is fairly cheap and easy.
> >
> > you might also check the chip errata if you haven't already.
> >
> > --- In , "pondindustrial"
> > <pondindustrial@y...>
> > wrote:
> > >
> > > No bypass caps at the RTC, but yes across the supply entering
the
> > > development board...
> > >
> > > Are you thinking a cap at the RTC power pins would solve it?
> > >
> > >
> > >
> > >
> > >
> > > --- In , "Phil" <phil1960us@y...> wrote:
> > > >
> > > > got bypass caps?
> > > >
> > > > --- In , "pondindustrial"
> > > <pondindustrial@y...>
> > > > wrote:
> > > > >
> > > > > Hi group,
> > > > >
> > > > > I recently placed a DS1307 RTC on a breadboard and wired it
to
> > a
> > > > > PIC16F877 and started reading data. I was displaying this
data
> > on
> > > a
> > > > > PC through serial, via VB. Every once in a while (couple of
> > > minutes)
> > > > > I would read a mess for the date and time, but ONLY for the
> > date
> > > and
> > > > > time values, hence, the delimiters (/: etc.) displayed as
> > > expected,
> > > > > no corruption.
> > > > >
> > > > > At the time, I attributed the problem to the rats nest of
comm.
> >
> > > wires
> > > > > strung across the breadboard and didn't give it much
further
> > > thought,
> > > > > especially since the delimiters continued to display
properly
> > > (which
> > > > > are added in the PIC of course) and only the RTC data did
not,
> > > i.e.:
> > > > > garbage in, garbage out! Well, a few days ago I wired in a
4x20
> >
> > > LCD
> > > > > and started displaying the data on it instead of the PC, I
> > still
> > > got
> > > > > the garbage, as expected. I then soldered the RTC to the
PIC
> > > > > development board I'm using and made sure all communication
> > wires
> > > > > were short and isolated as best possible between the RTC and
> > PIC,
> > > > > I'll be dammed, I'm still displaying the intermittent
garbage.
> > > > >
> > > > > Any clues where the source is, IMO it has to be coming from
the
> >
> > > RTC
> > > > > correct? But why, and how can I possibly get rid of it?
> > > > >
> > > > > As a footnote, I also added a separate routine immediately
> > > following
> > > > > the date/time routine to display an incrementing variable
on a
> > > > > different line on the LCD, the incrementing variable never
> > > displays
> > > > > corrupted, only the RTC data
> > > > >
> > > > > Thanks in anticipation!
> > > > > Eric
> >
> >
> >
> > =====
> My software has no bugs, only undocumented features.
>
> __________________________________________________
>




The 2024 Embedded Online Conference