Page 13 of 18
Re: 28Cxxx EEPROM Programmer
Posted: Sat Feb 21, 2015 1:01 pm
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.
Re: 28Cxxx EEPROM Programmer
Posted: Sun Feb 22, 2015 7:45 am
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.
Re: 28Cxxx EEPROM Programmer
Posted: Sun Feb 22, 2015 6:43 pm
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.
Re: 28Cxxx EEPROM Programmer
Posted: Sat Feb 28, 2015 10:24 am
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.
Re: 28Cxxx EEPROM Programmer
Posted: Sun Mar 01, 2015 2:45 am
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 :/
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.
Re: 28Cxxx EEPROM Programmer
Posted: Sun Mar 01, 2015 6:17 pm
by tobier
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 :/
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.

Re: 28Cxxx EEPROM Programmer
Posted: Sun Mar 01, 2015 7:47 pm
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.
Re: 28Cxxx EEPROM Programmer
Posted: Mon Mar 02, 2015 6:15 am
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.
Re: 28Cxxx EEPROM Programmer
Posted: Tue Mar 17, 2015 12:55 pm
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..

Re: 28Cxxx EEPROM Programmer
Posted: Sun Apr 12, 2015 8:22 pm
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.
Re: 28Cxxx EEPROM Programmer
Posted: Mon Apr 13, 2015 1:43 am
by BigDumbDinosaur
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.
Re: 28Cxxx EEPROM Programmer
Posted: Mon Apr 13, 2015 5:43 am
by Smasher816
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.
Re: 28Cxxx EEPROM Programmer
Posted: Mon Apr 13, 2015 7:39 am
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.
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.
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.
Re: 28Cxxx EEPROM Programmer
Posted: Sat Nov 21, 2015 10:28 pm
by RAAV027
Hello. I have this problem Error: Not connected to any Programmer!
I connected all the circuit correctly.
Re: 28Cxxx EEPROM Programmer
Posted: Wed Nov 25, 2015 10:45 am
by mkl0815
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.