| Miguel Ojeda Sandonis | 70e8404 | 2007-02-10 01:44:32 -0800 | [diff] [blame] | 1 | =================================== | 
|  | 2 | cfag12864b LCD Driver Documentation | 
|  | 3 | =================================== | 
|  | 4 |  | 
|  | 5 | License:		GPLv2 | 
| Miguel Ojeda | 450c622 | 2008-07-04 09:59:33 -0700 | [diff] [blame] | 6 | Author & Maintainer:	Miguel Ojeda Sandonis | 
| Miguel Ojeda Sandonis | 70e8404 | 2007-02-10 01:44:32 -0800 | [diff] [blame] | 7 | Date:			2006-10-27 | 
|  | 8 |  | 
|  | 9 |  | 
|  | 10 |  | 
|  | 11 | -------- | 
|  | 12 | 0. INDEX | 
|  | 13 | -------- | 
|  | 14 |  | 
|  | 15 | 1. DRIVER INFORMATION | 
|  | 16 | 2. DEVICE INFORMATION | 
|  | 17 | 3. WIRING | 
|  | 18 | 4. USERSPACE PROGRAMMING | 
|  | 19 |  | 
|  | 20 |  | 
|  | 21 | --------------------- | 
|  | 22 | 1. DRIVER INFORMATION | 
|  | 23 | --------------------- | 
|  | 24 |  | 
| Miguel Ojeda | 450c622 | 2008-07-04 09:59:33 -0700 | [diff] [blame] | 25 | This driver supports a cfag12864b LCD. | 
| Miguel Ojeda Sandonis | 70e8404 | 2007-02-10 01:44:32 -0800 | [diff] [blame] | 26 |  | 
|  | 27 |  | 
|  | 28 | --------------------- | 
|  | 29 | 2. DEVICE INFORMATION | 
|  | 30 | --------------------- | 
|  | 31 |  | 
|  | 32 | Manufacturer:	Crystalfontz | 
|  | 33 | Device Name:	Crystalfontz 12864b LCD Series | 
|  | 34 | Device Code:	cfag12864b | 
|  | 35 | Webpage:	http://www.crystalfontz.com | 
|  | 36 | Device Webpage:	http://www.crystalfontz.com/products/12864b/ | 
|  | 37 | Type:		LCD (Liquid Crystal Display) | 
|  | 38 | Width:		128 | 
|  | 39 | Height:		64 | 
|  | 40 | Colors:		2 (B/N) | 
|  | 41 | Controller:	ks0108 | 
|  | 42 | Controllers:	2 | 
|  | 43 | Pages:		8 each controller | 
|  | 44 | Addresses:	64 each page | 
|  | 45 | Data size:	1 byte each address | 
|  | 46 | Memory size:	2 * 8 * 64 * 1 = 1024 bytes = 1 Kbyte | 
|  | 47 |  | 
|  | 48 |  | 
|  | 49 | --------- | 
|  | 50 | 3. WIRING | 
|  | 51 | --------- | 
|  | 52 |  | 
|  | 53 | The cfag12864b LCD Series don't have official wiring. | 
|  | 54 |  | 
|  | 55 | The common wiring is done to the parallel port as shown: | 
|  | 56 |  | 
|  | 57 | Parallel Port                          cfag12864b | 
|  | 58 |  | 
|  | 59 | Name Pin#                            Pin# Name | 
|  | 60 |  | 
|  | 61 | Strobe ( 1)------------------------------(17) Enable | 
|  | 62 | Data 0 ( 2)------------------------------( 4) Data 0 | 
|  | 63 | Data 1 ( 3)------------------------------( 5) Data 1 | 
|  | 64 | Data 2 ( 4)------------------------------( 6) Data 2 | 
|  | 65 | Data 3 ( 5)------------------------------( 7) Data 3 | 
|  | 66 | Data 4 ( 6)------------------------------( 8) Data 4 | 
|  | 67 | Data 5 ( 7)------------------------------( 9) Data 5 | 
|  | 68 | Data 6 ( 8)------------------------------(10) Data 6 | 
|  | 69 | Data 7 ( 9)------------------------------(11) Data 7 | 
|  | 70 | (10)                      [+5v]---( 1) Vdd | 
|  | 71 | (11)                      [GND]---( 2) Ground | 
|  | 72 | (12)                      [+5v]---(14) Reset | 
|  | 73 | (13)                      [GND]---(15) Read / Write | 
|  | 74 | Line (14)------------------------------(13) Controller Select 1 | 
|  | 75 | (15) | 
|  | 76 | Init (16)------------------------------(12) Controller Select 2 | 
|  | 77 | Select (17)------------------------------(16) Data / Instruction | 
|  | 78 | Ground (18)---[GND]              [+5v]---(19) LED + | 
|  | 79 | Ground (19)---[GND] | 
|  | 80 | Ground (20)---[GND]              E    A             Values: | 
| John Anthony Kazos Jr | be2a608 | 2007-05-09 08:50:42 +0200 | [diff] [blame] | 81 | Ground (21)---[GND]       [GND]---[P1]---(18) Vee    - R = Resistor = 22 ohm | 
|  | 82 | Ground (22)---[GND]                |                 - P1 = Preset = 10 Kohm | 
|  | 83 | Ground (23)---[GND]       ----   S ------( 3) V0     - P2 = Preset = 1 Kohm | 
| Miguel Ojeda Sandonis | 70e8404 | 2007-02-10 01:44:32 -0800 | [diff] [blame] | 84 | Ground (24)---[GND]       |  | | 
|  | 85 | Ground (25)---[GND] [GND]---[P2]---[R]---(20) LED - | 
|  | 86 |  | 
|  | 87 |  | 
|  | 88 | ------------------------ | 
|  | 89 | 4. USERSPACE PROGRAMMING | 
|  | 90 | ------------------------ | 
|  | 91 |  | 
|  | 92 | The cfag12864bfb describes a framebuffer device (/dev/fbX). | 
|  | 93 |  | 
|  | 94 | It has a size of 1024 bytes = 1 Kbyte. | 
|  | 95 | Each bit represents one pixel. If the bit is high, the pixel will | 
|  | 96 | turn on. If the pixel is low, the pixel will turn off. | 
|  | 97 |  | 
|  | 98 | You can use the framebuffer as a file: fopen, fwrite, fclose... | 
|  | 99 | Although the LCD won't get updated until the next refresh time arrives. | 
|  | 100 |  | 
|  | 101 | Also, you can mmap the framebuffer: open & mmap, munmap & close... | 
|  | 102 | which is the best option for most uses. | 
|  | 103 |  | 
|  | 104 | Check Documentation/auxdisplay/cfag12864b-example.c | 
|  | 105 | for a real working userspace complete program with usage examples. |