-- filename: LCD_usage.vhd -- kind: txt file -------------------------------------------------------------------------------- -- History: -- v1.0 : zas 22.08.2013 -- Initial Version -------------------------------------------------------------------------------- -- Description: -- Explanation about the usage and the functionalities of the LCD Driver. -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Overview -- The Lcd and Lcd_test library is intended to use with the HEB_LCD_V2_0, see http://wiki.hevs.ch/uit/index.php5/Hardware/Parallelport/heb_lcd. The HEB_LCD_V2_0 features a EADOGM132-5 LCD. Its a 4 Line and 132 column black- light display. The font created for it uses 6 columns per character which allows to have 4 lines with 22 characters each. The connection is I2C based and some initial configuration needs to be done. The bloc lcdController has everything needed to use the LCD. See the vague toplevel overview below. +--------------------------------------------------------------------------+ | +---------------------+ +----------------+ +---------------+ | | | lcdCharacterEncoder |---->| lcdInitialiser |------>| lcdSerialiser | | | +---------------------+ +----------------+ +---------------+ | | ^ | | | +-------------+ | | +--------| bramMemory | | | lcdController +-------------+ | +--------------------------------------------------------------------------+ -------------------------------------------------------------------------------- -- Bloc description -- lcdController -- Main bloc containing all needed subblocs lcdCharacterEncoder -- This bloc receives the ASCII data to display and and converts it to display data or display commands bramMemory -- Contains the command for command chars (<0x20) and the display (pixel) data for a the symbol chars (>=0x20). All the data of this ram are stored inthe font.txt file lcdInitialiser -- This bloc lets send predefined commands for 2 features. One is for initialising the display in the beginning, and the other is for clear all data from the display lcdSerialiser -- This bloc takes the parallised data and sends them over the I2C bus. -------------------------------------------------------------------------------- -- Supported Characters -- In VHDL the characters can be written with the following command: character'pos("VHDL") where VHDL is inidicated in the table below. Hex VHDL Value Description Function ----------------------------------------------------------- 0x00 "nul" Null Not supported 0x01 "soh" Start of Header Not supported 0x02 "stx" Start of Text (0,0) Goto pos line 0 character 0 0x03 "etx" End of Text (3,21) Goto pos line 3 character 21 0x04 "eot" End of Transmission Not supported 0x05 "enq" Enquiry Not supported 0x06 "ack" Acknowledgment Not supported 0x07 "bel" Bell Not supported 0x08 "bs" Backspace (y,x-1) Jump one char back 0x09 "ht" Horizontal Tab Not supported 0x0A "lf" Line Feed (y+1,x)Goto next line 0x0B "vt" Vertical Tab (y-1,x) Goto previous line 0x0C "ff" Form Feed Not supported 0x0D "cr" Carriage Return (y,0) Goto beginning of line 0x0E "so" Shift Out Not supported 0x0F "si" Shift In Not supported 0x10 "dle" Data Link Escape Not supported 0x11 "dc1" XON Device Control 1 Not supported 0x12 "dc2" Device Control 2 Not supported 0x13 "dc3" XOFFDevice Control 3 Not supported 0x14 "dc4" Device Control 4 Not supported 0x15 "nak" Negativ Acknowledgemnt Not supported 0x16 "syn" Synchronous Idle Not supported 0x17 "etb" End of Trans. Block Not supported 0x18 "can" Cancel Clear entire display 0x19 "em" End of Medium Not supported 0x1A "sub" Substitute Not supported 0x1B "esc" Escape Not supported 0x1C "fsp" File Separator Not supported 0x1D "gsp" Group Separator Not supported 0x1E "rsp" Reqst to SendRec. Sep. Not supported 0x1F "usp" Unit Separator Not supported 0x20 " " Space Print char 0x21 "!" exclamation mark Print char 0x22 """ double quote Print char 0x23 "#" number sign Print char 0x24 "$" dollar sign Print char 0x25 "%" percent Print char 0x26 "&" ampersand Print char 0x27 "'" single quote Print char 0x28 "(" left/open parenthesis Print char 0x29 ")" right/closing parenth. Print char 0x2A "*" asterisk Print char 0x2B "+" plus Print char 0x2C "," comma Print char 0x2D "-" minus or dash Print char 0x2E "." dot Print char 0x2F "/" forward slash Print char 0x30 "0" Print char 0x31 "1" Print char 0x32 "2" Print char 0x33 "3" Print char 0x34 "4" Print char 0x35 "5" Print char 0x36 "6" Print char 0x37 "7" Print char 0x38 "8" Print char 0x39 "9" Print char 0x3A ":" colon Print char 0x3B ";" semi-colon Print char 0x3C "<" less than Print char 0x3D "=" equal sign Print char 0x3E ">" greater than Print char 0x3F "?" question mark Print char 0x40 "@" AT symbol Print char 0x41 "A" Print char 0x42 "B" Print char 0x43 "C" Print char 0x44 "D" Print char 0x45 "E" Print char 0x46 "F" Print char 0x47 "G" Print char 0x48 "H" Print char 0x49 "I" Print char 0x4A "J" Print char 0x4B "K" Print char 0x4C "L" Print char 0x4D "M" Print char 0x4E "N" Print char 0x4F "O" Print char 0x50 "P" Print char 0x51 "Q" Print char 0x52 "R" Print char 0x53 "S" Print char 0x54 "T" Print char 0x55 "U" Print char 0x56 "V" Print char 0x57 "W" Print char 0x58 "X" Print char 0x59 "Y" Print char 0x5A "Z" Print char 0x5B "[" left/opening bracket Print char 0x5C "\" back slash Print char 0x5D "]" right/closing bracket Print char 0x5E "^" caret/circumflex Print char 0x5F "_" underscore Print char 0x60 "`" Print char 0x61 "a" Print char 0x62 "b" Print char 0x63 "c" Print char 0x64 "d" Print char 0x65 "e" Print char 0x66 "f" Print char 0x67 "g" Print char 0x68 "h" Print char 0x69 "i" Print char 0x6A "j" Print char 0x6B "k" Print char 0x6C "l" Print char 0x6D "m" Print char 0x6E "n" Print char 0x6F "o" Print char 0x70 "p" Print char 0x71 "q" Print char 0x72 "r" Print char 0x73 "s" Print char 0x74 "t" Print char 0x75 "u" Print char 0x76 "v" Print char 0x77 "w" Print char 0x78 "x" Print char 0x79 "y" Print char 0x7A "z" Print char 0x7B "{" left/opening brace Print char 0x7C "|" vertical bar Print char 0x7D "}" right/closing brace Print char 0x7E "~" tilde Print char 0x7F "del" arrow to the left Print char