01/22/2016 at 16:14 •
I've just added the main schematic to the 'Files' section. Also a couple of new pics from last year. I hit a bit of a block and got a little frustrated with my lack of progress. I thought it better to leave the project alone for a while rather than getting so frustrated that I never wanted to see it again! :-) Recently, my interest has been re-awakened but I haven't the spare time at the moment to continue development. Hopefully, when my current (non-electronic) projects are complete, I can revisit ZAViouR nad get it working. In the meantime, feel free to point out any mistakes I may have made in the circuit, any improvements you would make or any other comments. All are welcome.
10/09/2015 at 12:47 •
Finally, I've been able to finalise the design of the second version of the ZAViouR Board, along with a 7400 based I/O board that plugs into the ZAViour's expansion port. The designs have been submitted to my favorite fabricator www.hackvana.com and I'm awaiting news of their acceptance.
I have added a few new images to the gallery and removed some of the old ones. The schematic is just as a rough guide, as all of the design files will be available on my website www.projectavr.com as soon as I've tested the new boards.
I've also been working on other I/O board variants and the backplane which I will have fabricated later.
09/27/2015 at 12:06 •
Still a bit busy over here but I have sporadically been developing the ZAViouR idea. I have now laid out the main board after adding a soft reset switch to allow soft resetting of the Z80 via the AVR and another LED for general use as a status indicator:
The 8-bit I/O Port:
And the Backplane:
The I/O port will plug into either the main board directly, or into the backplane. The backplane has provision for daisy-chaining more than one board together in case four ports isn't enough.
When finances and time allow, I will be ordering these boards to build and test before publishing all the design files on www.projectavr.com
09/13/2015 at 10:37 •
I've been busy with other things of late so haven't been able to work on ZAViouR, however, I expect to be able to continue very soon. Stay posted.
I'd also like to say a big 'Welcome' to all the new followers.
09/06/2015 at 11:10 •
I've been developing the next iteration of ZAViouR and it's first I/O Port. I will be adding a backplane but I want to get the first interface designed and working beforehand. This will enable me to test the connections are in the correct topology etc. I have designed a custom connector component for Eagle with mirrored connetions. If I hadn't done this, I would have had to of used the standard IDC connector with all the pins flipped. This looked especially untidy on the board preview and I wasn't sure it would solder correctly.
So here's the new layout of ZAViouR v1.02 and the I/O Port which is a single port version of Grant Searle's design. Once the I/O Port is proved, I will insert the backplane between it and ZAViouR. I'm intending the backplane to have at least 4 connectors on the expansion bus to accommodate 4 expansion cards.
09/03/2015 at 07:55 •
Development continues on ZAViouR. I've been doing a few bits and pieces with it but I get increasingly annoyed with myself for combining the AVRs serial lines with the Datalines. I made a small bar of LEDs to fully test the output, shown here in this video:
I shot this on my iPhone 6, but because of the way it records, it misses some of the LED flashes. All the LEDs flash in turn as they should do in reality.
I've added a few features to the new board.
- A 40-pin expansion port.
- SRAM size Option. Extra traces for Cypress CY7C199CN 32K SRAMs.
- A 'proper' power socket.
- A second indicator LED
- A Run/Inhibit switch to tell the AVR to run or stay 'Hands Off' at start up.
- A Micro-SD Card socket and header to provide storage via the AVR.
There may be other things to modify/add as yet so for now, I will continue with the ZAViouR v1.01. A couple of things I have done, apart from add the manual /BUSRQ switch is to add some pull-up resistors to unused lines on the Z80 (like /INT) and add a capacitor across the 'Reset Z80' switch for a kinder power-up. Currently it is a 10uf but I may increase that to make the start-up delay a little longer.
08/28/2015 at 12:02 •
I'm pleased to report that upon fitting the last two chips and uploading some Z80 'Hello World' flash code, the board works well. Programming both the AVR and the Z80 require the /BUSRQ line to be grounded with the manual switch but apart from that, it seems to operate as expected. I have only addressed a single line on the output port so I'll have to write a bit of code to access several to test it properly.
Now I'm thinking about the new version which will sort out the /BUSRQ problem and add a couple of features. Requests considered.
08/26/2015 at 12:37 •
Having fixed the bug that prevented the loading program from working, I have now successfully assembled a short Z80 program and run it in memory.
;Z80 Test Program DESTINATION_SIZE equ 50 .org 0000h start: LD HL, Storea ; point to the source LD DE, Storea + 1 ; point to the destination LD BC, DESTINATION_SIZE - 1 ; copying this many bytes LD (HL), 170 ; put a value in the 1st pos LDIR ; move 1 to 2, 2 to 3... Finish: NOP NOP NOP NOP JP Finish ;Infinite Loop Storea: DEFS 50 end
A nice easy memory filler. I tested it by temporarily redirecting a reading routine in the AVR to check the bytes after the code (Storea). All seems well. More experimentation to come.
08/25/2015 at 20:43 •
Well, it was supposed to be. I've been wrangling with C++ programming for several days, trying to get the SRAM to accept code stored in the AVR's array. I've poured over many tutorials and seen videos and I can't make it work. I am down to attempting to program just two bytes and read them back but I need a break!
Any help gratefully appreciated at this point.
[UPDATE] Well, after being prompted to radically change the code, I was re-writing it and found the bug! I was setting up the address ports incorrectly. One character out of place! That'll teach me.
On with the show...
08/22/2015 at 11:24 •
The problem with the Serial Port has now been fixed, or at least, I have a workaround. Bill Rowe suggested I activate the /BUSRQ line to force the Z80's Address and Data lines into High Impedance. After soldering the switch line on to the /INT pin, directly opposite the /BUSRQ pin on the Z80 and being frustrated for a number of hours before finding the mistake! I re-wired it with a 10K pullup resistor and it works fine. Pulling down the /BUSRQ line does indeed allow the serial port on the AVR to receive programming from the Arduino IDE. The /BUSACK line also goes low to indicate this.
I'll have to think of a solution for the next version of the board. Could I drive some sort of circuit off of the DTR line on the serial port? Or will I have to have a switch on the board to select between Program or Run?