EE 308 -- LAB 09
Bus Timing and Programming the 68B21

  1. Connect the logic analyzer to the address, data and control lines of your system. Run the following program, which can easily be entered from BUFFALO:

                    .area    CODE (ABS)
                    .org     0x2000
    
                    ldaa     #0xaa
         loop:      staa     0xb000
                    bra      loop
    

    You should be able to group things together so you get a timing diagram similar to that attached. 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, *CS_MEM and *CS_PIA are low.
    6. The length of time from E going high to *CS_MEM going low.
    7. The length of time from E going high to *CS_PIA going low.
    8. The low-order address hold time -- the time from AS going low to Port C changing from address mode to data mode.
    9. The high-order address hold time -- the time from the E clock going low until Port B puts out a new address.
    10. The 68HC11 data hold time -- the time from E going low to Port C changing from data to address mode during a write cycle.
    11. The memory data hold time -- the time from *OE going high to the RAM chip releasing the data bus.

    Note that, because of the clock speed of the logic analyzer, you will not be able to measure very short times.

  2. Write a C program which uses the timer overflow interrupt to increment PIA Port A, and uses the 16 ms real time interrupt to decrement PIA Port B. Connect the four most significant bits of PIA ports A and B to LEDs on your breadboard to verify that your program works.



Bill Rison, <rison@ee.nmt.edu >
Tue Mar 19 1998

© 1998, New Mexico Tech