I’ve had a couple of these display modules sitting around for a while. They have a 10-pin connector, not the ‘normal’ 14 that an LCD module has. I also don’t have a data sheet for the display, but a couple of old data sheets for different but somewhat similar displays. Every time I bump into the modules in my box of stuff I wonder what they look like when activated.
It is pretty easy to use MMBasic to just try these modules, even if I’m not confident that the data that I have on the modules is correct. I’ll give it a good try with the limited information that I have.
Vacuum Fluorescent Display (VFD) Module
I decided to wire up the display to a CGMMSTICK to test them. It is a 5V display, so I’ll use OC outputs pulled to 5V through a 10k resistor. The display has a reset line, data in (serially transmitted, synched with the clock line), and clock. Data is most significant bit first.
According to the info I had:
Pins 2, 4, 6, 8, 10 are ground
Pin 1 +5V
Pin 3 clock
Pin 5 data
Pin 7 reset
I powered the module before connecting to the CGMMSTICK. Nothing appeared on the display, but I didn’t get a cloud of smoke either.
VFD Test Circuit
The data sheet for a similar module says that the value that it takes to write “A” is 1, “B” is 2. This doesn’t follow ASCII.
Below is the code I used to test the display:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
' VFD test code ' I/O init ' Open collector data SETPIN 12, 9 : PIN(12) = 1 ' Open collector clock SETPIN 13, 9 : PIN(13) = 0 ' Open collector reset SETPIN 15, 9 : PIN(15) = 1 ' Values for characters _A = 1 : _B = 2 : _C = 3 : _D = 4 : _E = 5 _F = 6 : _G = 7 : _H = 8 : _I = 9 : _J = 10 _K = 11 : _L = 12 : _M = 13 : _N = 14 : _O = 15 _P = 16 : _Q = 17 : _R = 18 : _S = 19 : _T = 20 _U = 21 : _V = 22 : _W = 23 : _X = 24 : _Y = 25 : _Z = 26 _AT = 0 : _SPACE = 32 _ZERO = 48 : _ONE = 49 : _TWO = 50 : _THREE = 51 _FOUR = 52 : _FIVE = 53 : _SIX = 54 : _SEVEN = 55 _EIGHT = 56 : _NINE = 57 ' Initialize and display message VFDRESET VFDDATA _SPACE VFDDATA _C VFDDATA _I VFDDATA _R VFDDATA _C VFDDATA _U VFDDATA _I VFDDATA _T VFDDATA _SPACE VFDDATA _G VFDDATA _I VFDDATA _Z VFDDATA _M VFDDATA _O VFDDATA _S VFDDATA _SPACE END ' VFD display reset routine Sub VFDRESET ' pulse the reset line PIN(15) = 1 : PAUSE 1 PIN(15) = 0 : PAUSE 1 PIN(15) = 1 : PAUSE 1 ' Clear the display VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &;h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 VFDDATA &h20 ' Turn display on VFDDATA &hFF End Sub ' Write data to display, MSB first Sub VFDDATA (valu) PIN(13) = 1 PIN(12) = valu AND &B10000000 PIN(13) = 0 : PIN(13) = 1 PIN(12) = valu AND &B01000000 PIN(13) = 0 : PIN(13) = 1 PIN(12) = valu AND &B00100000 PIN(13) = 0 : PIN(13) = 1 PIN(12) = valu AND &B00010000 PIN(13) = 0 : PIN(13) = 1 PIN(12) = valu AND &B00001000 PIN(13) = 0 : PIN(13) = 1 PIN(12) = valu AND &B00000100 PIN(13) = 0 : PIN(13) = 1 PIN(12) = valu AND &B00000010 PIN(13) = 0 : PIN(13) = 1 PIN(12) = valu AND &B00000001 PIN(13) = 0 : PIN(13) = 1 End Sub |
And the result:
” CIRCUIT GIZMOS ” written to the VFD. Looks better to the eye than to the camera.
Leave a Reply