In-Depth FPGA Interfacing of HD44780 Based LCD

This project illustrates the interfacing of a HD44780 based LCD to the Xilinx Spartan-2 XCS200 FPGA using delayed Finite State Machine (FSM). While using a microcontroller to display text on the LCD is a fairly simple task, interfacing the LCD with a programmable logic device is a different story. The FSM controls the timing and generation of the signals required for data communication, making the process a lot easier.

The HD44780 LCD uses minimum 2.2V voltage for logic ‘1’ and maximum 0.6V voltage for logic ‘0’ for a given Vcc of 4.5 to 5.5V. These voltages are easily managed by the FPGA, using LVTTL mode. The project makes use of the write operation only in communicating with the LCD, so the RW pin is not used. The execution time delay, used to determine that the current write operation is completed, is 40ns. A 4-bit counter is used to control the instructions (the counter is controlled with the CE signal).

When electrical power is applied to the circuit the FSM enters its first state, the Pwr_Up state (check the diagram). The next state is the Pwr_Up_Delay state which lasts 45ms. The device has a multiplexer that puts the CE signal of the counter on high during these two first states. The next state is the Off_Pwr_Up_Delay, after which the FSM enters the Write_Data state (Enable pulse generation state machine). Next is the Data_Setup_Delay state, in which a delay is generated to make sure the setup time before the rising edge of the Enable pulse is adequate.

The Enable must has to be at least 240ns to be valid, and this is handled in the E_Pulse_Hi, E_Hi_Time and E_Pulse_Lo states. The E pin of the LCD is set on high during E_Pulse_Hi and E_Hi_Time states, and low on E_Pulse_Lo state. The next state is the Proc_Comp_Delay state, in which the delay for the current instruction is activated. The next state is Load_Next_Data and the FSM can either move back to Write_Data state and continue to send instructions to the LCD or go to the End_State.

The FSM and hardware layout is using the Xilinx ISE 8.1i VHDL Compiler. Check the article for a pdf file with additional instructions, diagrams and schematics and look into the datasheet of the HD44780 Based LCD for detailed specifications.

In-Depth FPGA Interfacing of HD44780 Based LCD: [Link][Link2]

August 31st, 2009

FPGA Logic Analyzer

FPGA Logic Analyzer

Another interesting FPGA-based project, this is a Logic Analyzer that is designed to make samples of 24 logic channels and stream the data to a computer for subsequent processing. The device connects to the PC using the USB 2.0 port and supports high transfer rates.

The FPGA mentioned is the EP2C5T144C7N model of Cyclone II device family from Altera and it was programmed using VHDL. The Logic Analyzer also possesses a NET2272 USB controller from NetChip. The device can be self-powered or powered using the USB port, which has a 5V voltage that is converted to 3.3V for the NET2272 controller and to 1.2V for the FPGA core (the conversion is made using two LTC3411 switching regulators).

The Logic Analyzer has three connectors intended for connecting various devices. There is a 10-pin connector for JTAG configuration, another 10-pin connector for a serial FPGA configuration device and a 26-pin connector for probes. The link provides an erratum with key information about software and hardware and some useful tips & tricks on SMD soldering. Schematics and PCB layout pdf files are also included.

FPGA Logic Analyzer: [Link]

July 30th, 2009

FPGA Development Board

FPGA Development Board

An FPGA is a device that can be programmed using HDL (hardware description language, either VHDL or Verilog) source code to implement various logical functions of application-specific integrated circuits (ASICs). As the name implies (field-programmable gate array) the device can be programmed subsequent to manufacturing.

The beta code-name for this baby is Mimzy and it is a FPGA development board intended for some future projects, as well as Your First CPU project. Its contribution plays a crucial role in the implementation and testing of the custom soft processor core and ucLinux. The board featured is the Xilinx XC3S400 FPGA development board coupled with XCF02SV020C Platform Flash, having 8MB Flash ROM and 32MB of SRAM.  The rest of the features are as follows: an 8 port ADC, an SD card slot, a sound codec (the PCM3008 Hi-Q Burr-Brown Stereo Audio Codec) with digital volume control, an FTDI USB 2.0 UART, a switching power supply (3.3V and 1.2V),  4 user LEDs, a program button and a JTAG port.

The current version of the project does not support user I/O, but this feature will be available when PCBs will start being manufactured. The user will have a header with FPGA and ADC pins at his or her disposal. The ADC mentioned earlier supposedly had a self-diagnostic role (voltage, battery), but the circuit was removed from the design and this role will be fulfilled by an Atmel programmable integrated circuit that will also be used for programming the device using the USB port or an SD card.

For networking capabilities, the wireless 802.11 will be added in the future. The board is intended for robotic devices, so wired networking would not have been suitable. This design requires a 4 layer PCB, which is expensive, so further testing is needed to ensure that no errors are overlooked. For schematics and pictures, check the link.

FPGA Development Board: [Link]

July 27th, 2008

FPGA Digital Oscilloscope

FPGA Digital Oscilloscope

The guys from fpga4fun have this interesting recipe for a simple digital oscilloscope which is made with the following parts:

  • 1 x Pluto FPGA board, with TXDI and cable (item#1121, $39.95)
  • 1 x Flash acquisition board (item#1200, $29.95)
  • 1 x BNC (item#1250, $4.95)
  • 1 x Nylon standoffs (item#1270, $0.95)
  • 1 x Male/female connectors 28 (item#1275, $2.95)

That’s about $78.75 so you can also call it a cheap oscilloscope because all commercial oscilloscopes are priced higher than $70.

FPGA Digital Oscilloscope: [Link]

Graphic LCD Pannel Interfaced With FPGA

FPGAs make great video controllers and can easily control graphic LCD panels. Graphic LCD panels are more advanced than text lcd panels and can display interesting stuff. The graphic LCD panels have a digital interface and can be interfaced in two ways:

  1. With a Video-like interface
  2. With a CPU-peripheral-like interface

Graphic LCD Pannel Interfaced With FPGA: [Link]

© 2007-2011 YourITronics | Any logo, trademark and project represented here are property of their respective owners | Wordpress | Privacy Policy    RSS