Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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