Dallas "ROMs"
( part 2 of SmartOS)
by Bob Woolley
In the SmartOS modification that we had last year, the core
of the project was a non-volatile static RAM. The stock Atari is built with
either an EPROM or ROM for the storage of die operating system code. These
devices retain whatever data is written to diem without die aid of external
circuitry or power. The problem is, you cannot alter their contents once they
are programmed. Any changes you would like to make in the OS require die removal
and replacement of the chip. The cartridge, MIO interfaces, the 1050 and 850,
also have ROMs or EPROMs that score code. Changing code in any of these devices
is difficult. The static RAM devices, such as the 62256, have the same pinoucs
as an EPROM of equal size and can be altered just like any RAM memory.
Unfortunately, the data in a RAM will not survive a power down, Once the power
is turned off, all data is lost. The SmartOS presented a method of retaining
data in one of these RAM chips through numerous power cycles, giving us the
ability to alter our OS as often as we like.
Never being content to
leave something alone, I have made a few modifications to the SmartOS
modification. The alteration I will describe here is to the method used to
retain data in our static RAM chip. In the first design, I used a Dallas Smart
Socket to provide all the necessary components. All you did was plug in a static
RAM and you were up and running. This makes for a simple project but it left
something to be desired from my point of view. First, the battery was internal
and not replaceable. Sure, they last 10 years. Usually. I can just imagine my
RAM chip blowing it's brains out and shorting out the battery in the Smart
Socket. No more Smart Socket. I can also see wanting to use a larger RAM (128K
or 512K). Can't use a single Smart Socket for that either... Or multiple RAMs.
What was needed was a little more flexible setup.
And, if it's a few bucks cheaper - great!
Take a look at the Smart IDE
schematic. The lower right hand corner is a sketch of the data retention
circuit. Again, we use a Dallas Semiconductor part, but instead of the whole
assembly, we only use the controller chip - a DS1210 This chip provides the
sensing and control circuits to prevent data loss while power is being cycled,
completing any write cycles and switching in the battery when needed The battery
may be either a PC style 3.6 volt lithium cell or three ordinary penlight
batteries (4.5 volts). Either battery will supply much more power than is
available in the Smart Socket and can be replaced easily and cheaply. As an
added benefit, the cost of the DS1210 is only about five bucks.
The
DS121O has three main functions. Although you may chink that the power goes off
instantaneously when you turn off your computer, in computer time, it takes
quite a while. The DS1210 watches the +5 volts from your computer (connected at
pin 8) for a drop of more than .25 volts. If it sees such a dip, it assumes that
the power is going off and prepares the RAM for data retention. First, it checks
to see if you are selecting RAM with the chip select line from the computer
logic (connected at pin 5). If RAM is being used, the DS1210 waits for
it to finish (chip select at pin 5 goes high). It
then holds the chip select output to the RAM (pin 6) at a high level, ignoring
any more changes at the chip select input. This prevents the RAM from being
"glitched" while power is going down. The DS1210 also connects it's battery
(connected at pin 2) to the VCC pin of the RAM (connected to pin 1), to supply
enough power for the RAM to retain all the data currently stored in the chip. On
powerup, the DS1210 disconnects it's battery, allows chip selects from die
computer and you're back in business with all of your original data intact. You
may even connect a second battery to pin 7 if you are really worried about
losing your data. The DS1210 will then switch to this backup battery if the main
battery goes dead (seems like overkill in this application - I didn't use this
feature).
All in all, the DS1210 is just perfect for this application.
Many, many power cycles have been executed on my RAM with no problems
whatsoever. Although I show a 32Kx8 RAM in the schematic, I actually used a
128Kx8 bit unit in my controller. With the DS1210 I could use any size RAM I
wanted - may even do a 5l2Kx8 bit ramdisk with this guy. The DS1210 worked fine
and, it's a little bit cheaper than a Smart Socket. There are also other
versions of this controller chip that will control up to 8 RAM chips - for those
really big projects. Now, you have two ways to replace your EPROMs and ROMs, so
get busy and hack a new 1050 or something!
These pages created and maintained by Clarence Dyson.
Copyright © 2001 Clarence Dyson. All rights
reserved.
Any reproduction, duplication, or distribution in any form
is
expressly prohibited, except by consent of credited creators.
Ride Free, Citizen