28Cxxx EEPROM Programmer

For discussing the 65xx hardware itself or electronics projects.
Post Reply
UnaClocker
Posts: 32
Joined: 28 May 2013

Re: 28Cxxx EEPROM Programmer

Post by UnaClocker »

Heck yeah, I'd love to get an updated schematic. It'd be great to be able to program a greater variety of chips. I was looking at the datasheet for the 27C series chips and I didn't see a reasonable way to get the odd voltages it needs during programming.
Good job on the upgrades! :)
mkl0815
Posts: 183
Joined: 25 Mar 2013
Location: Germany
Contact:

Re: 28Cxxx EEPROM Programmer

Post by mkl0815 »

After some code cleanup I will provide the source of the new JBurn utility.
I've created agithub.com Repo for the complete project. I can add you as coworker to get acess to the files (will be uploaded today when I'm back home).
@UnaClocker: I would also put the PCB-Layout and the Photos to this Repo so we get everything together in one place.

https://github.com/mkeller0815/MEEPROMMER
How should I know what I think, until I hear what I've said.
rpress
Posts: 16
Joined: 27 Jul 2013

Re: 28Cxxx EEPROM Programmer

Post by rpress »

Ok! I have modified UnaClocker's schematic with the transistors for VPP and A9. I also added a simple boost supply; this is not what I used as you can see in my photo, but I think it will work. Next time I order from Digikey I'll get these components to prototype it. The windowed EPROMs seem to also ask for VCC of 6.5V, but I read this is not necessary. In any case my flash EEPROMs only require 5V.

I ordered an Arduino Leonardo, previously I was using a UNO I borrowed from a friend. I think the Leonardo will be a bit faster because it has a virtual com port, and it's cheaper. I realize the sketch will need to be a bit different, I'd guess it could support both with the right changes.

In terms of speed it seems the slowest part is the bit banging of the shift registers, which is no surprise. I looked at the assembly generated from the C code and maybe it could be better, I will look at making it faster.
Attachments
eeprom_burner.sch.gz
(65.56 KiB) Downloaded 238 times
sch.png
mkl0815
Posts: 183
Joined: 25 Mar 2013
Location: Germany
Contact:

Re: 28Cxxx EEPROM Programmer

Post by mkl0815 »

I pushed the first parts of the project to the git repository. I'm not quite familiar with GIT, so things may got done better.
I somebody has a github account, I can add him as coworker to add files to the repository. Please write me message here in the forum or via github.
Mario.
How should I know what I think, until I hear what I've said.
mkl0815
Posts: 183
Joined: 25 Mar 2013
Location: Germany
Contact:

Re: 28Cxxx EEPROM Programmer

Post by mkl0815 »

learning GIT and GITHUB in a crash-course styl during the past 10 hours, I set up the git repository for this project initially.
The project is divided into several sections, dealing with the Java-Client, the hardware components, documentation and the Arduino firmware.
I will try to add some more documentation in the next days.
https://github.com/mkeller0815/MEEPROMMER
Mario.
How should I know what I think, until I hear what I've said.
UnaClocker
Posts: 32
Joined: 28 May 2013

Re: 28Cxxx EEPROM Programmer

Post by UnaClocker »

Excellent work, thanks! I went ahead and linked to that repository from my Tindie listing. I've got 3 of the first batch left, there was certainly a demand for the units. :) If I make some with the new booster circuit design, I'll send you one of those to play with, as well. :)
rpress
Posts: 16
Joined: 27 Jul 2013

Re: 28Cxxx EEPROM Programmer

Post by rpress »

Thanks Mario! I've made a bunch of changes, I'll push them to my github tomorrow so you can check it out and pull it. I've done some optimization, so now it will read 64k in 3 seconds and write in 6.5 seconds. This is much faster than my old TOP2049.

I wonder if the Leonardo might be slower because of the virtual com port? Also the port pins are all over the place. I guess I'll see when it arrives. :)

I'd like to increase write speed for 28Cxxx but I don't have any. Maybe I will get one to play with.

Ryan
UnaClocker
Posts: 32
Joined: 28 May 2013

Re: 28Cxxx EEPROM Programmer

Post by UnaClocker »

Nice, that sounds nice and fast. Technically, the Leonardo's virtual serial port is FAR faster. It's a USB device pretending to be a serial device. Somewhere on PJRC.com, he's done some speed testing with the Teensy 2.0 (the Teensy 2.0 is an Arduino compatible that was using that same chip as the Leonardo about 2 years before the Leonardo came out), or maybe he did it on the 3.0, but either way, he found that the majority of the limit is the way Windows handles things. So if you're not using Windows, you should be able to get it up around 1mbit.
I'm certainly interested to hear how it works out.
I'd send you a 28C chip to play with, but they're $9 a piece and I'm using both of mine at the moment. Actually, you can get the 200ns ones pretty cheap on eBay, but those are too slow for my ECM.
rpress
Posts: 16
Joined: 27 Jul 2013

Re: 28Cxxx EEPROM Programmer

Post by rpress »

Yeah I read it was faster, but I also read it takes more CPU. So I guess it depends if the higher available throughput can overcome the slower bit banging because of less available CPU. The weird port pins will probably have a speed hit too.

I pushed my changes to my repo here: https://github.com/presslab-us/MEEPROMMER
I also added code for 28C page write, maybe it will work who knows! Anyway, someone give it a try...

Mario, when I get my Leonardo I will test it and probably need to change the sketch, so maybe hold off on pulling it for now. I also changed things in the GUI, maybe you won't like some things. :P So give it a once over and let me know what you think.
rpress
Posts: 16
Joined: 27 Jul 2013

Re: 28Cxxx EEPROM Programmer

Post by rpress »

Got the Leonardo working, only mixed up one bit shift. ;D I pushed the fix to my repo. It's about 10% slower than the UNO. It's not the comms though, it's the bit swapping needed for the weird port setup. Anyway, it's plenty fast.

I ordered the parts to test the boost converter circuit. The PWM signal is working on the UNO and Leonardo, should give about 0.15V resolution on the boost supply.
mkl0815
Posts: 183
Joined: 25 Mar 2013
Location: Germany
Contact:

Re: 28Cxxx EEPROM Programmer

Post by mkl0815 »

Thanks for contributing to this little project. I've just took a short look at your changes. I'm off this weekend for some outdoor activity without any IT stuff (except my mobile for navigation), so I will check the changes next week. Could you add some more comments on the Arduino code meanwhile? This is the most complex change in the software and it would be good to have the chance to understand what's happening.

Mario.
How should I know what I think, until I hear what I've said.
rpress
Posts: 16
Joined: 27 Jul 2013

Re: 28Cxxx EEPROM Programmer

Post by rpress »

I have added more comments, let me know what you think.

If someone could test the 28C with page write, that would be great!
Attached is a compiled JBurn with my changes. The Arduino sketch is here. https://raw.github.com/presslab-us/MEEP ... rmware.ino
Attachments
JBurn2_rpress2.zip
(181.12 KiB) Downloaded 288 times
Last edited by rpress on Sat Aug 03, 2013 3:21 am, edited 2 times in total.
UnaClocker
Posts: 32
Joined: 28 May 2013

Re: 28Cxxx EEPROM Programmer

Post by UnaClocker »

Yeah, I'll give it a whirl this evening, I need to burn a couple chips anyways. :)
UnaClocker
Posts: 32
Joined: 28 May 2013

Re: 28Cxxx EEPROM Programmer

Post by UnaClocker »

Ok, gave it a whirl with a 32k image on 28C256 chip, write in 4.6 seconds and verified correct. WAY faster than before, good job! I think it was taking 3-4 minutes on the old version.
rpress
Posts: 16
Joined: 27 Jul 2013

Re: 28Cxxx EEPROM Programmer

Post by rpress »

UnaClocker wrote:
Ok, gave it a whirl with a 32k image on 28C256 chip, write in 4.6 seconds and verified correct. WAY faster than before, good job! I think it was taking 3-4 minutes on the old version.
Great! Also I implemented the special erase procedure from the application note, although it sounds like the write is fast enough for the brute force method. Could you test the erase too when you have some time, and then do a blank check?

How do you like the changed GUI?
Post Reply