Fill rom in eprom programmer
There are two LEDs- a red one to indicate that EEPROM programming is underway, and a green one for when it is done. This could be useful someday if two other cards on the backplane want to talk directly to each other. Note that the Bus Master signal can be used to completely disable the ROM. At the bottom is the ATTiny, which pushes data out to the memory chip when so requested. Below that is a set of logic gates to activate the ROM whenever the CPU accesses the upper 12k of the address space. Here you can see the big memory chip (SRAM or EEPROM), surrounded by the shift registers.
#FILL ROM IN EPROM PROGRAMMER SOFTWARE#
That saves another pin on my ATTiny, and is easily compensated for in software (since it puts the latches one pulse behind). I’m also using the old trick of connecting together the shift clock and latch clock on the registers. That’s harmless though, and it saves me a pin on the ATTiny. The address and data registers share a clock, so that means the data byte actually gets pushed out twice, since there are two address bytes. It has just enough pins left over to manage the memory chip’s control signals. I fill the memory chip one byte at a time, by serially pushing two address bytes and a data byte out of the ATTiny. I use three 8-bit shift registers to interface the ATTiny with the memory chip. I’ll probably reclaim the leftover 4k for program memory, or I could program the ROM in two phases. I compromised on the ATTiny85, which is the awesome 8-pin form factor that I like, and has 8k of flash onboard. I also want it to be a one of the really small ones, since I don’t want to use a lot of board space or power for this. The trick then, is that I need an AVR microcontroller that can hold my entire ROM image. 12k of ROM seems like rather a lot, so that may shrink. So, it’s roughly 48k of program space, 12k of ROM, and 4k of “to be determined”. $fffa.$ffff: 6502 reserved vectors (NMI, Restart, IRQ).Probably I/O buffers, soft-switches, memory-mapped device control, etc. $ee00.$fdff: Reserved for special stuff.
#FILL ROM IN EPROM PROGRAMMER CODE#
$0000.$00ff: Reserved for special code needing 6502 zero-page addressing.It’s very early yet, but so far I’ve got this: When I get down to programming this ROM code, I expect to need to reflash it a lot.īefore I could do anything related to ROM, I was going to need a memory map of sorts for Veronica. My background is in software, and one thing I’ve learned is that the early days of a project is when the most iteration is needed. With an external programmer, I’d have to keep transferring the chip back and forth from the programmer to Veronica.
The nicest part of this approach is that I can leave the EEPROM installed.
So what’s a girl to do? Well, I may not have an EEPROM programmer, but I do have the excellent (and cheap!) USBTinyISP in-circuit programmer for AVR microcontrollers. The latter seems easier to use, but the programmers for them are very expensive. That means I need a way to burn an EPROM (UV-erasable) or flash an EEPROM (electrically-erasable). Well, now that Veronica is up and running in real hardware form, she needs some real ROM to play with. An onboard way to program an EEPROM, or fake one.