From: email@example.com (Ken Smith)
Subject: Re: Need design suggestions re. High Rel. products
Date: Mon, 20 Jan 2003 00:00:50 +0000 (UTC)
Organization: a2i network
NNTP-Posting-Date: Mon, 20 Jan 2003 00:00:50 +0000 (UTC)
X-Newsreader: trn 4.0-test76 (Apr 2, 2001)
Originator: firstname.lastname@example.org (Ken Smith)
In article <email@example.com>,
Scott Kelley wrote:
>I'm working on the design of some micro-controller (8051 series) based
>products that will be required to operate 24/7 for years on end. Have
>just implemented a watchdog . . . would greatly appreciate any
>specific thoughts of additional things to keep in mind, or any other
>advice based on your experience.
>Any suggestions of books, online resources, etc. which might be
Put a large capacitor in the Vcc supply. Supply droop is a sure way to
make an 8051 go astray.
Make sure the clock signal is good looking.
If a variable can only be 1,2 or 3, make sure nothing too bad happens if
it is any of the other values.
If you must code in C, don't use a switch statement unless you look at the
code that is actually produced.
If your product's operation can take it, reset the stack pointer etc to
its initial value whenever nothing important is happening or there is an
error message. This is more important in C projects than ASM ones. C can
use a lot of stack.
If a large amount of data is being held in static RAM, put a check byte or
word after it and check it before you use it.
If you are processing RS-232 or other things with interrupts, be careful
with any non-interrupt I/O operations. For example, it takes two write
operations to load the counter in an 8254. If an interrupt happens
between, the interrupt code could change something that matters to the
loading of the 8254. (Someone I know spent a week finding a bug that
happened less than once a day)
firstname.lastname@example.org forging knowledge