According to my experience embedded systems are very reliable if they are designed properly. There are a few minor problems.
1: Init of ALL registers and VARIABLES to a correct value. Since you might have noticed there are abunch of registers in a PIC. Some of these registers will be reset to a specific value when you power up the pic, others might not.
2: Power supply, I would say if you have a bad power supply you will have a bad experience. A clean and stable power supply that can support the PIC and also all other things in the circuit without noice is important, especially if you switch things on and off. If you use relays it might even be smart to have a separate power for the pic and an other supply feeding the relay circuits (of course with a common ground)
3: Watch-dog, a nice little creature that can be very useful or very annoying. If it is used properly it will reset your PIC if the software hangs in an unexpected way. But if you forget to reset the watch dog frequently enough it will bite you. But if the code stops working for one reason or an other it will reset the pic to a known state which is kind of good.
4: BOR, brown out reset. A great thing to use to make sure the PIC stops dead if the power becomes too low. If you do not use this the PIC can run on almost no power at all and you will not know what it can do on very low voltage.
5: Filter inputs and outputs to make sure noice does not make your PIC go wild. ESD can do the most unexpected things so you also need to consider how the circuit will be protected against this. The electric discharge can both damage the PIC or other components in the circuit or it can cause the PIC to reset if you are unlucky.
6: Self-test, well ... sure it can be a good thing but here I would say hardware design is even more important. Make sure all signals will have a pre-set value (pull-up or pull-down) so that the entire system is held in a known state until the PIC powers up. It will take some time before the PIC is up and running and you really want to know what all signals do during this short time.
Of course you can double check later when the PIC is up that the system works by using some inputs from important signals but just a selftest will not protect you if step 1-5 is not done properly.
For a pyrotechnic controller MAYBE you can as a selftest test the igniting circuit for each device to see if it is properly connected by switching on some really HUGE pullup resistor.
7: Breadboard! If you should have any chance to make a stable system that you can trust you need to make a PCB or at least solder everything onto a proper develpment board. Loose cables and connections will drive you mad. PCB is of course a bit trouble and expensive but they do add alot of stability to the design.
Bookmarks