Firmware flasher for the AppleIISd
The last year has been surreal. With 80 shows of 'The Hunchback of Notre Dame' π΅ and four other projects I very well may say that I have never sung so much in my life. Now that the run of the musical is over, I have had a little more time to return to retro computing.
A little while ago a guy from the Applefritter forum contacted me and asked if I were interested in making another batch of the AppleIISD. I said yes but I wanted to make some changes, first.
One thing I thought of right from the start was the ability to update the card's firmware within the computer and without having to remove the EPROM, erase it and burn it. At first, I thought of using a battery-backed SRAM chip, but that did not work for some reason and the two I had had dead batteries despite having been sold as 'new'. However, for development, I was using an EEPROM anyway, so I decided on using one instead. I don't know why I did not have the idea before. Maybe, I was under the impression that EEPROMs need 12V for programming, but that is only needed when the device shall be erased completely.
One thing I thought of right from the start was the ability to update the card's firmware within the computer and without having to remove the EPROM, erase it and burn it. At first, I thought of using a battery-backed SRAM chip, but that did not work for some reason and the two I had had dead batteries despite having been sold as 'new'. However, for development, I was using an EEPROM anyway, so I decided on using one instead. I don't know why I did not have the idea before. Maybe, I was under the impression that EEPROMs need 12V for programming, but that is only needed when the device shall be erased completely.
Fortunately, the timings of the Apple II match the timings of the EEPROM perfectly, even for writing. So it is not a big deal to program it from within the Apple. The only thing needed is an additional wire and a small program to read the firmware from disk and wire it to the EEPROM. When I made the redesign, I changed the 27C16 to a 28C64. Even though I can access only 2k within the address range, the bigger 8k types are still available as new components in contrast to the 2k and 4k types. It is now SMD, too, because there is no need to get it off the card anymore.
Other changes for the hardware V1.2 include the use of a resistor array instead of single Pull-ups and the inclusion of a TagConnect for programming the CPLD. This type of connector only consists of pads on the PCB and does not need any other components. It replaces the pin header that was previously used to program the CPLD. The voltage regulator has been changed to a LM1117-3.3, because the previous LM317 did not have enough headroom to operate. It needs lesser parts as well.
Oh yes, I changed the CPLD packaging to VQFP, too, because last year, Xilinx decided to stop producing the PLCC. It took only a nearly complete redesign of the layout, but what the heck π.
The best thing about this update is that it is possible to update existing boards. You just have to replace the 2716 with a 28C16, run a little wire from CPLD pin 2 to EEPROM pin 21 and leave the jumper SV1 open. Then update the CPLD and you're ready to go!
Comments
Post a Comment