OpenCores

Virtual RS232 Terminal with LVDS LCD Controller

Project maintainers

Details

Name: virtual_rs232_terminal_with_lvds_lcd
Created: Mar 3, 2011
Updated: Mar 3, 2011
SVN Updated: Mar 3, 2011
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star1you like it: star it!

Other project properties

Category:Other
Language:Verilog
Development status:Mature
Additional info:FPGA proven
WishBone compliant: No
WishBone version: n/a
License: LGPL

Description

An Virtual RS232 Terminal developed with Avnet Xilinx Spartan 3A Evaluation Kit ( Spartan XC3S400A ) that has a LVDS LCD Controller (Notebook LCD used for development, 3 LVDS Pairs interface) and a PS2 Keyboard Receiver.

The Core receives the ScanCodes on PS2 Keyboard, and sends ascii through serial port. Also, it received the ASCII Chars on Serial port and write on a CharRam Buffer (80x60 chars) that displays on the LCD Screen.

Video from project:
http://www.youtube.comwatch?v=fX3_T2NMSnM

More info at: http://www.energylabs.com.br (Portuguese with Google Translation)

Details

There are things working, and things to be done.

Working:

- Serial Data Receiver writting to Char Ram
- Fixed 80x60 Char RAM
- EnergyLabs Logo on ROM
- ScanCodes on ROM
- IBMPC 8x8 Font on ROM
- All ROMS was implemented as blockram, so I am using about 50% of the block ram resources.
- LCD LVDS Controller Uses modified XAPP486 and its a LVDS33 Signal.
- Parallax Scrolling BackGround (Made with logic)
- EnergyLabs Logo with Transparency (Color-Key)

Todo:

- Faster Serial Receiver. Dunno why its so slow to receive chars on the serial, even at 115200 (Maybe its something when write)
- Dynamic Console Size
- All ROMS stored at external flash
- Modify XAPP486 or make a new 7-to-1 serializer (I tryed that, but the maximum speed at my core was only 40MHz), because I dont know how Xilinx made the XAPP486 and it has 4 channels (we only need 3) and the bits are in a different way.
- External RAM for Screen, actually I wasnt done that because I Dont have external ram.

Few things:

- The XAPP486 sends the 7 bits for each channel in a different way that LCD needs, as I didnt understand how XAPP486 was write, I only mapped the correct bits. Its working correct, but I think it can be better.