Looking through some of my ICs I found a pile of those skinny cache ram chips from old 486 motherboards. The chip part number is UM61256FK-15 15ns access time is 10x faster than any MC6802 can deal with but I have quite a few of these so I decided to make a 32K RAM card. How hard could this be? I mean, I just completed the 8k ram card, (after two tries) this should be a quick design and build.
This card was not going to have any jumpers. I decided that it would only map from address $0000 to $7ffff This meant the A15 address line could be the select line. If A15 is low, then the ram is enabled, if its high, then its disabled. Sounds simple enough. A chip and a decoupling capacitor. Here is version 1.0
What a simple looking card.
It did not work.
Before I explain what failed, let me say that before I used any of these chips, the rom, the ram, even the cpu, I hooked up an Arduino to them and tested them. This gave me a good feeling that I correctly knew how to connect and talk to the chip. Well with the Arduino controlling the address lines and data lines, and of course A15 the chip select line, everything worked fine and I could read and write this 32k just fine.
In this case, I forgot about VMA. VMA has to be valid before any chip select can happen. I did not have the Arduino simulate this, and I got in a hurry and missed it in the design.
On to version 1.1, where I added an IC so I could get the result of !A15 AND VMA. This should work as now when A15 is low, the ram won't be selected until VMA is valid.
I'll spare you the pic of version 1.1 pcb.
It did not work.
What is happening?
This is now hooked up the same way the 8k ram is, yet it doesn't function.
I hooked up the scope to the A15 and VMA lines coming from the CPU, and also the !CE pin of the ram. The scope shows that the !CE pin goes low correctly when A15 is low and VMA is high.
Time to consult the reference books I've been using from the start of this.
Turns out the 61256 ram chip was too fast for this 6802 processor. With a 15ns access time, the ram was seeing the VMA and A15 address lines go high before the E clock had a chance to go high. The ram needed to wait before being enabled by watching the low to high transition of the E clock. Here is the new ram enable logic.
The final product...
At the stage, the 6802 is a functioning computer.
- A breadboarded CPU card on an ISA proto card.
- 8K or 32K static ram
- 8K rom card
I can burn a rom with ram test code, but I have no way of showing success or failure.
--> The next card to focus on is the Serial I/O card.
--> Previous
--> Home