GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


archive:programming:tr_shoot
    ====================================================================
DR  6502    AER 201S Engineering Design 6502 Execution Simulator
    ====================================================================
    Supplementary Notes                                   By: M.J.Malone
    
	     Trouble Shooting the 6502 Project Board
	     =======================================
    
    Quick Checks
    ============
    
   There is only one important thing to keep in  mind  when  faced
    with  a  non-functioning  6502 board.  The board is just a series of
    traces.  The errors in the trace pattern are  well  known  and  once
    fixed  using the jumpers described in the project board notes, their
    is no reason for a board not to work except for reasons of software,
    power, bad chips and wiring mistakes.  The quick  diagnosis  methods
    and quick are given below.
    
    
    A Software Error
    ----------------

Many times when a design group is trying something the test

    fails, the software person  is  blamed.   After  a  recheck  of  the
    program  source code, the programmer says confidently, "Just look at
    this code, it is so simple how could there be an error?  It must  be
    'the  board'  !".  After several hours the software person discovers
    that they have typed:

lda DDRA_Port_Mask ; The mask for the I/O pattern of Port A

   sta DDRA

instead of:

lda #DDRA_Port_Mask ; The mask for the I/O pattern of Port A

   sta DDRA

If the bit pattern 'DDRA_Port_Mask' were interpreted as an address

    as in the first example, of course nothing works.

There are many such one character errors that are very

    difficult to see late at night on the fourth  check  of  the  source
    code  especially  when  the  checker is convinced there is no error.
    The solution is to have a test EPROM around at all times that checks
    all components of the computer.  Whenever a dispute of 'Is the error
    in hardware or software?' arises simply plug in the test  EPROM  and
    see if the board performs as expected or not.  An example test EPROM
    program  is  given in BOARDTST.ASM.  If your board has failed such a
    test as the one given in BOARDTST.ASM then continue.

page 2

Bad/No Power

  1. ———–

Check the power supply, batteries and connections. Check WITH

    A  VOLTMETER  the  actual  voltage  being produced by the 7805 power
    regulator.  The +5 volt trace is the one connected to the  regulator
    pin  next  to  the edge of the board.  This trace runs the length of
    the board and has connections to several 10K resistors and at  least
    one  capacitor.   The ground trace is connected to the middle pin on
    the power regulator.  If the voltage is greater than 5  volts  (like
    maybe 7-12 volts) see: 'Over Voltage' below.  If the voltage is less
    than  5  volts (like maybe 0-4 volts) see 'Under Voltage' below.  If
    the voltage is 5 +/- .1 volts then proceed.

Bad Chip

  1. ——-

It is possible that you have a bad chip. First check that your

    check EPROM is good  by  checking  it  on  someone  else's  computer
    board.   If  the EPROM is OK then put it back in the non-functioning
    board and proceed to swap chips with the  working  board  ONE  AT  A
    TIME.   If  at  some  time  the  working  board stops working or the
    non-functioning board checks out you can determine which of and  how
    many bad chips you have.

Wiring Mistakes

  1. ————–

Probably the fastest way to check if there is a wiring mistake

    is to have someone else look  at  your  computer  board,  preferably
    comparing  it  to  a  functioning  board.  Check the EPROM jumper is
    correct and in place and measures 5 volts.  Check that there are two
    jumpers near the 74xx04.  Check that one has a polarity  of  +5volts
    and  the  other  GND.  Check that there is a jumper near the 74xx74.
    Check that this jumper has a voltage of GND.  Check that there is  a
    jumper  on  the  bottom  of  the  6502 and that it measures 5 volts.
    Check the polarity of the tantalum capacitors.

Trouble Shooting Procedure

    ==========================

Though all non-functioning computers will fail to function from

    one of the above causes, a more detailed trouble-shooting  procedure
    will  be  developed.   After this several symptom-solution scenarios
    will be presented.

1) Connect the computer board to +12 and GND connections on the

    power  supply.   Place  you  finger  on  the  back of the 7805 power
    regulator and turn on the power supply.  If  the  regulator  becomes
    uncomfortable  to  touch  then  go  to 'High Current Drain'.  If the
    regulator does not become hot then continue.

page 3

2) First we will check the output of the 2 MHz clock circuit. Check

    pin  #6 on the 74xx04 chip with an oscilloscope set to 1 microsecond
    per division and 1 volt per division  with  the  GND  level  at  the
    bottom  of  the  screen.   If  the  pin shows an AC signal that is a
    rounded square wave of 2 MHz  frequency  (two  complete  cycles  per
    division)  then  advance  to  step  5.  If the signal is at either 0
    volts or 5 volts (almost exactly) then go to step 3.  If the  signal
    is between .7 volts and 2.7 volts then go to 4).

3) You are at this step because the clock oscillator which is

    supposed to be astable has latched into the high or low state.  This
    is simply not possible if everything is connected and the 74xx04  is
    even  close  to  working.   Check the connection of the crystal, two
    resistors and the .1  microF  capacitor.   Try  also  replacing  the
    74xx04 chip.

4) You are at this step because your clock signal is not starting by

    itself but instead is sitting in an equilibrium state.  We will  try
    disturbing  its  equilibrium  a bit.  Touch the leads of the crystal
    with your finger while continuing to probe the 74xx04 chip.   If  an
    AC  signal develops then the solution to this problem is to turn off
    the power, connect a 100-1000pF capacitor from the square  GND  area
    to  one  of  the  leads of the crystal and then power up.  If the AC
    signal develops  immediately  then  continue  to  step  5  otherwise
    increase the capacitance and try again.

5) You now have a functioning 2 MHz clock unit. Probe pin #37 of

    the  6502.   The  signal should be a square wave of frequency 1 MHz,
    one cycle per division.  If this is the case advance to step 8).  If
    the signal is a square wave but at a frequency of 2 MHz then  go  to
    step 7) otherwise continue to step 6).

6) You are here because your 74xx74 chip is probably not

    functioning.   Check  it  by  swapping  the  chip and also check the
    jumper near the 74xx74 chip that it is 0 volts.   Try  removing  the
    6502  chip  and  see  if  the problem persists.  If the clock signal
    becomes normal then perhaps the 6502  is  blown  or  the  74xx74  is
    blown.

7) You are here because you have the 2 MHz clock problem as

    described in the assembly notes.  Try the solution as  described  in
    the printed notes you received with your computer board.

8) You have a proven CPU clock. Next test to see if the 6502

    properly resets.  Check the voltage on pin #40 of the 6502 using  an
    oscilloscope.   The  voltage should be 5 volts.  It is normal to see
    small spikes in the 5  volt  level  of  approximately  +/-.3  volts.
    Press  the  reset  button and check that the voltage is 0 volts.  If
    the voltage is the opposite to that expected  then  it  is  probably
    that  you have a momentary open switch not a momentary closed switch
    as specified.  If this is the case then  you  can  still  test  your
    computer  temporarily  by  holding  the  reset switch but you should
    replace the switch at the earliest opportunity.

page 4

9) You now have a proven Reset circuit. Next test to see if the

    6502  is  executing  instructions  by probing the SYNC signal of the
    CPU.  The SYNC signal goes high every time the CPU fetches an opcode
    of program.  The SYNC signal can be monitored by probing pin  #7  of
    the 6502.
   Note:  to  get the pulse pattern to be stationary on the screen
    and not covered with ghosts and flickers, set the time  base  on  10
    microseconds  per  division and then adjust the time base 'cal' knob
    slightly until the pattern locks in with the fewest ghosts.  Set the
    times 10 sweep magnification on the time base.  The time base should
    be effectively just a bit more than 1 microsecond per division.   By
    adjusting  the  horizontal  position  knob, you will be able to scan
    through the series of pulses.
   The  opcode  fetch will last 1 microsecond.  This pulse will be
    followed by at least 1 microsecond low.  NOP, LDA #, TAY,  BNE  (not
    taken),  SEC  are all instructions that will take two machine cycles
    (microseconds) and will be seen on the  oscilloscope  as  one  cycle
    high  followed  by one cycle low.  The longest instructions (cycles)
    are RTS (6), BRK (8) and Reset (6).  On average,  most  instructions
    will  show 3 or 4 cycles since all non-indexed memory fetches, jumps
    and arithmetic or logical statements are 3 or 4 cycles.  It may seem
    for very long programs that it would be impossible to use this  sort
    of count the cycles type analysis but it is usually not.  Since most
    programs have one small segment of the code that is executed most of
    the time (like the innermost nest of a delay loop) it is possible to
    assume  that  most  of what you see on the screen that small part of
    the program with the ghosts being the other parts  of  the  program.
    By  this  method  it  is  possible  to determine whether the 6502 is
    executing the program intended or not.

Summary

  1. ——

If the above procedure does not lead to a cause of the problem

    then the recommended procedure is to trim down the  program  to  its
    minimum, and attempt chip swapping again paying particular attention
    to  the  VIA's,  CPU, EPROM and RAM.  It may also be possible that a
    poor soldering job may have left some connection not connected.   If
    this is suspected then it is recommended that the board be inspected
    by someone, preferably someone else, and suspicious areas be touched
    up.
   Your  computer  board  will  work  eventually.  If there are no
    missing jumpers and no bad chips the test EPROM must check out.

Symptoms/Cures

    ==============

Symptom: Over Voltage

  1. ——————–

First there are three possible causes for this. The power

    regulator  is  designed  to  produce  at least 5 volts.  If there is
    another source of voltage on the board of greater than 5 volts,  the

page 5

system voltage may rise above 5 volts. This is commonly caused by

    some user circuit or input to a CMOS VIA.  The obvious remedy is  to
    turn  off  all  external  voltage  sources  and  recheck  the system
    voltage.

The second problem may be simply that the +12 volt power supply

    has been mistakenly connected to  the  +5  volt  connection  on  the
    bottom of the circuit board.
   The  third  possible  problem may be that the 7805 is blown and
    not operating properly.
   The over voltage condition is very  serious  and  can  lead  to
    destruction of ALL of the chips in the system (the $35 mistake).

Symptom: Under Voltage

  1. ———————

If the voltage in the system is low and the 7805 power

    regulator is not getting uncomfortably warm then this can only  mean
    that  the  7805  is  defective  or  is not properly connected or the
    measurement of voltage is not being done properly.  If the  7805  is
    getting  uncomfortably  hot  to  touch  then  go on to 'High Current
    Drain'.

Symptom: High Current Drain

  1. ————————–

This assumes that the VIA's are not connected to any circuitry

    which  may be causing large currents to be drawn from the board.  If
    the VIA's are connected to external circuitry then  disconnect  them
    and begin again.
   If  NMOS  6502  or  6522  chips have been used then it is quite
    possible that there is nothing wrong at all.  An  computer  with  an
    NMOS 6502 and two NMOS 6522s can easily draw 1 ampere as compared to
    0.024  milliamperes  (yes a factor of 40!) for an all CMOS computer.
    This extra current draw is enough to make any 7805 a bit  hot.   For
    testing,  it  is  possible  to  bypass  the  regulator  and feed the
    computer board from a high current supply for testing  purposes  but
    it  is recommended that the NMOS components be replaced with CMOS at
    the earliest possible opportunity.  It is entirely possible that the
    board may not work at all with too many NMOS components  because  of
    voltage  drops  over the lengths of the fine traces used to make the
    circuit.
   This can be caused by a bad chip, a short circuit in the wiring
    or a bad tantalum capacitor.  To check to see if a bad  chip  is  to
    blame,  try  removing  the  chips  one  by one and trying again each
    time.  If the current drain disappears then the  last  chip  removed
    may  be the cause.  Another troubleshooting method recommended is to
    bypass the 7805 and connect a high current 5 volt supply directly to
    the 5 volt rail of the board.  Turn on the power and  quickly  check
    all chips with the back of a finger (because it is most sensitive to
    heat)  to  look for one that may be heating.  NMOS and TTL chips may
    become  warm  but  will  never  be  hot  under   normal   operation.
    Transistors  and  regulators  may  become  hot  but  will  never  be
    uncomfortable to touch.  If none of the chips  seem  to  be  heating
    then  leave  the  power  on  and check the voltage and current being

page 6

output by the supply. If the supply voltage is very close to zero

    then there is likely a short in the wiring (see next heading).  Wait
    a short time and look for smoke (big white clouds of smoke) from one
    of the tantalum capacitors.  If one of the capacitors is bad it will
    progress  from  smoke  to flames quickly so stand by the off switch.
    As soon as heat is detected from a chip or smoke  from  a  capacitor
    shut  off  the  supply  and  replace the component.  See if there is
    still a problem with a high current drain.

Symptom: Unlocatable Short Circuit

  1. ———————————

Sometimes there is an unlocatable short circuit somewhere on

    the  board, usually the result of a poor soldering job or a resistor
    or capacitor lead bent over and touching another area.  If the board
    has been thoroughly inspected by several people and the error is not
    obvious then there is another suggested course of action.
   Remove all the chips from the board and  bypass  the  regulator
    with a high current variable supply.  Adjust the current limiting or
    the voltage until the current flowing through the board is something
    between  .05  and  .1  amperes.   Using  a  voltmeter  set  to  read
    millivolts, measure the voltage across the  power  supply.   If  the
    voltage is too great to be read in millivolts do not become alarmed,
    this is actually better.
   The idea here is than any trace  that  has  a  current  flowing
    through  it  also has a small voltage drop along its length.  If you
    start where you have connected the -ve lead of the power supply  and
    test  all paths leading from it there will be one with a significant
    voltage difference in millivolts along some test length.  This  path
    is  the  one that leads to the short circuit.  Continue to leap frog
    along until you find your way back to the  +ve  lead  of  the  power
    supply.   Somewhere on the path you will discover a wrong connection
    and there is your short.



/data/webs/external/dokuwiki/data/pages/archive/programming/tr_shoot.txt · Last modified: 2000/12/16 02:37 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki