Due to university and work it has been a while since the last post. But I just completed a little project that’s worth posting.
Several old 27C256 EPROMS were lying around unused. So I thought about a purpose for them. As I also had some 8×8 LED matrices, a little animated display came to mind.
With each frame consisting of 8×8 pixels the 32kByte EPROM can hold 4096 frames. Each byte holds one line of the display, eight bytes one frame.
The lower 3 addressbits of the EPROM have to by switched synchronously with the corresponding line on the display. This is achieved by wiring them to a 3-to-8-decoder (74*238) which in turn switches the lines. As up to eight LEDs can light up at once per line. To handle the current an ULN2308A darlington driver is used.
The columns are directly controlled by the data-output of the EPROM. To drive the LEDs a 2N2907 transistor is used.
The clock is generated by a crystal oscillator circuit consisting of a 32768 Hz crystal and an inverter gate.
The 32kHz squarewave from the oscillator is then divided by a 12-stage ripple counter (4040). The seventh to ninth stage are used for the line-addressing and are wired to the A0-A2 inputs of the EPROM and to the A,B,C inputs of the 74*238.
The next three stages are connected to a DIP-switch. The output of the switch leads to the clock input of another 4040. This way the frame-rate is selectable from 32fps, 16fps and 8fps.
Only fourteen addresspins of the EPROM are used, the fifteenth can be set to high or low via a jumper.
I wanted the whole circuit to fit under the LED matrix, but unfortunately the EPROM is slightly bigger, so the circuitboard protrudes about 3mm on the left and the right.
Apart from the LEDmatrix and the EPROM only SMD components were used on the two-sided PCB. The layout is rather dense and 0.3mm vias were used. Originally i wanted to etch the PCB myself, but quickly gave up that plan when the opportunity to let it manufacture for free together with other boards arose.
In the pictures above you can the bottom side of the populated PCB with one of the 4040’s, the 74*238, the crystal (the little golden thing), the DIP-switch and the EPROM-socket. In the next picture, the EPROM is inserted and on the last picture the LED-Matrix is lighted with some random data that was stored in one of the old EPROMs.
You can download the schematic and the board-layout (for EAGLE) here.
To easily generate data for the display, a small program was written in Delphi. You can draw each image on the 8×8 field and save the sequence of images to a binary file that can be directly programmed into the EPROM.
The source-code can be downloaded here.