As you might already know, one "design rule" of this project is to avoid "programmable" parts as much as possible.
This is not a luddite reaction or an arbitrary constraint "to make it more challenging". On the contrary: it actually eases development!
While digging in my "archives" I just found a box full of programming boards:
- Lattice ISP GAL (as reported before)
- PicoMAX for Altera MAX7032/7064/7128
- 32-pins Flash BIOS chips
- parallel, high-voltage PICs programmed with the old parallel interface
- my first JDM dongles to serially program PICs (16F84, 16F818...)
Here are the roadblocks to using them:
- Except the JDM, which requires a "true RS232" interface, the others require a "parallel printer port" interface, which hasn't been built into new computers for a decade. I have hoarded "industrial computers" in preparation of the "LPT apocalypse" brought by the now ubiquitous USB but not everybody can afford that. If I use a technology that others can't use, then I enter a technological dead end... Most people can't afford the luxury of keeping a Y2K era PC lying around.
- Software. Software. Software. The operating system, first: the programming kits come with diskettes "compatible with Windows 95-XP". How can I find a fresh XP install disk legally ? I have no clue where my original W95 CDROM is.
- I have faithfully kept the diskettes with their matching hardware kits. Maybe there's some fresher version on Internet too. Things should be fine for the memory devices: just provide a .bin file containing the data. However the MACH and ISPL devices need special proprietary software to generate the special programming files. ISPL generation might be still available from the main Lattice software suite (the ATF1502 is not yet obsolete). But I have no idea where to find the software necessary to generate MACH files and PAL/GAL files !
- availability of the parts: can they be easily sourced for cheap ?
For now I have come to these conclusions:
- when possible, use "memory" devices because they don't need special proprietary software to generate the contents files. It's easy to latch the output with 74HC57x chips.
- Useful chips are Flash BIOS chips, in DIP/PLCC32. Most are 1Mbits or more, that's 17 address inputs at least, which is enough to solve many arbitrary combinatorial problems. They have been manufactured by so many companies that there will be parts for a long time.
- I have bit the bullet and just bought a TL866A. It's on USB and requires Windows to run a chinese software, I feel it sucking before it's delivered. But it's not expensive (ahem) and at least I can program the AM29LV160DB I have in stock, as well as various BIOS pulled chips I found. Eventually other parts such as PAL/GAL.
- Open Source efforts such as my #SPI Flasher or other programmers using the Raspberry Pi or AVR/Arduino platforms should be encouraged. If the programming software and the file compiler run under Linux, it's even better.
Now, you understand better why it makes sense to use "fixed function" chips as much as possible.