“I’ve long been thinking about a version two RC2014 LED matrix module. I’ve had a matrix with a MAX 7219 on a module. It’s a nice enhancement.
But there’s only so much you can do with a single-colour LED array right? Wouldn’t it be cool to have RGB LEDs? At Liverpool MakeFest I saw a wall-sized ping-pong ball NeoPixel display and picked up some NeoPixels with the intention of making one. Possibly driven by my RC2014.
I enjoy learning about protocols and have had some SPI devices working with the RC2014 - bit-banging SPI works really well because it doesn’t care about timing.
If there’s one thing I want to get across in this blog post, it’s don’t just accept what you’re told. Question everything. Learn about what’s going on and find out why you’re being told something isn’t possible. Get creative with workarounds.
I’ve learned a lot about Z80 timings during this project. I had assumed that because the clock speed I’m using (7.3MHz) was close to the speed required, that I’d be able to drive a line high and low at close to that speed, but no. An ‘out’ instruction, for example, takes a whopping 11 or 12 clock cycles.
So a little bit of extra hardware is required. An interface if you will. And some careful programming. This article was a huge help. It reinforces my message about questioning what you’re told. Some parts of the timing are very tight. Some are really flexible.
So for this solution (actually the one that worked after a few that didn’t) there’s not much required. Besides the ‘138 for decoding the port address (I’m using port 3 - which seems not to clash with anything else on the RC2014, Spectrum or Minstrel 4th) there are just a couple of logic chips and passives here.”