On Fri, Aug 12, 2005 at 06:24:45PM -0700, Jeff Carr wrote:
What about programming the chips in socket from within Linux; yes risky, but this does work right?
Yes, indeed. Many use this as primary means of testing.
The reason I ask is because that means that we do know *HOW* to program them, we just don't have an external device to do it.
Right. But the programming sequence for flash memory is always in the data sheet, and manufacturers have those on their web sites.
I guess this is just another project to start with a bunch of people that know how to program fpga's.
Perhaps not even an FPGA is needed, I've made an EPROM toy out of a USB PIC microcontroller and two 12-bit counters. Really simple. Not too quick though, took a good few minutes to read the 256kb EPROM, but that's probably because the USB microcontroller only does low speed USB (8kbps) while it's newer sibling does full speed at 12Mbps.
The problem with making a universal programmer is that the device pinout and voltage changes too often, and a production programmer should program and verify at several different voltages. The pin drivers need to be programmable and fast and preferably indifferent of voltage, which isn't a very common combination. But sure, it would be possible to make a small series of a rather limited programmer (256kbyte to 4mbyte devices, only standardized pinout) for, say $200 retail, but then you might as well pay twice as much and get the "real" deal..
BTW: you might be able to speed up the programming of the chip if you do it in burst mode. Lots of NOR flash chips support this. Are PC bios chips usually NOR or NAND or something else all together? The code I saw for the M-Systems chip in my machine looked like it was doing the classic NOR state machine triggers (write 0xAAA, 0x555, etc).
0xAA and 0x55 are part of a command sequence standardized by JEDEC and used for just about all flash memory and even some EEPROMS. :)
So I'm guessing they are more like NOR than NAND. NAND would suck anyway because it's not very reliable. Using NAND would be insanely stupid! (IMHO)
My guess is that NAND is more common, at least in PCs.