6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Nov 24, 2024 9:08 am

All times are UTC




Post new topic Reply to topic  [ 269 posts ]  Go to page Previous  1 ... 14, 15, 16, 17, 18
Author Message
PostPosted: Tue Sep 11, 2018 4:55 pm 
Offline
User avatar

Joined: Wed Mar 01, 2017 8:54 pm
Posts: 660
Location: North-Germany
Hi tycs03,

welcome!

The two devices you mentioned are pretty different! While the SST27SF512 is similar to a regular EPROM (it requires a programming voltage (12V) and can be programmed byte by byte in any sequence), the AT29C256 is a 5V only Flash EPROM. It requires a completely different way to store information into it. In practice this can be done in circuit (no need for a "programmer") - but there must be a program (in RAM) to do that.

I only found a datasheet for the AT29C256
Attachment:
AT29C256.pdf [351.41 KiB]
Downloaded 215 times
with PLCC and TSOP packages. They have a very different pinning relative to the SST27F512. Without a proper wired adapter you risk a damage. There are two pins (1, 17) on the PLCC package that are not allowed to be connected to anything, so be careful.

I haven't seen a hint a Github according to precautions according to the wiring nor hints for an adapter.
I did not look into the software - if it works for the SST27SF512 - fine. Due to the completely different algorithm the AT29C256 requires, this doesn't mean much.

If you have an AT29C256 in DIL case please submit its datasheet.

One possible reason that it appears to work fine for the SST27SF512 but not for the AT29C256 is: a swap between two address lines and/or a swap between two databus lines. This would not prohibit the SST to get programmed (and verified) but the AT wouldn't respond properly.

If you have another possibility to read out the contents of the SST, try it. If there are no wiring issues you should read exactly what you have programmed. Otherwise more or less bytes are out of order (address bus issue) or the byte values itself are wrong (data bus issue).


Regards,
Arne


Top
 Profile  
Reply with quote  
PostPosted: Wed Sep 12, 2018 7:00 am 
Offline

Joined: Tue Sep 11, 2018 7:26 am
Posts: 6
hi,

thanks for the reply. I was wondering why Jburn won't open in my pc. I was googling and i saw in a thread selling a uno eeprom shield, and said this was able to burn 29c256. I was trying to download Jburn2_rpress, so i was able to find this thread. But the app won't open in my pc. how do i make it work in windows 10 64bit.

by the way i have attached the 29c256 pdf with pin outs dil28 package.


Attachments:
29c256.pdf [262.68 KiB]
Downloaded 197 times
Top
 Profile  
Reply with quote  
PostPosted: Wed Sep 12, 2018 9:12 am 
Offline

Joined: Tue Sep 11, 2018 7:26 am
Posts: 6
I have compared both schematics and found that there is a lot of difference and therefore cannot be used with jburn app and arduino F/W. Also i have finally figured out how to open the java app JBURN2_rpress. I am thinking of making a new board, would like to know if anyone has indeed tried to program a 29c256 with this board and S/W.

thanks


Top
 Profile  
Reply with quote  
PostPosted: Wed Sep 12, 2018 10:44 am 
Offline
User avatar

Joined: Wed Mar 01, 2017 8:54 pm
Posts: 660
Location: North-Germany
Well, the DIL package of the AT29C256 seems to fit - their is only pin 1 which is /WE which could cause trouble. This is VPP for a 27SF256 and A15 for 27SF512. I hope the program takes care of this.

If you have access to the program, you may look for a piece of code dealing with "product identification". There are two signals (/OE and A9) that can be switched to +12V. They can be used to read out manufacturer and product ID. Perhaps you can omit this section and check if the AT29 can be used then. (BTW. the two series resistors R0 and R7 (1K) are pretty tough selected - 12-5=7 mA into the pins of the Arduino or the shift register is more than recommended.)

Again: the AT29C256 could be programmed in circuit. There is only one thing to consider: during programming or erasing you can not execute programs out of the device.


Regards,
Arne


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 13, 2018 2:03 pm 
Offline

Joined: Tue Sep 11, 2018 7:26 am
Posts: 6
hi, arnie

I don't really understand code. I was wondering if you could look at it for me? it has a windows s/w with gui. I don't really know whats wrong with it. seem to me that it was originally from this thread. The difference is some pins have been altered, and for a booster circuit it was change with a commercially available booster circuit to deal with the 5v step up to 12v. bascilly the gui lets you choose what eeprom you are working on. it has support for quite a few chips. Problems is the ones that i need are 29c256 and 27sf512. It works for the 27sf512 but not with at29c. I tried to swap pins 1 and 27 and choose 28c from the gui since it was similar to 29c except for pins 1 and 27 are interchanged. but still nothing.

regards,

tycs


Attachments:
BMBurner-master.zip [115.9 KiB]
Downloaded 231 times
Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 13, 2018 11:01 pm 
Offline
User avatar

Joined: Wed Mar 01, 2017 8:54 pm
Posts: 660
Location: North-Germany
I have read (better take a glimpse on) the source code. There is a program loop:
Code:
  //Write
  write_start();
  for (int x = 0; x < BUFFERSIZE; ++x) fast_write(addr + x, cmdbuf[x+5]);
  write_end();

This for-loop calls fast_write(addr,data) for each byte to be programmed. That won't work for the AT29C256.
Take a look at page 3 of the datasheet you submitted:
Quote:
PROGRAM: The device is reprogrammed on a page basis. If a byte of data within a
page is to be changed, data for the entire page must be loaded into the device. Any byte
that is not loaded during the programming of its page will be indeterminate
. Once the
bytes of a page are loaded into the device, they are simultaneously programmed during
the internal programming period. After the first data byte has been loaded into the
device, successive bytes are entered in the same manner. Each new byte to be programmed
must have its high-to-low transition on WE (or CE) within 150 μs of the low-tohigh
transition of WE (or CE) of the preceding byte. If a high-to-low transition is not
detected within 150 μs of the last low-to-high transition, the load period will end and the
internal programming period will start. A6 to A14 specify the page address. The page
address must be valid during each high-to-low transition of WE (or CE)
. A0 to A5 specify
the byte address within the page. The bytes may be loaded in any order; sequential
loading is not required. Once a programming operation has been initiated, and for the
duration of tWC, a read operation will effectively be a polling operation.

This means you have to rewrite the //write... to pass a pointer to the first of a chunk of 64 bytes of a "page" (here this means A6...A14 are constant, A0..A5 varies) to the fast_write() function. Then fast_write() needs to write all 64 bytes quickly (= less than 150 µs per byte), then wait >=150µs, and then start polling. Once the chip is ready (two sequential reads deliver the same data) fast_write() can return. Then the next chunk can follow.

I think this is more than a "little" rework. As I have no Arduino at hand (nor the burner hardware) I cannot provide working SW for you. Sorry :(

BTW the "algorithm" to program a 27C512 isn't the way the chip manufacturer recommends. It may work with "new" parts, but there is a great chance the EPROM will "forget" what was written soon.


Regards,
Arne

edited (1) - typos, grammar


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 14, 2018 10:50 am 
Offline

Joined: Tue Sep 11, 2018 7:26 am
Posts: 6
Yeah I understand. Would the MEEPROMMER work with the 29c256?
Since I have no coding abilities maybe I can just make the MEEPROMMER board. All I really need is 29c256 and 27sf512

I think it was UNACLOCKER who said in turbo dodge forums that this device works with 29c although he did mention that 28c had pins 1 and 27 intrrchanged

Thanks


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 14, 2018 12:33 pm 
Offline
User avatar

Joined: Wed Mar 01, 2017 8:54 pm
Posts: 660
Location: North-Germany
tycs03 wrote:
Yeah I understand. Would the MEEPROMMER work with the 29c256?
No, the 29C256 is not listed.
tycs03 wrote:
Since I have no coding abilities ...
That turns out to be a problem. In theory (you have said you could use your programmer to write successfully a 27sf512) the device should program a 28c256. This device can be written in a byte fashion (no chunks of 64 bytes required). But it still needs a >= 150 µs delay (after each write) to start its internal programming algorithm and this delay in not part of the program so far.

Perhaps someone else could change the Arduino program that this delay between write and data polling is implemented. Then programming an AT28c256 should work. You need to check if an 28c256 serves your needs - AFAIK the 28c256 is slower (150ns) than an 29c256 (70ns).


Regards,
Arne


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 14, 2018 1:05 pm 
Offline

Joined: Tue Sep 11, 2018 7:26 am
Posts: 6
Well I have quite a few 29c256 and was hoping to be able to use them and just 1 27sf512. I don't have any 28c256.

Maybe I should just look for another programmer that can support both 29c and 27sf


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 14, 2018 6:53 pm 
Offline
User avatar

Joined: Wed Mar 01, 2017 8:54 pm
Posts: 660
Location: North-Germany
Perhaps there is someone near by your site that could program 29c256 types. Perhaps a lab at some university? An engineering lab?

You could use your sf512 to provide the data (for up to two 29c256).

Again, the 29c256 does not require a programming tool. If you have access to a computer with a free socket for 32K RAM (62256) and you could prepare an adapter where only pin 1 and pin 27 are flipped, then the 29c256 should run.

If you (or someone else) could then write a simple program that copies 64 bytes in a row (simply copy, no verify), then wait 10 ms and continue with the next 64 bytes, it should work. Verification can be done after all chunks have been copied. Should work.

One of the cheapest commercial programming tools come from Batronix. It is USB only and works under Linux, Win, and OS X. But perhaps a bit too expensive.


Regards,
Arne


Top
 Profile  
Reply with quote  
PostPosted: Sat Oct 06, 2018 5:23 am 
Offline

Joined: Tue Jun 08, 2004 11:51 pm
Posts: 213
I've not looked up the difference between a 28c256 and a 29c256. I have programmed a 28C64 on a Kim-1. It was relatively simple, as I recall. I did not use any of the sequence block writes. The timing looked to hard to do. I just programmed it one byte at a time. I did it with the regular write enable from the 6502. As I recall, one had to read back the location and when one of the bits matched, one could step to the next location. There was no complicated operations.
It was on the 6530 replacement module I made.
I just looked at the 29C256 data sheet. It looked quite simple. The only issue was that you needed to enter a full 64 byte block to program at one time, no byte at a time like the 28C64.
Dwight


Top
 Profile  
Reply with quote  
PostPosted: Sat Oct 20, 2018 11:09 pm 
Offline

Joined: Sun Aug 26, 2018 11:35 pm
Posts: 7
Location: Argentina
Thanks Arne and others for the help. Really apprciate it. My meeprommer is finally working!
Image

These are the steps I followed for debbuging:

1) Test wiring.
2) Test address bus with led array on the bus. Helped me found a wiring issu I hadn't detected in (1).
3) Nevertheless writing data to eeprom was still failing. Data polling failed.
4) Hookup a few lines of address bus and data bus to read data. Rest of the lines with 10K resistor to ground.
Set up an address and read data from the bus. Data was correct.
But still writing data to eeprom was failing. Writing data to sram seemed to work.
5) As it turns out, my eeprom at28c256 (apparently legitimate from atmel) was locked. Sending the unlock sequence seems to have work.

Now to enjoy saving eeproms. Thanks for the help guys.


Top
 Profile  
Reply with quote  
PostPosted: Sat Dec 26, 2020 5:44 pm 
Offline
User avatar

Joined: Wed Feb 13, 2013 1:38 pm
Posts: 589
Location: Michigan, USA
I just discovered I can program recent generation 8, 14, and 20 pin PIC chips by turning them around 180° in the socket on my Flash Programmer Shield (see below) and using an LVP (Low Voltage Programming) algorithm in the Arduino program/sketch. I believe this would work with MEEPROMER designs too as the important 'data' pins on the ZIF socket are common between the designs.

I'm geeked because I'd like to share projects using 16F15xxx , 16F18xxx , and 18FxxQ43 series PIC devices without having to force users to buy a $66 PICKIT 4 to program them. Is there anyone in our group who doesn't have a $4 Arduino Uno clone?


Attachments:
Flash PIC LVP.png
Flash PIC LVP.png [ 1.09 MiB | Viewed 1265 times ]
flash pic lvp test.png
flash pic lvp test.png [ 41.97 KiB | Viewed 1265 times ]
Flash Programmer #2.png
Flash Programmer #2.png [ 195.12 KiB | Viewed 1265 times ]
Top
 Profile  
Reply with quote  
PostPosted: Fri Feb 04, 2022 8:06 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8546
Location: Southern California
FWIW, I just started a related topic, "(E)EPROM/flash programming algorithms.

_________________
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?


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 269 posts ]  Go to page Previous  1 ... 14, 15, 16, 17, 18

All times are UTC


Who is online

Users browsing this forum: No registered users and 62 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: