Table of Contents
NEC FC40X2DA Alphanumeric VFD
Introduction
There was nothing out there about this VFD (which I recall came from some sort of industrial controller), so I decided to finally have a poke and get it running.
Pinout
Pin number | Function |
---|---|
1 | D0 |
3 | D1 |
5 | D2 |
7 | D3 |
9 | D4 |
11 | D5 |
13 | D6 |
15 | D7 |
17 | Strobe |
19 | Cursor/nData |
21 | nR/W |
23 | nCS |
25 | nTEST (DOUT?) |
27 | (BUSY?) |
29 | nBlank |
31 | nRST |
33 | NC |
All even pins are GND.
Power is provided through a 2-pin connector: +5V is towards the data connector, GND is towards the boost converter.
More details about the pins:
- Strobe Data is read in on the rising edge of Strobe
- Cursor/nData When high, data is interpreted as cursor location (characters from home, e.g. 0x2A (42) moves the cursor to character 2 of the second line. When low, data is interpreted as a character to be shown at the cursor location
- nR/W Display only accepts data when this is high, and drives lines when low. Not sure what the value read back would be, as there does not seem to be a way to access any registers.
- nCS Display only accepts data or drives lines (depending on nR/W) when this is low.
- nTEST Display enters a self-test mode when this line is kept low while reset is de-asserted. Could possibly be a data input for a serial mode.
- BUSY An output (coming from a HC00) - suspect busy line and possibly data output for serial mode.
- nBlank Display blanks when pulled low
- nRST Resets display when pulled low
All inputs and bidirectional lines have internal pull-ups, 22Ω series resistors and are happy accepting 3.3V logic.
Data Format
Control of the display appears to be very limited, there do not seem to be any obviously accessible control registers. Instead, characters below 0x20 control some aspects of the display, whilst all other data represents characters.
The control characters are as follows:
Character (hex) | Function | Description |
---|---|---|
08 | Backspace | Moves cursor left (without affecting any characters) |
09 | Tab | Moves cursor right (without affecting any characters) |
0A | Line Feed | Moves cursor to next line (depending on scrolling mode) |
0D | Home | Returns cursor to top left (character 0) |
11 | Scroll off | At the end of the 2nd line, cursor wraps back to beginning of 1st. Likewise, Line Feed on second line moves cursor to first. |
12 | Scroll on | At the end of the 2nd line, the display scrolls up, and the cursor is moved to the beginning of the (now empty) 2nd line. Line feed on second line does not move cursor off second line. |
13 | Cursor Solid | Cursor is shown as a solid underline |
14 | Cursor Off | No cursor is shown |
15 | Cursor Blink | Cursor is shown as a blinking underline |
1B | Goto XY | The following two characters are interpreted as x and y position, e.g. 1B 02 01 moves the cursor to the 3rd character on the 2nd line |
It is likely that there are other control characters that I have not managed to identify. In particular, I am missing user-defined characters.