Monday, August 8, 2016

2114 Ram Chip

I always had an itch to mess around with some memory both RAM and ROM. I really wanted to just be able to read/write from the memory really fast. Thankfully I had these old, early '80s, ceramic ram chips in my garage electronics cabinet. I quickly grabbed one and pulled up the datasheet.
ADDRESSING:
I read over it and looked at the pinout to see if it was manageable for my ability to work with electronics. I saw it was a parallel addressable I/O with 8 address pins and 4 I/O pins. The I/O pins are 3 state pins. I looked at the block diagram and had a little trouble understanding it. I scrolled down to the bottom of the datasheet and saw a interesting memory diagram. Pictured below. I was very confused. I was thrown off at the A0 A1 A2 A9 being at the bottom of the memory and the rest of the addresses at the top. I scratched my head for a while. Then figured I'd look at the datasheet. Still confused I then noticed the 4 column addresses A9A2A1A0. So
A9A2A1A0 could hold 4 bits. 0-15 in decimal. And 64 high in the column. I don't exactly still know why each column is a separate I/0 because the data is not serialized, only paralleled meaning each I/O can only represent a 1 or 0 at a time. That made me a little weary but I decided to press on.



  

Timing:

Next up was timing, how was I going to read and write into the chip and tell it to respond to my every command? The chip is pretty simple, there's 2 latches. One labeled W and one labeled S. To read,
W had to be logic high and S just had to go low. As long as there was a crossover between them you could read. To write was a bit more complicated with a few added steps. First, S and W need to be high. Then input the logic high/low onto each corresponding address bit. REMEMBER: A8-A3 were column addresses. So that allowed us 64 columns high. A9,A2,A1,A0 allowed us 16 memory locations of 4 bit words. So the chip was capable of 1024 four bit words or 4096 bits!



I figured I'd wire up the chip to a breadboard and put in some dip switches! Here was the result:

It worked to an extent. It was noisy but I could certainly read and write from various memory banks. I then figured I'd write a little code on my STM32 microcontroller and really get this puppy going. I'll save that for the next post!

No comments:

Post a Comment