I got some flash chips today. They are 29F040B chips. They were sent to me advertised as blank and verified, and I trust the friend who shipped them to me. I popped them into my Xeltek Superpro II programmer and did a blank check, which came out OK. I tried to issue an "unprotect all sectors" command, which came back with an error, as did the "erase all" command. Is this normal behavior for a flash chip that is unprotected and erased already? Or does this mean the chip is bad? I am thinking of making up a dummy file to program the device with and test further, but I'd like to know if any of you have run across this before.
Are these AMD (AM29), STMicro (M29), or something else? Because they may have different commands. But there is a command to read what type and size it is. I have no idea about your programmer, but with the Willem burner I do sorta recall something about the unprotect support being dodgy (I don't know what, maybe just a software update). But had gotten a lot of these in DIP and PLCC package, and by different manufacturers and don't remember running into any problems (and I didn't care about the feature since the NES couldn't control it).
I don't know what happens if you erase it when it's blank. I've written $FFs in the NES code to any locations that were set to $FF during programming,. It wouldn't hurt to try writing it. If that works, everything else should, too. If it doesn't work, the chip is maybe protected and/or the programmer doesn't support it.
Well, it seems my programmer does fully support 29F040 chips (AMD) but not 29F040B chips. (also AMD) Something must have changed between the regular and 'B' revisions of the chips to make them not 100% compatible. So I guess I've diagnosed the problem. I can write to a 29F040B, which is the important part, just not mess with protecting blocks and such.
Yeah, the
19957 supplement mentions different die versions with slightly differing programming procedures.