It is almost a year since I touched my 6502 systems. I decided to step away as reliability problems were frustrating me greatly. In particular programs didn't run reliably with the 1 MHz clock and I suffered repeated loose connections. God knows how Ben Eater copes with his bread board circuits, I guess he must be so meticulous that all his connections are reliable.
Options
I considered various options to make my system more "permanent" and less error-prone:
* Design a PCB for my components and get it made up
- this is too complicated for a first PCB creation, very difficult to be 100% accurate
* Buy a PCB designed for these components
- I did find one that looked promising by Jeff Tranter but opted to try the W65C02SXB instead
* Buy a W65C02SXB which contains all the components I need
- I did buy a board, and it is wonderful, but it is somewhat different to use
* Use stripboard to create a permanent version of my working breadboard circuit.
- This is the most reasonable way forward and one I have put a lot of effort into.
Stripboard
Stripboard generally comes in boards upto 38 columns wide with long tracks. This isn't very convenient for soldering ICs as all the tracks have to be cut under each chip. There are a few stripboards available (I only really looked on eBay) in breadboard style format.and I have purchased some of each type. The main requirement is to have at least two holes, preferably three, on either side of the larger chips to solder connections.Layout
In theory I could just copy my existing breadboard chips and connections to stripboard. In practice the first boards I found were not as wide as breadboard (which has 63 holes across) so I needed a different arrangement. In addition the existing breadboard components weren't necessarily in the best positions so there were some potential improvements I could make.
As ROM and RAM share address and data bus connections and I have previously had problems with them I decided to create a ROM-RAM memory board with a NAND chip for control logic and off-board bus and control connections to the 6502. As an Arduino Mega is used for testing and to program ROMs it is best connected to the memory board. Offboard connections will be made using dupont connectors terminated in male posts on the board.
It was a hard days work to draw a board diagram with chip locations and all necessary connections. In particular I needed to make sure that all 6502 pins required both for memory chips and those used by the Mega were available. Clearly any errors preventing the board working would be difficult to correct once it had been soldered.
Build
$0000-$3FFF RAM
$8000-$FFFF ROM
so we use the address wires A15 and A14 in the NAND gates to enable/disable ROM and RAM.
In fact, we previously used a Mega sketch to store data in the reset vector $FFFC=0x00 and $FFFD=0x80. The 6502 uses "little-endian" addresses, which means that the low order address byte is stored first. and the high order byte second so these values are correctly interpreted as address $8000.
No comments:
Post a Comment