28Cxxx EEPROM Programmer

For discussing the 65xx hardware itself or electronics projects.
stelios1361
Posts: 2
Joined: 15 Jul 2018

Re: 28Cxxx EEPROM Programmer

Post by stelios1361 »

Hello guys! I'm trying to get it to work but when I open the java program says that no programmer is connected ... what can I do? I'm using an Arduino nano clone with the ch340g chip. When I open the program the Rx led on the board flashes for a few times and then turns off ....
Attachments
Screenshot_1.png
User avatar
GaBuZoMeu
Posts: 660
Joined: 01 Mar 2017
Location: North-Germany

Re: 28Cxxx EEPROM Programmer

Post by GaBuZoMeu »

Welcome Stelios1361.

I actually don't know if I could help you, cause the screenshot doesn't help me.

Perhaps you can feed us with some more information:
- what OS you are using
- what software you wish to use (perhaps some links?)
- does you can use the Arduino ? (does you can download and run some of the demo programs?)
- what is that programmer (link?) and how is it attached to what (Arduino/USB)?
- what 28xxx you wish to program (datasheet)?


Regards
Arne
stelios1361
Posts: 2
Joined: 15 Jul 2018

Re: 28Cxxx EEPROM Programmer

Post by stelios1361 »

Hi, thanks for the fast response!
I'm using windows 10 64bit
I wish to use the meeprommer software
Yes, the Arduino is working fine!
Arduino its self becomes a programmer .. and is connected via USB
28c64 by atmel ..Tested and working !
User avatar
GaBuZoMeu
Posts: 660
Joined: 01 Mar 2017
Location: North-Germany

Re: 28Cxxx EEPROM Programmer

Post by GaBuZoMeu »

Thank you for your response.

Well your screenshot says the software doesn't find a hardware. Either your hardware (not the Arduino but the board where the 28C64 is plugged in) is not compatible to the software or some settings within the software (if any) are wrong. As I do not have such a programmer board and the meeprommer software it is a bit difficult to help.

Programming an 28C64 or 28C256 is not a problem. If you read the datasheet there is a section of how it works. It is similar as to write into a RAM. Reading is identical, writing is just a little slower.

But there are two problem for such a simple connection between an EEPROM and an Arduino:

1. The Arduino Nano IIRC works with 3V3 only. The 28C64 requires 5V.
2. The Nano has too few pins to feed all signals alone.

Both jobs should be covered by the hardware your Arduino is plugged in.

Can you tell us what hardware you are using? Is there a schematic?


Regards
Arne
retux
Posts: 7
Joined: 26 Aug 2018
Location: Argentina

Re: 28Cxxx EEPROM Programmer

Post by retux »

Hi everyone,

Sorry beforehand if I am posting onto the wrong thread, please let me know.
I just built up an eprommer following shematic https://github.com/mkeller0815/MEEPROMM ... schema.jpg
This is the first parallel eeprom I built. I am trying to program a 8k .bin file into an at28c256.
I am using SimpleJBurn as GUI, this the issue I am facing: If I clear or read the eeprom everything seems to run fine, but when I try to write data SimpleJBurn seems to hang. Does anybody knows what can I test? This is currently the only eeprom i have.

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

Re: 28Cxxx EEPROM Programmer

Post by GaBuZoMeu »

retux wrote:
Hi everyone,

Sorry beforehand if I am posting onto the wrong thread, please let me know.
I just built up an eprommer following shematic https://github.com/mkeller0815/MEEPROMM ... schema.jpg
This is the first parallel eeprom I built. I am trying to program a 8k .bin file into an at28c256.
I am using SimpleJBurn as GUI, this the issue I am facing: If I clear or read the eeprom everything seems to run fine, but when I try to write data SimpleJBurn seems to hang. Does anybody knows what can I test? This is currently the only eeprom i have.

Thanks, cheers!
Welcome retux!

Posting your question here is OK but not the optimal choice, as there is a chance that such an addendum is overlooked.

Nevertheless you started here, let's see if we can help you.

You say reading and erasing works but programming causes the SW to hang. As far as I remember, the pinning of an AT28C256 is identical to a RAM (e.g. 62256) - perhaps you verify this and if you have one, you can experiment with the RAM. Why? Because turning on the RAM will cause its content to be random, and so you have data that is different from what you get out of an erased EEPROM - which is $FF, but sadly you will get $FF even if there is no EEPROM at all :o :!:

This could be a proof that your hardware and at least the fraction of the software that reads the contents out is truly working.

If you haven't such a RAM you could try the following: place say 3 low ohm resistors (100...330 ohms) from 3 different datalines of the EEPROM socket to ground - out of memory I think p14 is GND, p12, p16, p18 (of that 28 pin packege) are data lines. If you then read out that "fake EEPROM" you should get allways the same value, but again it is not $FF.

These tests are my first attempt to check what works. There may HW and SW issues that prevents a success.

If you have checked either way we have hopefully more information to continue.


So far
Arne
retux
Posts: 7
Joined: 26 Aug 2018
Location: Argentina

Re: 28Cxxx EEPROM Programmer

Post by retux »

Hey Arne,

Thanks a lot for your response.
They are both good ideas to start troubleshooting, I don't have an SRAM, but I'll see if I can get one and check both thing you suggested. I'll let you know the results.

Thanks and cheers.
retux
Posts: 7
Joined: 26 Aug 2018
Location: Argentina

Re: 28Cxxx EEPROM Programmer

Post by retux »

I did some testing with a 6264 i had lying around, it's very old and used, so i don't trust it very much.
When I write 8192 bytes to SRAM SimpleBurns doesn't get stuck:

Code: Select all

When Writing data to SRAM (6264):

0x1FE0  44 45 53 49 47 4E 45 52 53 4F 46 54 57 41 52 45 42 49 4C 4C 20 42 4F 47 45 4E 52 45 49 46 20 35 
sending command.
wrote data from 0x0000 to 0x03FF
wrote data from 0x0400 to 0x07FF
wrote data from 0x0800 to 0x0BFF
wrote data from 0x0C00 to 0x0FFF
wrote data from 0x1000 to 0x13FF
wrote data from 0x1400 to 0x17FF
wrote data from 0x1800 to 0x1BFF
wrote data from 0x1C00 to 0x1FFF
data sent.
wrote 8192 bytes from 0x0000 to 0x1FFF in 2.408 seconds 

But doing a diff data seems to be different:

Code: Select all

Checking difference between loaded ROM file and data on EEPROM
8192 bytes checked from 0x0000 to 0x1FFF, 7539 byte are different.
If I use the eeprom (at28c256) if I read the eeprom all its memory space appeared as 0xFF, as with old UV EPROMs if i'm not mistaken. But if i try to write 8192 bytes to it, it gets stuck at this point:

Code: Select all

8192 bytes loaded from "Galaxian_1983.bin"
sending command.
wrote data from 0x0000 to 0x03FF
So my best bet is: check hardware wiring, and probably find another sram to test.

cheers!
LIV2
Posts: 173
Joined: 12 Feb 2014
Location: Sweden

Re: 28Cxxx EEPROM Programmer

Post by LIV2 »

When programming AT28Cxxx EEPROMs you generally poll data and wait until it matches what you wrote until moving on to the next byte/page. if the data isn't being written or read correctly it would explain why the programmer is hanging. It looks like meeprommer does this


I'd say double-check the connections & the code to make sure the correct pins are assigned etc
User avatar
GaBuZoMeu
Posts: 660
Joined: 01 Mar 2017
Location: North-Germany

Re: 28Cxxx EEPROM Programmer

Post by GaBuZoMeu »

There are several times "delayMicroseconds(1);" calls near the verify loop (which of course needs a correction°°) - 1 µs is unnecessary fast, use 10 µs. This helps double: it allows voltages to settle and assures that the intended effect occurs.

°°: init the loop counter and use delayMicroseconds(20) within the loop and check the loop counter. It may take a few ms until write is finished. When the loop counter exceeds 1000 (=> 20ms) exit with a useful error message.

B.T.W. (I didn't read the code in detail) - it took up to 150µs after writing a byte until the internal programming starts - check the code. Just wait after the release of WE 200 µs and then start verification.

Checking actions with your old 6264 should work at least in chunks of 256 bytes.

If there is no wiring issue then simply slow down the Arduino.


Regards,
Arne
retux
Posts: 7
Joined: 26 Aug 2018
Location: Argentina

Re: 28Cxxx EEPROM Programmer

Post by retux »

Thank you guys for the hints, really appreciate it.
I'm going to check wiring and then go over the arduino timing. Hope I can get it to work, but in the meantime i'm having fun :)

Cheers.
retux
Posts: 7
Joined: 26 Aug 2018
Location: Argentina

Re: 28Cxxx EEPROM Programmer

Post by retux »

Hey, I was able to move a bit forward although still there is a way to go.
When using the sram (6264) I can write byte byte by using arduino monitor:

Code: Select all

0x0000 : 61 62 63 64 65 66
Here a sequence 'abcdef' was written correctly to SRAM. If i try to write 8Kb using SimpleJBurn the result written does not match (running a diff) with the binary data.

However, if I try with the eeprom (28c256) I can not even write byte by byte. If I try to do it, I believe something goes wrong with data polling as program remains in the loop while(data != read_data_bus()).
I thought eeprom might be locked, but I tried to run the unlock sequence with no results either.

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

Re: 28Cxxx EEPROM Programmer

Post by GaBuZoMeu »

Well, the test using a RAM only shows that /WE and /OE are wired correctly. There may be still some shuffled addresses and the data bus may shuffled too. As you use the same wiring for wirtes and reads you cannot detect that.
If you have access to an (E)EPROM with known contents you could verify whether address and/or data busses are shuffled or not.
If the EEPROM was a new (unused) device, it is not protected.
If you have an other possibility to read the EEPROM you could modify the programming software to act the following way:
a) setup desired address
b) write desired date - write pulse slow (> 5 µs) - NO VERIFICATION
c) wait 10 ms
d) repeat steps a..c for some byte
Then using a different hardware to read the contents should help.

You may even use a breadboard, a couple of LEDs (with current limiting resistors) attached to the data pins, and wires to GND/VCC for the addresses. /WE = VCC and /OE = /CE = GND and you can select manually all memory locations you have previously written. There should be something != $FF.

You may even use this setup to write some byte manually - your actions would be slow enough to issue a write with sufficient delay.


Regards
Arne
retux
Posts: 7
Joined: 26 Aug 2018
Location: Argentina

Re: 28Cxxx EEPROM Programmer

Post by retux »

Thanks a lot Arne for your suggestions! Currrently I don't have another (e)eprom with a known data. But I'll follow your suggestions to troubleshoot this.
Cheers!
tycs03
Posts: 6
Joined: 11 Sep 2018

Re: 28Cxxx EEPROM Programmer

Post by tycs03 »

hi,

i am hoping someone can help me. i have assembled a programmer from this https://github.com/bouletmarc/BMBurner/ ... ter/Wiring. i was hoping it was able to program 29c256 and 27sf512. after assembly it does work with 27sf512 but does not work with 29c256. i have seen the schematic of meeprommer and it looked very similar i think the circuit was copied from this thread originally except for minor difference. i was wondering if this hardware would also work with the meeprommer. also i don't knoww how to compile the jar executable or how to make it work. i am using windows 10 64bit.

ps. i have pulled an issue in the github of bouletmarc, he replied that he is no longer developing maybe there would be updates in the future. so i am stuck with this hardware that only works with 27sf512.

ImageImage

thanks
Post Reply