Download Troubleshooting Embedded Microprocessor Based Boards

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Printed circuit board wikipedia , lookup

Fault tolerance wikipedia , lookup

Microprocessor wikipedia , lookup

Immunity-aware programming wikipedia , lookup

Transcript
Troubleshooting Embedded Microprocessor Based Boards
What is an embedded microprocessor?
Any microprocessor may be used in an embedded application. By embedded I
mean a microprocessor without a human interface (keyboard and video display) intended
for a simple singular purpose. These are usually not high speed or wide bus width
devices. They usually have an 8-bit wide data bus and speed is less than one instruction
per microsecond, but these are not hard-held rules.
Cellphones, toasters, answering machines, missiles, robots, automobiles and most
any other smart devices would likely be classified as an embedded application. In
contrast we might consider a home computer system as not an embedded microprocessor.
It is not so much a description of the microprocessor used. Any microprocessor
can be used in an embedded application. A giga-hertz speed x86 type microprocessor
could be used in an imbedded application if the application required that level of
processing power. Most do not and many small embedded microprocessors or
microcontrollers can be found for under $2.00 (US, 2006).
Microprocessor versus Microcontroller
For the purpose of definitions used in these articles we will define some terms as
we intend to use them.
ALU – Arithmetic and Logic Unit. The central part of a microprocessor or
microcontroller that actually does the Arithmetic or Logical operation as specified by an
instruction set. For a basic example see a data sheet for a 74181 chip.
CPU – Central Processing Unit. The ALU together with its registers as an assembly on a
board or on a single chip.
MPU – Microprocessing Unit. CPU with its data and program memory and basic I/O
circuits. It may be a board, or multiple boards, or it may be all in one chip.
Microprocessor – An MPU chip whose pinout include Address, Data and Control lines.
Microcontroller – An MPU chip whose pinout includes I/O Ports. Address, Data and
Control lines are deeper inside the chip and may (or may not) be accessible on the pinout.
The distinction between a microprocessor and microcontroller are not fast-held
rules. Some microprocessors are capable of functioning in either mode. The Intel MCS51 family is a good instance (8032, 8051 group). The chip is capable of operating as a
microprocessor with Address, Data and Control lines as its pinout with program and data
memory outside the chip, or the pinout can be I/O Ports with program and data memory
inside the chip. If it is capable of operating as a microcontroller it is usually termed as a
microcontroller by the manufacturer.
No law requires manufacturers to follow these definitions.
Easy troubleshooting options first
Ah, the things we do that we don’t confess. Yes we would all like to be thought of
as logical troubleshooters with solid theory and knowledge as we were taught in schools.
The ability to do so is why we went to school in the first place. But this may not always
be our first approach to troubleshooting a bad board.
Pre-troubleshooting checks
Is the problem one of the socketed chips? Keep a known good set of chips for
each board. Carefully... Do I need to say carefully? Do we need to post a sign in the
desert that says “Thou Shalt Not Eat The Rocks”?... of course you will do so carefully.
Carefully change all socketed components to see if the problem is one of the socketed
ICs. Note alignment of the IC. Check for physical damage to the chips and the sockets.
On older games check for corrosion on the leads, dust, or anything foreign that might
interfere with the IC making a good contact with the socket.
If necessary while you have the chips out clean the board with a mild soapy
solution and dry it quickly. Non-ammonia window cleaners diluted 50% would be an
acceptable cleaner. Rinse it well and dry it thoroughly before applying power.
Blow drying it is not a good idea if the board is sensitive to static electricity. Air
drying in a well-ventilated room overnight is acceptable.
Step 1
Do we have reported symptoms to start from that point to a specific circuit? If so
then we can jump straight to logical troubleshooting and schematic references (Step A). If
not we start with the basics (Step 2).
Step 2 Close observations, power off
Is there any obvious damage to the board. Look for burned chips or board traces.
Bent pins or other physical damage that would be an easy repair are our first lucky
breaks. Keep in mind that chips seldom burn out without a reason. Such things may well
only be the symptoms of the problem. Replacing the burned parts may or may not get the
board back in operation. Electrolytic caps may fail on their own by simple aging.
Semiconductors usually don’t.
Step 3 Close observation, power on
Apply power and check to see if the power distribution circuits on the board are
functioning. Monitor the current the board draws and compare that to a known working
board. It is best if you have a schematic to work from and can identify voltage regulator
circuits and see what their outputs should be. All is not lost if you have no schematics.
What you do need is a knowledge of what the ICs do and identify these chips by part
number and reference a data sheet for these parts. The data sheet will give you an idea of
what this section of the schematic looks like and what voltage you should have on which
pins.
Check for components that get hotter than they should. Good designs usually keep
the temperature of the components down to the level you can put your finger on and not
feel pain. High temperature is an indication that that part is drawing too much current and
indicates an area at the output of that chip that is the problem. Replacing the part that gets
hot does not always fix the problem. The problem is what ever is causing the excessive
current drain.
Step 4 Quick scope checks
Once you have determined that the problem is not power related you can pull out
a scope and make a few quick checks. Did I say a few?
Do all oscillators oscillate? Are Address, Data and Control lines moving freely? A
schematic is helpful, but data sheets also provide this information. Investigate closely and
line that does not show activity. There may be a good reason for the inactivity. When in
doubt consult the schematic or data sheet.
Step 5 Power-On Reset
Hold the Reset line active and check the chips for Power-On reset condition. Most
Reset circuits have a capacitor that determines the length of the Reset pulse. Short this
capacitor so Reset stays active. Consult the schematic or data sheet to identify the Reset
circuit. If you cannot identify this circuit put down the soldering iron and step away from
the bench. :-)
During Reset most lines of the microprocessor or microcontroller are tri-stated or
put into a known passive state. When in doubt compare the questionable board with a
known good board.
Step 6 I/O during Reset
While the board is in the Reset state much of the I/O may be manually tested for
function. Usually during Reset all outputs are off. Any output that is on during reset
should be investigated. Do the Address, Data and Control lines tri-state? Do all Chip
Select lines go inactive?
Step 7 NoOp instruction
Most of the time you will not have access to what the program does after Power
On. Some predictions can be made, but it is best if you can know what the processor
should be doing. Create a simple Program chip that is filled with a No Op instruction. For
most microprocessors this is an instruction code of all zeros. If you have a
microcontroller and not a microprocessor with EPROM program memory you can always
create a microcontroller with such a program contents. Keep the board Reset active but
have a clip-on circuit with the test microcontroller and a switch on the Reset line.
Address lines should have a predictable pattern to them as the processor
sequences through memory. Data lines should bounce between tri-state and ground. The
processor should do a scope-able Program Memory Read operation.
Step 8 Write your own programs
If you have a microprocessor and EPROM program memory design you have the
option at your disposal to, say, write a memory test to check RAM or Program memory,
do an I/O test or something.
Step 9 Built in diagnostics
Most games have a diagnostic built into them. You can go thoughtfully through
each test looking for something that does not work. Check that all outputs go properly
high and low. Check that all inputs are recognized to go high and low.
Step 10 Game test
If you get this far in the troubleshooting without blowing anything up the problem
on the board will probably do no harm to the game and be tested in a game or test station.
Step A Good troubleshooting
Do we have a schematic and/or a tech manual for this assembly? If you have
known symptoms you can troubleshoot those circuits. Most of the time if you can get it
down to one input or output that is not working you have resolved the possibilities down
to one or two ICs that relate to solely that function. If you have multiple symptoms you
may be able to resolve it down to what those symptoms have in common in a circuit.
Schematics are very helpful, but not mandatory. Most of the time you can tell
what circuit on the board does which function just by looking at the board and
understanding what the ICs do.
Remember that not all problems will be a bad IC. Look for board damage as well.
Not all problems will be hardware. If the problem just doesn’t make sense as a hardware
problem check with the manufacturer to see if software problems similar to these have
been reported. There is an ugly reality here. Most manufacturers do not report software
problems until a solution is available in a new software release. There are good reasons
for this. If the problem could result in game operation in a non-secure manner it does not
benefit them or the casino to distribute this information until they have a remedy.
Step B Points of Likely Failure
Other than Outputs, most of the stress in a digital circuit does not come when the
signals are in the high or low state, but when the signal is making the transition from high
to low or low to high. Circuits that have a lot of activity are more prone to failure. This
occurs primarily in Address Selection circuits. This problem is compounded by the use of
Programmable Logic Arrays in these areas. For speed small architecture gates are used in
these PLAs. This combination of lots of high speed signals in small geometry chips
makes PLAs one of the high failure areas of boards.
Inputs and Outputs that enter or leave the board are subject to misadventure.
Wires get pinched in moving assemblies. Hot swapping assemblies not built to be hot
swapped can also create failures. Player Panel lamp assemblies where one side of the
switch is grounded and one side of the lamp goes to a steady voltage are also subject to
misadventure. Williams, for instance, puts their player panel lamps in a scanned matrix.
Misadventure is more likely to result in a non-destructive malfunction than in a melted
wire harness like you probably have seen in other manufactures games. This is a holdover
from their days as a pinball manufacturer. They can drive 64 lamps with just two 8-bit
output ports organized as 8 rows in 8 columns.
Test fixtures or live equipment
I certainly would not put a known bad board in a $10,000 game to see what the
symptoms are. You run the risk of damaging a good game that generates revenue. The
cost of the damage is not just the cost of repairs but lost income from a down game.
You have the options of having a real game dedicated to use as a test station, or
purchasing a test station from the manufacturer. Or turning a game into a test station if
the manufacturer doesn’t supply a test station.
You also have the safer option of building test fixtures for testing and
troubleshooting assemblies in an environment that simulates the actual game
environment. Power supplies can be tested under a load that is similar to the game current
drain. See the section on testing power supplies. Coin Acceptors, hoppers and such can
be tested at the bench in a circuit that simulates game operation.
Power Supplies
Coin Acceptors
Coin Hoppers