Close

Thawing a project

A project log for Keeping Time with Turing

Decoding WWVB with a Turing Machine

darrin-bDarrin B 02/02/2024 at 20:370 Comments

With the Well Well project nearing completion, this project is beginning it's move off of the back burner. It began with a few ideas for the input stage, but lately the display is on my mind. At the moment, the leading candidate for the display is a set of dot-matrix LED modules that have been languishing in my parts heap for many years.

Though a decimal display (0-9) is all that would be needed for the clock's display, hexadecimal output (0-9, A-F) would be helpful for debugging the Turing machine. One or another form of programmable memory(EPROM, Flash) would make short work of building a display driver, but it would be very under utilized. The smallest EPROM I have is a second sourced Intel 1702 with a 1973 date code, and it has more than twice the storage needed (along with some odd voltage requirements). What else could be used here?

That's right, another PLD enters the project, could a 16V8 be used as a dot matrix display controller? Almost, but not entirely, though altering the font may make it possible. Rather than try my hand at font re-design, I looked at the 22V10 device. It didn't just fit, there looked to be enough space to upgrade to hexadecimal. Again it would almost fit in the device, but a few of the unused outputs could be used in a wired-OR configuration. Wait a second, I forgot that I made the logic equations around using an active-low output. What if, I rearranged the equations one more time by moving that NOT? With a simple reassignment of output pins, a hexadecimal row driver fits in a single 22V10! I now have a one chip per digit row driver without external OR-ing and there may even be space left over for a few more symbols.

With the row driver handled, on to the column driver. At first glance, we'll need an oscillator (555), a counter (7490), a row selector (74138), and a little bit of logic to reset the counter (7400). Ok, I could probably drop the 555 by creatively using part of the 7400 as the oscillator. Not bad, just three chips to cycle through the five row selects. Oh hell, another PLD? In Stupid PLD Tricks I use two cells of a 16V8 as an oscillator, now use five of the remaining cells as a one-hot five bit counter. Column selector done!

That was was easy, wasn't it? Maybe adding PWM brightness control would be a challenge.

Discussions