요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Device geometry
cfag12864b.rst:24-43KS0108 controller 두 개가 만드는 1-Kbyte monochrome framebuffer를 정리합니다.
Parallel wiring
cfag12864b.rst:44-81Data·control signal과 전원·contrast·backlight 회로를 pin별로 연결합니다.
Userspace access
cfag12864b.rst:82-98/dev/fbX를 file I/O 또는 mmap으로 갱신합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
===================================
cfag12864b LCD Driver Documentation
===================================
:License: GPLv2
:Author & Maintainer: Miguel Ojeda <[email protected]>
:Date: 2006-10-27
.. INDEX
1. DRIVER INFORMATION
2. DEVICE INFORMATION
3. WIRING
4. USERSPACE PROGRAMMING
1. Driver Information
---------------------
This driver supports a cfag12864b LCD.
2. Device Information
---------------------
:Manufacturer: Crystalfontz
:Device Name: Crystalfontz 12864b LCD Series
:Device Code: cfag12864b
:Webpage: http://www.crystalfontz.com
:Device Webpage: http://www.crystalfontz.com/products/12864b/
:Type: LCD (Liquid Crystal Display)
:Width: 128
:Height: 64
:Colors: 2 (B/N)
:Controller: ks0108
:Controllers: 2
:Pages: 8 each controller
:Addresses: 64 each page
:Data size: 1 byte each address
:Memory size: 2 * 8 * 64 * 1 = 1024 bytes = 1 Kbyte
3. Wiring
---------
The cfag12864b LCD Series don't have official wiring.
The common wiring is done to the parallel port as shown::
Parallel Port cfag12864b
Name Pin# Pin# Name
Strobe ( 1)------------------------------(17) Enable
Data 0 ( 2)------------------------------( 4) Data 0
Data 1 ( 3)------------------------------( 5) Data 1
Data 2 ( 4)------------------------------( 6) Data 2
Data 3 ( 5)------------------------------( 7) Data 3
Data 4 ( 6)------------------------------( 8) Data 4
Data 5 ( 7)------------------------------( 9) Data 5
Data 6 ( 8)------------------------------(10) Data 6
Data 7 ( 9)------------------------------(11) Data 7
(10) [+5v]---( 1) Vdd
(11) [GND]---( 2) Ground
(12) [+5v]---(14) Reset
(13) [GND]---(15) Read / Write
Line (14)------------------------------(13) Controller Select 1
(15)
Init (16)------------------------------(12) Controller Select 2
Select (17)------------------------------(16) Data / Instruction
Ground (18)---[GND] [+5v]---(19) LED +
Ground (19)---[GND]
Ground (20)---[GND] E A Values:
Ground (21)---[GND] [GND]---[P1]---(18) Vee - R = Resistor = 22 ohm
Ground (22)---[GND] | - P1 = Preset = 10 Kohm
Ground (23)---[GND] ---- S ------( 3) V0 - P2 = Preset = 1 Kohm
Ground (24)---[GND] | |
Ground (25)---[GND] [GND]---[P2]---[R]---(20) LED -
4. Userspace Programming
------------------------
The cfag12864bfb describes a framebuffer device (/dev/fbX).
It has a size of 1024 bytes = 1 Kbyte.
Each bit represents one pixel. If the bit is high, the pixel will
turn on. If the pixel is low, the pixel will turn off.
You can use the framebuffer as a file: fopen, fwrite, fclose...
Although the LCD won't get updated until the next refresh time arrives.
Also, you can mmap the framebuffer: open & mmap, munmap & close...
which is the best option for most uses.
Check samples/auxdisplay/cfag12864b-example.c
for a real working userspace complete program with usage examples.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
CFAG12864B driver 정보
1-23이 GPLv2 문서는 Miguel Ojeda <[email protected]>가 2006년 10월 27일 작성·관리한 `cfag12864b` LCD driver 설명서입니다. Driver information, device information, wiring, userspace programming의 네 부분으로 구성됩니다.
이 driver는 CFAG12864B LCD를 지원합니다.
CFAG12864B device 사양
24-43제조사는 Crystalfontz이고 제품명은 Crystalfontz 12864b LCD Series, device code는 `cfag12864b`입니다. 제조사와 제품 page는 각각 `http://www.crystalfontz.com`, `http://www.crystalfontz.com/products/12864b/`입니다.
두 KS0108 controller가 128x64 monochrome framebuffer를 나눠 담당합니다.
Parallel port와 CFAG12864B 배선
44-81CFAG12864B LCD Series에는 공식 배선 방식이 없습니다. 일반적으로는 다음 원문 ASCII 회로처럼 parallel port에 연결합니다.
The common wiring is done to the parallel port as shown::
Parallel Port cfag12864b
Name Pin# Pin# Name
Strobe ( 1)------------------------------(17) Enable
Data 0 ( 2)------------------------------( 4) Data 0
Data 1 ( 3)------------------------------( 5) Data 1
Data 2 ( 4)------------------------------( 6) Data 2
Data 3 ( 5)------------------------------( 7) Data 3
Data 4 ( 6)------------------------------( 8) Data 4
Data 5 ( 7)------------------------------( 9) Data 5
Data 6 ( 8)------------------------------(10) Data 6
Data 7 ( 9)------------------------------(11) Data 7
(10) [+5v]---( 1) Vdd
(11) [GND]---( 2) Ground
(12) [+5v]---(14) Reset
(13) [GND]---(15) Read / Write
Line (14)------------------------------(13) Controller Select 1
(15)
Init (16)------------------------------(12) Controller Select 2
Select (17)------------------------------(16) Data / Instruction
Ground (18)---[GND] [+5v]---(19) LED +
Ground (19)---[GND]
Ground (20)---[GND] E A Values:
Ground (21)---[GND] [GND]---[P1]---(18) Vee - R = Resistor = 22 ohm
Ground (22)---[GND] | - P1 = Preset = 10 Kohm
Ground (23)---[GND] ---- S ------( 3) V0 - P2 = Preset = 1 Kohm
Ground (24)---[GND] | |
Ground (25)---[GND] [GND]---[P2]---[R]---(20) LED -
원문의 신호선을 parallel-port pin과 LCD pin 단위로 구조화했습니다.
전원·ground·preset·resistor 연결과 원문 component 값을 분리했습니다.
Framebuffer userspace programming
82-98`cfag12864bfb`는 `/dev/fbX` framebuffer device를 제공합니다. 크기는 1024 bytes, 즉 1 Kbyte입니다. 각 bit가 pixel 하나를 나타내며 bit가 high면 pixel이 켜지고 low면 꺼집니다.
Framebuffer를 file처럼 `fopen`, `fwrite`, `fclose`로 사용할 수 있지만 다음 refresh time이 와야 LCD가 갱신됩니다.
`open`과 `mmap`, `munmap`과 `close`로 framebuffer를 memory-map할 수도 있으며 대부분의 용도에는 이 방식이 가장 좋습니다.
실제로 동작하는 완전한 userspace program과 사용 예제는 `samples/auxdisplay/cfag12864b-example.c`를 확인합니다.
File I/O와 memory mapping이 같은 1-Kbyte framebuffer를 거쳐 refresh됩니다.
Driver
cfag12864b.rst:1-23CFAG12864B LCD driver의 범위와 문서 정보를 소개합니다.