CSC 480 Lab #8

"Counting the memories" Lab

Purpose

Today, we will create a simple control unit, using (and learning) two new chips.

Components used

Datasheets are attached for:
bullet 2816 EEPROM
bullet 7493 binary counter

Lab Problems

First, we'll learn how the EEPROM works. Then, we'll play with our binary counter. In the finale, we're going to use the counter to generate addresses for the EEPROM.

Deliverables: Complete a nice logic diagram and show me when you've completed each step.

1. The EEPROM, 2816

The 2816 EEPROM is a 2K x 8 electronically erasable ROM. The goal of part 1 to is to write the following 16 decimal values into the ROM:

Address Value
0000 3
0001 11
0010 7
0011 0
0100 3
0101 9
0110 6
0111 9
1000 1
1001 2
1010 4
1011 10
1100 0
1101 10
1110 15
1111 1

Please note that the values in the table are just gibberish that I made up. You can put your own values in as long as you write them down and as long as they are also somewhat random... don't want to stifle your creativity, eh.

Read the datasheet description of the 2816 EEPROM. Draw a circuit diagram of how you plan on hooking it up. Here's some help:

bullet There are 3 enable bits. Please note that they are all active low:
bullet CE' - chip enable, which can turn the whole unit off
bullet WE' - write enable, which allows you to write a value to the current address
bullet OE' - output enable, which allows you to read the value at the current address
bullet There are 11 address bits A10 - A0 to enable the addressing of 2K words
bullet There are 8 input/output bits I/O7 - I/O0 which are used as inputs when write_enable is active and are used as outputs when output_enable is active

Here's my suggested connections:

bullet We're connecting a lot of things to ground. I would setup ground busses on either side of the chip.
bullet Connect CE' to ground, so the chip is always enabled
bullet Connect OE' and WE' to a pulse button, so that we are reading the ROM by default and will write a value to the ROM when pressing the button. Connect OE' to the rising edge of PB1 (active on logic 0, when PB1 is at rest) and WE' to the falling edge of PB1 (active on logic 0, when PB1 is pressed).
bullet Connect the lowest 4 address bits A3 - A0 to switches S7 - S4.
bullet Connect the low-order I/O bits I/O3 - I/O0 to switches S3 - S0. The values will be programmed in using these switches.
bullet Connect any unused address or input/output pins to ground.

Every pin should be connected to something before you start.

Set your address and value switches, and "program" your ROM using the values from the table. Press the PB1 button each time to write to the ROM.

Once, you've programmed the ROM, you want to show that the values have successfully been written. You need to disconnect switches S3 - S0 from the ROM; we will no longer be writing or setting values. We want to read the values in the ROM, so connect I/O bits I/O3 - I/O0 to the LEDS (L3 - L0). Don't forget to turn the power off as you are altering the connections. Don't worry though, your 2816 is nonvolatile.

Turn the power back on. Try addresses 0 through 15 and verify that you have programmed your values into the ROM. Note: give your EEPROM some time to power up.

When you have verified that you ROM is programmed, then show me!

2. The Counter, SN7493

In part 2, please connect the 7493 to count from 0 to 15, repeating, showing the count in octal on the logic board's seven segment display. The seven segment display has two digits, DS1 & DS2, on the lower right. You can use the seven segment display by doing the following:

bullet Connect DS1DE & DS2DE to +5V to supply power to the display
bullet Once power is connected, DS1 treats connections DS1D, DS1C, DS1B, DS1A as a four bit binary value. That value is shown on the DS1 display. For example, for values DS1D = 0, DS1C=1, DS1B=0, DS1A=1, DS1 will light a 5 on its display.
bullet Likewise, DS2 shows the binary value of DS2D, DS2C, DS2B, DS2A as a four bit binary value.

Please read the description of the counter.

I suggest connecting it as follows:

bullet Tie reset inputs R0(1) and R0(2) together and controlled with any available switch
bullet Connect INPUT A to one of the pulse buttons, like PB1. Note on the datasheet that INPUT A has an bubble on it. This means that it will be driven on a negative edge.
bullet Connect QA to INPUT B which directs the chip to count from 0 to 15.

We will show the count using octal values on the seven segment display, so:

bullet Connect the low order outputs of the counter (QC, QB, QA) to the DS2 inputs.
bullet Connect the high order output, QD, to low-order bit of DS1.

Draw your circuit diagram, showing all connections.

You should be ready to count, using the PB1 button. Learn how to start your count at 0 using your reset switch. Success is counting from 0 to 15 (or 17 in octal) and repeating.

3. A caveman's micro sequencer

For the final step, connect the QD - QA outputs of your counter to the A3 - A0 address inputs of the ROM. You should be able to cycle through the ROM values that you set earlier using the counter.