Thursday, 23 May 2013

Laser cutting a new case and other news

I've mostly spent the last couple of weeks making a start on the floppy disk emulation code. I decided to move most of the complex code that dealt with the FAT filesystem away from the FPGA as the state machine was getting very large and consuming lots of resources, and instead having it running on the Atmega support processor (which is fine because it's mostly idle unless being used as a USB to FPGA bridge and I've got about 14KB of flash ROM unused).

I've now fully encapuslated the IO between the two sides with a nice reliable protocol based on SPI where the different sides switch between being master and slave so that the AVR can be woken up by interrupt when the disk starts being used but then gain control so it's can manage the data transfer so that no bytes get dropped (as they might if the FPGA was the SPI master). So, now, I have the FPGA-AVR communication code working, the AVR handling the FAT meta data, so I just need to stick the disk image format code in... :)

And tonight, I was back at fizzpop after a couple of weeks of not being able to make it along. Here's a video of me cutting a redesigned version of the case to hold the CPC2013 board:

It seems that the holes are almost in the right place this time - I'll post pictures in the morning, but the acrylic is currently out in the porch until the smell dissipates a bit...

Thursday, 2 May 2013

Prototype case

I made a prototype version of a case for the CPC2013 last night at fizzpop using the laser cutter:

It's a little too small for the PCB, the holes aren't quite in the right place and a couple of them are missing as I forgot to convert the circles into bezier paths. But hopefully, armed with the knowledge that it can actually be done I'll be able to get it right next week... :)

The case is based on the Adafruit Raspberry Pi design at thingiverse which seems suspiciously similar to one I bought on ebay! My modifications are available in my github repository...

Thursday, 28 March 2013

First of my revision 2 PCBs

Mostly working well. There's a couple of minor mistakes, but everything mostly seems to work insofar as I've tested it. Annoyingly, I ordered the wrong size oscillators after sending off the PCBs, so the wires are heading off to the master 16MHz clock. Amazingly, there doesn't seem to be any interference!

Monday, 11 March 2013

Updated revision 2 schematics

My friend reenigne suggested I have separate audio and video ground paths, so I've made that change and decided to do the same with the USB ground, even though it wasn't explicitly required.

Hopefully this will all work now, I've sent them off to be fabbed! \o/

Saturday, 9 March 2013

I think I've finished the revision 2 board layout

So, I've been VERY quiet recently. It's not that I've not been doing anything on this project. Quite the opposite...

After quite a few late nights, I think, or at least hope, I've finished my new board layout. I can't see anything obviously wrong with it, but neither did I before I found a very obvious error about an hour ago... :o

Monday, 4 March 2013

Busy doing a new layout

So, I've been pretty quiet recently apart from posting a few links. I'm actually busily routing revision 2 of my board and hoping I'll be able to send it off this week to have some made up. Hopefully this will fix all the issues I found on the previous board as well as having a lot more expansion options...

I'll post some pictures when it's finished! :)

Thursday, 28 February 2013

Ken Shiriff's blog

I've raised awareness of this blog over at CPCwiki, but it's well worth checking out Ken Shiriff's blog.

Just recently, he's been looking at the PLA that deals with the decoding of 8085 opcodes, and has an excellent way of presenting the 8085 instruction set in Octal:

As the Z80 is a very close relative, I'd say it's well worth keeping an eye out on this very well written blog. The technical discussion of the 8085 undocumented flags is outstanding - he reverse engineers the flags from looking at a photo of the silicon, translates that into gates, works out why the existing documentation is wrong and what the flags can be used for.

It's worth remembering that the 8085 is somewhat different to the Z80, however. It's still a fascinating chip to look at and by looking at the differences between the two and how they diverged from a common ancestor is very revealing.