Example 8051 Board Design A low-cost development system ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- Under construction... this material is incomplete. Though the design is known to work, nobody has confirmed that it can be built using only the information presented here. This message will be removed when this page is verified by real construction. ---------------------------------------------------------------------------- Contents * Introduction * What You Will Need * Detailed Description * Schematic * Wire Wrap Construction * Printed Circuit Board Construction * Testing and Getting It To Work * Where To Go From Here ---------------------------------------------------------------------------- Testing and Getting It To Work Visual inspection really is the easiest and most time effective way to troubleshoot in a case like this where the design is known to work. Please check your work carefully. The only test equipment mentioned below is a multimeter (volts/ohms) and perhaps a clip lead to connect it's negative lead to ground. Fancy (expensive) test equipment, such as an oscilloscope or logic analyzer is not needed. Keep in mind that a voltmeter's DC voltage measurement measures average voltage. A digital signal which is 0 volts low and 5 volts high will read about 1.7 volts if it is high 1 out of every 3 clock cycles. For non-CMOS logic, the high output is somewhere lower, so 1.1 to 1.8 volts is probably fine, but 0, 4.1 or 5 volts would indicate a problem. Before inserting the chips, check for opens and shorts with an ohm meter. This can be a tedious process, particularily for the buses. At least check that one bus line connects to the proper pin on each chip, so that you're sure the bus was not accidentally wired in reverse somewhere. Apply power without any chips in the board. Using a DC voltmeter, verify that power is applied to every chip correctly. This step MUST NOT be skipped, since chips will likely be damaged if power is not applied correctly. To do this check, attach the negative lead to ground at the power supply, and then probe the Vcc pin of every socket. Then connect the positive test lead to +5 volts at the power supply and probe the ground pin of every chip. You must do both of these tests to assure that every chip's power is connected properly. If signals are connected incorrectly, usually chips won't be damaged, but errors in the power connections are usually more painful, so do this simple check before putting the chips into their sockets. Once the power is known to be correct, insert the MAX232 and its capacitors. Apply power and check the voltages on the RS-232 connector. The transmit line should be at about -8 to -10 volts. The receive line should be at about zero volts, though less than about 1 volt is fine. As well, pin 2 of the MAX232 should be at about +10 volts and pin 6 should be at about -10 volts. Connect the voltmeter's ground to your computer's ground and check the voltages on the lines of the computer's serial cable. The line which will connect the the 8051 board's receive ought to be at about -12 volts (but it may be between -5 to -15 volts), and the one which will connect to the 8051 board's transmit ought to have very little voltage on it. If this is the case, you're finally ready to try it out. Now insert the 8051, 27C64 EPROM, 74HC08, 74HC138, 74HC373, crystal and other passive components. Make sure that pin 1 is lines up. A chips is usually destroyed if it is plugged in backwards, so please double check. Turn it on and hit carriage return if PAULMON's automatic baud rate detection is used. Does the welcome message appear? If you get a screenful of garbage, try again, perhaps at a lower baud rate. 1200 baud is a good place to start before you know if your board works. If you get garbage with PAULMON1, you need to turn off the power instead of just pressing reset. If Nothing Happens When You Turn It On: * Is the crystal oscillating? Do not probe the crystal pins, instead check the DC (average) voltages on the PSEN and ALE pins. According to the standard timing diagram, ALE is high 1/3 of the time during program fetchs, and PSEN is high 1/2 of the time. For a CMOS 8051 running at 5 volts, ALE would then be about 1.7 volts and PSEN ought to be about 2.5 volts. For an NMOS 8051, the voltages may be a bit lower. If these are both stuck at either 0 or 5 volts, the oscillator probably isn't. * Is it actually finished with reset? Check the voltage on the reset pin. When you apply power, it should jump to five volts, but drop to zero in only a moment. Your meter may not respond quickly enough to show a reading of five, but you should see it jump and it should end up at zero. * Is it configured to access the external program memrory? Check the EA pin. It should be low so that the 8051 will use the program stored in the EPROM. * Is the EPROM getting enabled? Probe the EPROM's CS pin (pin 20). It had ought to be about nearly zero, since the 8051 should be spending nearly all its time fetching instructions from this chip. * What memory ranges is the 8051 accessing? Probe the address pins, particularly A15, A14, and A13. These should all be low voltages, since it will be executing a program from the EPROM. Repeating patterns (visible to the human eye on a voltmeter) often times mean the data bus is returning FF (or something else) for all reads, and the 8051 is just cycling through all 64k of memory doing nothing useful. Check the wiring to the 74HC373. Are the D's and Q's interchanged? Make sure pin 1 is held low, so it will actually drives it's Q output pins. * Check the EPROM's RD pin (pin 22). It should be similar to PSEN's voltage, about 2.5 volts, perhaps less if a non-CMOS AND gate was used. * Are bus lines shorted together? Probe all address and data lines looking for identical voltages. * Probe all address lines and touch lines with 100k resistor to ground and +5V... if this changes the voltage much, likely open circuit. Unfortunately, the data bus floats at times, so this test isn't as conclusive for the data bus, but visual inspection is usually easier than this resistor test anyways. An ohms check with the chips removed is also easier and you don't take a chance of shorting things by poking around while the system is turned on. * Are all the chips properly seated in their sockets? It's common for a pin to bend under the chip and appear to go into the socket when viewed from the side. Look underneath the chips from the top and bottom ends of the sockets. * Are all the chips the right ones: Double check the numbers. Make sure you didn't install a NAND gate intead of an AND gate! Getting the EPROM/RAM or 8051/82C55 swapped doesn't help either. * For wire wrap: Check all the wires... are any pins empty that shouldn't be? Count the number of connections for each node on the schematic and compare to the board. It's best to do all voltage probing from the top side of the board directly onto chip pins, so faults in the sockets are tested as well. Since almost all voltages are measured with respect to ground, it pays to attach the negative probe of your voltmeter to a secure ground point on the board. You only have two hands... Once The Welcome Message Appears install ram, download a simple test program and see if it made it into memory. install 82C55 chips, run a simple test program to verify that they work. ---------------------------------------------------------------------------- Paul's Sample 8051 Development Board Design http://www.ece.orst.edu/~paul/8051-goodies/dev-board-testing.html Last updated: 28 Sept 1995 Statue: about 80% done now... need some photos... and proofreading Suggestions, comments, criticisms, things you want?? ----------------------------------------------------------------------------