Help to program 16 bit EPROMs on a 8 bit programmer

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderator: Moderators

Post Reply
User avatar
Fisher
Posts: 1249
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Help to program 16 bit EPROMs on a 8 bit programmer

Post by Fisher »

Hi.
I've been trying to program 16-bit EPROMs, but my programmer only supports the 8-bit ones.
It's a Genius G540.
I tried to find some kind of updated software that could support at least a 27c4100 with no luck.

I tried to use an SNES DIY game PCB to do the work:
Botton
Botton
Top
Top
So far so good, I was able to successfully read a Sonic 2 ROM:
Read results
Read results
Unfortunately, I can't program using this adapter.
Changing the pull-up resistor networks to pull down resulted in the EPROM being all 00's, which probably means that the programming sequence is doing well.
Maybe the multiplexers I'm using, 74HC257 aren't bi-directional, are they?
The datasheet says nothing about that...
Does such multiplex exist?

Another idea I had was to use a couple of 74HC245 bus transceivers.
If I do this, should one get the regular A0 signal and the other an inverted one?
What about the DIR pin?
Should I add a 78L05 to the VPP pin to select the direction or there's some better way to do it?

Thanks in advance.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by lidnariq »

Fisher wrote: Thu Jan 13, 2022 4:39 am Maybe the multiplexers I'm using, 74HC257 aren't bi-directional, are they?
Correct.
Does such multiplex exist?
Yes, an analog multiplexer such as the 74'3257, 4053, or 4551.
Should I add a 78L05 to the VPP pin to select the direction or there's some better way to do it?
Normal voltage regulators won't work with only 1.5V of headroom during programming, let alone when it's in verification mode and the programmer only provides 5V in the first place. Better to find a part (4000 series?) that can operate at 6.5V.
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by TmEE »

Usually there's a byte mode on 16bit EPROMs, that will allow you to read/write everything with only 8 bit databus.
User avatar
Fisher
Posts: 1249
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by Fisher »

That's an interesting information.
Unfourtunatelly, if I've read the datasheet correctly, it seems that the /BYTE pin is also the VPP pin.
Unless there's a trick that I didn't figure out yet I'm busted. :cry:
The EPROM is a ST 27c800.
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by TmEE »

Ok, that prevents this idea...

But you can still program the chip one half at a time. Erase turns zeros into ones, and programming operation turn a one back to zero... so you can tie one byte high, while you program the other and do things in two passes.
User avatar
Fisher
Posts: 1249
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by Fisher »

That's a nice Idea.
I think I have floating around an old MegaDrive GameGenie PCB.
Maybe just putting connectors where the old 8-bit ROMs are may do the trick.
I just need to remember where did I left it if it still exists in some way. :|
User avatar
Fisher
Posts: 1249
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by Fisher »

Finally, I was able to program a 27C800 with the adapter I built.
Hopefully, it won't be that hard to program a 27C160, not sure about the 27C322.

The top part:
Top part
Top part
The bottom part:
Botton part
Botton part
Diagonal view:
Diagonal view.
Diagonal view.
The game running:
The game running
The game running
I think that the 27C160 would be a matter of using a jumper to select the lower or upper part of the chip, so I already added that.
The 27C322 seems to have a couple of pins repurposed and the Vpp is applied on the /CE (or /OE?) pin.
Any suggestions on how I should do that?
Thanks in advance.
User avatar
happysoul
Posts: 3
Joined: Tue May 24, 2022 1:47 am

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by happysoul »

https://www.semiee.com/file/backup/STMI ... 27C322.pdf
here is the pdf of 27C322, P13 is the VPP
I am not sure whether you can access this site
There is no pin BYTE to switch 8/16, so it can only program by 16 bit mode

Other, you can use chip mx29gl128 256 or m29 sst39 ... you only need to use ams1117-3.3 LDO , let 5V down to 3.3v then connect the 3.3v to vcc of flash chip.
don't worry about voltage 5v on address pins or data pins, there have a lot of self make cart use this method and works well
User avatar
Fisher
Posts: 1249
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by Fisher »

Thanks.
I can now program the 27c160, I added a jumper to select the first or last bank.
The process is a little more complex than that, as it is necessary to separate the even bytes from the odd ones and record them separately.
I think I will need to add at least 2 more jumpers to program the 27c322 chips, but first I need to buy some of them to test.
I still need to draw the schematics of this adapter, so I can share it and in the future, if I have some problems with it troubleshooting will be easier.
Maybe I can try to design a proper PCB for it, who knows...

As for 3.3v chips, I prefer not to use them, or use them with appropriate level translation circuits.
I say this because I have evidence that prolonged use of this type of memory damages the console's chipset.
I have a partially damaged SNES S-CPU, a "dead" SNES that I received as a gift from a friend, and a Megadrive with a dead VDP that a friend has and that became like this after prolonged use of this type of chip without the proper use of level translation circuits.

As soon as I get something new, I'll post it back here.
For now, I'm having some problems with multiplexing larger games using these chips.
I'll try to troubleshoot it, if I fail, I think I'm going to open another thread to try to solve these problems.

Anyway, thanks guys, you're great!!
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by TmEE »

It should be possible to program the 322 in two halves way too, but by leaving one side pulled high. When erased, the chip turns into all "ones" and when programming only the "zeros" are written. You can program any "one" into a "zero" but not the other way, so unless the chip does funny things, it should be possible to program it still one half at a time, making sure that the unused half data pins stay high so that the "ones" stay "ones" and thus can be reprogrammed in the next step.

And yeah, using 3.3V memories in 5V stuff without translation is going to cause damage to the host device sooner or later. There are very few chips that work with 3.3V and do not have hard ESD protection that shunts the excess voltage into power rail, and only those kinds can be used without translation and none of the chips I am aware of that you can buy work that way.
User avatar
Fisher
Posts: 1249
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by Fisher »

That's exactly what I'm doing.
Seems to be working great!
It's not easy to spot on the pictures, since I'm using 10k resistor networks.
I really need to properly draw this schematics!
Unfortunately, I couldn't find any symbol library for the 16-bit EPROMs.
Does someone know of any or I'll need to try to make one myself?
I'm trying to use Kicad or Eagle, but different schematic drawing software is welcome, as long as it works fine on Linux.
User avatar
Fisher
Posts: 1249
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by Fisher »

Finally, I was able to draw the schematics.
Not that it is very complex, but It was difficult to find a library that had the 16-bit EPROMs.
So here you are:
Schematics
Schematics
The source code of the bin2hilo program:
bin2hilo.c
Source of the program
(983 Bytes) Downloaded 7 times
I don't know who wrote it, but I would like to. So I can give proper credit.
If someone knows, please let me know.

Now some little doubts, mostly about terminologies:
- Should I call the jumpers Hi / Lo, just as the program or Even / Odd is more correct?
- The Lo bytes should be 1 to 7 and Hi bytes 8 to 15?
- Which would be the Lo bytes, the Even ones?
- To make it compatible with 27C322 I think I should add 2 more jumpers: one should connect the Byte / Vpp to A19, skipping the actual bank select, and the other should select A20 to level 0 or 1, acting as the new "bank jumper". The EPROM should be programmed as a 27C801. Are these assumptions correct?

Thanks in advance.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Help to program 16 bit EPROMs on a 8 bit programmer

Post by lidnariq »

Fisher wrote: Sat Jan 27, 2024 1:35 pm - Should I call the jumpers Hi / Lo, just as the program or Even / Odd is more correct?
- The Lo bytes should be 1 to 7 and Hi bytes 8 to 15?
- Which would be the Lo bytes, the Even ones?
Which are which depends on whether it's a big-endian system (Megadrive) or not. (Big-endian puts the "high" byte in D0-D7. Little-endian puts the "low" byte there.)

I'd probably hedge and just label the two options D0-D7 vs D8-D15.
- To make it compatible with 27C322 I think I should add 2 more jumpers: one should connect the Byte / Vpp to A19, skipping the actual bank select, and the other should select A20 to level 0 or 1, acting as the new "bank jumper". The EPROM should be programmed as a 27C801. Are these assumptions correct?
uh, 27C160 pin 32 is Vpp/Byte, and 27C322 pin 32 is A20 and pin 13 is Vpp/OE. And the 27C801 has a Vpp/OE pin... so that sounds plausible.
Post Reply