PCB Has Arrived And Is Operational
Good news! The PCB’s arrived last Friday. So I thought I would fire of a quick post to show you the state of this project. First of all here’s the naked PCB’s. This is the first board produced using Kicad and my second attempt at producing a pcb, though the first was far less complicated than this one.
I am mostly happy with how the pcb has turned out, but nothing is ever perfect and it does have it’s faults:
- SW1 at the top-right. The holes are not big enough for the for the button’s legs that I have. Consequently, I have had to solder the tips of the legs to the pcb. However, this worked out in the end as the button is higher and more accessible.
- I added four 2.7K resistors, again top-right, just before I sent the pcb off to be made. I forgot to remove the resistor values. No harm no foul – just a cosmetic thing.
- The holes for the FTDI, again top-right, are too small. This is my fault I created the footprint. I wanted to use two rows of sip sockets, but they don’t fit. Instead I used a 28 pin socket and cut of the front 5 pins on either side. Again, this worked out as it lowered the FTDI and made access to the reset switch easier.
- I am use to having oval pads for DIP’s like in Eagle. Kicad has circular pads, I decided at the start to try them as they looked quite large on screen. In real life they are not that big, in fact they are a bit on the small side. So for future boards I am going to have to change all the pads for DIP’s.
Next step is to get the ohm meter out and check the PCB for shorts especialy across the power rails. The PCB checks out fine, no shorts and power goes to all the chips.
A Home For The PCB
So no real deal-breakers, I can go ahead and spend the afternoon with a soldering iron and get this pcb stuffed. My next task was to find somewhere to put it. TLC-MBC has so far resided on an A4 slab of 5mm black acrylic. My original intent was to get an A3 slab so that I could have the main pcb, bread boards and power supply all together. I even went so far as to order the bits. Parts arrived and.. well.. the acrylic was larger than expected. Also I had been thinking that the majority of bread boarding was now over and would not need as many, so I decided to get another A4 slab and some half-sized bread boards and here is the result.
Top left are some bread boards for prototyping stuff to use with the 6522’s two ports, currently holding the AVR “video-card”. Below the pcb are the main bread boards for prototyping the other cards for video etc. The power supply is temporary, I’m going to build a beefier one soon. So I’m happy with this layout I can go ahead and wire it up.
At this point I turned on the power supply and checked voltage levels at all the sockets and tested the reset circuitry was working. So far all’s good.
I used all the components from the bread board version of TLC-MBC as I knew they worked. Additionally I have used DIP sockets for all the chips. One thing I changed at the literally the last minute was the edge connectors for the VIA and 65SPI. originally I was going to use right angled pins but I changed it to sockets instead, it’s easier to stick a wire in a socket!
Breathing Life Into The PCB
The moment of truth… Everything is wired up… Sockets are populated… It’s time to power up… I connect the USB lead to the FTDI and it’s led lights up, I start a TeraTerm session, turn on the 7″ monitor and flick the switch to power up the PCB… and… nothing! It’s a case of the LEDs are on but nobody’s home…. Still – no blue smoke or funny smells…
Power down, check connections and retry – no change. I re-assemble the monitor to use the serial port for output as well as input to take the video card out of the equation. No difference – a blank screen. Out comes the logic probe and I spend about an hour checking for clock signals and other activity. She seems to be working…
The hardware seems to be okay, but then the software was working on the bread board so it should work on the PCB yes? So I decide to start from scratch and rebuild the monitor. The first test is to write a routine that echoes back all characters input on the serial port, and this works!! This confirms that the ram, rom 6502 and 6551 are functional – a success.
With this working, I gradually bring in more files to test other stuff. So far I have a working video card and serial port working on interrupt. Channels are working. The command line input with edit ability is working. Ram test at power up is also working.
The current state is that at power up the memory test is performed, zero page registers are set, channel blocks and I/O are initialised, the header is printed to the screen and a prompt is shown at which point I can enter some text and either backspace or delete the line and start over again. After entering a few lines I can use the arrow keys to go forward and back in cmdline history.
Note that none of this software is new, I am merely pulling in files from the original monitor, assembling and it’s working. I expected to find a problem by now as the original monitor just gives a blank screen – no header or prompt. So I’m going to keep going, rebuilding the monitor until something breaks. Next step is to add a couple of commands and test the parsing functions.
So… it’s been a fun exasperating week, hopefully by next week-end the re-build will be finished and I can get on with prototyping the TMS9928 based video so I can have some color on the screen….