EEPROM as logic?

F

FyberOptic

Guest
Hiya folks. I've come up with a few designs for modifying various
devices on different occasions, but in almost every case, it requires
a lot of logic components to process the signals and then output ones
based on how I've modified them (such as catching chip selects and not
actually enabling if certain circumstances are met, so that I can make
another device accessible in that address range). Since I'm still a
beginner, I've been working with DIP-sized ICs, so as you can imagine,
having to use very many logic components leads to not only a board big
enough to hold them, but also tedious soldering work to make all the
connections.

I've read about PALs, GALs, PLDs, CPLDs, etc, and found that this
seems to be exactly the sort of device that would rid me of so much
logic in a project. The downside is, there seems to be no easy way
for a budget-restricted hobbyist to program them, short of purchasing
a programmer. They aren't cheap, and that, plus the shipping, and the
chips and shipping on those as well, is all starting to get a bit too
pricey for me to be able to afford right now, unfortunately.

So what I'm wondering is, how feasible are alternatives, like maybe
using EEPROMs instead? I do have an older Willem programmer already
which I used to program Flash chips for another project. From what I
understand, using ROM chips wasn't uncommon in the past for handling
logic cheaply. And for the projects I would be messing with, none of
them would be running at super high speeds (nothing over like 12mhz).
Now I know EEPROMs would probably have a slower access time than a
plain old EPROM, but again, buying an eraser for the older EPROMs is
just another expense I'd rather avoid. Would an EEPROM, or even a
piece of Flash memory, be able to keep up with such a task?

And if not EEPROMs, what else can one recommend for cheap programmable
logic?
 
On Sun, 7 Sep 2008 08:55:50 -0700 (PDT), FyberOptic
<fyberoptic@gmail.com> wrote:

Hiya folks. I've come up with a few designs for modifying various
devices on different occasions, but in almost every case, it requires
a lot of logic components to process the signals and then output ones
based on how I've modified them (such as catching chip selects and not
actually enabling if certain circumstances are met, so that I can make
another device accessible in that address range). Since I'm still a
beginner, I've been working with DIP-sized ICs, so as you can imagine,
having to use very many logic components leads to not only a board big
enough to hold them, but also tedious soldering work to make all the
connections.

I've read about PALs, GALs, PLDs, CPLDs, etc, and found that this
seems to be exactly the sort of device that would rid me of so much
logic in a project. The downside is, there seems to be no easy way
for a budget-restricted hobbyist to program them, short of purchasing
a programmer. They aren't cheap, and that, plus the shipping, and the
chips and shipping on those as well, is all starting to get a bit too
pricey for me to be able to afford right now, unfortunately.
Take a look at the US$17.95 CMOD CPLD modules from Digilent
<http://www.digilentinc.com/Products/Detail.cfm?Prod=CMOD&Nav1=Products&Nav2=Programmable>
You'd need a JTAG cable. The JTAG3 cable is pretty cheap but you need a
real parallel port. The USB alternate isn't terribly pricey.
<http://www.digilentinc.com/Products/Catalog.cfm?Nav1=Products&Nav2=Cables&Cat=Cable>

This setup gives you a DIP-formfactor with a fair amount of logic. The
XPLA3-flavor CMod-XCR also has 5V-tolerant I/Os.

--
Rich Webb Norfolk, VA
 
FyberOptic wrote:
Hiya folks. I've come up with a few designs for modifying various
devices on different occasions, but in almost every case, it requires
a lot of logic components to process the signals and then output ones
based on how I've modified them (such as catching chip selects and not
actually enabling if certain circumstances are met, so that I can make
another device accessible in that address range). Since I'm still a
beginner, I've been working with DIP-sized ICs, so as you can imagine,
having to use very many logic components leads to not only a board big
enough to hold them, but also tedious soldering work to make all the
connections.

I've read about PALs, GALs, PLDs, CPLDs, etc, and found that this
seems to be exactly the sort of device that would rid me of so much
logic in a project. The downside is, there seems to be no easy way
for a budget-restricted hobbyist to program them, short of purchasing
a programmer. They aren't cheap, and that, plus the shipping, and the
chips and shipping on those as well, is all starting to get a bit too
pricey for me to be able to afford right now, unfortunately.

So what I'm wondering is, how feasible are alternatives, like maybe
using EEPROMs instead? I do have an older Willem programmer already
which I used to program Flash chips for another project. From what I
understand, using ROM chips wasn't uncommon in the past for handling
logic cheaply. And for the projects I would be messing with, none of
them would be running at super high speeds (nothing over like 12mhz).
Now I know EEPROMs would probably have a slower access time than a
plain old EPROM, but again, buying an eraser for the older EPROMs is
just another expense I'd rather avoid. Would an EEPROM, or even a
piece of Flash memory, be able to keep up with such a task?

And if not EEPROMs, what else can one recommend for cheap programmable
logic?
Look at PIC,AVR and the like, instead.

It involves doing a little programming in the PC and up loading the
image to the uC using a programmer that isn't that bad if you just get a
simple one price wise.



http://webpages.charter.net/jamie_5"
 
On Sun, 7 Sep 2008 08:55:50 -0700 (PDT), FyberOptic
<fyberoptic@gmail.com> wrote:

Hiya folks. I've come up with a few designs for modifying various
devices on different occasions, but in almost every case, it requires
a lot of logic components to process the signals and then output ones
based on how I've modified them (such as catching chip selects and not
actually enabling if certain circumstances are met, so that I can make
another device accessible in that address range). Since I'm still a
beginner, I've been working with DIP-sized ICs, so as you can imagine,
having to use very many logic components leads to not only a board big
enough to hold them, but also tedious soldering work to make all the
connections.

I've read about PALs, GALs, PLDs, CPLDs, etc, and found that this
seems to be exactly the sort of device that would rid me of so much
logic in a project. The downside is, there seems to be no easy way
for a budget-restricted hobbyist to program them, short of purchasing
a programmer. They aren't cheap, and that, plus the shipping, and the
chips and shipping on those as well, is all starting to get a bit too
pricey for me to be able to afford right now, unfortunately.

So what I'm wondering is, how feasible are alternatives, like maybe
using EEPROMs instead? I do have an older Willem programmer already
which I used to program Flash chips for another project. From what I
understand, using ROM chips wasn't uncommon in the past for handling
logic cheaply. And for the projects I would be messing with, none of
them would be running at super high speeds (nothing over like 12mhz).
Now I know EEPROMs would probably have a slower access time than a
plain old EPROM, but again, buying an eraser for the older EPROMs is
just another expense I'd rather avoid. Would an EEPROM, or even a
piece of Flash memory, be able to keep up with such a task?

And if not EEPROMs, what else can one recommend for cheap programmable
logic?
Hello FyberOptic,

I have wired over twenty IC chips on past projects knowing the use of
a microprocessor would simplify things.

Collecting great feedback from this newsgroup sent me in the direction
of using PIC technology.

Using the technology of a company called Microchip is the way to go.
They give you a "free" beautiful programming & tutorial download
package 80 Megs in size. You will find some of the real gem webpages I
have collected here. They are in the gray section of the page.

http://www.oldtemecula.com/theremin/tan/pic_info.htm

Understanding the use of Assembly Language is challenging, so allow
yourself time. Once you make the connection of what's going on you
will never revert back to your old ways.

Good Luck,

* * * *

Christopher

Temecula CA.USA
http://www.oldtemecula.com
 
On Sun, 7 Sep 2008 14:36:50 -0700 (PDT), jrwalliker@gmail.com wrote:

So what I'm wondering is, how feasible are alternatives, like maybe
using EEPROMs instead?  I do have an older Willem programmer already


You have already had some good suggestions about other ways of doing
things.

However, if you want to, you can use eproms in the way that you
suggest, but you will need to watch out for one thing.

After one or more address inputs are changed, the output does not
suddenly switch to the value that you programmed into the device.
Instead, it may jump around a few times and only then settle down as
you expected. To overcome this you need to follow the eprom with a
data register which is clocked after the eprom has settled (in other
words, after the access time has elapsed).

Provided that you do this, the technique works fine.

John
And once you do that, you can feed some of the outputs back into
address inputs and build simple or complex state machines. Tons-o-fun.

Better register the external inputs, too.

(another) John
 
So what I'm wondering is, how feasible are alternatives, like maybe
using EEPROMs instead?  I do have an older Willem programmer already

You have already had some good suggestions about other ways of doing
things.

However, if you want to, you can use eproms in the way that you
suggest, but you will need to watch out for one thing.

After one or more address inputs are changed, the output does not
suddenly switch to the value that you programmed into the device.
Instead, it may jump around a few times and only then settle down as
you expected. To overcome this you need to follow the eprom with a
data register which is clocked after the eprom has settled (in other
words, after the access time has elapsed).

Provided that you do this, the technique works fine.

John
 
On Sun, 7 Sep 2008 15:26:02 -0700 (PDT), FyberOptic
<fyberoptic@gmail.com> wrote:

On Sep 7, 1:00 pm, Rich Webb <bbew...@mapson.nozirev.ten> wrote:
Take a look at the US$17.95 CMOD CPLD modules from Digilent
http://www.digilentinc.com/Products/Detail.cfm?Prod=CMOD&Nav1=Product...
You'd need a JTAG cable. The JTAG3 cable is pretty cheap but you need a
real parallel port. The USB alternate isn't terribly pricey.
http://www.digilentinc.com/Products/Catalog.cfm?Nav1=Products&Nav2=Ca...

This setup gives you a DIP-formfactor with a fair amount of logic. The
XPLA3-flavor CMod-XCR also has 5V-tolerant I/Os.


Hey that does look interesting, and not too expensive. But I noticed
it says it requires 3.3v, where as most DIP components I work with are
5v.

I did some digging around though based on your suggestion, and found
this:

http://www.sparkfun.com/commerce/product_info.php?products_id=8110

Almost twice as expensive, but it seems to support multiple CPLDs and
can automatically convert to 5v. That's starting to get a bit pricey,
but then again, I wonder what the difference would be by the time one
converted all the 3.3v logic to 5v for the other one.
Looks interesting. I haven't used that one in particular but I've gotten
a number of other dev boards from Sparkfun and haven't had any problems.

WRT the Digilent board up above, you'd be able to get by with just an
LM317 and its passives to supply the 3.3 V from your existing 5 V. After
that, the XCR flavor should interperate with the 5 V logic okay.

Also, WRT the suggestions to use a PIC or other microcontroller, they're
not really made to mimic fast combinational logic like an address latch.

Another alternative would be GAL16V8 or 22V10, with compatible products
available from several manufacturers. Perfect for little glue logic and
available as 5 V and DIP form-factor parts. However, most (all?) of
these require a device programmer.

--
Rich Webb Norfolk, VA
 
On Sun, 7 Sep 2008 15:33:15 -0700 (PDT), FyberOptic
<fyberoptic@gmail.com> wrote:

On Sep 7, 5:36 pm, jrwalli...@gmail.com wrote:

However, if you want to, you can use eproms in the way that you
suggest, but you will need to watch out for one thing.

After one or more address inputs are changed, the output does not
suddenly switch to the value that you programmed into the device.
Instead, it may jump around a few times and only then settle down as
you expected.  To overcome this you need to follow the eprom with a
data register which is clocked after the eprom has settled (in other
words, after the access time has elapsed).


That's good advice. I wonder though if it would be necessary to
buffer the output like that for all applications? Like I've
mentioned, say I wanted to use it just for activating chip selects and
such. Would it matter much for it to jump around like that and
activate the chips very rapidly?

Hmm, now that I type that, maybe I can kind of imagine why. If it
activated more than one chip (say rom and ram at the same time), then
you'd end up with two different data sources on the data bus. I
suppose the chip you weren't wanting output from might not clear the
data bus before the cpu read the data. I assume, anyway. Maybe it'd
depend on the chip.
---
Using any kind of ROM to build a state machine depends on its outputs
being stable some time after its inputs have been addressed.

Consequently, the architecture of such a machine might/should look like
this: (View in a fixed pitch font)


DFLOP ROM DFLOP
+----+ +-----+ +----+
DATA IN>--|D Q|--|An Dn|---|D Q|--> DATA OUT
HFCK>--+--|> | +-----+ +-|> |
| +----+ | +----+
+------------------+

JF
 
On Sep 7, 1:00 pm, Rich Webb <bbew...@mapson.nozirev.ten> wrote:
Take a look at the US$17.95 CMOD CPLD modules from Digilent
http://www.digilentinc.com/Products/Detail.cfm?Prod=CMOD&Nav1=Product...
You'd need a JTAG cable. The JTAG3 cable is pretty cheap but you need a
real parallel port. The USB alternate isn't terribly pricey.
http://www.digilentinc.com/Products/Catalog.cfm?Nav1=Products&Nav2=Ca...

This setup gives you a DIP-formfactor with a fair amount of logic. The
XPLA3-flavor CMod-XCR also has 5V-tolerant I/Os.
Hey that does look interesting, and not too expensive. But I noticed
it says it requires 3.3v, where as most DIP components I work with are
5v.

I did some digging around though based on your suggestion, and found
this:

http://www.sparkfun.com/commerce/product_info.php?products_id=8110

Almost twice as expensive, but it seems to support multiple CPLDs and
can automatically convert to 5v. That's starting to get a bit pricey,
but then again, I wonder what the difference would be by the time one
converted all the 3.3v logic to 5v for the other one.
 
On Sep 7, 4:14 pm, christop...@REMOVEoldtemecula.com wrote:
I have wired over twenty IC chips on past projects knowing the use of
a microprocessor would simplify things.

Collecting great feedback from this newsgroup sent me in the direction
of using PIC technology.

Using the technology of a company called Microchip is the way to go.
They give you a "free" beautiful programming & tutorial download
package 80 Megs in size. You will find some of the real gem webpages I
have collected here. They are in the gray section of the page.

http://www.oldtemecula.com/theremin/tan/pic_info.htm

Understanding the use of Assembly Language is challenging, so allow
yourself time. Once you make the connection of what's going on you
will never revert back to your old ways.
I've actually used PICs before, but not for any sort of logic
function. Is it actually possible to use them in place of logic
chips? Can they function fast enough for like triggering chip selects
on ram and such in a working system? And are there any other
considerations one might have to make to use it for that?
 
On Sep 7, 5:36 pm, jrwalli...@gmail.com wrote:

However, if you want to, you can use eproms in the way that you
suggest, but you will need to watch out for one thing.

After one or more address inputs are changed, the output does not
suddenly switch to the value that you programmed into the device.
Instead, it may jump around a few times and only then settle down as
you expected.  To overcome this you need to follow the eprom with a
data register which is clocked after the eprom has settled (in other
words, after the access time has elapsed).
That's good advice. I wonder though if it would be necessary to
buffer the output like that for all applications? Like I've
mentioned, say I wanted to use it just for activating chip selects and
such. Would it matter much for it to jump around like that and
activate the chips very rapidly?

Hmm, now that I type that, maybe I can kind of imagine why. If it
activated more than one chip (say rom and ram at the same time), then
you'd end up with two different data sources on the data bus. I
suppose the chip you weren't wanting output from might not clear the
data bus before the cpu read the data. I assume, anyway. Maybe it'd
depend on the chip.
 
On Sun, 07 Sep 2008 20:14:26 GMT, christopher@REMOVEoldtemecula.com
wrote:

Collecting great feedback from this newsgroup sent me in the direction
of using PIC technology.
Sure.

Using the technology of a company called Microchip is the way to go.
Yeah, way to go... back to the cave age.


Best,
 
On Sep 8, 1:55 am, FyberOptic <fyberop...@gmail.com> wrote:
Hiya folks. I've come up with a few designs for modifying various
devices on different occasions, but in almost every case, it requires
a lot of logic components to process the signals and then output ones
based on how I've modified them (such as catching chip selects and not
actually enabling if certain circumstances are met, so that I can make
another device accessible in that address range). Since I'm still a
beginner, I've been working with DIP-sized ICs, so as you can imagine,
having to use very many logic components leads to not only a board big
enough to hold them, but also tedious soldering work to make all the
connections.

I've read about PALs, GALs, PLDs, CPLDs, etc, and found that this
seems to be exactly the sort of device that would rid me of so much
logic in a project. The downside is, there seems to be no easy way
for a budget-restricted hobbyist to program them, short of purchasing
a programmer. They aren't cheap, and that, plus the shipping, and the
chips and shipping on those as well, is all starting to get a bit too
pricey for me to be able to afford right now, unfortunately.

So what I'm wondering is, how feasible are alternatives, like maybe
using EEPROMs instead? I do have an older Willem programmer already
which I used to program Flash chips for another project. From what I
understand, using ROM chips wasn't uncommon in the past for handling
logic cheaply. And for the projects I would be messing with, none of
them would be running at super high speeds (nothing over like 12mhz).
Now I know EEPROMs would probably have a slower access time than a
plain old EPROM, but again, buying an eraser for the older EPROMs is
just another expense I'd rather avoid. Would an EEPROM, or even a
piece of Flash memory, be able to keep up with such a task?

And if not EEPROMs, what else can one recommend for cheap programmable
logic?
There are many hobby grade GAL programmers around, Google gives:
http://elm-chan.org/works/pgal/report_e.html
http://www.geocities.com/mwinterhoff/galblast.htm
for starters.

Mouser and others have cheap GAL's from <$2
e.g
http://www.mouser.com/Search/ProductDetail.aspx?qs=bDQZT2MCVweCWc6TCNKAxw%3d%3d

Use www.findchips.com for cheapest prices and suppliers of chips.

Just a matter of finding/building a suitably cheap compatible
programmer.

Dave.
 
On Sun, 07 Sep 2008 08:55:50 -0700, FyberOptic wrote:

Hiya folks. I've come up with a few designs for modifying various
devices on different occasions, but in almost every case, it requires a
lot of logic components to process the signals and then output ones
based on how I've modified them (such as catching chip selects and not
actually enabling if certain circumstances are met, so that I can make
another device accessible in that address range). Since I'm still a
beginner, I've been working with DIP-sized ICs, so as you can imagine,
having to use very many logic components leads to not only a board big
enough to hold them, but also tedious soldering work to make all the
connections.
....

There is an intermediate between a board full of small-scale logic and a
PROM: use a multiplexer chip. An 8-input multiplexer can be used to form
any function of 3 inputs, just by tying its inputs true or false. You
can easily add a fourth input by driving some of the inputs with the
fourth input or its negation. The disadvantage is that you only get one
output per chip, but it's cheap and sometimes that's all you need.

Another thought is to use two magnitude comparitors and some OR gates to
detect a range. This is especially good if the selected range doesn't
begin and end with a power of 2 and has been used to disable a big,
expensive mask-programmed ROM to allow a smaller PROM to take over those
addresses. It's a kluge, but it was cheaper than scrapping a big,
expensive lot ROMS that contained a bug that wasn't discovered until they
had been delivered.
 
I'll just reply to my own post since it's related.

Since I originally started inquiring, I've found out about a few parts
that might be more up my alley. First is the ispGAL22V10, which is 5V
and apparently easily programmable in-circuit (meaning no programmer
apparently!). Only downside is that the friendliest form factor
available is TSOP. But you can apparently buy a converter board to
DIP for a couple bucks on Ebay. Just soldering it onto there would be
the tricky part.

Another thing that has caught my eye are the Atmel ATF line of parts,
like the ATF750C. It's a 5v flash-based CPLD, and comes in DIP even.
Problem is, I can't find any info on programming it. Since it's
flash, does this mean it doesn't use the high voltages like a normal
GAL or something would? Are they very easily programmed in general,
or would one be in the same boat as a normal GAL device?
 
FyberOptic wrote:
And if not EEPROMs, what else can one recommend for cheap programmable
logic?
EEPROMS work fine for some logic problems, but they are not
universal. You often need latches to clock addresses in and
hold outputs after they settle. The main limitation is that
there are so few outputs, relative to the number of the
inputs. The number if inputs is high enough to allow every
possible combination of inputs to select distinct outputs,
and this is seldom a good fit for actual logic replacement.
Too many inputs and too few outputs. But maximum
utilization is not what you are shooting for, so if you
don't mind programming all the input combinations that
produce similar outputs, it is certainly workable.

I think I once saw a simple computer that was made almost
entirely of an EPROM, an address and data latch and a
counter. But most of the data bits were used to feed back
to the address inputs to walk the program through its main
loop. I think the was only a bit or two of external input
and output available as I/O. There was no CPU.

--
Regards,

John Popelish
 
On Sep 10, 5:33 am, FyberOptic <fyberop...@gmail.com> wrote:
I'll just reply to my own post since it's related.

Since I originally started inquiring, I've found out about a few parts
that might be more up my alley. First is the ispGAL22V10, which is 5V
and apparently easily programmable in-circuit (meaning no programmer
apparently!). Only downside is that the friendliest form factor
available is TSOP. But you can apparently buy a converter board to
DIP for a couple bucks on Ebay. Just soldering it onto there would be
the tricky part.
Yep, Lattice ISP parts are easy to program.
DIP adapters are a good option.

Another thing that has caught my eye are the Atmel ATF line of parts,
like the ATF750C. It's a 5v flash-based CPLD, and comes in DIP even.
Problem is, I can't find any info on programming it. Since it's
flash, does this mean it doesn't use the high voltages like a normal
GAL or something would? Are they very easily programmed in general,
or would one be in the same boat as a normal GAL device?
They need a high voltage programming pulse, so does need a specific
programmer.

Dave.
 

Welcome to EDABoard.com

Sponsor

Back
Top