28Cxxx EEPROM Programmer

For discussing the 65xx hardware itself or electronics projects.
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: 28Cxxx EEPROM Programmer

Post by Martin_H »

Congratulations on getting it working. Were you able to write an EEPROM image?

Python 2.7 to 3.0 had some significant API changes, so I am not surprised that you had a snag there.

When I was debugging mine I had two address lines crossed rather than shifted which produced some interesting results. I did something similar to your test. Once I got the hardware working I used puTTY to manually write and read data blocks. At that point I knew I had the Arduino side of the house working and focused in the PC client.

As I said before, the Java program needs some dependent jars which I wasn't able to get working on Window 7, and since I knew the serial protocol a C# port was the shortest path to success.
Smasher816
Posts: 7
Joined: 17 Feb 2015
Location: CA

Re: 28Cxxx EEPROM Programmer

Post by Smasher816 »

Thanks BigEd, I am used to some other forums where the attachments do not work well and people suggest you upload it to a different site.

Martin, I was able to write binary files including some compiled asm I have made. The python script was using print() as a function and ran fine in 3.0, it had syntax errors with 2.0, so that was not the issue... It's cool you got a windows version working.

Next up is moving this contraption to a perfboard so I can free up my breadboard and actually test the z80 with memory. I already have a sketch of how I want everything laid out. My shield will include a reset button incase anything hangs (it's hard to hit the on board one), along with read/write active led's to see what is going on.
Trying to build a z80 HBC.
User avatar
Druzyek
Posts: 367
Joined: 12 May 2014
Contact:

Re: 28Cxxx EEPROM Programmer

Post by Druzyek »

Neat projects! I have been working on my own programmer too and thought I would share. It uses an FT232 for USB communication. I decided to do everything over a serial terminal with XMODEM so it would be compatible with any OS, but using Java for a GUI seems like it accomplishes the same thing. For shift registers I'm using 74HC595s and a 74HC165 all running at 5v with a few transistors to level shift for my MSP430 microcontroller running at 3.3v.
Attachments
EEPROM_board.jpg
EEPROM_Term.png
mkl0815
Posts: 183
Joined: 25 Mar 2013
Location: Germany
Contact:

Re: 28Cxxx EEPROM Programmer

Post by mkl0815 »

Hello,

I just took a quick look on the forum and realized that this thread is still active after nearly two years and some people using this tool and spending time in getting this thing to work. There are some forks out there on github with different layouts, firmware versions and tools to talk to the programmer. What started as a proof of concept has tuned into a small project with even international support. It's nice to see that my work is useful to others.
Maybe I'll find the time to collect all the changes that had been done to the parts of the project back and create an updated version of the progammer, the firmware and the gui.

Mario.
How should I know what I think, until I hear what I've said.
LIV2
Posts: 173
Joined: 12 Feb 2014
Location: Sweden

Re: 28Cxxx EEPROM Programmer

Post by LIV2 »

How long does it take for this programmer take to program an 8k rom?
my current setup takes a couple of minutes because it's not fast enough to do page writes :/
tobier wrote:
Nice to see that people are still working on this. I'm starting to pick this project up again; I'm making a simpler (?) design with an MCP23008 I/O expander for the data bus, an MCP23017 I/O expander for the address bus and Arduino digital pins for the control logic. I'm playing around with the MCP23008, and I think my earlier problems was due to that I didn't reset the I/O expander properly. I did an Arduino sketch today where I tied the reset pin to a digital pin (and toggled it on each start), and using my multimeter I could now see that the GPIO pins on the I/O expander did what I expected.

I had a logic probe that I bought on eBay which was very useful, but now it seems that it's broken :-(

I'm using the MCP23017 to program mine, but that's simply because I started out programming mine with my Raspberry Pi and had already made a 2xMCP23017 breakout board to play with.

There's no real reason to use the MCP23017 or 23008 over the 74HC595 though, the 595 will be much faster as you daisy-chain the two of them and output 2 bytes to set the address.

The MCP's require you to output the i2c address, register address and bytes meaning it's going to be slower, still fast enough to do page writes on a 28c64b though.
tobier
Posts: 8
Joined: 06 Dec 2013

Re: 28Cxxx EEPROM Programmer

Post by tobier »

LIV2 wrote:
How long does it take for this programmer take to program an 8k rom?
my current setup takes a couple of minutes because it's not fast enough to do page writes :/
tobier wrote:
...
I'm using the MCP23017 to program mine, but that's simply because I started out programming mine with my Raspberry Pi and had already made a 2xMCP23017 breakout board to play with.

There's no real reason to use the MCP23017 or 23008 over the 74HC595 though, the 595 will be much faster as you daisy-chain the two of them and output 2 bytes to set the address.

The MCP's require you to output the i2c address, register address and bytes meaning it's going to be slower, still fast enough to do page writes on a 28c64b though.
I'm not that concerned about speed, I haven't actually even considered doing page writes. When I have the time to finish my prototype, I'll report back about the perfomance. :-)
Aspiring homebrew- and replica builder.
Blog http://tobier.se
Hackaday http://hackaday.io/tobier
frikosal
Posts: 7
Joined: 20 Dec 2013

Re: 28Cxxx EEPROM Programmer

Post by frikosal »

Nice project !
Have you considered using a Mega ? In ebay you can have it for almost the price of the nano, or less if you want the genuine nano. It's price has dropped down as it is used to control 3d printers.
mkl0815
Posts: 183
Joined: 25 Mar 2013
Location: Germany
Contact:

Re: 28Cxxx EEPROM Programmer

Post by mkl0815 »

Yes I was thinking about a new version using a Arduino Mega. It has enough outputs to directly set address and data bus and the bigger size of the board gives more space for an additional circuit to use 12V for EPROMs.

Mario.
How should I know what I think, until I hear what I've said.
tobier
Posts: 8
Joined: 06 Dec 2013

Re: 28Cxxx EEPROM Programmer

Post by tobier »

In case someone is interested in doing a programmer with an Arduino Uno and I/O expanders: schematic on my site.

I haven't found the time to breadboard it fully yet. I've been playing around with the KIM Uno replica kit.. :-)
Aspiring homebrew- and replica builder.
Blog http://tobier.se
Hackaday http://hackaday.io/tobier
Smasher816
Posts: 7
Joined: 17 Feb 2015
Location: CA

Re: 28Cxxx EEPROM Programmer

Post by Smasher816 »

I was working on transferring my breadboard design to perfboard and got really annoyed at trying to cut and place all the many address and data lines - it was a huge hassle. So since I have given up on that route I have started looking at PCB options as all the wiring can be done by the factory :)

I did not use Uniclocker's V2 shield as not all the caps and parts were labeled and I don't need the charge pump circuitry as I am just interested in the 28C chips. I probably could have modified his V1 shield to support a larger zif socket but I decided to take the challenge and learn how to make my own pcb for the fun of it.

I used kicad since it's free and you don't have to deal with some of the free eagle restrictions or trials. It's a simple design with just the ZIF socket (up to 40 pins) and two 74HC595 shift registers required (like many other designs here). I also added a reset button which could help with programming, and two led's for read/write to make sure the board works (although they are not needed for operation). I did not bother with decoupling caps as they increase the part count and price, and the breadboard and v1 designs appeared to function fine without them.

I am probably going to send the design off to be produced soon. If anyone is interested I would love to sell the extras to people here to help spread out the cost. $30 to 3 people is a better deal for everyone then $30 for one person who then has extra boards he does not need. Regardless I will still put up the pcb design, including all footprints, to my github page along with the modified python software I was using so future people may use it if they desire.
Attachments
meeprommer.png
Last edited by Smasher816 on Mon Apr 13, 2015 5:39 am, edited 1 time in total.
Trying to build a z80 HBC.
User avatar
BigDumbDinosaur
Posts: 9428
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: 28Cxxx EEPROM Programmer

Post by BigDumbDinosaur »

Smasher816 wrote:
I did not bother with decoupling caps as they increase the part count and price, and the breadboard and v1 designs appeared to function fine without them.
"Appeared to function fine" is not quite the same as "functions fine." :) Omitting the decoupling capacitors is a false economy, in my opinion. The require capacitors are very inexpensive and take up little space.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
Smasher816
Posts: 7
Joined: 17 Feb 2015
Location: CA

Re: 28Cxxx EEPROM Programmer

Post by Smasher816 »

BigDumbDinosaur wrote:
Smasher816 wrote:
I did not bother with decoupling caps as they increase the part count and price, and the breadboard and v1 designs appeared to function fine without them.
"Appeared to function fine" is not quite the same as "functions fine." :) Omitting the decoupling capacitors is a false economy, in my opinion. The require capacitors are very inexpensive and take up little space.
This is true. To be completely honest I don't really know enough about decoupling caps besides that you put them between the power and ground lines near a chip. Not sure what values or types work best.

One issue is that using a 40 pin zif socket takes up a large amount of space. As long as I keep the board the same footprint as an arduino uno I don't have much extra space to place caps near the IC's. Also, the power and ground lines are on opposite corners which might necessitate adding more vias to get everything to connect together. Can I get away with just using one cap around the main vcc/gnd rails, or do I have to add a cap for each IC.

I don't think it is a huge deal but I would fix it if its not too much work. I am always up for more revisions, and as I said I will publish everything so someone else could add it themselves if they desire.
Trying to build a z80 HBC.
User avatar
GARTHWILSON
Forum Moderator
Posts: 8774
Joined: 30 Aug 2002
Location: Southern California
Contact:

Re: 28Cxxx EEPROM Programmer

Post by GARTHWILSON »

I have a page on avoiding AC-performance problems (which bypass capacitors play into) at http://wilsonminesco.com/6502primer/construction.html, which also includes links to relevant forum topics and ap. notes.

Smasher816 wrote:
One issue is that using a 40 pin zif socket takes up a large amount of space. As long as I keep the board the same footprint as an arduino uno I don't have much extra space to place caps near the IC's.

You might be able to put a capacitor on the other side of the board, under the IC. If it's assembled by hand anyway, it's not like you have to worry about extra steps added to production units where you're trying to make money, not lose money, on hundreds or thousands of units.

Quote:
Also, the power and ground lines are on opposite corners which might necessitate adding more vias to get everything to connect together. Can I get away with just using one cap around the main vcc/gnd rails, or do I have to add a cap for each IC.

For any computer board that you want to run at more than a few MHz, you should have one at every IC, with the shortest possible connection length from the capacitor to the IC's power and ground pins, because of inductance. If you had a real ground plane (unlike what's in your picture above), the bypass capacitor should be as close as possible to the Vcc pin, and have the shortest possible connection to the ground plane. However: an EEPROM programmer won't be running very fast, and there should be plenty of time for ringing to die out before the next significant signal transition, right? I really don't think you have anything at all to worry about in that area for the EEPROM programmer. That's why the solderless plug-in breadboard worked. This type of breadboards is great for low-speed analog stuff, but offers the worst of all worlds for fast digital.
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?
RAAV027
Posts: 2
Joined: 21 Nov 2015

Re: 28Cxxx EEPROM Programmer

Post by RAAV027 »

Hello. I have this problem Error: Not connected to any Programmer!
I connected all the circuit correctly.
mkl0815
Posts: 183
Joined: 25 Mar 2013
Location: Germany
Contact:

Re: 28Cxxx EEPROM Programmer

Post by mkl0815 »

RAAV027 wrote:
Hello. I have this problem Error: Not connected to any Programmer!
I connected all the circuit correctly.
Can you please explain your problems more detailed?
What circuit is connected to what?
What firmware version are you using?
What operating system are you using?
What version of the programmer software (java) are you using?
Did you built the programmer on a breadboard or on a pcb?

The message "Error: Not connected to any Programmer!" is shown if the SimpleJBurn tool cannot make a serial connection.
After starting the tool you have to select the serial Interface first. Even if it is already shown in the selection-box.
Make sure that the Arduino-Firmware and the Java-Tool use the same speed (115200 by default).

Mario.
How should I know what I think, until I hear what I've said.
Post Reply