Pinball Display Clock
The plan is to convert a reasonably priced Cherry 256x64 pixel DC plasma display (Pinball machines generally use a 128x32 pixel model. Apparently this one was only used in Capcom Flipper Football according to various pinball websites).
No data-sheet seems to be available for the the exact unit I have (Cherry does not make displays anymore) but it is mostly equivalent to the Vishay APD-256G064-1 display. Its data-sheet can be found here:
One big advantage of this model is that it has an integrated DC-DC converter for generating the high voltages required. The smaller model used on most pinball machines requires an external power supply. The Cherry board only requires 12VDC at a few amps to run. The 12V needs to be supplied on a 4 pins Molex connector (I.e. The same 4 pin connector that supplies 5 & 12V to hard disks in PC's). It is even pin compatible with the PC connector (the 5V pin is unconnected on the display). For the moment I will be using an power supply designed for external hard drives.
These displays have hardware for driving the rows/columns of the display but they do not include a controller as such. They require an external controller that must continuously refresh the screen at between 70 & 200Hz. They are also monochrome and can only display a single intensity for each pixel (full on or full off). In order to display intensity level between 0 and 100% pinball machines turn some pixels off in some frames (reducing their intesity). I would like to use this method the display must be run at a frame rate high enough to avoid flicker.
Most of my hobby projects so far have been based on the Atmel AVR range of microcontrollers. A similar project using the AVR based Arduino can be found here:
Using the SPI peripheral to generate the serial pixel clock/data is convienient but generating the complete video signal required (either in a loop or interrupt driven) would require a lot of the CPU's time. I would like to be able to display some interesting Pinball style animations as well as the time so it would be handy to have a few CPU cycles to spare.
In my day job I frequently use the Texas Instruments MSP-430 line of microcontrollers. These have several advantages over the AVR for this project. The first being a 16 bit CPU as opposed to the AVR's 8 bit core. The second being a Direct Memory Access (DMA) controller (at least on the higher end models). The DMA controller allows data to be moved around without intervention from the CPU. In my case the plan is to use DMA to copy data from memory to the SPI peripheral. Using this method it will be possible to transfer an entire line of video data from memory to the SPI peripheral without tying up the CPU. An interrupt generated at the end of the transfer can then be used to generate the required synchronization signals.
Luckily I bought some MSP-EXP430FR5739 development boards when TI was offering them for half price. These include the new FRAM based MSP430FR5739 (16KB of FRAM) and a debugger/programing interface on board. Firmware can be developed in C using the free (16KB code size limited) version of TI Code Composer Studio. FRAM is Ferro-electric RAM. Essentially like Flash only faster and with higher write endurance.
As an initial proof of concept the first firmware displays a static image copied from memory to the display using DMA. The result is below:
The next step is displaying the real time and then some animations.
1-1 of 1