28Cxxx EEPROM Programmer

For discussing the 65xx hardware itself or electronics projects.
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Re: 28Cxxx EEPROM Programmer

Post by BigEd »

If you run a linux program using strace, the last few OS calls will often give a clue as to what caused the problem.

strace -o strace.out command arg1 arg2

less strace.out
undersys
Posts: 7
Joined: 04 Jan 2015

Re: 28Cxxx EEPROM Programmer

Post by undersys »

Hi BigEd, yeah no luck with strace.
For Mario's original GUI I get nothing
For rpress's I get the same core dump
Nothing in the leading up strace gives much hints

Thanks thou
undersys
Posts: 7
Joined: 04 Jan 2015

Re: 28Cxxx EEPROM Programmer

Post by undersys »

OK.. progress .. I think :wink:

I found this fork on git hub :
https://github.com/pda/pda6502/tree/master/tools

Seems someone updated the python scrip for v3.

I also feel I had an issue with my breadboard!!! .. sigh

I think I can write to the EEPROM now :

Code: Select all

$ ./meeprommer3.py -c /dev/ttyUSB0  -p 64 -w -f /tmp/test.hex
Writing from 0000 to 03ff
Writing from 0400 to 07ff
Writing from 0800 to 0bff
Writing from 0c00 to 0fff
Writing from 1000 to 13ff
Writing from 1400 to 17ff
Writing from 1800 to 1bff
Writing from 1c00 to 1fff
Wrote 8192 bytes in 47.78 seconds
Thou now when I go to read the data it looks bad. I just get lines of "37"

Code: Select all

$ ./meeprommer3.py -c /dev/ttyUSB0  -p 64 -r
0x0020 : 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37
0x0030 : 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37
0x0040 : 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37
--snip--
0x1FE0 : 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37
0x1FF0 : 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37
not sure why i would get that when I read the EEPROM... the file i am writing is not just filled with "37".

Thanks
undersys
Posts: 7
Joined: 04 Jan 2015

Re: 28Cxxx EEPROM Programmer

Post by undersys »

OK.
It works...

It seems the power from Arduino Nano would drop to 3.8v on writes. EEPROM would then disable writes.

Used an external power supply works fine :

Code: Select all

$ ./meeprommer3.py -c /dev/ttyUSB0 -W -a 0x0000  -p 64  -f /tmp/test.hex
Writing from 0000 to 03ff
Writing from 0400 to 07ff
Writing from 0800 to 0bff
Writing from 0c00 to 0fff
Writing from 1000 to 13ff
Writing from 1400 to 17ff
Writing from 1800 to 1bff
Writing from 1c00 to 1fff
Wrote 8192 bytes in 1.85 seconds
$ ./meeprommer3.py -c /dev/ttyUSB0 -v -f /tmp/test.hex
Verifying...
Ok
$ 
Well at least I hope the Verify function works :D
Smasher816
Posts: 7
Joined: 17 Feb 2015
Location: CA

Re: 28Cxxx EEPROM Programmer

Post by Smasher816 »

Hi guys,

I just registered to the forum for this project. I am planning on making a z80 computer and was looking at possible eeproms. One of which was the AT28C256. In my quest to find a cheap flasher I managed to stumble upon this wonderful thread. Unfortunately UnaClocker's tindie page has been discontinued and I'm not sure how to contact him. Hopefully some people here can help me get this setup. I have a few questions as I am more of a software than hardware guy and am trying to dabble in the world of EE.

I got a breadboard and will pick up an Arduino Uno soon. I found the schematics on the page and turned them into gerber files so that way I can get a few pcb's produced. In the BOM C1 does not have a listed value - is there a general size I should get? Additionally I can't seem to find an IC1/memory, is that just the placeholder ZIF where I would add my 28C? I don't care about flashing some of the other chips that require the charge pumps, so is it possible to leave out some of the chips or to simple use a V1 pcb with the new software? Finally, is there an alternative to the 8bit shifters? They are $10 a pop and currently half of the cost (along with the arduino).

Thanks.
Trying to build a z80 HBC.
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: 28Cxxx EEPROM Programmer

Post by Martin_H »

I used Mario's design that uses the Arduino, some output shift registers, some decoupling capacitors, and a ZIF socket. I built it on a breadboard first, then transferred it to some proto board. Ugly, but faster turnaround time for a one off than making a PCB. Here's a video of the first draft.

http://youtu.be/XnTPDfEHkMU

The 595 shift registers were off eBay and I got 5 for around $5, the breadboard Arduino was about $13, and the ZIF socket was close to $10. The decoupling capacitors are usually 0.1 uF and are less than a dime each. So my total was less than $30 and a few hours of noodling with a soldering iron which I consider fun.
Smasher816
Posts: 7
Joined: 17 Feb 2015
Location: CA

Re: 28Cxxx EEPROM Programmer

Post by Smasher816 »

Thanks Martin. I would agree that a one off pcb is wasteful especially with many companies having a 5/10 board MOQ.

I remember looking at http://www.ichbinzustaendig.de/dev/meeprommer-en but thought that most of the information their was outdated. Regardless the 74HC595 shift registers mentioned in the schematic are 10 times cheaper than the 74LS595D in UnaClocker's V2 BOM.

So I assume I can put all that on a breadboard like you did and then use some jumper wires to hook it up to equivalent slots on an arduino uno instead of the nano? I am running Linux so I probably won't use your windows port. If the design still works with rpress's newer and faster firmware that would be awesome, but using mkeller's older code isn't the end of the world.

Edit: Is there a reason that the cheapest zif socket I can find on mouser is $10, but I can find $3 ones with sparkfun, adafruit, etc? ex: https://www.sparkfun.com/products/9175
Last edited by Smasher816 on Tue Feb 17, 2015 2:59 am, edited 1 time in total.
Trying to build a z80 HBC.
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: 28Cxxx EEPROM Programmer

Post by Martin_H »

An Arduino Uno will work fine. The ZIF socket you linked to is a 28 pins, but too narrow for EEPROMs which use a socket twice as wide. I imagine the price difference is because the narrow size fits an AVR 328p which means they'll sell a lot more of them, so economics of scale kicks in.
Smasher816
Posts: 7
Joined: 17 Feb 2015
Location: CA

Re: 28Cxxx EEPROM Programmer

Post by Smasher816 »

Martin_H wrote:
The ZIF socket you linked to is a 28 pins, but too narrow for EEPROMs which use a socket twice as wide.
Thanks, I actually found another one that is .6" instead of .3", so I guess that will work. If anyone is interested here it is - https://www.sparkfun.com/products/9176. It is still much cheaper than mouser. I think I will probably grab the arduino, socket, and everything else from there.

I think I will go ahead and buy all the parts for the schematic you used on your breadboard. It would be nice to confirm that it would work with the newer software but I assume it will. I think that the v1 pcb is pretty much the same thing as the breadboard, and then all the extra stuff on v2 isn't necessary and just extends support to more chips.

If there is nothing else pending I'll place the order soon and post my progress or issues here. Thanks for the guidance. :)
Trying to build a z80 HBC.
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: 28Cxxx EEPROM Programmer

Post by Martin_H »

You should be good to go with that ZIF socket. Don't hesitate to ask questions here if you get stuck. Although you're building a Z80 machine, programming the EEPROM is the same so we can help.
undersys
Posts: 7
Joined: 04 Jan 2015

Re: 28Cxxx EEPROM Programmer

Post by undersys »

Smasher816 wrote:
Thanks Martin. I would agree that a one off pcb is wasteful especially with many companies having a 5/10 board MOQ.

I remember looking at http://www.ichbinzustaendig.de/dev/meeprommer-en but thought that most of the information their was outdated. Regardless the 74HC595 shift registers mentioned in the schematic are 10 times cheaper than the 74LS595D in UnaClocker's V2 BOM.

So I assume I can put all that on a breadboard like you did and then use some jumper wires to hook it up to equivalent slots on an arduino uno instead of the nano? I am running Linux so I probably won't use your windows port. If the design still works with rpress's newer and faster firmware that would be awesome, but using mkeller's older code isn't the end of the world.

Edit: Is there a reason that the cheapest zif socket I can find on mouser is $10, but I can find $3 ones with sparkfun, adafruit, etc? ex: https://www.sparkfun.com/products/9175

I used the v1 BOM and schematics with the 74HC595.
Programming AT28C256's. I have no other EEPROM's to test
I have had no issues writing/reading EEPROM's from the command line (via python)
I've put all the F/W and python code up on my git-hub page up if your interested.

I did have this wired on a breadboard but I've now soldered it to a though-hole PCB, working fine and much more stable.
I noticed sometimes the ZIF socket would come out of the breadboard a little...

I am too on my way to building a Z80 :)
tobier
Posts: 8
Joined: 06 Dec 2013

Re: 28Cxxx EEPROM Programmer

Post by tobier »

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 :-(
Aspiring homebrew- and replica builder.
Blog http://tobier.se
Hackaday http://hackaday.io/tobier
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: 28Cxxx EEPROM Programmer

Post by Martin_H »

I use an LED with a 330 ohm resistor, and my DMM as a logic probe. They're not fancy, but it gets the job done.
Smasher816
Posts: 7
Joined: 17 Feb 2015
Location: CA

Re: 28Cxxx EEPROM Programmer

Post by Smasher816 »

It works! http://i.imgur.com/yMRQKTD.jpg (I tried embedding the image but it was way too large)

Both the java programs (mkller/rpress) would not compile due to various gui items not existing. Googling wasn't much help. I tried the python program but it had issues saying the ack wasn't received. Playing around in the serial console I figured out that it sent the '%' fine, but the python program didn't recognize it. I guess the library changed and now it returns a byte array so you have to check the first byte not the whole thing. Then the arduino would get stuck in an infinite loop on receiving the data (even though I was sending more than enough bytes). I think it overflowed causing the data to be overwritten/lost before the program could read it, resulting in it not finding enough content. Replaced the loop with a Serial.readBytes and that worked. Then I hooked up some leds to the shift registers and confirmed they incremented correctly after a little fiddling around. Yet it was still not working. I cut up a USB cable, pluged it into a phone charger and used the 5v/ground lines on the bread board with Vin to the arduino (I heard the arduino could sometimes droop the charge over usb) - still no use. Figured out I had my address lines incorrect since the data sheet started at A0, meaning that A14 is a total of 15 lines (not 14 like I originally assumed). Still wasn't working - lifted up the zif and saw I had everything a pin too far to the left. Fixed all that and now it finally works! It's been a long few hours of debugging but I'm glad it works :)

Hopefully seeing all the problems I hit can help anyone else who tries this and has an issue. it's always good to have ideas for where to look. I can upload the shift register test if anyone thinks it would be useful...
Trying to build a z80 HBC.
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Re: 28Cxxx EEPROM Programmer

Post by BigEd »

(Let's test this - I'm pretty sure that if you attach a large image, but choose not to use the 'place inline' feature, it won't supersize itself. It's much better to get the image onto this site, because in the past useful images in posts have disappeared when the image hoster makes changes, or goes bust.)
Attachments
testing a non-inline attachment
testing a non-inline attachment
Post Reply