28Cxxx EEPROM Programmer

For discussing the 65xx hardware itself or electronics projects.
User avatar
GaBuZoMeu
Posts: 660
Joined: 01 Mar 2017
Location: North-Germany

Re: 28Cxxx EEPROM Programmer

Post by GaBuZoMeu »

Hi tycs03,

welcome!

The two devices you mentioned are pretty different! While the SST27SF512 is similar to a regular EPROM (it requires a programming voltage (12V) and can be programmed byte by byte in any sequence), the AT29C256 is a 5V only Flash EPROM. It requires a completely different way to store information into it. In practice this can be done in circuit (no need for a "programmer") - but there must be a program (in RAM) to do that.

I only found a datasheet for the AT29C256
AT29C256.pdf
(351.41 KiB) Downloaded 240 times
with PLCC and TSOP packages. They have a very different pinning relative to the SST27F512. Without a proper wired adapter you risk a damage. There are two pins (1, 17) on the PLCC package that are not allowed to be connected to anything, so be careful.

I haven't seen a hint a Github according to precautions according to the wiring nor hints for an adapter.
I did not look into the software - if it works for the SST27SF512 - fine. Due to the completely different algorithm the AT29C256 requires, this doesn't mean much.

If you have an AT29C256 in DIL case please submit its datasheet.

One possible reason that it appears to work fine for the SST27SF512 but not for the AT29C256 is: a swap between two address lines and/or a swap between two databus lines. This would not prohibit the SST to get programmed (and verified) but the AT wouldn't respond properly.

If you have another possibility to read out the contents of the SST, try it. If there are no wiring issues you should read exactly what you have programmed. Otherwise more or less bytes are out of order (address bus issue) or the byte values itself are wrong (data bus issue).


Regards,
Arne
tycs03
Posts: 6
Joined: 11 Sep 2018

Re: 28Cxxx EEPROM Programmer

Post by tycs03 »

hi,

thanks for the reply. I was wondering why Jburn won't open in my pc. I was googling and i saw in a thread selling a uno eeprom shield, and said this was able to burn 29c256. I was trying to download Jburn2_rpress, so i was able to find this thread. But the app won't open in my pc. how do i make it work in windows 10 64bit.

by the way i have attached the 29c256 pdf with pin outs dil28 package.
Attachments
29c256.pdf
(262.68 KiB) Downloaded 221 times
tycs03
Posts: 6
Joined: 11 Sep 2018

Re: 28Cxxx EEPROM Programmer

Post by tycs03 »

I have compared both schematics and found that there is a lot of difference and therefore cannot be used with jburn app and arduino F/W. Also i have finally figured out how to open the java app JBURN2_rpress. I am thinking of making a new board, would like to know if anyone has indeed tried to program a 29c256 with this board and S/W.

thanks
User avatar
GaBuZoMeu
Posts: 660
Joined: 01 Mar 2017
Location: North-Germany

Re: 28Cxxx EEPROM Programmer

Post by GaBuZoMeu »

Well, the DIL package of the AT29C256 seems to fit - their is only pin 1 which is /WE which could cause trouble. This is VPP for a 27SF256 and A15 for 27SF512. I hope the program takes care of this.

If you have access to the program, you may look for a piece of code dealing with "product identification". There are two signals (/OE and A9) that can be switched to +12V. They can be used to read out manufacturer and product ID. Perhaps you can omit this section and check if the AT29 can be used then. (BTW. the two series resistors R0 and R7 (1K) are pretty tough selected - 12-5=7 mA into the pins of the Arduino or the shift register is more than recommended.)

Again: the AT29C256 could be programmed in circuit. There is only one thing to consider: during programming or erasing you can not execute programs out of the device.


Regards,
Arne
tycs03
Posts: 6
Joined: 11 Sep 2018

Re: 28Cxxx EEPROM Programmer

Post by tycs03 »

hi, arnie

I don't really understand code. I was wondering if you could look at it for me? it has a windows s/w with gui. I don't really know whats wrong with it. seem to me that it was originally from this thread. The difference is some pins have been altered, and for a booster circuit it was change with a commercially available booster circuit to deal with the 5v step up to 12v. bascilly the gui lets you choose what eeprom you are working on. it has support for quite a few chips. Problems is the ones that i need are 29c256 and 27sf512. It works for the 27sf512 but not with at29c. I tried to swap pins 1 and 27 and choose 28c from the gui since it was similar to 29c except for pins 1 and 27 are interchanged. but still nothing.

regards,

tycs
Attachments
BMBurner-master.zip
(115.9 KiB) Downloaded 250 times
User avatar
GaBuZoMeu
Posts: 660
Joined: 01 Mar 2017
Location: North-Germany

Re: 28Cxxx EEPROM Programmer

Post by GaBuZoMeu »

I have read (better take a glimpse on) the source code. There is a program loop:

Code: Select all

  //Write
  write_start();
  for (int x = 0; x < BUFFERSIZE; ++x) fast_write(addr + x, cmdbuf[x+5]);
  write_end(); 
This for-loop calls fast_write(addr,data) for each byte to be programmed. That won't work for the AT29C256.
Take a look at page 3 of the datasheet you submitted:
Quote:
PROGRAM: The device is reprogrammed on a page basis. If a byte of data within a
page is to be changed, data for the entire page must be loaded into the device. Any byte
that is not loaded during the programming of its page will be indeterminate
. Once the
bytes of a page are loaded into the device, they are simultaneously programmed during
the internal programming period. After the first data byte has been loaded into the
device, successive bytes are entered in the same manner. Each new byte to be programmed
must have its high-to-low transition on WE (or CE) within 150 μs of the low-tohigh
transition of WE (or CE) of the preceding byte. If a high-to-low transition is not
detected within 150 μs of the last low-to-high transition, the load period will end and the
internal programming period will start. A6 to A14 specify the page address. The page
address must be valid during each high-to-low transition of WE (or CE)
. A0 to A5 specify
the byte address within the page. The bytes may be loaded in any order; sequential
loading is not required. Once a programming operation has been initiated, and for the
duration of tWC, a read operation will effectively be a polling operation.
This means you have to rewrite the //write... to pass a pointer to the first of a chunk of 64 bytes of a "page" (here this means A6...A14 are constant, A0..A5 varies) to the fast_write() function. Then fast_write() needs to write all 64 bytes quickly (= less than 150 µs per byte), then wait >=150µs, and then start polling. Once the chip is ready (two sequential reads deliver the same data) fast_write() can return. Then the next chunk can follow.

I think this is more than a "little" rework. As I have no Arduino at hand (nor the burner hardware) I cannot provide working SW for you. Sorry :(

BTW the "algorithm" to program a 27C512 isn't the way the chip manufacturer recommends. It may work with "new" parts, but there is a great chance the EPROM will "forget" what was written soon.


Regards,
Arne

edited (1) - typos, grammar
tycs03
Posts: 6
Joined: 11 Sep 2018

Re: 28Cxxx EEPROM Programmer

Post by tycs03 »

Yeah I understand. Would the MEEPROMMER work with the 29c256?
Since I have no coding abilities maybe I can just make the MEEPROMMER board. All I really need is 29c256 and 27sf512

I think it was UNACLOCKER who said in turbo dodge forums that this device works with 29c although he did mention that 28c had pins 1 and 27 intrrchanged

Thanks
User avatar
GaBuZoMeu
Posts: 660
Joined: 01 Mar 2017
Location: North-Germany

Re: 28Cxxx EEPROM Programmer

Post by GaBuZoMeu »

tycs03 wrote:
Yeah I understand. Would the MEEPROMMER work with the 29c256?
No, the 29C256 is not listed.
tycs03 wrote:
Since I have no coding abilities ...
That turns out to be a problem. In theory (you have said you could use your programmer to write successfully a 27sf512) the device should program a 28c256. This device can be written in a byte fashion (no chunks of 64 bytes required). But it still needs a >= 150 µs delay (after each write) to start its internal programming algorithm and this delay in not part of the program so far.

Perhaps someone else could change the Arduino program that this delay between write and data polling is implemented. Then programming an AT28c256 should work. You need to check if an 28c256 serves your needs - AFAIK the 28c256 is slower (150ns) than an 29c256 (70ns).


Regards,
Arne
tycs03
Posts: 6
Joined: 11 Sep 2018

Re: 28Cxxx EEPROM Programmer

Post by tycs03 »

Well I have quite a few 29c256 and was hoping to be able to use them and just 1 27sf512. I don't have any 28c256.

Maybe I should just look for another programmer that can support both 29c and 27sf
User avatar
GaBuZoMeu
Posts: 660
Joined: 01 Mar 2017
Location: North-Germany

Re: 28Cxxx EEPROM Programmer

Post by GaBuZoMeu »

Perhaps there is someone near by your site that could program 29c256 types. Perhaps a lab at some university? An engineering lab?

You could use your sf512 to provide the data (for up to two 29c256).

Again, the 29c256 does not require a programming tool. If you have access to a computer with a free socket for 32K RAM (62256) and you could prepare an adapter where only pin 1 and pin 27 are flipped, then the 29c256 should run.

If you (or someone else) could then write a simple program that copies 64 bytes in a row (simply copy, no verify), then wait 10 ms and continue with the next 64 bytes, it should work. Verification can be done after all chunks have been copied. Should work.

One of the cheapest commercial programming tools come from Batronix. It is USB only and works under Linux, Win, and OS X. But perhaps a bit too expensive.


Regards,
Arne
dwight
Posts: 213
Joined: 08 Jun 2004

Re: 28Cxxx EEPROM Programmer

Post by dwight »

I've not looked up the difference between a 28c256 and a 29c256. I have programmed a 28C64 on a Kim-1. It was relatively simple, as I recall. I did not use any of the sequence block writes. The timing looked to hard to do. I just programmed it one byte at a time. I did it with the regular write enable from the 6502. As I recall, one had to read back the location and when one of the bits matched, one could step to the next location. There was no complicated operations.
It was on the 6530 replacement module I made.
I just looked at the 29C256 data sheet. It looked quite simple. The only issue was that you needed to enter a full 64 byte block to program at one time, no byte at a time like the 28C64.
Dwight
retux
Posts: 7
Joined: 26 Aug 2018
Location: Argentina

Re: 28Cxxx EEPROM Programmer

Post by retux »

Thanks Arne and others for the help. Really apprciate it. My meeprommer is finally working!
Image

These are the steps I followed for debbuging:

1) Test wiring.
2) Test address bus with led array on the bus. Helped me found a wiring issu I hadn't detected in (1).
3) Nevertheless writing data to eeprom was still failing. Data polling failed.
4) Hookup a few lines of address bus and data bus to read data. Rest of the lines with 10K resistor to ground.
Set up an address and read data from the bus. Data was correct.
But still writing data to eeprom was failing. Writing data to sram seemed to work.
5) As it turns out, my eeprom at28c256 (apparently legitimate from atmel) was locked. Sending the unlock sequence seems to have work.

Now to enjoy saving eeproms. Thanks for the help guys.
User avatar
Michael
Posts: 633
Joined: 13 Feb 2013
Location: Michigan, USA

Re: 28Cxxx EEPROM Programmer

Post by Michael »

I just discovered I can program recent generation 8, 14, and 20 pin PIC chips by turning them around 180° in the socket on my Flash Programmer Shield (see below) and using an LVP (Low Voltage Programming) algorithm in the Arduino program/sketch. I believe this would work with MEEPROMER designs too as the important 'data' pins on the ZIF socket are common between the designs.

I'm geeked because I'd like to share projects using 16F15xxx , 16F18xxx , and 18FxxQ43 series PIC devices without having to force users to buy a $66 PICKIT 4 to program them. Is there anyone in our group who doesn't have a $4 Arduino Uno clone?
Attachments
Flash PIC LVP.png
flash pic lvp test.png
Flash Programmer #2.png
User avatar
GARTHWILSON
Forum Moderator
Posts: 8773
Joined: 30 Aug 2002
Location: Southern California
Contact:

Re: 28Cxxx EEPROM Programmer

Post by GARTHWILSON »

FWIW, I just started a related topic, "(E)EPROM/flash programming algorithms.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
Post Reply