Introduction: Vacuum Fluorescent Display

About: hardware and software, Hardware like Arduino board, Phase locked loop circuit, and C++ programming language, C# programming language

vacuum fluorescent display (VFD

A vacuum fluorescent display (VFD) is a [display device]once commonly used on consumer electronics equipment such as [video cassette recorders], [car radios], and [microwave ovens].

A VFD operates on the principle of [cathodoluminescence], roughly similar to a [cathode ray tube], but operating at much lower voltages. Each tube in a VFD has a [phosphor]-coated carbon [anode] that is bombarded by electrons emitted from the [cathode filament]. In fact, each tube in a VFD is a [triode] vacuum tube because it also has a mesh control grid

The principle of operation is identical to that of a vacuum tube triode. Electrons can only reach (and "illuminate") a given plate element if both the grid and the plate are at a positive potential with respect to the cathode. This allows the displays to be organized as multiplexed displays where the multiple grids and plates form a matrix, minimizing the number of signal pins required. a positive voltage on that digit's grid and then placing a positive voltage on the appropriate plates. Electrons flow through that digit's grid and strike those plates that are at a positive potential, in this way at a rate high enough to create the illusion of all digits glowing at once via persistence of vision.


Supplies

SN75518 https://www.mouser.com/ProductDetail/Texas-Instruments/SN75518N?qs=o4busQjUnQaJNli4q71FJg%3D%3D

Step 1: Wiring the Display

This display consists of a [5*7] 35 dots-matrix with 14 digits in the first row, and icons in the second row, for example, WIFI and Bluetooth icons, and 14 segments with 9 digits and 7 segments with 2 digits in the second row.

Note: The dot number 1 is in the up left-hand corner and the dot number 35 is in the down right-hand corner.

The wiring inside the display is 37 wires, 35 of them are connected to the 35 dots-matrix in the first row, and the same 37 wires are divided into three parts for the second row 14 wires for the 14 segments and 7 wires for the 7 segments, and 4 wires for the WIFI icon to change throw the icon 4 segments, and 4 wires for zone 2A zone 3B icon to change between 2A 3B in the icon, the rest of the wires is for the other icons in the second row.

For the grid connection inside the display 14 wires for the first row of the display for the dots-matrix, the second row one grid for 7 segments, and mute, vol, db, and the other icons on the right hand of the display, one grid for WIFI, Bluetooth, and so on as you can see in the photo above.

I did use two SN75518 shift registers Vacuum fluorescent display drivers, to control the dots-matrix and segments, icons, and grids in the display. it has 60-v output voltage swing capability, 25-mA output source current capability, and high-speed serially shifted data input, latch on all driver outputs. Each device consists of a 32-bit shift register, 32

latches, and 32 output AND gates. Serial data is

entered into the shift register on the low-to-high

transition of CLOCK. While LATCH ENABLE is

high, parallel data is transferred to the output

buffers through a 32-bit latch. Data present in the

latch during the high-to-low transition of LATCH

ENABLE is latched. When STROBE is low, all Q

outputs are enabled. When STROBE is high, all Q

outputs are low.

I connected the first dot of the 35 dots-matrix to the first Q1 in the shift registers Vacuum fluorescent display drivers, the second dot to the Q2, and so on. To the last Q32, the last 3 dots are connected to the second shift registers.

The first shift register controls the 32 dots-matrix in the first row and the icons and the 14 segments and 7 segments in the second row.

the second shift registers shift register to control grids, this display has 20 grids for the first and the second row.

and I did use the last 5 Q of the second shift registers to control the rest of the 35 dots-matrix, the last 3 dots in the first row.

I did cascade the first shift register to the second shift register using the serial out

I used Arduino seeed xiao to control the two SN75518 shift registers Vacuum fluorescent display drivers by utilizing SPI to send data at a speed of 1000000 MHZ to the display, and I utilized I2C to receive data from any other Arduino boards like uno, nano, and mega. by using the library I built I called VFDI2CMster to send data over I2C, which is compatible with other Arduino boards.

Serial peripheral interface (SPI) is one of the most widely used interfaces between microcontrollers and peripheral ICs such as sensors, ADCs, DACs, shift registers, SRAM, and others.

The SPI interface can be either 3-wire or 4-wire or 2-wire.

.In my case I use only MOSI and SCK only, to connect to data and clock in the SN75518.

SCK goes to the first and second shift registers CLOCK pin #21.

MOSI goes to the first SN75518 DATA pin #39, and SERIAL OUT from the first SN75518 to the second SN75518, cascade.

Serial data output from the shift register may be

used to cascade additional devices. This output is

not affected by LATCH ENABLE or STROBE.

5-V for SN75518 and Arduino seeeduino Xiao.

5-V for [cathode filament].

30-V for dots-matrix and segments and grids.

Step 2: Code for the Display

first I created an array of type byte consisting of 4 elements called shiftRegisterBytes[4]; to carry data for all dots-matrix and segments and icons in the display, by using the pointer method that returns a byte array, in the DisplayData.h code

second star sending grid data and then dots-matrix or segments data over SPI SPI.beginTransaction(SPISettings(1000000,LSBFIRST,SPI_MODE3)); because of the SN75518 shift register, the serial data is entered into the shift register on low-to-high

I did utilize I2C to receive data over I2C from any Arduino board. by using a library I did build I called VFDI2CMster to send data over I2C

I did program everything by using visual code IDE and platform IO.

Step 3: Code for I2C Master

VFDI2CMster to send data over I2C from any Arduino board to the screen in this project

Step 4: 5*7 Dots-matrix Decoder

I used Visual Studio IDE and C# to create a Windows form to help me decode the 35 dots-matrix, to know which dot to turn on or off to display what I wanted either numbers or strings in the first row of the display, instead of calculating everything by hand, I did calculate the second row by hand it takes a lot of work, I did try the 35 dot-matrix by hand, and based on this I did the windows form, it work.

Step 5: Example for Using VFDI2CMaster Library

Attachments

Step 6: New Driver for the Display

After I got butter with programming, I did the new software drivers for the VFD and am learning new techniques in the C++ programming language, whenever I come up with a new driver idea I will update the new driver for VFD.