Well, inspired by the announcement of the Specnext, I’ve decided to get back to work on my ZAViouR Board. It’s been a long time coming but now, I really want to get it going. I got a little disheartened when I couldn’t get it to work before and I thought a break would do me good. It has! I’ve been involved in lots of other non-electronic projects but now I think it’s time to get back and get ZAViouR up and running or find out what’s wrong with the design.
The last time I tried to get ZAViouR to work, I think I probably aimed a little high, duplicating what I had done on the previous version of the board. I wrote a small AVR program to load blinkenlight code into the SRAM, run the Z80 and flash a set of LEDs. When I converted this to the new version of ZAViouR, it failed. I did some cursory checks before I left it alone.
This time, I’m going to take it one step at a time and prove each part works sequentially. The first thing to do is give the AVR chip a test by flashing the indicator lights. ZAViouR 1.02 has three of these. One is intended to eventually show the Z80’s M1 line’s activity (although it will need to be divided down in the AVR). The other two are general purpose. All that’s required is the standard ‘blink’ sketch that is supplied with the Arduino™ IDE. I can add a few lines for the extra LEDs and test that first. Subject to the AVR being in good order and being able to program it, I’ll continue by test loading the SRAM via the MCP23017 port expander.
For those curious, you can check out the circuit diagram here:
- ZAViouR v1.02 Eagle v6.3.0 .PDF schematic file.
Once fully tested and hopefully working, I’ll be uploading all the design files and gerbers on their own dedicated page.
Wish me luck!
[UPDATE 20th May 2016]
After having checked that the AVR was operational by loading the standard ‘blink’ program, I then started from scratch and found the port expander not working. I first suspected a faulty component but after checking some code examples online, I found that I hadn’t included the serial initalisation before the I2C calls. This fixed the port expander. I then modified the code I had used previously and eventually managed to store code in the SRAM successfully. Now, all that is left is to execute the code in the Z80 after cleanly removing the AVR from the address, data and Z80 control busses.