bbenchoff wrote:
I've thought this through a little more, and I'm thinking this might be possible, even with DIP chips.
If you take an
ATmega328p you can program a ROM with the
shift register method, you need four pins for the shift register, three for the /WE, /OE, and /CE, and 8 pins for the data bus. That's 15 pins just to write data to a 28C256 ROM.
Now, with
LUFA, this AVR chip can emulate pretty much any USB device class. You could just make the ATmega a serial device, and write ROMs to the SBC one byte at a time. It would be slow, but it would work.
Since we already have a chip connected to the data bus serving a s USB serial device, why not replace the ACIA in an SBC with this new in-system ROM programmer? Really we're only looking at *maybe* 3-4K of Flash memory on the microcontroller (out of 32K), so it's very doable.
As for programming the ROM in situ, we could use the Bus Enable pin on a WDC 6502. This would work as long as the microcontroller does a soft reset after burning a ROM.
So, with a lot of code on a 28-pin microcontroller, you get rid of the MAX232 and 6850 by replacing it with a $2 ATmega and two 74595s. It's more parts, but lower component cost, and you get in-system ROM programming and a USB serial port out of the deal. That's a win anyway you look at it.
Someone please tell me I'm insane in thinking this is a reasonable project to undertake.
It sounds like you haven't read the datasheet for a 7495. It's a four-bit shift register.
With two four-bit shift registers, you can generate eight bits of address. With eight bits of address, you can address only 256 bytes of a 28C256 EEPROM.
In order to address all of a 28C256, you need four 7495s.
Also, the 7495 outputs are not tristateable. The EEPROM programmer needs to stay off the bus when the system is running. Therefore, you need two 74LS245 or similar buffers.
Now you have an ATMega 328p, four 7495s, and two 74LS245s.
Total count: seven chips just for the EEPROM programmer.
Now add a 6502, EEPROM, RAM, address decoding, and some I/O.
Total count: twelve chips.
Toshi