Display-adapter - 2016-02-16 01:46:11
Display Adapter Board
The following description is intended as an overview description on how and why I built a display adapter for an OPTREX DMC16230 display. It is merely a small part of one of my internal projects. There are important details that should have been described and maybe will be described at some point. There is certainly room for improvement.
I needed some kind of display for an on-going project (A GPS-locked frequency reference) and I happened to have an OPTREX DMC16230 display lying around. This display is a fairly old alphanumeric part (still sold) with 2 lines with 16 positions each, but in this application it doesn't matter. The detailed man-machine interface of the GPS-Sync equipment will be web-based and this display is only intended to display an overview status.
The information to be displayed will be sent from a Linux application running on a board based on the ZX3 module and a Mars PM3 baseboard from Enclustra. The ZX3 uses a Xilinx Zynq Z-7020 chip. The OPTREX DMC16230 display is a 5 Volt product with a parallel interface and a LED-backlighter. Not only is a parallel interface based on 5 Volt technology a bad fit when interfacing a modern FPGA chip, the display is also very slow and lack a sensible ready signalling or interrupt capability.
This board was designed to provide an interface better suited to the controlling Zynq on the Enclustra module. I want to used the ARM9 processors in the Zynq for better things than to make texts tick over at simple LCD display on the front panel or to keep LED blinking to show some state. The text functions and the control of status LEDs and backlighter are moved away from the main application and the Zynq. An asynchronous serial interface will be used to allow the application to control the display, LEDs, beeper, button and backlighter with only two wires and ground, using a simple serial protocol.
I don't use so many 5 Volt components these days. Some 3.3V processors have 5 Volt tolerance on the I/O-ports. The processor used (Silabs C8051F930) is a left-over from a recent project. It fulfills the requirements and I had the tools installed on the development machine. The Silabs development environment combined with the SDCC compiler was used for the software development. The code is written in C and some parts in assembly language. Almost all interrupt related code is written in assembly language.
Figure 1: The finished display adapter board mounted on the DMC16230 display
The board schematics and layout was done using CADint. The board is a two layer design and as you can see in figure 1, it is not crowded with components. The physical size of the board was determined only by the size of the display. In the top right corner is the DC/DC converter (TI TPS62160) that takes the 15 Volts input supply and converts it to 5 Volts. 'U4' under the inductor is a 3.3 Volt LDO to supply the processor and most other components. The white, 1 mm pitch, connectors at the top are the serial port (left) and the auxillary I2C port (right). The serial port can be strapped to use 3.3 Volts or 2.5 Volts on the output. The input handles both levels. The connector close to the processor is for programming and debug. The connector on the left is the interface to the frontpanel LEDs and the pushbutton. At the top left is the beeper.