??? 05/17/08 15:58 Modified: 05/17/08 15:59 Read: times |
#154848 - are you sure this is appropriate for POST? Responding to: ???'s previous message |
Jon Plotky said:
I was hoping to find a generic '51 POST routine in the code library, but don't see anything. Anyone care to share? :)
How extensive a POST test do you normally run? Do today's micros fail often enough to make the effort and time required for a good POST worthwhile? Here's the sequence I'm thinking of using. Any feedback is appreciated. "Check" means "verify proper operation of". 1. Check ALU using only accumulator and immediate constants 2. Check the active register set 3. Check direct, indirect, and indexed addressing 4. Perform a checksum on program memory 5. Perform a RAM test 6. Check the other register sets 7. Check that timers will count 8. Check that interrupts 9. Check SFRs as much as possible 10. Check any on-chip peripherals 11. Check external peripherals While tests 1, 2, 3, 6, 7, 8, 9, and 10 might be used in an "incoming inspection spot-check, or the like, it doesn't seem that they're necessary for POST. Test 5, too, is not particularly useful for POST, unless you use external memory, though it should be spot-checked, say at a 5-10% sampling with each lot at receiving inspection. Once the MCU is soldered in place, the only thing that needs to be checked is the ROM checksum. If that fails, the entire product is likely to be tossed out since an MCU failure of any sort, at least in the context of tests 1 .. 9 will likely cause the checksum to fail as well. POST should identify detectable errors specific to the system. If you install a "broken" MCU, it's not easy to detect that in a normal sort of POST. If you have the time at power-on, you could to this extensive testing, but, where do you stop? Are you willing, beforehand, to perform a complete failure mode and effects analysis? If you detect a checksum error in code space, how do you know whether it's a bad accumulator bit, or a bad memory addressing path, or a bad ALU? Does it matter? If you system communicates with something else, does it have a valid initialization message? Do you have facilities for hardware loopback? How would you go about checking your hardware port function? Are you willing to include hardware support for such testing? Food for thought! RE |
Topic | Author | Date |
power-on self test best practices | 01/01/70 00:00 | |
Probably not | 01/01/70 00:00 | |
none, no | 01/01/70 00:00 | |
are you sure this is appropriate for POST? | 01/01/70 00:00 | |
power on self test .... | 01/01/70 00:00 | |
I can imagine cases... | 01/01/70 00:00 | |
Mandatory for some products | 01/01/70 00:00 | |
The only time I use it. | 01/01/70 00:00 | |
OT? | 01/01/70 00:00 | |
start a new thread | 01/01/70 00:00 | |
and use a descriptive title... | 01/01/70 00:00 |