EE 308 -- LAB 08
Test of Memory and Port Expansion

Now that you have completed your wiring, you will test your work.

  1. Before adding chips to your board, check (and record) the resistance between VCC and GND. It should be at least several kOhms. If it is not this high, you have a mistake in your wiring.

  2. Before adding chips to your board, use a logic probe to check for power and ground. Connect you board to a 5 V supply. With a logic probe, check for a logic high at every pin which is supposed to be wired to VCC, and for a logic low at every pin which is supposed to be wired to GND. This will insure that you did not wire your power supplies backwards; such backwards wiring would destroy all your ICs.

  3. Turn off power, put in your four ICs and you resistor network, and turn power back on. Use a voltmeter to check your power supply voltage. If it is not 5 V, turn power off immediately -- you have a problem in your wiring.

  4. Turn off power. Cut the trace on jumper J4 on the back of your board, and put your spare jumper on the two-pin header in the wire-wrap area. Connect the serial port to your computer, get into the Windows Terminal program, and turn on power. You should get the BUFFALO prompt. If you do, proceed.

  5. Fill all of the expanded memory with 0xAAs, then with 0x55s. (Use the BF command of BUFFALO.) If this works, then your memory is wired correctly.

  6. Connect wires from Port A of your 6821 to LEDs on your breadboard. Set up Port A for output. Do the following in BUFFALO: Change the value of 0x8001 to 0x00, change the value of 0x8000 to 0xFF, change the value of 0x8001 to 0x04. Then use Port A to turn on and off the LEDs on the breadboard. Do this in BUFFALO by changing the value of 0x8000. It this works, your board is wired correctly, and you now have 32 kbytes of RAM and two new ports.
    Congratulations!!!

  7. Connect the logic analyzer to the address, data and control lines of your system. Run the following program:

                    .area    CODE (ABS)
                    .org     0x6000
    
                    ldaa     #0xaa
         loop:      staa     0x2c
                    bra      loop
    

    You should be able to group things together so you get a timing diagram similar to that handed out and discussed in class. Measure the following times, and compare them (where appropriate) to the times in the Motorola M68HC11 E Series Technical Data Manual:

    1. The length of time the E clock is high.
    2. The length of time the E clock is low.
    3. The length of time AS is high.
    4. The time delay from E going low to AS going high.
    5. The length of time *OE, *WE and *CS are low.
    6. The length of time from E going high to *CS going low.
    7. The low-order address hold time -- the time from AS going low to Port C changing from address mode to data mode.
    8. The high-order address hold time -- the time from the E clock going low until Port B puts out a new address.
    9. The 68HC11 data hold time -- the time from E going low to Port C changing from data to address mode during a write cycle.
    10. The memory data hold time -- the time from *OE going high to the RAM chip releasing the data bus.

  8. Modify your program of Lab 4 to increment the LEDs on your breadboard so that your program will use Port A of the 6821 instead of Port B of the 68HC11.


Bill Rison, <rison@ee.nmt.edu >
Wed Mar 6 1996
© 1996, New Mexico Tech