This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Philips 8031 chip keeps reseting

My company is using Philips 8031 chip. The
new batch of chips we received, every one of
them keeps reseting itself when when
it come accross the PRINTF statement !!!
The c-code works fine with the old 8031 chip !!

Does anybody in this forum experience such
problem? The PRINTF statement we are using
is to send out a stream of characters to
the RS232 port. It is a SOFTWARE routine, we
are not used the built-in UART, could this
be the problem? however, I was very confused why the old chip works !!!

Thanks in advance, any helps or suggestions are veru
appreciated.

Parents
  • Hi,
    I had similar problem years ago. My code worked with old chip but kept reseting with new chips. Finally I found I need initialize some internal ram to zero,if I clear these location to zero, the new chip works. I think the problem is that new chip won't clear internal RAM by default when it powers on and old one does that.

Reply
  • Hi,
    I had similar problem years ago. My code worked with old chip but kept reseting with new chips. Finally I found I need initialize some internal ram to zero,if I clear these location to zero, the new chip works. I think the problem is that new chip won't clear internal RAM by default when it powers on and old one does that.

Children
  • "Finally I found I need initialize some internal ram to zero,if I clear these location to zero, the new chip works."

    This is precisely why it is so important to ensure that all variables are initialised [1] before they are used!

    "I think the problem is that new chip won't clear internal RAM by default when it powers on and old one does that."

    Did the datasheet for the old processor actually say that it cleared internal RAM?
    Usually, the content of RAM is undefined at powerup - that means that it could be absolutely anything, and it does not have to be consistent, or repeatable, or predictable, or anything! It could very well change between batches of chips, or the phase of the moon!
    You were probably just lucky that it worked with the old chips (the RAM just happened to powerup in a favourable state for you!)

    [1] By "initialised" here, I just mean "specifically assigned some value" - whether that's done in your startup, or as part of your main code.

  • Hi,

    You are absolutely right,we should initialize any variables before use them. In fact, I was extremely lucky, because the old code with init. problem worked well on Intel and Philips chips for years but did not work with Winbond chips at all.

    Xiao J