CFA633-YYH-KS [CRYSTAIFONTZ]

INTELLIGENT LCD MODULE;
CFA633-YYH-KS
型号: CFA633-YYH-KS
厂家: Crystalfontz America, Inc.    Crystalfontz America, Inc.
描述:

INTELLIGENT LCD MODULE

CD
文件: 总73页 (文件大小:2654K)
中文:  中文翻译
下载:  下载PDF数据表文档文件
Crystalfontz  
INTELLIGENT LCD MODULE SPECIFICATIONS  
Datasheet Release 2017-09-29  
for  
CFA633-YYH-KS  
Hardware Version: v2.1  
Firmware Version: s2.2  
Crystalfontz America, Inc.  
12412 East Saltese Avenue  
Spokane Valley, WA 99216-0357  
Phone: 888-206-9720  
Fax: 509-892-1203  
Email: support@crystalfontz.com  
URL: www.crystalfontz.com  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
Table of Contents  
1. General Information................................................................................................................................6  
2. Introduction .............................................................................................................................................7  
2.1. Comparison to CFA533......................................................................................................................7  
2.2. Main Features ....................................................................................................................................7  
2.3. Module Classification Information......................................................................................................8  
2.4. Ordering Information ..........................................................................................................................8  
2.5. Drive Bay Mounting Bracket ..............................................................................................................9  
2.6. Cables ..............................................................................................................................................10  
3. Mechanical Characteristics..................................................................................................................11  
3.1. Physical Characteristics...................................................................................................................11  
3.2. Jumper Locations and Functions (All Interfaces).............................................................................11  
4. Optical Characteristics.........................................................................................................................14  
4.1. Definition of Viewing Angles ............................................................................................................14  
5. Electrical Specifications.......................................................................................................................15  
5.1. System Block Diagram.....................................................................................................................15  
6. Supply Voltages and Current...............................................................................................................16  
6.1. Absolute Maximum Ratings .............................................................................................................16  
6.2. DC Characteristics ...........................................................................................................................16  
6.3. “12v” Fan/GPO Characteristics........................................................................................................16  
6.4. GPIO[0] – GPIO[4] Characteristics ..................................................................................................17  
6.5. RS-232 Characteristics ....................................................................................................................18  
6.6. LED Backlight Information................................................................................................................18  
7. Connection Information........................................................................................................................19  
7.1. Standard Power Connection ............................................................................................................19  
7.2. Connecting 5v Power.......................................................................................................................19  
7.3. Connecting 12v Power for Fans.......................................................................................................20  
7.4. Ground Connections ........................................................................................................................21  
8. ATX Power Supply and Control Connections ....................................................................................22  
9. RS-232 Connections .............................................................................................................................25  
10. Fan Connections.................................................................................................................................26  
10.1. Connect Optional Crystalfontz WR-DOW-Y17 Temperature Sensors ..........................................28  
Page | 2  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
11. Host Communications........................................................................................................................29  
11.1. Packet Structure.............................................................................................................................29  
11.2. About Handshaking........................................................................................................................30  
11.3. Report Codes .................................................................................................................................30  
0x80: Key Activity............................................................................................................................30  
0x81: Fan Speed Report.................................................................................................................31  
0x82: Temperature Sensor Report..................................................................................................31  
11.4. Command Codes ...........................................................................................................................32  
0 (0x00): Ping Command ................................................................................................................32  
1 (0x01): Get Hardware & Firmware Version..................................................................................32  
2 (0x02): Write User Flash Area......................................................................................................33  
3 (0x03): Read User Flash Area .....................................................................................................33  
4 (0x04): Store Current State as Boot State ...................................................................................33  
5 (0x05): Reboot CFA633, Reset Host, or Power Off Host ............................................................34  
6 (0x06): Clear LCD Screen............................................................................................................35  
7 (0x07): Set LCD Contents, Line 1 ................................................................................................36  
8 (0x08): Set LCD Contents, Line 2 ................................................................................................36  
9 (0x09): Set LCD Special Character Data.....................................................................................36  
10 (0x0A): Read 8 Bytes of LCD Memory.......................................................................................37  
11 (0x0B): Set LCD Cursor Position ...............................................................................................37  
12 (0x0C): Set LCD Cursor Style....................................................................................................37  
13 (0x0D): Set LCD Contrast ..........................................................................................................38  
14 (0x0E): Set LCD & Keypad Backlight.........................................................................................38  
15 (0x0F): (Deprecated)..................................................................................................................38  
16 (0x10): Set Up Fan Reporting ....................................................................................................38  
17 (0x11): Set Fan Power ...............................................................................................................39  
18 (0x12): Read DOW Device Information .....................................................................................39  
19 (0x13): Set Up Temperature Reporting......................................................................................40  
20 (0x14): Arbitrary DOW Transaction............................................................................................42  
21 (0x15): Set Up Live Fan or Temperature Display ......................................................................42  
22 (0x16): Send Command Directly to the LCD Controller.............................................................43  
23 (0x17): Configure Key Reporting ...............................................................................................43  
24 (0x18): Read Keypad, Polled Mode...........................................................................................44  
25 (0x19): Set Fan Power Fail-Safe................................................................................................44  
26 (0x1A): Set Fan Tachometer Glitch Filter ..................................................................................45  
27 (0x1B): Query Fan Power & Fail-Safe Mask..............................................................................46  
28 (0x1C): Set ATX Power Switch Functionality.............................................................................46  
29 (0x1D): Enable/Disable and Reset the Watchdog .....................................................................49  
30 (0x1E): Read Reporting & Status...............................................................................................49  
31 (0x1F): Send Data to LCD..........................................................................................................50  
32 Reserved for CFA631 Key Legends ..........................................................................................50  
33 (0x21): Set Baud Rate................................................................................................................50  
34 (0x22): Set or Set and Configure GPIO Pins .............................................................................50  
35 (0x23): Read GPIO Pin Levels and Configuration State............................................................52  
12. Character Generator ROM (CGROM) ................................................................................................54  
13. LCD Module Reliability and Longevity..............................................................................................55  
13.1. Module Longevity (EOL / Replacement Policy)..............................................................................55  
14. Care and Handling Precautions.........................................................................................................56  
14.1. ESD (Electrostatic Discharge)........................................................................................................56  
Page | 3  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
14.2. Design and Mounting......................................................................................................................56  
14.3. Avoid Shock, Impact, Torque, or Tension......................................................................................56  
14.4. If LCD Panel Breaks.......................................................................................................................56  
14.5. Cleaning .........................................................................................................................................56  
14.6. Operation .......................................................................................................................................57  
14.7. Storage and Recycling...................................................................................................................57  
15. Mechanical Drawings..........................................................................................................................58  
16. Appendix A: Demonstration Software and Sample Code...............................................................62  
Page | 4  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
Table of Figures  
Figure 1. Bracket (Black Overlay with Logo).................................................................................................9  
Figure 2. CFA633 HW v2.1 Jumper Locations and Functions....................................................................11  
Figure 3. Definition of 6:00 o'clock and 12:00 o'clock Viewing Angles .......................................................14  
Figure 4. System Block Diagram.................................................................................................................15  
Figure 5. 5v Power Connection Option.......................................................................................................19  
Figure 6. 12v Power Connection Option.....................................................................................................20  
Figure 7. 12v Power Connection Option.....................................................................................................21  
Figure 8. ATX Power Supply and Control Connections..............................................................................22  
Figure 9. ATX Power Supply and Control Using Crystalfontz WR-PWR-Y14 Cable ..................................23  
Figure 10. Default and Alternate RS232 Pin Assignments.........................................................................25  
Figure 11. Four Fan Connectors.................................................................................................................26  
Figure 12. Graph Showing Fan PWM Power (% on time) for Various Fan RPM........................................27  
Figure 13. J_DOW Connection for WR-DOW-Y17 Temperature Sensor ....................................................28  
Figure 14. Character Generator ROM (CGROM) .......................................................................................54  
Page | 5  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
1. General Information  
Datasheet Revision History  
Datasheet Version: 2017-09-29  
Hardware Version: v2.1  
Firmware Version: s2.2  
This datasheet has been updated to reflect hardware version v2.1, firmware s2.2 for the CFA633-YYH-KS LCD  
module.  
For information about firmware and hardware revisions, see the Part Change Notifications (PCNs) under “News”  
in our website’s navigation bar. To see the most recent PCN for the CFA633 family at the time of this datasheet  
release, see PCN #10730.  
Previous datasheet Version: 2012-02-21  
For reference, previous datasheets may be downloaded by clicking the “Show Previous Versions of Datasheet”  
link under the “Datasheets and Files” tab of the product web page.  
Product Change Notifications  
To check for or subscribe to “Part Change Notices” for this display module, see the Product Notices tab on the  
product’s webpage.  
Variations  
Slight variations (for example, contrast, color, or intensity) between lots are normal.  
Volatility  
This display module has volatile memory.  
Disclaimer  
Certain applications using Crystalfontz America, Inc. products may involve potential risks of death, personal  
injury, or severe property or environmental damage (“Critical Applications”). CRYSTALFONTZ AMERICA, INC.  
PRODUCTS ARE NOT DESIGNED, INTENDED, AUTHORIZED, OR WARRANTED TO BE SUITABLE FOR  
USE IN LIFE-SUPPORT APPLICATIONS, DEVICES OR SYSTEMS OR OTHER CRITICAL APPLICATIONS.  
Inclusion of Crystalfontz America, Inc. products in such applications is understood to be fully at the risk of the  
customer. In order to minimize risks associated with customer applications, adequate design and operating  
safeguards should be provided by the customer to minimize inherent or procedural hazard. Please contact us if  
you have any questions concerning potential risk applications.  
Crystalfontz America, Inc. assumes no liability for applications assistance, customer product design, software  
performance, or infringements of patents or services described herein. Nor does Crystalfontz America, Inc.  
warrant or represent that any license, either express or implied, is granted under any patent right, copyright, or  
other intellectual property right of Crystalfontz America, Inc. covering or relating to any combination, machine, or  
process in which our products or services might be or are used.  
All specifications in datasheets on our website are, to the best of our knowledge, accurate but not guaranteed.  
Corrections to specifications are made as any inaccuracies are discovered.  
Company and product names mentioned in this publication are trademarks or registered trademarks of their  
respective owners.  
Copyright © 2017 by Crystalfontz America, Inc.,12412 East Saltese Avenue, Spokane Valley, WA 99216  
U.S.A.  
Page | 6  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
2. Introduction  
2.1. Comparison to CFA533  
If your project does not need the fan connections, the CFA533 family is an economical replacement  
for the CFA633 family. The CFA533 can be used in 3.3v or 5v systems, where the CFA-633 is limited  
to 5v systems.  
2.2. Main Features  
16 characters x 2-lines LCD with keypad and high-level interface. The display will fit nicely in a 1U  
rack mount case (35 mm overall height).  
A single 5v supply is needed for micro-controller, backlight, and LCD. Supplying the optional 12v will  
allow control of 4 fans.  
Four fan connectors with RPM monitoring and variable fan power control (PWM).  
A fail-safe fan power setting allows safe host fan control based on temperature.  
“Live Display” shows up to eight temperature or fan readings without host intervention, allowing fan  
RPMs and temperatures to be shown immediately at boot, even before the host operating system is  
loaded.  
Adjustable, long-life backlights are driven from the 5v supply at constant current. Their brightness is  
independent of power supply variations.  
Bidirectional “full-duplex” 19200 / 115200 baud ESD-protected RS-232 interface (-KS versions).  
Robust packet based communications protocol with 16-bit CRC.  
Module has a 6 o’clock viewing direction. Please see Optical Characteristics.  
Integrated, LED-backlit, 6-button translucent silicon keypad has four directional arrows, Enter, and  
Cancel.  
Edge-lit white LED backlight with negative STN blue transmissive mode LCD. Display shows light  
characters on a deep blue background.  
The display can be read in normal office lighting and in dark areas. May be difficult to read in direct  
sunlight.  
Nonvolatile memory capability (EEPROM): Set the “power on” display screen, plus 16-bytes for  
storing IP, netmask, system serial number, or other data.  
These options can be added to your display after clicking on the “Customize and Add to Cart” button:  
ATX power supply control functionality allows the keypad buttons on the CFA633 to replace the  
Power and Reset switches on your system, simplifying front panel design. The ATX functionality can  
also implement a hardware watchdog that can reset host system on host software failure.  
Temperature monitoring: up to 32 channels at 0.5-degree Celsius absolute accuracy (using optional  
connector and Crystalfontz WR-DOW-Y17 cables.  
An optional 5.25-inch half-height drive bay kit with mounting bracket is available. See CFA633 Kit  
Configurator.  
Crystalfontz America, Inc. is ISO 9001:2008 certified.  
A Declaration for Conformity, RoHS, and REACH:SVHC are available under the Datasheets & Files  
tab on display web pages.  
Page | 7  
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
2.3. Module Classification Information  
Brand  
Crystalfontz America, Inc.  
Model Identifier  
Backlight Type & Color  
633  
Y – LED, yellow-green  
Fluid Type, Image (positive or negative), & LCD Glass  
Color  
Y – STN, positive yellow-green  
Polarizer Film Type, Temperature Range, &  
View Angle (O ‘Clock)  
H – Transmissive, Wide Temperature  
Range1, 6:00  
Special Code 1  
Interface  
K – Manufacturer’s code  
S – Serial interface with full swing RS-232  
1 Wide Temperature Range is -20°C minimum to +70°C maximum.  
2.4. Ordering Information  
LCD  
PART NUMBER FLUID GLASS  
COLOR  
POLARIZER  
FILM  
IMAGE  
BACKLIGHT COLOR/TYPE  
CFA633-YYH-KS  
(“full swing”  
RS- 232)  
LCD: yellow-green edge LEDs  
Keypad: yellow-green LEDs  
STN  
yellow-  
green  
positive transflective  
Additional variants (same form factor, different LCD mode or backlight):  
CFA633-YYH-KU  
(USB)  
STN yellow-green positive transflective  
LCD: yellow-green edge LEDs  
Keypad: yellow-green LEDs  
CFA633-TMI-KS  
(“full swing”  
RS- 232)  
LCD: white edge LEDs  
Keypad: blue LEDs  
STN  
STN  
blue  
blue  
negative transmissive  
negative transmissive  
CFA633-TMI-KU  
(USB)  
LCD: white edge LEDs  
Keypad: blue LEDs  
CFA633-TFH-KU FSTN  
(“full swing”  
neutral  
neutral  
positive transflective  
positive transflective  
LCD: white edge LEDs  
Keypad: white LEDs  
USB)  
CFA633-TFH-KS FSTN  
(“full swing”  
LCD: white edge LEDs  
Keypad: white LEDs  
RS-232)  
CFA633-RDI-KU FFSTN near-black negative transmissive  
(USB)  
LCD: red edge LEDs  
Keypad: red LEDs  
CFA633-RDI-KS FFSTN near-black negative transmissive  
LCD: red edge LEDs  
Keypad: red LEDs  
(“full swing”  
RS-232)  
Page | 8  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
2.5. Drive Bay Mounting Bracket  
On the webpage for CFA633-YYH-KS, after you click the “Customize and Add to Cart” button, you will  
see a list of options for different cables, connectors and the drive bay bracket.  
Figure 1. Bracket (Black Overlay with Logo)  
Page | 9  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
2.6. Cables  
Below is a list of some of the cables we offer to make it easy to integrate the CFA633 into your  
system. Please note that cable lengths are approximate. Common configurations are described in  
Connection Information.  
Crystalfontz  
Cable  
Description  
All Cables Are RoHS Compliant  
Image  
Cable allows you to plug a 4-pin “hard drive style” Molex power  
connector into the module's “floppy drive style” power connector, plus  
provides an additional female 4-pin Molex connector.  
WR-PWR-Y12  
~13 inches  
Use this ribbon cable to supply communications. Connect cable’s 10-  
pin female connector to the module’s J_RS232 male connector.  
Connect cable’s RS232 DB9 9-pin female connector to host’s DB9 9-  
pin male serial port. Default or alternate motherboard RS-232 pinouts  
can be accommodated by changing jumpers on the CFA633.  
WR-232-Y08  
~27 inches  
Use this cable to supply communications. Connect one of the 10-pin  
female connectors to the module’s’ J_RS232 10-pin male connector.  
Connect cable’s second 10-pin female connector to host’s  
motherboard 10-pin male connector. This cable supports standard or  
alternate pinout motherboard RS-232 connections without changing  
jumpers on the module.  
WR-232-Y22  
~26 inches  
Use this ATX power cable to turn an ATX power supply on and off, or  
power cycle the host through the module. Connect the cable’s male 7-  
pin connector to the module’s J8 female connector. (Requires optional  
7-in female connector at J8 on module. Select J8 connector after you  
click on the module’s website page button “Customize and Add to  
Cart”.)  
WR-PWR-Y14  
~24 inches  
WR-FAN-X01  
~16 inches  
Fan extension cable for standard 3-pin fans.  
WR-DOW-Y17  
~12 inches +  
~12 inches  
between  
Connect (“daisy chain”) up to 32 of these DOW (Dallas One-Wire)  
DS18B20 temperature sensor cables. Requires optional DOW  
connector at J_DOW on module. (Select DOW connector after you  
click on the module’s website page button “Customize and Add to  
Cart”.)  
connectors  
Page | 10  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
3. Mechanical Characteristics  
3.1. Physical Characteristics  
Specification  
(mm)  
Specification  
(inch, reference)  
Item  
Module Overall Dimensions  
Width and Height  
110.5 (W) x 35.0 (H)  
20.1  
4.35 (W) x 1.378 (H)  
0.791  
Depth without Keypad  
Maximum Depth with Keypad  
Viewing Area  
25.9  
1.020  
61.0 (W) x 15.8 (H)  
56.20 (W) x 11.5 0(H)  
2.95 (W) x 5.55 (H)  
0.55 (W) x 0.65 (H)  
2.4  
2.402 (W) x 0.622 (H)  
2.213 (W) x 0.453 (H)  
0.116 (W) x 0.219 (H)  
0.022 (W) x 0.026 (H)  
0.094  
Active Area  
Character Size  
Dot Size  
Keystroke Travel (approximate)  
Weight (approximate)  
42 grams  
1.48 ounces  
3.2. Jumper Locations and Functions (All Interfaces)  
All jumpers are configurable, but not all jumpers will affect your interface (serial or USB). Close the  
jumpers by melting a ball of solder across their gap. Reopen the jumpers by removing the solder with  
a solder wick. Where applicable, the corresponding resistor must also be removed to open a jumper  
(RJP2 must be removed for JP2 to be open, for example).  
Figure 2. CFA633 HW v2.1 Jumper Locations and Functions  
Page | 11  
 
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
Jumper Locations and Functions (All Interfaces)  
open  
J1 (RS232), Pin 10 is open  
JP1  
JP2  
closed  
open  
LCD Tx/Host Rx to J1 (RS232), Pin 10  
J1 (RS232), Pin 2 is open (see also JP3 and JP11)  
LCD Tx/Host Rx to J1 (RS232), Pin 10  
RJP2  
closed  
open  
J1 (RS232), Pin 2 is open (see also JP2 and JP11)  
LCD Tx/Host Rx to J1 (RS232), Pin 2  
JP3  
closed  
open  
J1 (RS232), Pin 3 is open (see also JP5 and JP12)  
LCD Rx/Host Rx to J1 (RS232), Pin 3  
JP4  
RJP4  
closed  
open  
J1 (RS232), Pin 3 is open (see also JP4 and JP12)  
Ground to J1 (RS232), Pin 3  
JP5  
closed  
open  
J1 (RS232), Pin 5 is open  
JP6  
RJP6  
closed  
open  
Ground to J1 (RS232), Pin 5  
+5v pin from PWR connector is open (see also JP9)  
+5v pin from PWR connector supplies power to module  
J1 (RS232), Pin 2 is open (see also JP2 and JP3)  
Logic-level (0-5v) LCD Tx/Host Rx to J1 (RS232), Pin 2  
J1 (RS232), Pin 3 is open (see also JP4 and JP5)  
Logic-level (0-5v) LCD Rx/Host Rx /Tx to J1 (RS232), Pin 3  
JP8  
RJP8  
closed  
open  
JP11  
JP12  
closed  
open  
closed  
Page | 12  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
open  
J1 (RS232), Pin 4 is open  
+5v to J1 (RS232), Pin 4  
JP13  
closed  
open  
Module +5v power independent of USB  
Module +5v power supplied from USB  
No function  
JPUSBPWR  
RJPUSBPWR  
closed  
open  
JPUSBSNS  
JPFLPSNS  
closed  
open  
+5v from USB is connected to processor’s ATX SENSE  
No function  
closed  
open  
+5v from floppy is connected to processor’s ATX SENSE  
Adds 5K Ω series resistor for ATX host power sense  
GPIO[1] direct connection  
JPGPIO1  
RJPGPIO1  
closed  
Page | 13  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
4. Optical Characteristics  
4.1. Definition of Viewing Angles  
This module has a 6:00 o’clock viewing angle.  
Eyes Look Down  
Eyes Look Up  
12:00 o’clock  
Top Viewing Preferred  
6:00 o’clock  
Bottom Viewing Preferred  
Figure 3. Definition of 6:00 o'clock and 12:00 o'clock Viewing Angles  
Page | 14  
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
5. Electrical Specifications  
5.1. System Block Diagram  
Figure 4. System Block Diagram  
Page | 15  
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
6. Supply Voltages and Current  
6.1. Absolute Maximum Ratings  
Absolute Maximum Ratings  
Symbol  
Minimum  
Maximum  
TOP  
TST  
Operating Temperature  
-20°C  
-30°C  
10%  
0v  
+70°C  
+80°C  
90%  
Storage Temperature  
Humidity Range (Non-condensing)  
Supply Voltage for Logic  
RH  
VDD  
+5.5v  
Please note that these are stress ratings only. Extended exposure to the absolute maximum ratings listed  
above may affect device reliability or cause permanent damage. Functional operation of the module at  
these conditions beyond those listed under DC Characteristics is not implied.  
6.2. DC Characteristics  
5v Module Supply Voltage  
Minimum  
Nominal  
Maximum  
Supply voltage for LCD, backlights, and logic  
+4.75v  
+5v  
+5.25v  
5v Typical Current Consumption  
Specification  
+5v (LCD, microcontroller, with backlight off, 0%)  
+5v (LCD, microcontroller, with backlight on, 100%)  
6mA ~ 10mA typical  
85mA ~ 105mA typical  
6.3. “12v” Fan/GPO Characteristics  
The CFA633 has 4 connectors that may be used to control standard 3-pin fans. These connectors  
may also be used as open-drain GPO (General-Purpose Outputs) to control devices other than fans.  
For instance, a 12v relay could be connected in place of the fan, and used to control some external  
load. Be aware that for most GPO loads, you will want to limit the fan power setting (17 (0x11): Set  
Fan Power) to 0% (off) or 100% (on). A setting of 1 to 99 will PWM the output, which may not be  
desirable. Also, be aware that by default, all four fans are on at boot time. This setting can be  
changed by using 4 (0x04): Store Current State as Boot State. Please see Fan Connections for more  
information.  
“12v” Fan/GPO Supply Voltage  
Minimum  
Nominal  
Maximum  
Supply voltage for open-drain/GPO control  
+2v  
+12v  
+24v  
Page | 16  
 
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
“12v” Fan/GPO Current  
Limits  
Specification  
Maximum continuous current draw must be <1.5 A per fan  
connector, no more than 4 A total.  
Maximum pulsed current draw may be up to 5 A per connector.  
The pulse width must be less than 50 mS. (This pulse specification  
allows for the fan's start-up current spike.)  
Draw on fan/GPO supply (“12v”)  
will vary, depending on user  
equipment connected to FAN1  
through FAN4.  
Assure that the cables and connectors used are suitable for the  
current drawn in your system.  
Tach and Fan Criteria  
Fan Power Control PWM1 Frequency  
Specification  
18 Hz nominal  
Fan Tachometer Speed Range (assuming two  
PPR2)  
600 RPM to 3,000,000 RPM  
1PWM is Pulse Width Modulation. PWM controls the average power by switching a level between “full on”  
and “full off”. Please assure that your fan can be safely controlled by PWM.  
2PPR is Pulses Per Revolution, also written as p/r.  
6.4. GPIO[0] – GPIO[4] Characteristics  
The CFA633 has 5 GPIO (General-Purpose Input/Output) pins available. These pins connect to the  
processor’s CMOS GPIO pins. The may be set to input or output, additionally some pins have special  
purpose functions. When they are set as GPIO outputs, the average voltage can be controlled by  
PWM. Please refer to 34 (0x22): Set or Set and Configure GPIO Pins and 35 (0x23): Read GPIO Pin  
Levels and Configuration State for more information.  
DC Characteristics  
Test Conditions  
Symbol  
Minimum Typical Maximum  
V
T
Supply Voltage for Logic  
+4.75v  
+5.0v  
+5.25v  
OP =-30°C to +70°C  
DD - GND  
V
VIH  
VIL  
V
VDD  
Input High Voltage  
Input Low Voltage  
Output High Voltage  
Output Low Voltage  
DD = +5v  
DD -1.0v  
0v (GND)  
V
+0.6v  
VOH  
VOL  
+0.9  
DD  
V
0v (GND)  
+0.1  
DD  
Page | 17  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
GPIO[0] through GPIO[4] Current Limits  
Specification  
Sink  
25 mA  
10 mA  
Source  
6.5. RS-232 Characteristics  
Signals on Header J_RS232  
Specification  
Symbol  
Minimum  
Typical  
Maximum  
+15v  
RS232 Input Voltage Range  
RS232 Input High Voltage  
RS232 Input Low Voltage  
RS232 Output Voltage Swing  
-15v  
VIH-RS232  
VIL-RS232  
+2.4v  
+0.8v  
±5.0v  
±5.4v  
ESD (Electro-Static Discharge) Specifications for Tx and Rx pins of connector J_RS232 only:  
+15 kV Human Body Model  
+15 kV IEC1000-4-2 Air Discharge  
+8 kV IEC1000-4-2 Contact Discharge  
The remainder of this circuitry is industry standard CMOS logic and susceptible to ESD damage.  
Please use industry standard antistatic precautions as you would for any other static sensitive  
devices such as expansion cards, motherboards, or integrated circuits. Ground your body, work  
surfaces, and equipment.  
6.6. LED Backlight Information  
The backlights used in the CFA633 are designed for very long life, but their lifetime is finite. To  
conserve the LED lifetime, you can dim or turn off the backlights during periods of inactivity.  
Page | 18  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
7. Connection Information  
7.1. Standard Power Connection  
The easiest way to provide power from a host to CFA633-YYH-KS is to connect the “3.5-inch floppy”  
power cable to J_PWR on the CFA633. Alternatively, you can use a Crystalfontz WR-PWR-Y12 cable  
to adapt the “hard drive” power cable to J_PWR. Using this standard connection, both 5v (for the  
LCD) and 12v (for the fans) is supplied.  
If you would like, you may source or build your own power cable. The connector loaded at J_PWR is:  
Tyco Electronics / Amp part number 4-171825-4 Mouser Electronics part number 571-4-171825-4  
or equivalent.  
NOTE: It is possible to supply Rx, Tx, 5v, 12v, and ground through J_RS232, so that all connections  
to the host can be on a single cable. If the "Default RS-232 Pin Assignments" are selected, the five  
connections needed to operate the module are all on a single column of the pins on J_RS232. This  
allows a single 0.1-inch spacing 5-conductor cable to connect between the CFA633-YYH-KS and  
your embedded system. You will need to close JP13 for 5v and JP6/RJP6 for ground.  
Did you know? Crystalfontz can supply cables and close the appropriate jumpers so that  
the module and cables are pre-configured and bundled under a single part number, ready  
to use. Please contact technical support (+1-888-206-9720 or email  
techinfo@crystalfontz.com for details. A minimum order quantity may apply.  
7.2. Connecting 5v Power  
You may supply 5v through J_PWR, J8, or J_RS232. If you supply 5v through J_PWR, you will need  
to assure that JP8 is closed or RJP8 is loaded. If you supply 5v through J_RS232 you must close  
JP13. Be aware that when 5v is fed in one of these connections, it may also be fed out at the other  
connections, depending on jumper settings. Please refer to the illustration below.  
Figure 5. 5v Power Connection Option  
Page | 19  
 
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
7.3. Connecting 12v Power for Fans  
You may supply 12v through J_PWR, J8, or J_RS232. Assure the load connected does not exceed  
the current rating of the cable can connectors. Be aware that if 12v is fed in one of these connections,  
it will also be fed out at the other connections. Please refer to the illustration below.  
Figure 6. 12v Power Connection Option  
Page | 20  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
7.4. Ground Connections  
You may supply the ground connection through J_PWR, J8, or J_RS232. If you supply 5v through  
J_RS232 you must close JP6 or load RJP6. Typically, you will want to use the ground connection that  
is closest to the corresponding power connection. Please refer to the illustration below.  
Figure 7. 12v Power Connection Option  
Page | 21  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
8. ATX Power Supply and Control Connections  
The CFA633-YYH-KS has the ability to control power on/off and reset functions of a standard ATX PC  
power supply.  
The GPIO pins used for ATX control must not be configured as user GPIO, and must be  
configured to their default drive mode in order for the ATX functions to work correctly. These  
settings are the default but may be changed by the user. See command 34 (0x22): Set or Set  
and Configure GPIO Pins.  
To enable ATX functionality, the CFA633-YYH-KS is powered from the PC's VSB signal (the “stand-by” or  
“always-on” +5v ATX power supply output) through the 5v pin of J8. Since the CFA633 is then always  
powered, it can detect the “on” key press even when the system is “off”.  
When the host’s power is off, the CFA633 will blank the LCD and turn off the backlights. Please see  
command 28 (0x1C): Set ATX Power Switch Functionality. This is a low power state and from the user’s  
viewpoint the CFA633 and system will appear to be off. If +12v remains active (which would not be  
expected, since the host is "off"), the fans will remain on at their previous settings. Please refer to the  
illustration below.  
Figure 8. ATX Power Supply and Control Connections  
Page | 22  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
The CFA633 needs to be able to sense if the host’s main power supply is on or off so it can act like it is  
off. Here are the jumper settings needed to make that work:  
Open JPGPIO0 and RJPGIO0. This inserts a series resistor so the module can safely sense the  
power supply pin.  
Open JP8 and RJP8. This allows the module to be powered from VSB through the 5v pin of J8  
independent of the 5v switched supplied on the 5v pin of J_PWR.  
For an RS-232 module, close JPFLPSNS and connect the 5v pin of J_PWR to the PC’s main  
supply as usual.  
For a USB module, close JPUSBSNS and connect the USB cable to a switched power USB port  
as usual.  
The motherboard's power switch input is connected to Pin 5 of the CFA633-YYH-KS’s connector J8  
(labeled as GPIO[2]). This pin functions as POWER CONTROL. The POWER CONTROL pin is  
configured as a high-impedance input until the LCD module wants to turn the host on or off, then it will  
change momentarily to low impedance output, driving either low or high depending on the setting of  
POWER_INVERT. Please see command 28 (0x1C): Set ATX Power Switch Functionality.  
The motherboard's reset switch input is connected to Pin 4 of the CFA633-YYH-KS connector J8 (labeled  
as GPIO[3]). This pin functions as RESET. The RESET pin is configured as a high-impedance input until  
the LCD module wants to reset the host. Then it will change momentarily to low impedance output, driving  
either low or high depending on the setting of RESET_INVERT. See command 28 (0x1C): Set ATX  
Power Switch Functionality. This connection is also used for the hardware watchdog.  
The Crystalfontz WR-PWR-Y14 cable simplifies ATX power control connections. Below is an illustration of  
how the optional Crystalfontz WR-PWR-Y14 cable connects to the CFA633 connector J8 and your ATX  
power supply:  
Figure 9. ATX Power Supply and Control Using Crystalfontz WR-PWR-Y14 Cable  
Page | 23  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
Once the hardware is configured, use command 28 (0x1C): Set ATX Power Switch Functionality, to  
enable any of the following functions:  
System Power On. If POWER-ON SENSE is low (0v), pressing the green check key for 0.25  
seconds will turn the unit on by driving POWER CONTROL line for the pulse width set by command  
28: Set ATX Power Switch Functionality (1.0 seconds default).  
System Hard Power Off. If POWER-ON SENSE is high (+5v) pressing the red X key for 4 seconds  
will turn the system off by driving the POWER CONTROL line. The line will be driven for a minimum of  
the pulse width set by command 28 (0x1C): Set ATX Power Switch Functionality (1.0 seconds  
default). If the user continues to press the key, the CFA633-YYH-KS will continue to drive the line for  
up to an additional 5 seconds.  
System Hard Reset. If POWER-ON SENSE is high (+5v) pressing the green check key for 4  
seconds will reset the system off by driving the RESET line for 1 second. The CFA633-YYH-KS will  
reboot itself immediately after resetting the host.  
Page | 24  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
9. RS-232 Connections  
RJP2, RJP4, and RJP6 are closed by default, selecting the "Default RS-232 Pin Assignments". This  
connection allows a low-cost ribbon cable (Crystalfontz WR-232-Y08) to connect the CFA633-YYH-KS  
DB-9 COM port.  
If there is a matching 0.1-inch center, 10-pin RS-232 connector on your system's motherboard, then in  
most cases a simple straight-through ribbon cable (Crystalfontz WR-232-Y22 or as CW Industries’ C3AAG-  
1018G-ND cable available from Digi-Key or similar) can be used to connect from the CFA633 to the  
motherboard's header. The pin order of your motherboard's header will determine if the CFA633-YYH-  
KS’s pin assignments need to be "Default" or "Alternate".  
By opening JP2, JP4 and JP6 and closing JP1, JP3, and JP5 you can select the "Alternate RS-232 Pin  
Assignments". Please see Jumper Locations and Functions.  
Figure 10. Default and Alternate RS232 Pin Assignments  
Page | 25  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
10. Fan Connections  
The CFA633-YYH-KS supports up to 4 standard “3-pin” cooling fans. The fan connectors are compatible  
with industry standard “3-pin” fans.  
Figure 11. Four Fan Connectors  
The average power delivered to each fan may be set to any level between 0% and 100% through  
command 17 (0x11): Set Fan Power. The power setting controls the PWM duty cycle of a high-  
performance open-drain FET connected between the system ground and the GND pin of each fan  
connector. The PWM frequency is nominally 18 Hz.  
The CFA633-YYH-KS can measure the frequency of the fan's tachometer signal, and given the pulses-  
per-revolution, calculate the RPM and display it on the LCD or report the information needed to calculate  
the RPM to the host. If a fan's power is set to 100%, then the average frequency of each fan's tachometer  
signal is measured over a 1/8 second (125 ms) period of time. Each fan is measured in sequence, so  
updated fan speed information is available every 1/2 second (500 ms) for each fan.  
The power to a fan must be on in order for the fan's tachometer signal to be valid. If a fan is configured to  
report its speed to the host, the power of the fan will be unconditionally set to 100% at the start of the 1/8  
second period of time when the CFA633-YYH-KS is measuring the frequency of the tachometer signal,  
overriding the PWM. The CFA633-YYH-KS will leave the power to the fan on until the glitch delay. Please  
see command 26 (0x1A): Set Fan Tachometer Glitch Filter has expired and two tachometer edges have  
been detected. The normal PWM cycle will then resume.  
This technique allows the fan speed to be measured with a very minimal effect on the speed of the fan. If  
the fan power is set to 100% or if the speed of the fan and length of the PWM on time are such that the  
speed can be measured without stretching the PWM, then this override will not change the speed of the  
fan at all. If the fan power is set to some level other than 100% and the PWM on time is short compared  
to the tachometer signal frequency, then the fan speed will pulse slightly every 1/2 second due to the  
stretching of the PWM on time. During tachometer measuring, the maximum width of a stretched-on pulse  
is 1/8 second. For some fans, the result is not very noticeable, and this technique will allow you to monitor  
the average speed of the fan while controlling the average power of the fan. For other fans (particularly  
high torque, high RPM models), the pulsing effect may be undesirable.  
Page | 26  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
Since the on-time is dynamically stretched by the CFA633-YYH-KS to force the fan to produce two  
tachometer edges, the result is that the fan will resist stalling as power is reduced towards 0% and the  
RPM is being measured.  
Below is a graph of fan RPM vs. the fan power setting for a typical high-performance 80 mm fan (for  
example, Delta FFB0812SHE):  
Figure 12. Graph Showing Fan PWM Power (% on time) for Various Fan RPM  
Typically, if the fan speed is not at 100% then it is being controlled by the host software to drive a  
temperature sensor to a given reading in a closed-loop arrangement. In this case, the temperature, rather  
than the fan speed would be monitored for out-of-range conditions. If the temperature is within  
specification, you really do not care how fast the fan is turning. In an unattended system, it may be a good  
idea to set each fan to 100% for a few seconds during a test cycle – perhaps once a day or once a week  
– and log the steady-state RPM attained by the fan. If that steady state RPM were higher (this can be  
caused by a blocked airflow) or lower than expected (perhaps the fan's bearings are failing), a  
maintenance warning could be generated by the host software.  
For safety purposes enable the fan power fail-safe, see command 25 (0x19): Set Fan Power  
Fail-Safe, that is being used in closed-loop control through host software, the CFA633-YYH-KS  
will turn that fan to 100% if the host fails to update the power of the fans within a given time  
interval. For instance, if the communications cable is dislodged, or the host operating system  
hangs, or the cooling control process is terminated, the CFA633-YYH-KS will automatically  
force those fans to 100%, preventing potential equipment damage due to lack of cooling.  
IMPORTANT: We tested the CFA633-YYH-KS with a large range of fans and had good results. However,  
you are responsible for determining if the control and monitoring methods employed by the LCD  
module are acceptable for your application. In particular, if a fan's power is set too low, it may stall or  
fail to start, providing no cooling. Using a PWM to control fan speed is generally accepted; however, we  
make no claims that it is compatible with any particular fan or that it does not affect the lifetime of  
the fans. Some higher torque fans (especially the ball-bearing models), may click, buzz, or growl at low  
power settings due to the torque in the fan going from positive to negative in each PWM cycle. If you limit  
the power setting to 0% or 100% there should be no compatibility issues.  
Page | 27  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
We do not recommend operating a fan below 20% PWM duty cycle for an extended period of time.  
Limiting the minimum PWM duty cycle to 30% or 40% should reduce the mechanical and electrical  
stresses in the fan, avoiding premature failure.  
When power is applied to the CFA633-YYH-KS, it will set each fan's power to the default value of 100%  
or to the value that is stored in the boot state. To minimize peak current loading on the +12v supply during  
start-up, the fans are started in sequence with a 0.5 second delay between any fans that are on.  
10.1. Connect Optional Crystalfontz WR-DOW-Y17 Temperature Sensors  
The Crystalfontz WR-DOW-Y17 cable has a DS18B20 Dallas Programmable Resolution One-Wire  
(DOW) temperature sensor attached to a “daisy chainable” cable. (“Daisy chain” means several  
devices connected in a linear series.) Connect one WR-DOW-Y17 to the connector labeled J_DOW.  
Figure 13. J_DOW Connection for WR-DOW-Y17 Temperature Sensor  
If desired, connect the WR-DOW-Y17’s 3-pin male connector to an additional WR-DOW-Y17  
temperature sensor. Up to 32 WR-DOW-Y17 temperature sensors can be connected. (“Daisy  
chained”.)  
The DS18B20 on the WR-DOW-Y17 has 0.5°C absolute accuracy. Or you make a temperature sensor  
cable using a DS1822 Dallas Econo One-Wire Digital Thermometer with +2°C accuracy.  
Any temperature sensor can be configured to be automatically read and display to the CFA633-YYH-  
KS's LCD in °C or °F, see command 21 (0x15): Set Up Live Fan or Temperature Display.  
Independently, any temperature sensor can be configured to report to the host, see 19 (0x13): Set Up  
Temperature Reporting. Any sensors configured to be reported are updated once each second.  
Page | 28  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
11. Host Communications  
The CFA633 communicates with its host using an RS-232 interface. The port settings are 19200 baud, 8  
data bits, no parity, 1 stop bit by factory default. The speed can be set to 115200 baud under software  
control, see command 33 (0x21): Set Baud Rate.  
11.1. Packet Structure  
All communication between the CFA633 and the host takes place in the form of a simple and robust  
CRC checked packet. The packet format allows for very reliable communications between the  
CFA633 and the host without the traditional problems that occur in a stream-based serial  
communication (such as having to send data in inefficient ASCII format, to “escape” certain “control  
characters”, or losing sync if a character is corrupted, missing, or inserted).  
Reconciling packets is recommended rather than using delays when communicating with  
the module. To reconcile your packets, please ensure that you have received the  
acknowledgement packet from the packet most recently sent before sending any additional  
packets to the LCD module. This practice will guarantee that you will not have any dropped  
packets or missed communication with the LCD module.  
All packets have the following structure:  
<type><data_length><data><CRC>  
typeis one byte, and identifies the type and function of the packet:  
TTcc cccc  
|||| ||||--Command, response, error or report code 0-63  
||---------Type:  
00 = normal command from host to CFA633  
01 = normal response from CFA633 to host  
10 = normal report from CFA633 to host (not in  
direct response to a command from the host)  
11 = error response from CFA633 to host (a packet  
with valid structure but illegal content  
was received by the CFA633)  
data_lengthspecifies the number of bytes that will follow in the data field. The valid range of  
data_lengthis 0 to18.  
datais the payload of the packet. Each typeof packet will have a specified data_lengthand format  
for data as well as algorithms for decoding datadetailed below.  
CRCis a standard 16-bit CRC of all the bytes in the packet except the CRC itself. The CRC is sent  
LSB first. At the port, the CRC immediately follows the last used element of data [ ]. See Appendix A:  
Demonstration Software and Sample Code for details.  
The following C definition may be useful for understanding the packet structure.  
typedef struct  
{
unsigned char command;  
unsigned char data_length;  
unsigned char  
data[MAX_DATA_LENGTH];  
unsigned short CRC;  
}COMMAND_PACKET;  
Page | 29  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
On our website, Crystalfontz supplies a demonstration and test program, cfTest, along with its C source  
code. Included in the cfTest source is a CRC algorithm and an algorithm that detects packets. The  
algorithm will automatically re-synchronize to the next valid packet in the event of any communications  
errors. Please follow the algorithm in the sample code closely in order to realize the benefits of using the  
packet communications.  
11.2. About Handshaking  
The nature of CFA633’s packets makes it unnecessary to implement traditional hardware or software  
handshaking.  
The host should wait for a corresponding acknowledge packet from the CFA633 before sending the  
next command packet. The CFA633 will respond to all packets within 250 mS. The host software  
should stop waiting and retry the packet if the CFA633 fails to respond within 250 mS. The host  
software should report an error if a packet is not acknowledged after several retries. This situation  
indicates a hardware problem – for example, a disconnected cable.  
Please note that some operating systems may introduce delays between when the data arrives at the  
physical port from the CFA633 until it is available to the user program. In this case, the host program  
may have to increase its timeout window to account for the additional overhead of the operating  
system.  
The CFA633 can be configured to send several types of report packets along with regular  
acknowledge packets. The host should be able to buffer several incoming packets and must  
guarantee that it can process and remove packets from its input buffer faster than the packets can  
arrive given the baud rate and the reporting configuration of the CFA633. For any modern PC using  
reasonably efficient software, this requirement will not pose a challenge.  
The report packets are sent asynchronously with respect to the command packets received from the  
host. The host should not assume that the first packet received after it sends a command is the  
acknowledge packet for that command. The host should inspect the typefield of incoming packets  
and process them accordingly.  
11.3. Report Codes  
The CFA633 can be configured to report three items. The CFA633 sends reports automatically when  
the data becomes available. Reports are not sent in response to a particular packet received from the  
host. The three report types are (1) 0x80: Key Activity, (2) 0x81: Fan Speed Report, and (3) 0x82:  
Temperature Sensor Report. Details are below.  
0x80: Key Activity  
If a key is pressed or released, the CFA633 sends a Key Activity report packet to the host. Key event  
reporting may be individually enabled or disabled by command 23 (0x17): Configure Key Reporting.  
type = 0x80  
data_length = 1  
data[0] is the type of keyboard activity:  
KEY_UP_PRESS  
1
2
KEY_DOWN_PRESS  
KEY_LEFT_PRESS  
KEY_RIGHT_PRESS  
KEY_ENTER_PRESS  
KEY_EXIT_PRESS  
KEY_UP_RELEASE  
KEY_DOWN_RELEASE  
KEY_LEFT_RELEASE  
KEY_RIGHT_RELEASE  
KEY_ENTER_RELEASE  
KEY_EXIT_RELEASE  
3
4
5
6
7
8
9
10  
11  
12  
Page | 30  
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
0x81: Fan Speed Report  
If any of up to four fans connected to CFA633 is configured to report its speed information to the host,  
the CFA633 will send Fan Speed Reports for each selected fan every 1/2 second, please see  
command 16 (0x10): Set Up Fan Reporting.  
type = 0x81  
data_length = 4  
data[0] is the index of the fan being reported:  
0 = FAN 1  
1 = FAN 2  
2 = FAN 3  
3 = FAN 4  
data[1] is number_of_fan_tach_cycles  
data[2] is the MSB of Fan_Timer_Ticks  
data[3] is the LSB of Fan_Timer_Ticks  
The following C function will decode the fan speed from a Fan Speed Report packet into RPM:  
int OnReceivedFanReport(COMMAND_PACKET *packet, char * output)  
{
int  
return_value;  
return_value=0;  
int  
number_of_fan_tach_cycles;  
number_of_fan_tach_cycles=pac et->data[1];  
if(number_of_fan_tach_cycles<3)  
sprintf(output," STOP");  
else if(number_of_fan_tach_cycles<4)  
sprintf(output," SLOW");  
elseif(0xFF==number_of_fan_tach_cycles)  
sprintf(output," ----");  
else  
{
//Specific to each fan, most commonly 2  
int  
pulses_per_revolution;  
pulses_per_revolution=2;  
int  
Fan_Timer_Ticks;  
Fan_Timer_Ticks=(*(unsigned short *)(&(packet->data[2])));  
return_value=((27692308L/pulses_per_revolution)*  
(unsignedlong)(number_of_fan_tach_cycles-3))/  
(Fan_Timer_Ticks);  
sprintf(output,"%5d",return_value);  
}
return(return_value);  
}
0x82: Temperature Sensor Report  
If any of the up to 32 temperature sensors is configured to report to the host, the CFA633 will send  
Temperature Sensor Reports for each selected sensor every second, please see the command  
19 (0x13): Set Up Temperature Reporting.  
type = 0x82  
data_length = 4  
data[0] is the index of the temperature sensor being reported:  
0 = temperature sensor 1  
1 = temperature sensor 2  
. . .  
31 = temperature sensor 32  
Page | 31  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
data[1] is the MSB of Temperature_Sensor_Counts  
data[2] is the LSB of Temperature_Sensor_Counts  
data[3] is DOW_crc_status  
The following C function will decode the Temperature Sensor Report packet into °C and °F:  
void OnReceivedTempReport(COMMAND_PACKET *packet, char *output)  
{
//First check the DOW CRC return code  
from the CFA633 if(packet->data[3]==0)  
strcpy(output,"B  
AD CRC"); else  
{
double  
degc;  
degc=(*(short*)&(packet->data[1]))/16.0;  
double  
degf;  
degf=(degc*9.0)/5.0  
+32.0;  
sprintf(output,"%9.4f°C  
=%9.4f°F", degc,  
degf);  
}
}
11.4. Command Codes  
Below is a list of valid commands for the CFA633. Each command packet is answered by either a  
response packet or an error packet. The low 6 bits of the type field of the response or error packet is  
the same as the low 6 bits of the type field of the command packet being acknowledged.  
0 (0x00): Ping Command  
The CFA633 will return the Ping Command to the host.  
type: 0x00 = 010  
valid data_length is 0 to 16  
data[0-(data_length-1)] can be filled with any arbitrary data  
The return packet is identical to the packet sent, except the type will be 0x40 (normal response, Ping  
Command):  
type: 0x40 | 0x00 = 0x40 = 6410  
data_length = (identical to received packet)  
data[0-(data_length-1)] = (identical to received packet)  
1 (0x01): Get Hardware & Firmware Version  
The CFA633 will return the hardware and firmware version information to the host.  
type: 0x01 = 110  
valid data_length is 0  
The return packet will be:  
type: 0x40 | 0x01 = 0x41 = 6510  
data_length = 16  
data[] = "CFA633:h2.1, s2.2”  
h2.1 is the hardware revision  
s2.2 is the firmware version  
Page | 32  
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
2 (0x02): Write User Flash Area  
The CFA633 reserves 16 bytes of nonvolatile memory for arbitrary use by the host. This memory can  
be used to store a serial number, IP address, gateway address, netmask, or any other data required.  
All 16 bytes must be supplied.  
type: 0x02 = 210  
valid data_length is 16  
data[] = 16 bytes of arbitrary user data to be stored in  
the CFA633's non-volatile memory  
The return packet will be:  
type: 0x40 | 0x02 = 0x42 = 6610  
data_length = 0  
3 (0x03): Read User Flash Area  
This command will read the User Flash Area and return the data to the host.  
type: 0x03 = 310  
valid data_length is 0  
The return packet will be:  
type: 0x40 | 0x03 = 0x43 = 6710  
data_length = 16  
data[] = 16 bytes user data recalled from  
the CFA633's non-volatile memory  
4 (0x04): Store Current State as Boot State  
The CFA633 loads its power-up configuration from nonvolatile memory when power is applied. The  
CFA633 is configured at the factory to display a “welcome” screen when power is applied. This  
command can be used to customize the “welcome” screen, as well as the following items:  
Characters shown on LCD, which are affected by:  
o
o
o
o
Command 6 (0x06): Clear LCD Screen.  
Command 7 (0x07): Set LCD Contents, Line 1.  
Command 8 (0x08): Set LCD Contents, Line 2.  
Command 31 (0x1F): Send Data to LCD.  
Special character font definitions (Command 9 (0x09): Set LCD Special Character Data).  
Cursor position (Command 11 (0x0B): Set LCD Cursor Position).  
Cursor style (Command 12 (0x0C): Set LCD Cursor Style).  
Contrast setting (Command 13 (0x0D): Set LCD Contrast).  
Backlight setting (Command 14 (0x0E): Set LCD & Keypad Backlight).  
Fan power settings (Command 17 (0x11): Set Fan Power).  
Settings of any “live” displays (Command 21 (0x15): Set Up Live Fan or Temperature Display).  
Key press and release masks (Command 23 (0x17): Configure Key Reporting).  
Fan glitch delay settings (Command 26 (0x1A): Set Fan Tachometer Glitch Filter).  
ATX function enable and pulse length settings (command 28 (0x1C): Set ATX Power Switch).  
Baud rate (Command 33 (0x21): Set Baud Rate).  
GPIO settings (Command 34 (0x22): Set or Set and Configure GPIO Pins).  
You cannot store the fan or temperature reporting (although the live display of fans or temperatures  
can be saved). You cannot store the fan fail-safe or host watchdog. The host software should enable  
these items once the system is initialized and it is ready to receive the data.  
type: 0x04 = 410  
valid data_length is 0  
Page | 33  
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
The return packet will be:  
type: 0x40 | 0x04 = 0x44 = 6810  
data_length = 0  
If the current state and the boot state do not match after saving, the module will return an error  
instead of an ACK. In this unlikely error case, the boot state will be undefined.  
5 (0x05): Reboot CFA633, Reset Host, or Power Off Host  
This command instructs the CFA633 to simulate a power-on restart of itself, reset the host, or turn the  
host's power off. The ability to reset the host may be useful to allow certain host operating system  
configuration changes to complete. The ability to turn the host's power off under software control may  
be useful in systems that do not have ACPI compatible BIOS.  
The GPIO pins used for ATX control must not be configured as user GPIO, and must be  
configured to their default drive mode in order for the ATX functions to work correctly. These  
settings are factory default, but may be changed by the user, see command 34 (0x22): Set  
or Set and Configure GPIO Pins.  
Rebooting the CFA633 may be useful when testing the boot configuration. It may also be useful to re-  
enumerate the devices (WR-DOW-Y17 temperature sensors), on the One-Wire bus. To reboot the  
CFA633, send the following packet:  
type: 0x05 = 510  
valid data_length is 3  
data[0] = 8  
data[1] = 18  
data[2] = 99  
The reboot command may take up to 3 seconds to return its acknowledge packet.  
At boot-up, there is up to a 500ms (1/2 second) delay between turning on fans. By default,  
all four fans are set to “on” at 100%. If you are not using a fan, set power to 0% (command  
17 (0x11): Set Fan Power), and saving this setting as the default boot state (command 4  
(0x04): Store Current State as Boot State). This will reduce the boot time.  
If only one fan is on, there is no additional delay. If two fans are on, there is up to an  
additional 500ms delay. If three fans are on, there is up to an additional 1,000ms delay. If all  
four fans are on, there is up to an additional 1,500ms delay.  
# of Fans Powered On  
Expected Boot Time  
0 to 1  
300ms - 500ms  
800ms - 1,000ms  
1.3s - 1.5s  
2
3
4
1.8s - 2.0s  
Page | 34  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
To reset the host, assuming the host's reset line is connected to GPIO[3] as described in command  
28 (0x1C): Set ATX Power Switch Functionality, send the following packet:  
type: 0x05 = 510  
valid data_length is 3  
data[0] = 12  
data[1] = 28  
data[2] = 97  
The CFA633 will return the acknowledge packet immediately; then reset the host. After  
resetting the host (~1.5 seconds), the module will reboot itself. The module will not respond to  
new command packets for up to 3 seconds (~4.5 seconds overall) after its reboot. Part of this  
delay is the intentional staggered sequencing of turning on power to the fans. If you are not  
using fans, you can speed the boot process by setting the fan power to 0 (command 17  
(0x11): Set Fan Power), and saving this as the default boot state (command 4 (0x04): Store  
Current State as Boot State). Normally, the host will be recovering from its own reset, so  
the boot delay of the module will not be of consequence.  
To turn the host's power off, assuming the host's power control line is connected to GPIO[2] as  
described in command 28 (0x1C): Set ATX Power Switch Functionality, send the following packet:  
type: 0x05 = 510  
valid data_length is 3  
data[0] = 3  
data[1] = 11  
data[2] = 95  
The CFA633 will return the acknowledge packet immediately, then power cycle the host.  
The power cycle length is dependent on the length of the power pulse (command 28  
(0x1C): Set ATX Power Switch Functionality). After power cycling the host, the module will  
reboot itself. The module will not respond to new command packets for up to 3 seconds  
after its reboot. Part of this delay is the intentional staggered sequencing of turning on  
power to the fans. If you are not using fans, you can speed the boot process by setting the  
fan power to 0 (command 17 (0x11): Set Fan Power), and saving this as the default boot  
state (command 4 (0x04): Store Current State as Boot State). Normally the host will be off  
or recovering from its own power cycle, so the boot delay of the module will not be of  
consequence.  
In any of the above cases, the return packet will be:  
type: 0x40 | 0x05 = 0x45 = 6910  
data_length = 0  
6 (0x06): Clear LCD Screen  
Sets the contents of the LCD screen DDRAM to ' ' = 0x20 = 32 and moves the cursor to the left-most  
column of the top line.  
type: 0x06 = 610  
valid data_length is 0  
The return packet will be:  
type: 0x40 | 0x06 = 0x46 = 7010  
data_length = 0  
Clear LCD Screen changes the LCD. The LCD contents is one of the items stored by the command  
4 (0x04): Store Current State as Boot State.  
Page | 35  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
7 (0x07): Set LCD Contents, Line 1  
Sets the center 16 characters displayed for the top line of LCD screen.  
Please use this command only if you need backwards compatibility with older CFA633  
units. For new applications, please use the more flexible command 31 (0x1F): Send Data  
to LCD.  
type: 0x7 = 710  
valid data_length is 16  
data[] = top line’s display content (must supply 16 bytes)  
The return packet will be:  
type: 0x40 | 0x07 = 0x47 = 7110  
data_length = 0  
Set LCD Contents, Line 1 is one of the items stored by the command 4 (0x04): Store Current State as  
Boot State.  
8 (0x08): Set LCD Contents, Line 2  
Sets the center 16 characters displayed for the bottom line of LCD screen.  
Please use this command only if you need backwards compatibility with older CFA633 units.  
For new applications, please use the more flexible command 31 (0x1F): Send Data to LCD.  
type: 0x8 = 810  
valid data_length is 16  
data[] = bottom line's display content (must supply 16 bytes)  
The return packet will be:  
type: 0x40 | 0x08 = 0x48 = 7210  
data_length = 0  
Set LCD Contents, Line 2 is one of the items stored by the command 4 (0x04): Store Current State as  
Boot State.  
9 (0x09): Set LCD Special Character Data  
Sets the font definition for one of the special characters (CGRAM).  
type: 0x09 = 910  
valid data_length is 9  
data[0] = index of special character that you would like to modify, 0-7 are valid  
data[1-8] = bitmap of the new font for this character  
data[1-8]are the bitmap information for this character. Any value is valid between 0 and 63, the  
msb is at the left of the character cell of the row, and the lsb is at the right of the character cell.  
data[1]is at the top of the cell.  
data[8] is at the bottom of the cell.  
The return packet will be:  
type: 0x40 | 0x09 = 0x49 = 7310  
data_length = 0  
Page | 36  
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
Set LCD Special Character Data is one of the items stored by the command 4 (0x04): Store Current  
State as Boot State.  
10 (0x0A): Read 8 Bytes of LCD Memory  
This command will return the contents of the LCD’s DDRAM or CGRAM. This command is intended  
for debugging.  
NOTE: Firmware version prior to v1.9 did not return the address code.  
type: 0x0A = 1010  
valid data_length is 1  
data[0] = address code of desired data  
data[0] is the address code native to the LCD controller:  
0x40 (\064) to 0x7F (\127) for CGRAM  
0x80 (\128) to 0x93 (\143) for DDRAM, line 1  
0xC0 (\192) to 0xD3 (\207) for DDRAM, line  
The return packet will be:  
type: 0x40 | 0x0A = 0x4A = 7410  
data_length = 9  
data[0] of the return packet will be the address code.  
data[1-8]of the return packet will be the data read from the LCD controller's memory.  
11 (0x0B): Set LCD Cursor Position  
This command allows the cursor to be placed at the desired location on the CFA633’s LCD screen. If  
you want the cursor to be visible, you may also need to send a command 12 (0x0C): Set LCD Cursor  
Style.  
type: 0x0B = 1110 valid  
data_length is 2  
data[0] = column (0-15 valid)  
data[1] = row (0-1 valid)  
The return packet will be:  
type: 0x40 | 0x0B = 0x4B = 7510  
data_length = 0  
Set LCD Cursor Position is one of the items stored by the command 4 (0x04): Store Current State as  
Boot State.  
12 (0x0C): Set LCD Cursor Style  
This command allows you to select among four hardware generated cursor options.  
type: 0x0C = 1210 valid  
data_length is 1  
data[0] = cursor style (0-3 valid)  
0 = no cursor  
1 = blinking block cursor  
2 = static underscore cursor  
3 = blinking underscore cursor  
(Note for 3: This behavior is different from the previous CFA633 HW  
v1.x family which had a blinking block with a static underscore  
cursor.)  
Page | 37  
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
The return packet will be:  
type: 0x40 | 0x0C = 0x4C = 7610  
data_length = 0  
Set LCD Cursor Style is one of the items stored by the command 4 (0x04): Store Current State as  
Boot State.  
13 (0x0D): Set LCD Contrast  
This command sets the contrast or vertical viewing angle of the display. Initiated by the host,  
responded to by the CFA633.  
type: 0x0D = 1310 valid  
data_length is 1  
data[0] = contrast setting (0-50 valid)  
0 = light  
16 = about right  
29 = dark  
30-50 = very dark  
The return packet will be:  
type = 0x40 | 0x0D = 0x4D = 7710  
data_length = 0  
Set LCD Contrast is one of the items stored by the command 4 (0x04): Store Current State as Boot  
State.  
14 (0x0E): Set LCD & Keypad Backlight  
This command sets the brightness of the LCD and keypad backlights.  
type: 0x0E = 1410 valid  
data_length is 1  
data[0] = backlight power setting (0-100 valid)  
0 = off  
1-99 = variable brightness  
100 = on  
The return packet will be:  
type: 0x40 | 0x0E = 0x4E = 7810  
data_length = 0  
Set LCD & Keypad Backlight is one of the items stored by the command 4 (0x04): Store Current State  
as Boot State.  
15 (0x0F): (Deprecated)  
16 (0x10): Set Up Fan Reporting  
This command will configure the CFA633 to report the fan speed information to the host every 500  
mS.  
type = 0x10 = 1610  
valid data_length is 1  
data[0] = bitmask indicating which fans are enabled to  
report (0-15 valid)  
Page | 38  
 
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
---- 8421 Enable Reporting of this Fan’s Tach Input  
|||| ||||-- Fan 1: 1 = enable, 0 = disable  
|||| |||--- Fan 2: 1 = enable, 0 = disable  
|||| ||---- Fan 3: 1 = enable, 0 = disable  
|||| |----- Fan 4: 1 = enable, 0 = disable  
The return packet will be:  
type = 0x40 | 0x10 = 0x50 = 8010  
data_length = 0  
If data[0]is not 0, then the CFA633 will start sending 0x81: Fan Speed Report packets for each  
enabled fan every 500 mS, please see 0x81: Fan Speed Report. Each of the report packets is  
staggered by 1/8 of a second.  
Reporting a fan will override the fan power setting to 100% for up to 1/8 of a second every 1/2  
second, see Fan Connections for a detailed description.  
17 (0x11): Set Fan Power  
This command will configure the power for the fan connectors. The fan power setting is one of the  
items stored by the command 4 (0x04): Store Current State as Boot State.  
type = 0x11 = 1710  
valid data_length is 4  
data[0] = power level for FAN 1 (0-100 valid)  
data[1] = power level for FAN 2 (0-100 valid)  
data[2] = power level for FAN 3 (0-100 valid)  
data[3] = power level for FAN 4 (0-100 valid)  
The return packet will be:  
type = 0x40 | 0x11 = 0x51 =8110  
data_length = 0  
Set Fan Power is one of the items stored by the command 4 (0x04): Store Current State as Boot  
State.  
18 (0x12): Read DOW Device Information  
When power is applied to the CFA633, it detects any devices (WR-DOW-Y17 temperature sensors)  
connected to the Dallas Semiconductor One-Wire (DOW) bus and stores the device’s information.  
This command will allow the host to read the device’s information.  
The first byte returned is the Family Code of the Dallas One-Wire / iButton device. For a list of the  
possible Dallas One-Wire / iButton device family codes available go to App Note 155: 1-Wire Software  
Resource Guide on the Maxim/Dallas website.  
Page | 39  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
REGARDING COMMAND 18: READ DOW DEVICE INFORMATION  
The GPIO pin used for DOW must not be configured as user GPIO. It must be configured to its  
default drive mode in order for the DOW functions to work correctly.  
These settings are factory default but may be changed by the user, see command 34 (0x22):  
Set or Set and Configure GPIO Pins.  
In order for the DOW subsystem to be enabled and operate correctly, user GPIO[4] must be  
configured as:  
DDD = "111: 1=Hi-Z, 0=Slow, Strong Drive Down".  
F = "0: Port unused for user GPIO."  
This state is the factory default, but it can be changed and saved by the user. To ensure that  
GPIO[4] is set correctly and the DOW operation is enabled, send the following command:  
command = 34  
length = 3  
data[0] = 4  
data[1] = 100  
data[2] = 7  
This setting must be saved as the boot state, so when the CFA633 reboots it will detect the  
DOW devices.  
type: 0x12 = 1810 valid  
data_length is 1  
data[0] = device index (0-31 valid)  
The return packet will be:  
type: 0x40 | 0x12 = 0x52 = 8210  
data_length = 9  
data[0] = device index (0-31 valid)  
data[1-8] = ROM ID of the device  
If data[1] is 0x22 (DS1822 Econo 1-Wire Digital Thermometer temperature sensor) or 0x28  
(DS18B20 High Precision 1-Wire Digital Thermometer temperature sensor used on our WR-DOW-  
Y17), then that device can be set up to automatically convert and report the temperature every  
second. See the command 19 (0x13): Set Up Temperature Reporting.  
19 (0x13): Set Up Temperature Reporting  
This command will configure the CFA633 to report the temperature information to the host every  
second.  
type: 0x13 = 1910 valid  
data_length is 4  
data[0-3] = 32-bit bitmask indicating which temperature  
sensors fans are enabled to report (0-255 valid in each location)  
Page | 40  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
data[0]  
08 07 06 05  
04 03 02 01 Enable Reporting of sensor with  
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
device index of:  
|-- 0: 1 = enable, 0 = disable  
|----- 1: 1 = enable, 0 = disable  
|--------- 2: 1 = enable, 0 = disable  
|------------ 3: 1 = enable, 0 = disable  
|----------------- 4: 1 = enable, 0 = disable  
|-------------------- 5: 1 = enable, 0 = disable  
|----------------------- 6: 1 = enable, 0 = disable  
|-------------------------- 7: 1 = enable, 0 = disable  
data[1]  
16 15 14 13  
12 11 10 09 Enable Reporting of sensor with  
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
device index of:  
|-- 8: 1 = enable, 0 = disable  
|----- 9: 1 = enable, 0 = disable  
|--------- 10: 1 = enable, 0 = disable  
|------------ 11: 1 = enable, 0 = disable  
|----------------- 12: 1 = enable, 0 = disable  
|-------------------- 13: 1 = enable, 0 = disable  
|----------------------- 14: 1 = enable, 0 = disable  
|-------------------------- 15: 1 = enable, 0 = disable  
data[2]  
24 23 22 21  
20 19 18 17 Enable Reporting of sensor with  
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
device index of:  
|-- 16: 1 = enable, 0 = disable  
|----- 17: 1 = enable, 0 = disable  
|--------- 18: 1 = enable, 0 = disable  
|------------ 19: 1 = enable, 0 = disable  
|----------------- 20: 1 = enable, 0 = disable  
|-------------------- 21: 1 = enable, 0 = disable  
|----------------------- 22: 1 = enable, 0 = disable  
|-------------------------- 23: 1 = enable, 0 = disable  
data[3]  
32 31 30 29  
28 27 26 25 Enable Reporting of sensor with  
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
device index of:  
|-- 24: 1 = enable, 0 = disable  
|----- 25: 1 = enable, 0 = disable  
|--------- 26: 1 = enable, 0 = disable  
|------------ 27: 1 = enable, 0 = disable  
|----------------- 28: 1 = enable, 0 = disable  
|-------------------- 29: 1 = enable, 0 = disables  
|----------------------- 30: 1 = enable, 0 = disable  
|-------------------------- 31: 1 = enable, 0 = disable  
Any sensor enabled must have been detected as a 0x22 (DS1822 temperature sensor) or 0x28  
(DS18B20 temperature sensor) during DOW enumeration. This can be verified by using the  
command 18 (0x12): Read DOW Device Information.  
The return packet will be:  
type: 0x40 | 0x13 = 0x53 = 8310  
data_length = 0  
Page | 41  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
20 (0x14): Arbitrary DOW Transaction  
The CFA633 can function as an RS-232 to Dallas One-Wire bridge. This command allows you to  
specify arbitrary transactions on the One-Wire bus. One-Wire commands follow this basic layout:  
<bus reset  
//Required  
<address_phase> //Must be "Match ROM" or "Skip ROM"  
<write_phase>  
<read_phase>  
//optional, but at least one of write_phase or read_phase must be sent  
//optional, but at least one of write_phase or read_phase must be sent  
type: 0x14 = 2010  
valid data_length is 2 to 16  
data[0] = device_index (0-32 valid)  
data[1] = number_of_bytes_to_read (0-14 valid)  
data[2-15] = data_to_be_written[data_length-2]  
If device_indexis 32, then no address phase will be executed. If device_index is in the range of  
0 to 31, and a One-Wire device was detected for that device_indexat power on, then the write  
cycle will be prefixed with a "Match ROM” command and the address information for that device.  
If data_lengthis two, then no specific write phase will be executed (although address information  
may be written independently of data_lengthdepending on the value of device_index).  
If data_lengthis greater than two, then data_length-2bytes of data_to_be_writtenwill be  
written to the One-Wire bus immediately after the address phase.  
If number_of_bytes_to_read is zero, then no read phase will be executed. If  
number_of_bytes_to_read is not zero, then number_of_bytes_to_readwill be read from the  
bus and loaded into the response packet.  
The return packet will be:  
type: 0x40 | 0x14 = 0x54 = 8410  
data_length = 2 to 16  
data[0] = device index (0-31 valid)  
data[data_length-2] = Data read from the One-Wire bus. This is the same  
as number_of_bytes_to_read from the command.  
data[data_length-1] = One-Wire CRC  
21 (0x15): Set Up Live Fan or Temperature Display  
You can configure the CFA633 to automatically update a portion of the LCD with a “live” RPM or  
temperature reading. Once the display is configured using this command, the CFA633 will continue to  
display the live reading on the LCD without host intervention. The Set Up Live Fan or Temperature  
Display is one of the items stored by command 4 (0x04): Store Current State as Boot State, so you  
can configure the CFA633 to immediately display fan speeds or system temperatures as soon as  
power is applied.  
The live display is based on a concept of display slots. There are 8 slots, and each of the 8 slots may  
be enabled or disabled independently.  
Any slot may be requested to display any data that is available. For instance, slot 0 could display  
temperature sensor 3 in °C, while slot 1 could simultaneously display temperature sensor 3 in °F.  
Any slot may be positioned at any location on the LCD, as long as all the digits of that slot fall fully  
within the display area. It is legal to have the display area of one slot overlap the display area of  
another slot, but senseless. This situation should be avoided in order to have meaningful information  
displayed.  
type: 0x15 = 2110  
valid data_length is 7 or 2 (for turning a slot off)  
Page | 42  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
data[0]: display slot (0-7)  
data[1]: type of item to display in this slot  
0 = nothing (data_length then must be 2)  
1 = fan tachometer RPM (data_length then must be 7)  
2 = temperature (data_length then must be 7)  
data[2]: index of the sensor to display in this slot:  
0-3 are valid for fans  
0-31 are valid for temperatures (and the temperature  
device must be attached)  
data[3]: number of digits  
for a fan: 4 digits (0 to 9999) valid fan speed range  
for a fan: 5 digits (0 to 50000) valid fan speed range  
for a temperature: 3 digits (-XX or XXX)  
for a temperature: 5 digits (-XX.X or XXX.X)  
data[4]: display column  
0-13 valid for a 3-digit temperature  
0-12 valid for a 4-digit fan  
0-11 valid for a 5-digit fan or temperature  
data[5]: display row (0-1 valid)  
data[6]: pulses_per_revolution or temperature units  
for a fan: pulses per revolution for this fan (1 to 32)  
for a temperature: units (0 = deg C, 1 = deg F)  
If a One-Wire CRC error is detected, the temperature will be displayed as "ERR" or "ERROR".  
If the frequency of the tachometer signal is below the detectable range, the speed will be displayed as  
"SLOW" or "STOP".  
Displaying a fan will override the fan power setting to 100% for up to 1/8 of a second every 1/2  
second, see Fan Connections for a detailed description.  
The return packet will be:  
type: 0x40 | 0x15 = 0x55 = 8510  
data_length = 0  
22 (0x16): Send Command Directly to the LCD Controller  
The controller on the CFA633 is HD44780 compatible. Generally, you won’t need low-level access to  
the LCD controller but some arcane functions of the HD44780 are not exposed by the CFA633’s  
command set. This command allows you to access the CFA633’s LCD controller directly.  
IMPORTANT: It is possible to corrupt the CFA633 display using this command.  
type: 0x16 = 2210  
data_length: 2  
data[0]: location code  
0 = "Data" register  
1 = "Control" register  
data[1]: data to write to the selected register  
The return packet will be:  
type: 0x40 | 0x16 = 0x56 = 8610  
data_length = 0  
23 (0x17): Configure Key Reporting  
By default, the CFA633 reports any key event to the host. This command allows the key events to be  
enabled or disabled on an individual basis. The key events set to report are one of the items stored  
by the command 4 (0x04): Store Current State as Boot State.  
Page | 43  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
#define KP_UP  
0x01  
0x02  
0x04  
0x08  
0x10  
0x20  
#define KP_ENTER  
#define KP_CANCEL  
#define KP_LEFT  
#define KP_RIGHT  
#define KP_DOWN  
type: 0x17 = 2310  
data_length = 2  
data[0]: press mask  
data[1]: release mask  
The return packet will be:  
type: 0x40 | 0x17 = 0x57 = 8710  
data_length = 0  
Configure Key Reporting is one of the items stored by the command 4 (0x04): Store Current State as  
Boot State.  
24 (0x18): Read Keypad, Polled Mode  
In some situations, it may be convenient for the host to poll the CFA633 for key activity. This  
command allows the host to detect which keys are currently pressed, which keys have been pressed  
since the last poll, and which keys have been released since the last poll.  
This command is independent of the key reporting masks set by command 23 (0x17): Configure Key  
Reporting. All keys are always visible to this command. Typically, both masks of command 23 would  
be set to "0" if the host is reading the keypad in polled mode.  
#define KP_UP  
0x01  
0x02  
0x04  
0x08  
0x10  
0x20  
#define KP_ENTER  
#define KP_CANCEL  
#define KP_LEFT  
#define KP_RIGHT  
#define KP_DOWN  
type: 0x18 = 2410  
data_length = 0  
The return packet will be:  
type: 0x40 | 0x18 = 0x58 = 8810  
data_length = 3  
data[0] = bit mask showing the keys currently pressed  
data[1] = bit mask showing the keys that have been pressed since the last poll  
data[2] = bit mask showing the keys that have been released since the last poll  
25 (0x19): Set Fan Power Fail-Safe  
The CFA633 can be used as part of an active cooling system. For instance, the fans in a system can  
be slowed down to reduce noise when a system is idle or when the ambient temperature is low, and  
sped up when the system is under heavy load or the ambient temperature is high.  
Since there are a very large number of ways to control the speed of the fans (thresholds, thermostat,  
proportional, PID, multiple temperature sensors contributing to the speed of several fans, etc.), there  
was no way to foresee the particular requirements of your system and include an algorithm in the  
CFA633’s firmware that would be an optimal fit for your application.  
Page | 44  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
Varying fan speeds under host software control gives the ultimate flexibility in system design but  
would typically have a fatal flaw: a host software or hardware failure could cause the cooling system  
to fail. If the fans were set at a slow speed when the host software failed, system components may be  
damaged due to inadequate cooling.  
The fan power fail-safe command allows host control of the fans without compromising safety. When  
the fan control software activates, it should set the fans that are under its control to fail-safe mode  
with an appropriate timeout value. If for any reason the host fails to update the power of the fans  
before the timeout expires, the fans previously set to fail- safe mode will be forced to 100% power.  
#define FAN_1  
#define FAN_2  
#define FAN_3  
#define FAN_4  
0x01  
0x02  
0x04  
0x08  
type = 0x19 = 2510  
data_length = 2  
data[0] = bit mask of fans set to fail-safe (1-15 valid)  
data[1] = timeout value in 1/8 second ticks:  
1 = 1/8 second  
2 = 1/4 second  
255 = 31 7/8 seconds  
The return packet will be:  
type = 0x40 | 0x19 = 0x59 = 8910  
data_length = 0  
26 (0x1A): Set Fan Tachometer Glitch Filter  
The CFA633 controls fan speed by using PWM. Using PWM turns the power to a fan on and off  
quickly to change the average power delivered to the fan. The CFA633 uses approximately 18 Hz for  
the PWM repetition rate. The fan’s tachometer output is only valid if power is applied to the fan. Most  
fans produce a valid tachometer output very quickly after the fan has been turned back on but some  
fans take time after being turned on before their tachometer output is valid.  
This command allows you to set a variable-length delay after the fan has been turned on before the  
CFA633 will recognize transitions on the tachometer line. The delay is specified in counts, each count  
being nominally 552.5 µS long (1/100 of one period of the 18 Hz PWM repetition rate).  
In practice, most fans will not need the delay to be changed from the default length of 1 count. If a  
fan’s tachometer output is not stable when its PWM setting is other than 100%, simply increase the  
delay until the reading is stable.  
Typically, you would (1) start at a delay count of 50 or 100, (2) reduce it until the problem reappears,  
and then (3) slightly increase the delay count to give it some margin.  
Setting the glitch delay to higher values will make the RPM monitoring slightly more intrusive at low  
power settings. Also, the higher values will increase the lowest speed that a fan with RPM reporting  
enabled will seek at 0% power setting.  
The Fan Glitch Delay is one of the items stored by the command 4 (0x04): Store Current State as  
Boot State.  
type = 0x1A = 2610  
data_length = 4  
data[0] = delay count of fan 1  
data[1] = delay count of fan 2  
data[2] = delay count of fan 3  
data[3] = delay count of fan 4  
Page | 45  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
The return packet will be:  
type = 0x40 | 0x1A = 0x5A = 9010  
data_length = 0  
27 (0x1B): Query Fan Power & Fail-Safe Mask  
This command can be used to verify the current fan power and verify which fans are set to fail-safe  
mode.  
#define FAN_1  
#define FAN_2  
#define FAN_3  
#define FAN_4  
0x01  
0x02  
0x04  
0x08  
type = 0x1B = 2710  
data_length = 0  
The return packet will be:  
type = 0x40 | 0x1B = 0x5B = 9110  
data_length = 5  
data[0] = fan 1 power  
data[1] = fan 2 power  
data[2] = fan 3 power  
data[3] = fan 4 power  
data[4] = bit mask of fans with fail-safe set  
28 (0x1C): Set ATX Power Switch Functionality  
The combination of the CFA633 with the Crystalfontz WR-PWR-Y14 cable can be used to replace the  
function of the power and reset switches in a standard ATX-compatible system. The ATX Power  
Switch Functionality is one of the items stored by the command 4 (0x04): Store Current State as Boot  
State.  
Page | 46  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
REGARDING COMMAND 28: SET ATX SWITCH FUNCTIONALITY  
The GPIO pins used for ATX control must not be configured as user GPIO. The pins must be  
configured to their default drive mode in order for the ATX functions to work correctly.  
These settings are factory default but may be changed by the user. Please see command  
34 (0x22): Set or Set and Configure GPIO Pins. These settings must be saved as the boot  
state.  
To ensure that GPIO[1] will operate correctly as ATX SENSE, user GPIO[1] must be  
configured as:  
DDD = "011: 1=Resistive Pull Up, 0=Fast, Strong Drive Down". F = "0:  
Port unused for user GPIO."  
This configuration can be assured by sending the following command:  
command = 34  
length = 3  
data[0] = 1  
data[1] = 0  
data[2] = 3  
To ensure that GPIO[2] will operate correctly as ATX POWER, user GPIO[2] must be  
configured as:  
DDD = "010: Hi-Z, use for input".  
F = "0: Port unused for user GPIO."  
This configuration can be assured by sending the following command:  
command = 34  
length = 3  
data[0] = 2  
data[1] = 0  
data[2] = 2  
To ensure that GPIO[3] will operate correctly as ATX RESET, user GPIO[3] must be  
configured as:  
DDD = "010: Hi-Z, use for input".  
F = "0: Port unused for user GPIO."  
This configuration can be assured by sending the following command:  
command = 34  
length = 3  
data[0] = 3  
data[1] = 0  
data[2] = 2  
These settings must be saved as the boot state.  
The RESET (GPIO[3]) and POWER CONTROL (GPIO[2]) lines on the CFA633 are normally high-  
impedance. Electrically, they appear to be disconnected or floating. When the CFA633 asserts the  
RESET or POWER CONTROL lines, they are momentarily driven high or low (as determined by the  
AUTO_POLARITY, RESET_INVERT or POWER_INVERT bits, detailed below). To end the power or  
reset pulse, the CFA633 changes the lines back to high- impedance.  
Page | 47  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
Four Functions may be Enabled by Command 28  
Function 1: KEYPAD_RESET  
If POWER-ON SENSE (GPIO[1]) is high, holding the green check key for 4 seconds will pulse RESET  
(GPIO[3]) pin for 1 second. During the 1-second pulse, the CFA633 will show "RESET", and then the  
CFA633 will reset itself, showing its boot state as if it had just powered on. Once the pulse has finished,  
the CFA633 will not respond to any commands until after it has reset the host and itself.  
Function 2: KEYPAD_POWER_ON  
If POWER-ON SENSE (GPIO[1]) is low, pressing the green check key for 0.25 seconds will pulse  
POWER CONTROL (GPIO[2]) for the duration specified by in data[1] or the default of 1 second.  
During this time the CFA633 will show "POWER ON", then the CFA633 will reset itself.  
Function 3: KEYPAD_POWER_OFF  
If POWER-ON SENSE (GPIO[1]) is high, holding the red X key for 4 seconds will pulse POWER  
CONTROL (GPIO[2]) for the duration specified by in data[1] or the default of 1 second. If the user  
continues to hold the power key down, then the CFA633 will continue to drive the line for a maximum of  
5 additional seconds. During this time the CFA633 will show "POWER OFF".  
Function 4: LCD_OFF_IF_HOST_IS_OFF  
If LCD_OFF_IF_HOST_IS_OFF is set, the CFA633 will blank its screen and turn off its backlight to  
simulate its power being off any time POWER-ON SENSE is low.  
By default, there is an internal POWER-ON-SENSE connected to the +5v pin of J_PWR,  
selected by setting data [2] to 1. Alternatively, GPIO[1] may be configured to act as  
POWER-ON-SENSE through R21 of 5K, and specifying data[2] as 0. The CFA633 will still  
be active (since it is powered by VSB, standby power which is always-on), monitoring the  
keypad for a power-on keystroke. Once POWER-ON-SENSE goes high, the CFA633 will  
reboot as if power had just been applied to it.  
#define AUTO_POLARITY  
0x01 //Automatically detects polarity for reset  
and//power (recommended)  
0x02 //Reset pin drives high instead of low  
0x04 //Power pin drives high instead of low  
0x10  
0x20  
0x40  
0x80  
#define RESET_INVERT  
#define POWER_INVERT  
#define LCD_OFF_IF_HOST_IS_OFF  
#define KEYPAD_RESET  
#define KEYPAD_POWER_ON  
#define KEYPAD_POWER_OFF  
type: 0x1C = 2810  
data_length: 1 or 2  
data[0]: bit mask of enabled functions  
data[1]: (optional) length of power on & off pulses in 1/32 second  
1 = 1/32 sec  
2 = 1/16 sec  
16 = 1/2 sec  
254 = 7.9 seconds  
255 = Assert power control line until host power state changes  
The return packet will be:  
type: 0x40 | 0x1C = 0x5C = 9210  
data_length: 0  
Page | 48  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
29 (0x1D): Enable/Disable and Reset the Watchdog  
Some high-availability systems use hardware watchdog timers to ensure that a software or hardware  
failure does not result in an extended system outage. Once the host system has booted, a system  
monitor program is started. The system monitor program would enable the watchdog timer on the  
CFA633. If the system monitor program fails to reset the CFA633’s watchdog timer, the CFA633 will  
reset the host system.  
The GPIO pins used for ATX control must not be configured as user GPIO. They must be  
configured to their default drive mode in order for the ATX functions to work correctly. These  
settings are factory default, but may be changed by the user. See the note under command  
28 (0x1C): Set ATX Power Switch Functionality or command 34 (0x22): Set or Set and  
Configure GPIO Pins.  
type: 0x1D = 2910  
data_length = 1  
data[0] = enable/timeout  
If timeout is 0, the watchdog is disabled.  
If timeout is 1-255, then this command must be issued again within timeout seconds to  
avoid a watchdog reset.  
To turn the watchdog off once it has been enabled, simply set timeout to 0.  
If the command is not re-issued within timeout seconds, then the CFA633 will reset  
the host (see command 28 for details). Since the watchdog is off by default when the  
CFA633 powers up, the CFA633 will not issue another host reset until the host has  
once again enabled the watchdog.  
The return packet will be:  
type: 0x40 | 0x1D = 0x5D = 9310  
data_length = 0  
30 (0x1E): Read Reporting & Status  
This command can be used to verify the current items configured to report to the host, as well as  
some other miscellaneous status information. Please note that the information returned by other  
modules is not identical to this.  
type = 0x1E = 3010  
data_length = 0  
The return packet will be:  
type = 0x40 | 0x1E = 0x5E = 9410  
data_length = 15  
data[0] = fan 1-4 reporting status (as set by command 16)  
data[1] = temperatures 1-8 reporting status (as set by command 19)  
data[2] = temperatures 9-15 reporting status (as set by command 19)  
data[3] = temperatures 16-23 reporting status (as set by command 19)  
data[4] = temperatures 24-32 reporting status (as set by command 19)  
data[5] = key presses (as set by command 23)  
data[6] = key releases (as set by command 23)  
data[7] = ATX Power Switch Functionality (as set by command 28)  
data[8] = current watchdog counter (as set by command 29)  
data[9] = fan RPM glitch delay[0] (as set by command 26)  
data[10] = fan RPM glitch delay[1] (as set by command 26)  
data[11] = fan RPM glitch delay[2] (as set by command 26)  
data[12] = fan RPM glitch delay[3] (as set by command 26)  
data[13] = contrast setting (as set by command 13)  
data[14] = backlight setting (as set by command 14)  
Page | 49  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
NOTE: Previous and future firmware versions may return fewer or additional bytes.  
31 (0x1F): Send Data to LCD  
This command allows data to be placed at any position on the LCD.  
type: 0x1F = 3110  
data_length = 3 to 18  
data[0]: col = x = 0 to 15  
data[1]: row = y = 0 to 1  
data[2-21]: text to place on the LCD, variable from 1 to 16 characters  
The return packet will be:  
type: 0x40 | 0x1F = 0x5F = 9510  
data_length = 0  
Send Data to LCD is one of the items stored by the command 4 (0x04): Store Current State as Boot  
State.  
32 Reserved for CFA631 Key Legends  
33 (0x21): Set Baud Rate  
This command will change the CFA633’s baud rate. The CFA633 will send the acknowledge packet  
for this command and change its baud rate to the new value. The host should send the baud rate  
command, wait for a positive acknowledge from the CFA633 at the old baud rate, and then switch  
itself to the new baud rate. The baud rate must be saved by the command 4 (0x04): Store Current  
State as Boot State if you want the CFA633 to power up at the new baud rate.  
The factory default baud rate is 19200.  
type: 0x21 = 3310  
data_length = 0  
data[0]: 0 = 19200 baud  
1 = 115200 baud  
The return packet will be:  
type: 0x40 | 0x21 = 0x61 = 9710  
data_length = 0  
34 (0x22): Set or Set and Configure GPIO Pins  
The CFA633 (hardware versions v1.4 and up, firmware versions 1.9 and up) has five pins for user-  
definable general-purpose input / output (GPIO). These pins are shared with the DOW and ATX  
functions. Be careful when you configure the GPIO if you want to use the ATX or DOW at the same  
time.  
The architecture of the CFA633 allows great flexibility in the configuration of the GPIO pins. They can  
be set as input or output. They can output constant high or low signals or a variable duty cycle 100 Hz  
PWM signal.  
In output mode using the PWM (and a suitable current limiting resistor), an LED may be turned on or  
off and even dimmed under host software control. With suitable external circuitry, the GPIOs can also  
be used to drive external logic or power transistors.  
The CFA633 continuously polls the GPIOs as inputs at 32 Hz. The present level can be queried by  
the host software at a lower rate. The CFA633 also keeps track of whether there were rising or falling  
edges since the last host query (subject to the resolution of the 32 Hz sampling). This means that the  
host is not forced to poll quickly in order to detect short events. The algorithm used by the CFA633 to  
read the inputs is inherently “bounce-free”.  
Page | 50  
 
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
The GPIOs also have “pull-up” and “pull-down” modes. These modes can be useful when using the  
GPIO as an input connected to a switch since no external pull-up or pull-down resistor is needed. For  
instance, the GPIO can be set to pull up. Then when a switch connected between the GPIO and  
ground is open, reading the GPIO will return a "1". When the switch is closed, the input will return a  
"0".  
Pull-up/pull-down resistance values are approximately 5kΩ. Do not exceed current of 25 mA per  
GPIO.  
REGARDING SETTING AND CONFIGURING GPIO PINS  
The GPIO pins may also be used for ATX control through header J8 and temperature  
sensing through the CFA633’s DOW header. By factory default, the GPIO output setting,  
function, and drive mode are set correctly to enable operation of the ATX and DOW  
functions. The GPIO output setting, function, and drive mode must be set to the  
correct values in order for the ATX and DOW functions to work. Improper use of this  
command can disable the ATX and DOW functions. The cfTest may be used to easily  
check and reset the GPIO configuration to the default state so the ATX and DOW functions  
will work.  
The GPIO configuration is one of the items stored by the command 4 (0x04): Store Current State as  
Boot State.  
type: 0x22 = 3410  
data_length:  
2
3
bytes to change value only  
bytes to change value and configure function and drive mode  
data[0]: index of GPIO to modify  
0 = GPIO[0] = J8, Pin 7  
1 = GPIO[1] = J8, Pin 6 (default is ATX Host Power Sense)  
2 = GPIO[2] = J8, Pin 5 (default is ATX Host Power Control)  
3 = GPIO[3] = J8, Pin 4 (default is ATX Host Reset Control)  
4 = GPIO[4] = J9, Pin 2 (default is DOW I/O--always has 1kΩ hardware  
pull-up)  
5-255 = reserved  
NOTE: Future versions of this command on future hardware models may accept additional values for  
data [0], which would control the state of future additional GPIO pins.  
data[1] = Pin output state (actual behavior depends on drive mode):  
0 = Output set to low  
1-99 = Output duty cycle percentage (100 Hz nominal)  
100 = Output set to high  
101-255 = invalid  
Page | 51  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
data[2] = Pin function select and drive mode (optional, 0-15 valid)  
---- FDDD  
|||| ||||-- DDD = Drive Mode (based on output state of 1 or 0)  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
=======================================================  
000: 1=Fast, Strong Drive Up, 0=Resistive Pull Down  
001: 1=Fast, Strong Drive Up, 0=Fast, Strong Drive Down  
010: Hi-Z, use for input  
011: 1=Resistive Pull Up,  
0=Fast, Strong Drive Down  
100: 1=Slow, Strong Drive Up, 0=Hi-Z  
101: 1=Slow, Strong Drive Up, 0=Slow, Strong Drive Down  
110: reserved, do not use  
111: 1=Hi-Z,  
0=Slow, Strong Drive Down  
|||| |----- F = Function  
||||  
||||  
||||  
||||  
||||  
||||  
||||  
||||  
||||  
||||  
=======================================================  
0: Port unused for GPIO. It will take on the default  
function such as ATX, DOW or unused. The user is  
responsible for setting the drive to the correct  
value in order for the default function to work  
correctly.  
1: Port used for GPIO under user control. The user is  
responsible for setting the drive to the correct  
value in order for the desired GPIO mode to work  
correctly.  
||||------- reserved, must be 0  
The return packet will be:  
type = 0x40 | 0x22 = 0x62 = 9810  
data_length = 0  
35 (0x23): Read GPIO Pin Levels and Configuration State  
See command 34 (0x22): Set or Set and Configure GPIO Pins for details on the GPIO architecture.  
type: 0x23 = 3510  
data_length: 1  
data[0]: index of GPIO to query  
0 = GPIO[0] = J8, Pin 7  
1 = GPIO[1] = J8, Pin 6 (default is ATX Host Power Sense)  
2 = GPIO[2] = J8, Pin 5 (default is ATX Host Power Control)  
3 = GPIO[3] = J8, Pin 4 (default is ATX Host Reset Control)  
4 = GPIO[4] = J9, Pin 2 (default is DOW I/O--always has 1K  
hardware  
pull-up on  
SCAB.)  
5-255 = reserved  
NOTE: Future versions of this command on future hardware models may accept additional values for  
data [0], which would return the status of future additional GPIO pins.  
The return packet will be:  
type = 0x40 | 0x23 = 0x63 = 9910  
data_length = 4  
Page | 52  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
returns:  
data[0] = index of GPIO read  
data[1] = Pin state & changes since last poll  
---- -RFS Enable Reporting of this Fans Tach Input  
|||| ||||-- S = state at the last reading  
|||| |||--- F = at least one falling edge has  
|||| ||  
|||| ||---- R = at least one rising edge has  
|||| | been detected since the last poll  
|||| |----- reserved  
been detected since the last poll  
(This reading is the actual pin state, which may or may not agree with  
the pin setting, depending on drive mode and the load presented by external  
circuitry. The pins are polled at approximately 32 Hz asynchronously with  
respect to this command. Transients that happen between polls will not be  
detected.)  
data[2] = Requested Pin level/PWM level  
0-100: Output duty cycle percentage  
(This value is the requested PWM duty cycle. The actual pin may or may  
not be toggling in agreement with this value, depending on the drive mode  
and the load presented by external circuitry)  
data[3] = Pin function select and drive mode  
---- FDDD  
|||| ||||-- DDD = Drive Mode  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
|||| |  
=======================================================  
000: 1=Fast, Strong Drive Up, 0=Resistive Pull Down  
001: 1=Fast, Strong Drive Up, 0=Fast, Strong Drive Down  
010: Hi-Z, use for input  
011: 1=Resistive Pull Up,  
0=Fast, Strong Drive Down  
100: 1=Slow, Strong Drive Up, 0=Hi-Z  
101: 1=Slow, Strong Drive Up, 0=Slow, Strong Drive Down  
110: reserved  
111: 1=Hi-Z,  
0=Slow, Strong Drive Down  
|||| |----- F = Function  
||||  
||||  
||||  
||||  
||||  
||||  
||||  
||||  
||||  
||||  
=======================================================  
0: Port unused for GPIO. It will take on the default  
function such as ATX, DOW or unused. The user is  
responsible for setting the drive to the correct  
value in order for the default function to work  
correctly.  
1: Port used for GPIO under user control. The user is  
responsible for setting the drive to the correct  
value in order for the desired GPIO mode to work  
correctly.  
||||------- reserved, will return 0  
Page | 53  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
12. Character Generator ROM (CGROM)  
To find the code for a given character, add the two numbers that are shown in bold for its row and  
column. For example, the Greek letter "β" is in the column labeled “224d” and in the row labeled “2d”.  
Add 224 + 2 to get 226. When you send a byte with the value of 226 to the display, the Greek letter  
"β" will be shown.  
Figure 14. Character Generator ROM (CGROM)  
Page | 54  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
13. LCD Module Reliability and Longevity  
We work to continuously improve our products, including backlights that are brighter and last longer.  
Slight color variations from module to module and batch to batch are normal. If you need modules  
with consistent color, please ask for a custom order.  
Item  
Specification  
LCD portion (excluding Keypad and Backlights)  
Keypad rated lifetime  
50,000 to 100,000 hours (typical)  
1,000,000keystrokes  
Yellow-Green LED Keypad Backlight  
High Brightness Yellow-Green LED Display Backlights  
50,000 to 100,000 hours (typical)  
% of Initial  
Brightness  
Power-On Hours  
<10,000  
NOTE: We recommend that the backlight of the High  
Brightness Yellow-Green backlit modules be dimmed or turned  
off during periods of inactivity to conserve the High Brightness  
Yellow-Green LED backlight lifetime.  
>90%  
<50,000  
>50%  
13.1. Module Longevity (EOL / Replacement Policy)  
Crystalfontz is committed to making all of our LCD modules available for as long as possible. For  
each module that we introduce, we intend to offer it indefinitely. We do not preplan a module's  
obsolescence. The majority of modules we have introduced are still available.  
We recognize that discontinuing a module may cause problems for some customers. However,  
rapidly changing technologies, component availability, or low customer order levels may force us to  
discontinue (“End of Life”, EOL) a module. For example, we must occasionally discontinue a module  
when a supplier discontinues a component or a manufacturing process becomes obsolete. When we  
discontinue a module, we will do our best to find an acceptable replacement module with the same fit,  
form, and function.  
In most situations, you will not notice a difference when comparing a “fit, form, and function”  
replacement module to the discontinued module it replaces. However, sometimes a change in  
component or process for the replacement module results in a slight variation, perhaps an  
improvement, over the previous design.  
Although the replacement module is still within the stated Datasheet specifications and tolerances of  
the discontinued module, changes may require modification to your circuit and/or firmware. Possible  
changes include:  
Backlight LEDs. Brightness may be affected (perhaps the new LEDs have better efficiency) or the  
current they draw may change (new LEDs may have a different VF).  
Controller. A new controller may require minor changes in your code.  
Component tolerances. Module components have manufacturing tolerances. In extreme cases, the  
tolerance stack can change the visual or operating characteristics.  
Please understand that we avoid changing a module whenever possible; we only discontinue a  
module if we have no other option. We post Part Change Notices (PCN) on the product's website  
page as soon as possible. If interested, you can subscribe to future Part Change Notices.  
Page | 55  
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
14. Care and Handling Precautions  
For optimum operation of the CFA633-YYH-KS and to prolong its life, please follow the precautions  
described below.  
14.1. ESD (Electrostatic Discharge)  
Tx and Rx pins of connector RS-232 only:  
+15 kV Human Body Model  
+15 kV IEC1000-4-2 Air Discharge  
+8 kV IEC1000-4-2 Contact Discharge  
The remainder of this circuitry is industry standard CMOS logic and susceptible to ESD damage.  
Please use industry standard antistatic precautions as you would for any other static sensitive  
devices such as expansion cards, motherboards, or integrated circuits. Ground your body, work  
surfaces, and equipment.  
14.2. Design and Mounting  
The exposed surface of the “glass” is actually a polarizer laminated on top of the glass. To protect the  
soft plastic polarizer from damage, the module ships with a protective film over the polarizer. Please  
peel off the protective film slowly. Peeling off the protective film abruptly may generate static  
electricity.  
The polarizer is made out of soft plastic and is easily scratched or damaged. When handling the  
module, avoid touching the polarizer. Finger oils are difficult to remove.  
CFA633-YYH-KS without Crystalfontz overlay: To protect the soft plastic polarizer from damage,  
place a transparent plate (for example, acrylic, polycarbonate or glass) in front of the module, leaving  
a small gap between the plate and the display surface.  
Do not disassemble or modify the module.  
Do not modify the six tabs of the metal bezel or make connections to them.  
Do not reverse polarity to the power supply connections. Reversing polarity will immediately ruin the  
module.  
14.3. Avoid Shock, Impact, Torque, or Tension  
Do not expose the CFA633-YYH-KS to strong mechanical shock, impact, torque, or tension.  
Do not drop, toss, bend, or twist the CFA633-YYH-KS.  
Do not place weight or pressure on the CFA633-YYH-KS.  
If the LCD panel breaks, be careful to not get the liquid crystal fluid in your mouth or eyes. If the liquid  
crystal fluid touches your skin, clothes, or work surface, wash it off immediately using soap and  
plenty of water.  
14.4. If LCD Panel Breaks  
If the LCD panel breaks, be careful to not get the liquid crystal fluid in your mouth or eyes.  
If the liquid crystal fluid touches your skin, clothes, or work surface, wash it off immediately using soap  
and plenty of water.  
14.5. Cleaning  
The polarizer (laminated to the glass) is soft plastic. The soft plastic is easily scratched or damaged.  
Be very careful when you clean the polarizer.  
Do not clean the polarizer with liquids. Do not wipe the polarizer with any type of cloth or swab (for  
example, Q-tips).  
Use the removable protective film to remove smudges (for example, fingerprints) and any foreign  
matter. If you no longer have the protective film, use standard transparent office tape (for example,  
Scotch® brand “Crystal Clear Tape”). If the polarizer is dusty, you may carefully blow it off with clean,  
dry, oil-free compressed air.  
Page | 56  
 
 
 
 
 
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
CFA633-YYH-KS without Crystalfontz overlay: The exposed surface of the LCD “glass” is actually the  
front polarizer laminated to the glass. The polarizer is made out of a fairly soft plastic and is easily  
scratched or damaged. The polarizer will eventually become hazy if you do not take great care when  
cleaning it. Long contact with moisture (from condensation or cleaning) may permanently spot or stain  
the polarizer.  
14.6. Operation  
Your circuit should be designed to protect the CFA633 from ESD and power supply transients.  
Observe the operating temperature limitations: a minimum of -20°C to a maximum of +70°C with  
minimal fluctuation. Operation outside of these limits may shorten life and/or harm display.  
At lower temperatures of this range, response time is delayed.  
At higher temperatures of this range, display becomes dark. (You may need to adjust the contrast.)  
Operate away from dust, moisture, and direct sunlight.  
Adjust backlight brightness so the display is readable but not too bright. Dim or turn off the backlight  
during periods of inactivity to conserve the high-brightness yellow-green LED backlight lifetime.  
14.7. Storage and Recycling  
Store in an ESD-approved container away from dust, moisture, and direct sunlight.  
Observe the storage temperature limitations: -30°C minimum, +80°C maximum with minimal  
fluctuation. Rapid temperature changes can cause moisture to form, resulting in permanent damage.  
Do not allow weight to be placed on the CFA633 while they are in storage.  
Please recycle your outdated Crystalfontz modules at an approved facility.  
Page | 57  
 
 
15. Mechanical Drawings  
CFA633 Module Outline Drawing (1 of 2)  
Page | 58  
 
CFA633 Module Outline Drawing (2 of 2)  
Page | 59  
Keypad Detail Drawing  
Page | 60  
Panel Mounting Application Cutout Drawing  
Page | 61  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
16. Appendix A: Demonstration Software and Sample Code  
Sample Code  
We encourage you to use the free sample code listed below. Please leave the original copyrights in the  
code.  
Windows compatible test/demonstration program and source.  
https://www.crystalfontz.com/product/cftest  
Linux compatible command-line demonstration program with C source code. 8K.  
https://www.crystalfontz.com/product/linuxexamplecode  
Supported by CrystalControl freeware.  
https://www.crystalfontz.com/product/CrystalControl2.html  
In addition, see http://lcdproc.org/hardware.php3 for Linux LCD drivers. LCDproc is an open source  
project that supports many of the Crystalfontz displays.  
Algorithms to Calculate the CRC  
Below are eight sample algorithms that will calculate the CRC of a CFA633 packet. Some of the  
algorithms were contributed by forum members and originally written for CFA631 and CFA635. The CRC  
used in the CFA633 is the same one that is used in IrDA, which came from PPP, which seems to be  
related to a CCITT (ref: Network Working Group Request for Comments: 1171) standard. At that point,  
the trail was getting a bit cold and diverged into several referenced articles and papers, dating back to  
1983.  
16  
12  
5
0
The polynomial used is X + X + X + X (0x8408)  
The result is bit-wise inverted before being returned.  
Algorithm 1: “C” Table Implementation  
This algorithm is typically used on the host computer, where code space is not an issue.  
//This code is from the IRDA LAP documentation, which appears to  
//have been copied from PPP:  
//  
//  
http://irda.affiniscape.com/associations/2494/files/Specifications/  
IrLAP11_Plus_Errata.zip  
//  
//I doubt that there are any worries about the legality of this code,  
//searching for the first line of the table below, it appears that  
//the code is already included in the linux 2.6 kernel "Driver for  
//ST5481 USB ISDN modem". This is an "industry standard" algorithm  
//and I do not think there are ANY issues with it  
at all. typedef unsigned char ubyte;  
typedef unsigned short word;  
word get_crc(ubyte *bufptr,word len)  
{
//CRC lookup table to avoid bit-shifting loops.  
static const word crcLookupTable[256] =  
{0x00000,0x01189,0x02312,0x0329B,0x04624,0x057AD,0x06536,0x074BF,  
0x08C48,0x09DC1,0x0AF5A,0x0BED3,0x0CA6C,0x0DBE5,0x0E97E,0x0F8F7,  
0x01081,0x00108,0x03393,0x0221A,0x056A5,0x0472C,0x075B7,0x0643E,  
0x09CC9,0x08D40,0x0BFDB,0x0AE52,0x0DAED,0x0CB64,0x0F9FF,0x0E876,  
0x02102,0x0308B,0x00210,0x01399,0x06726,0x076AF,0x04434,0x055BD,  
0x0AD4A,0x0BCC3,0x08E58,0x09FD1,0x0EB6E,0x0FAE7,0x0C87C,0x0D9F5,  
0x03183,0x0200A,0x01291,0x00318,0x077A7,0x0662E,0x054B5,0x0453C,  
0x0BDCB,0x0AC42,0x09ED9,0x08F50,0x0FBEF,0x0EA66,0x0D8FD,0x0C974,  
0x04204,0x0538D,0x06116,0x0709F,0x00420,0x015A9,0x02732,0x036BB,  
0x0CE4C,0x0DFC5,0x0ED5E,0x0FCD7,0x08868,0x099E1,0x0AB7A,0x0BAF3,  
0x05285,0x0430C,0x07197,0x0601E,0x014A1,0x00528,0x037B3,0x0263A,  
Page | 62  
 
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
0x0DECD,0x0CF44,0x0FDDF,0x0EC56,0x098E9,0x08960,0x0BBFB,0x0AA72,  
0x06306,0x0728F,0x04014,0x0519D,0x02522,0x034AB,0x00630,0x017B9,  
0x0EF4E,0x0FEC7,0x0CC5C,0x0DDD5,0x0A96A,0x0B8E3,0x08A78,0x09BF1,  
0x07387,0x0620E,0x05095,0x0411C,0x035A3,0x0242A,0x016B1,0x00738,  
0x0FFCF,0x0EE46,0x0DCDD,0x0CD54,0x0B9EB,0x0A862,0x09AF9,0x08B70,  
0x08408,0x09581,0x0A71A,0x0B693,0x0C22C,0x0D3A5,0x0E13E,0x0F0B7,  
0x00840,0x019C9,0x02B52,0x03ADB,0x04E64,0x05FED,0x06D76,0x07CFF,  
0x09489,0x08500,0x0B79B,0x0A612,0x0D2AD,0x0C324,0x0F1BF,0x0E036,  
0x018C1,0x00948,0x03BD3,0x02A5A,0x05EE5,0x04F6C,0x07DF7,0x06C7E,  
0x0A50A,0x0B483,0x08618,0x09791,0x0E32E,0x0F2A7,0x0C03C,0x0D1B5,  
0x02942,0x038CB,0x00A50,0x01BD9,0x06F66,0x07EEF,0x04C74,0x05DFD,  
0x0B58B,0x0A402,0x09699,0x08710,0x0F3AF,0x0E226,0x0D0BD,0x0C134,  
0x039C3,0x0284A,0x01AD1,0x00B58,0x07FE7,0x06E6E,0x05CF5,0x04D7C,  
0x0C60C,0x0D785,0x0E51E,0x0F497,0x08028,0x091A1,0x0A33A,0x0B2B3,  
0x04A44,0x05BCD,0x06956,0x078DF,0x00C60,0x01DE9,0x02F72,0x03EFB,  
0x0D68D,0x0C704,0x0F59F,0x0E416,0x090A9,0x08120,0x0B3BB,0x0A232,  
0x05AC5,0x04B4C,0x079D7,0x0685E,0x01CE1,0x00D68,0x03FF3,0x02E7A,  
0x0E70E,0x0F687,0x0C41C,0x0D595,0x0A12A,0x0B0A3,0x08238,0x093B1,  
0x06B46,0x07ACF,0x04854,0x059DD,0x02D62,0x03CEB,0x00E70,0x01FF9,  
0x0F78F,0x0E606,0x0D49D,0x0C514,0x0B1AB,0x0A022,0x092B9,0x08330,  
0x07BC7,0x06A4E,0x058D5,0x0495C,0x03DE3,0x02C6A,0x01EF1,0x00F78};  
register word  
newCrc;  
newCrc=0xFFFF;  
//This algorithm is based on the IrDA LAP example.  
while(len--)  
newCrc = (newCrc >> 8) ^ crcLookupTable[(newCrc ^ *bufptr++) & 0xff];  
//Make this crc match the one’s complement that is sent in the packet.  
return(~newCrc);  
}
Algorithm 2: “C” Bit Shift Implementation  
This algorithm was mainly written to avoid any possible legal issues about the source of the routine (at  
the request of the LCDproc group). This routine was “clean” coded from the definition of the CRC. It is  
ostensibly smaller than the table-driven approach but will take longer to execute. This routine is offered  
under the GPL.  
typedef unsigned char ubyte;  
typedef unsigned short word;  
word get_crc(ubyte *bufptr,word len)  
{
register unsigned int  
newCRC;  
//Put the current byte in here.  
ubyte  
data;  
int  
bit_count;  
//This seed makes the output of this shift based algorithm match  
//the table based algorithm. The center 16 bits of the 32-bit  
//"newCRC" are used for the CRC. The MSb of the lower byte is used  
//to see what bit was shifted out of the center 16 bit CRC  
//accumulator ("carry flag analog");  
newCRC=0x00F32100;  
while(len--)  
{
//Get the next byte in the stream.  
data=*bufptr++;  
//Push this byte’s bits through a software  
//implementation of a hardware shift & xor.  
for(bit_count=0;bit_count<=7;bit_count++)  
Page | 63  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
{
//Shift the CRC accumulator  
newCRC>>=1;  
//The new MSB of the CRC accumulator comes  
//from the LSB of the current data byte.  
if(data&0x01)  
newCRC|=0x00800000;  
//If the low bit of the current CRC accumulator was set  
//before the shift, then we need to XOR the accumulator  
//with the polynomial (center 16 bits of 0x00840800)  
if(newCRC&0x00000080)  
newCRC^=0x00840800;  
//Shift the data byte to put the next bit of the stream  
//into position 0.  
data>>=1;  
}
}
//All the data has been done. Do 16 more bits of 0 data.  
for(bit_count=0;bit_count<=15;bit_count++)  
{
//Shift the CRC accumulator  
newCRC>>=1;  
//If the low bit of the current CRC accumulator was set  
//before the shift we need to XOR the accumulator with  
//0x00840800.  
if(newCRC&0x00000080)  
newCRC^=0x00840800;  
}
//Return the center 16 bits, making this CRC match the one’s  
//complement that is sent in the packet.  
return((~newCRC)>>8);  
}
Algorithm 2B: “C” Improved Bit Shift Implementation  
This is a simplified algorithm that implements the CRC.  
unsigned short get_crc(unsigned char count,unsigned char *ptr)  
{
unsigned short  
crc;  
//Calculated CRC  
unsigned char  
i;  
//Loop count, bits in byte  
unsigned char  
data; //Current byte being shifted  
crc = 0xFFFF; // Preset to all 1's, prevent loss of leading zeros  
while(count--)  
{
data = *ptr++;  
i = 8;  
do  
{
if((crc ^ data) & 0x01)  
{
crc >>= 1; crc ^= 0x8408;  
Page | 64  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
}
else  
crc >>= 1;  
data >>= 1;  
} while(--i != 0);  
}
return (~crc);  
}
Algorithm 3: “PIC Assembly” Bit Shift Implementation  
This routine was graciously donated by one of our customers.  
;====================================================================  
; Crystalfontz CFA633 PIC CRC Calculation Example  
;
; This example calculates the CRC for the hard coded example provided in the  
documentation.  
;
; It uses "This is a test. " as input and calculates the proper CRC of 0x93FA.  
;====================================================================  
#include "p16f877.inc"  
;====================================================================  
; CRC16 equates and storage  
;--------------------------------------------------------------------  
accuml  
accumh  
datareg  
j
equ  
equ  
40h  
41h  
; BYTE - CRC result register high byte  
; BYTE - CRC result register high low byte  
; BYTE - data register for shift  
; BYTE - bit counter for CRC 16 routine  
; BYTE - storage for string memory read  
;BYTE - index for string memory read  
;BYTE - temp storage for CRC routine  
equ  
42h  
equ  
equ  
equ  
equ  
43h  
44h  
45h  
46h  
Zero  
index  
savchr  
;
seedlo  
seedhi  
;
polyL  
polyH  
equ  
equ  
021h  
0F3h  
;initial seed for CRC reg lo byte  
;initial seed for CRC reg hi byte  
equ  
equ  
008h  
084h  
;polynomial low byte  
;polynomial high byte  
;====================================================================  
CRC Test Program  
;--------------------------------------------------------------------  
;
org  
0
; reset vector = 0000H  
;
clrf  
clrf  
goto  
PCLATH  
STATUS  
main  
; ensure upper bits of PC are cleared  
; ensure page bits are cleared  
; jump to start of program  
;
; ISR Vector  
;
org  
goto  
4
$
; start of ISR  
; jump to ISR when coded  
;
org  
20  
; start of main program  
main  
movlw  
movwf  
movlw  
seedhi  
accumh  
seedlo  
; setup intial CRC seed value.  
; This must be done prior to  
; sending string to CRC routine.  
Page | 65  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
movwf  
clrf  
accuml  
index  
;
; clear string read variables  
;
main1  
movlw  
movwf  
movfw  
call  
movwf  
movf  
HIGH InputStr  
PCLATH  
; point to LCD test string  
; latch into PCL  
index  
InputStr  
Zero  
; get index  
; get character  
; setup for terminator test  
; see if terminator  
Zero,f  
btfsc  
goto  
STATUS,Z  
main2  
; skip if not terminator  
; else terminator reached, jump out of loop  
call  
call  
incf  
goto  
CRC16  
; calculate new  
; send data to LCD  
; bump index  
; loop  
crc  
SENDUART  
index,f  
main1  
;
main2  
movlw  
call  
movlw  
call  
00h  
CRC16  
00h  
; shift accumulator 16 more bits.  
; This must be done after sending  
; string to CRC routine.  
;
CRC16  
;
;
comf  
comf  
accumh,f  
accuml,f  
; invert result  
;
movfw  
call  
movfw  
call  
accuml  
SENDUART  
accumh  
; get CRC low byte  
; send to LCD  
; get CRC hi byte  
; send to LCD  
SENDUART  
;
stop  
goto  
stop  
; word result of 0x93FA is in accumh/accuml  
;====================================================================  
; calculate CRC of input byte  
;--------------------------------------------------------------------  
CRC16  
movwf  
movwf  
savchr  
datareg  
; save the input character  
; load data register  
movlw .  
movwf  
8
j
; setup number of bits to test  
; save to incrementor  
_loop  
clrc  
rrf  
rrf  
; clear carry for CRC register shift  
; perform shift of data into CRC register  
;
datareg,f  
accumh,f  
accuml,f  
STATUS,C  
_notset  
polyL  
accuml,F  
polyH  
accumh,F  
rrf  
;
btfss  
goto  
movlw  
xorwf  
movlw  
xorwf  
; skip jump if if carry  
; otherwise goto next bit  
; XOR poly mask with CRC register  
;
;
;
_notset  
decfsz  
goto  
movfw  
return  
j,F  
_loop  
savchr  
; decrement bit counter  
; loop if not complete  
; restore the input character  
; return to calling routine  
;====================================================================  
; USER SUPPLIED Serial port transmit routine  
;--------------------------------------------------------------------  
Page | 66  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
SENDUART  
return  
; put serial xmit routine here  
;====================================================================  
; test string storage  
;--------------------------------------------------------------------  
org  
0100h  
;
InputStr  
addwf  
dt  
PCL,f  
7h,10h,"This is a test. ",0  
;
;====================================================================  
end  
Algorithm 4: “Visual Basic” Table Implementation  
Visual BASIC has its own challenges as a language (such as initializing static arrays), and it is also  
challenging to use Visual BASIC to work with “binary” (arbitrary length character data possibly containing  
nulls—such as the “data” portion of the CFA633 packet) data. This routine was adapted from the C table  
implementation. The complete project can be found in our forums.  
'Written by Crystalfontz America, Inc. 2004 http://www.crystalfontz.com  
'Free code, not copyright copyleft or anything else.  
'Some visual basic concepts taken from:  
'http://www.planet-source code.com/vb/scripts/ShowCode.asp?txtCodeId=21434&lngWId=1  
'most of the algorithm is from functions in 633_WinTest:  
'http://www.crystalfontz.com/products/633/633_WinTest.zip  
'Full zip of the project is available in our forum:  
'https://www.crystalfontz.com/forum/showthread.php?postid=9921#post9921  
Private Type WORD  
Lo As Byte  
Hi As Byte  
End Type  
Private Type PACKET_STRUCT  
command As Byte  
data_length As Byte  
data(22) As Byte  
crc As WORD  
End Type  
Dim crcLookupTable(256) As WORD  
Private Sub MSComm_OnComm()  
'Leave this here  
End Sub  
'My understanding of visual basic is very limited--however it appears that  
there is no way to initialize an array of structures.  
Sub Initialize_CRC_Lookup_Table()  
crcLookupTable(0).Lo = &H0  
crcLookupTable(0).Hi = &H0  
. . .  
'For purposes of brevity in this Datasheet, I have removed 251 entries of this  
table, the 'full source is available in our forum:  
'https://www.crystalfontz.com/forum/showthread.php?postid=9921#post9921  
. . .  
crcLookupTable(255).Lo = &H78  
crcLookupTable(255).Hi = &HF  
End Sub  
Page | 67  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
'This function returns the CRC of the array at data for length positions  
Private Function Get_Crc(ByRef data() As Byte, ByVal length As Integer) As WORD  
Dim Index As Integer  
Dim Table_Index As Integer  
Dim newCrc As WORD newCrc.Lo = &HFF  
newCrc.Hi = &HFF  
For Index = 0 To length - 1  
'exclusive-or the input byte with the low-order byte of the CRC register  
'to get an index into crcLookupTable  
Table_Index = newCrc.Lo Xor data(Index)  
'shift the CRC register eight bits to  
the right newCrc.Lo = newCrc.Hi  
newCrc.Hi = 0  
' exclusive-or the CRC register with the contents of Table at Table_Index  
newCrc.Lo = newCrc.Lo Xor crcLookupTable(Table_Index).Lo  
newCrc.Hi = newCrc.Hi Xor crcLookupTable(Table_Index).Hi  
Next Index  
'Invert & return newCrc  
Get_Crc.Lo = newCrc.Lo Xor &HFF  
Get_Crc.Hi = newCrc.Hi Xor &HFF  
End Function  
Private Sub Send_Packet(ByRef packet As PACKET_STRUCT)  
Dim Index As Integer  
'Need to put the whole packet into a linear array  
'since you can’t do type overrides. VB, gotta love it.  
Dim linear_array(26) As Byte  
linear_array(0) = packet.command  
linear_array(1) = packet.data_length  
For Index = 0 To packet.data_length - 1  
linear_array(Index + 2) = packet.data(Index)  
Next Index  
packet.crc = Get_Crc(linear_array, packet.data_length + 2)  
'Might as well move the CRC into the linear array too  
linear_array(packet.data_length + 2) = packet.crc.Lo  
linear_array(packet.data_length + 3) = packet.crc.Hi  
'Now a simple loop can dump it out the port.  
For Index = 0 To packet.data_length + 3  
MSComm.Output = Chr(linear_array(Index))  
Next Index  
End Sub  
Algorithm 5: “Java” Table Implementation  
This code was posted in our forum by user “norm” as a working example of a Java CRC calculation.  
public class CRC16 extends Object  
{
public static void main(String[] args)  
{
byte[] data = new byte[2];  
// hw - fw  
data[0] = 0x01;  
data[1] = 0x00;  
System.out.println("hw -fw req");  
System.out.println(Integer.toHexString(compute(data)));  
// ping  
data[0] = 0x00;  
data[1] = 0x00;  
System.out.println("ping");  
System.out.println(Integer.toHexString(compute(data)));  
Page | 68  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
// reboot  
data[0] = 0x05;  
data[1] = 0x00;  
System.out.println("reboot");  
System.out.println(Integer.toHexString(compute(data)));  
// clear lcd  
data[0] = 0x06;  
data[1] = 0x00;  
System.out.println("clear lcd");  
System.out.println(Integer.toHexString(compute(data)));  
// set line 1  
data = new byte[18];  
data[0] = 0x07;  
data[1] = 0x10;  
String text = "Test Test Test ";  
byte[] textByte = text.getBytes();  
for (int i=0; i < text.length(); i++) data[i+2] = textByte[i];  
System.out.println("text 1");  
System.out.println(Integer.toHexString(compute(data)));  
}
private CRC16()  
{
}
private static final int[] crcLookupTable =  
{
0x00000,0x01189,0x02312,0x0329B,0x04624,0x057AD,0x06536,0x074BF,  
0x08C48,0x09DC1,0x0AF5A,0x0BED3,0x0CA6C,0x0DBE5,0x0E97E,0x0F8F7,  
0x01081,0x00108,0x03393,0x0221A,0x056A5,0x0472C,0x075B7,0x0643E,  
0x09CC9,0x08D40,0x0BFDB,0x0AE52,0x0DAED,0x0CB64,0x0F9FF,0x0E876,  
0x02102,0x0308B,0x00210,0x01399,0x06726,0x076AF,0x04434,0x055BD,  
0x0AD4A,0x0BCC3,0x08E58,0x09FD1,0x0EB6E,0x0FAE7,0x0C87C,0x0D9F5,  
0x03183,0x0200A,0x01291,0x00318,0x077A7,0x0662E,0x054B5,0x0453C,  
0x0BDCB,0x0AC42,0x09ED9,0x08F50,0x0FBEF,0x0EA66,0x0D8FD,0x0C974,  
0x04204,0x0538D,0x06116,0x0709F,0x00420,0x015A9,0x02732,0x036BB,  
0x0CE4C,0x0DFC5,0x0ED5E,0x0FCD7,0x08868,0x099E1,0x0AB7A,0x0BAF3,  
0x05285,0x0430C,0x07197,0x0601E,0x014A1,0x00528,0x037B3,0x0263A,  
0x0DECD,0x0CF44,0x0FDDF,0x0EC56,0x098E9,0x08960,0x0BBFB,0x0AA72,  
0x06306,0x0728F,0x04014,0x0519D,0x02522,0x034AB,0x00630,0x017B9,  
0x0EF4E,0x0FEC7,0x0CC5C,0x0DDD5,0x0A96A,0x0B8E3,0x08A78,0x09BF1,  
0x07387,0x0620E,0x05095,0x0411C,0x035A3,0x0242A,0x016B1,0x00738,  
0x0FFCF,0x0EE46,0x0DCDD,0x0CD54,0x0B9EB,0x0A862,0x09AF9,0x08B70,  
0x08408,0x09581,0x0A71A,0x0B693,0x0C22C,0x0D3A5,0x0E13E,0x0F0B7,  
0x00840,0x019C9,0x02B52,0x03ADB,0x04E64,0x05FED,0x06D76,0x07CFF,  
0x09489,0x08500,0x0B79B,0x0A612,0x0D2AD,0x0C324,0x0F1BF,0x0E036,  
0x018C1,0x00948,0x03BD3,0x02A5A,0x05EE5,0x04F6C,0x07DF7,0x06C7E,  
0x0A50A,0x0B483,0x08618,0x09791,0x0E32E,0x0F2A7,0x0C03C,0x0D1B5,  
0x02942,0x038CB,0x00A50,0x01BD9,0x06F66,0x07EEF,0x04C74,0x05DFD,  
0x0B58B,0x0A402,0x09699,0x08710,0x0F3AF,0x0E226,0x0D0BD,0x0C134,  
0x039C3,0x0284A,0x01AD1,0x00B58,0x07FE7,0x06E6E,0x05CF5,0x04D7C,  
0x0C60C,0x0D785,0x0E51E,0x0F497,0x08028,0x091A1,0x0A33A,0x0B2B3,  
0x04A44,0x05BCD,0x06956,0x078DF,0x00C60,0x01DE9,0x02F72,0x03EFB,  
0x0D68D,0x0C704,0x0F59F,0x0E416,0x090A9,0x08120,0x0B3BB,0x0A232,  
0x05AC5,0x04B4C,0x079D7,0x0685E,0x01CE1,0x00D68,0x03FF3,0x02E7A,  
0x0E70E,0x0F687,0x0C41C,0x0D595,0x0A12A,0x0B0A3,0x08238,0x093B1,  
0x06B46,0x07ACF,0x04854,0x059DD,0x02D62,0x03CEB,0x00E70,0x01FF9,  
0x0F78F,0x0E606,0x0D49D,0x0C514,0x0B1AB,0x0A022,0x092B9,0x08330,  
0x07BC7,0x06A4E,0x058D5,0x0495C,0x03DE3,0x02C6A,0x01EF1,0x00F78  
};  
public static int compute(byte[] data)  
{
int newCrc = 0x0FFFF;  
for (int i = 0; i < data.length; i++ )  
{
int lookup = crcLookupTable[(newCrc ^ data[i]) & 0xFF];  
newCrc = (newCrc >> 8) ^ lookup;  
Page | 69  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
}
return(~newCrc);  
}
}
Algorithm 6: “Perl” Table Implementation  
This code was translated from the C version by one of our customers.  
#!/usr/bin/perl  
use strict;  
my @CRC_LOOKUP =  
(
0x00000,0x01189,0x02312,0x0329B,0x04624,0x057AD,0x06536,0x074BF,  
0x08C48,0x09DC1,0x0AF5A,0x0BED3,0x0CA6C,0x0DBE5,0x0E97E,0x0F8F7,  
0x01081,0x00108,0x03393,0x0221A,0x056A5,0x0472C,0x075B7,0x0643E,  
0x09CC9,0x08D40,0x0BFDB,0x0AE52,0x0DAED,0x0CB64,0x0F9FF,0x0E876,  
0x02102,0x0308B,0x00210,0x01399,0x06726,0x076AF,0x04434,0x055BD,  
0x0AD4A,0x0BCC3,0x08E58,0x09FD1,0x0EB6E,0x0FAE7,0x0C87C,0x0D9F5,  
0x03183,0x0200A,0x01291,0x00318,0x077A7,0x0662E,0x054B5,0x0453C,  
0x0BDCB,0x0AC42,0x09ED9,0x08F50,0x0FBEF,0x0EA66,0x0D8FD,0x0C974,  
0x04204,0x0538D,0x06116,0x0709F,0x00420,0x015A9,0x02732,0x036BB,  
0x0CE4C,0x0DFC5,0x0ED5E,0x0FCD7,0x08868,0x099E1,0x0AB7A,0x0BAF3,  
0x05285,0x0430C,0x07197,0x0601E,0x014A1,0x00528,0x037B3,0x0263A,  
0x0DECD,0x0CF44,0x0FDDF,0x0EC56,0x098E9,0x08960,0x0BBFB,0x0AA72,  
0x06306,0x0728F,0x04014,0x0519D,0x02522,0x034AB,0x00630,0x017B9,  
0x0EF4E,0x0FEC7,0x0CC5C,0x0DDD5,0x0A96A,0x0B8E3,0x08A78,0x09BF1,  
0x07387,0x0620E,0x05095,0x0411C,0x035A3,0x0242A,0x016B1,0x00738,  
0x0FFCF,0x0EE46,0x0DCDD,0x0CD54,0x0B9EB,0x0A862,0x09AF9,0x08B70,  
0x08408,0x09581,0x0A71A,0x0B693,0x0C22C,0x0D3A5,0x0E13E,0x0F0B7,  
0x00840,0x019C9,0x02B52,0x03ADB,0x04E64,0x05FED,0x06D76,0x07CFF,  
0x09489,0x08500,0x0B79B,0x0A612,0x0D2AD,0x0C324,0x0F1BF,0x0E036,  
0x018C1,0x00948,0x03BD3,0x02A5A,0x05EE5,0x04F6C,0x07DF7,0x06C7E,  
0x0A50A,0x0B483,0x08618,0x09791,0x0E32E,0x0F2A7,0x0C03C,0x0D1B5,  
0x02942,0x038CB,0x00A50,0x01BD9,0x06F66,0x07EEF,0x04C74,0x05DFD,  
0x0B58B,0x0A402,0x09699,0x08710,0x0F3AF,0x0E226,0x0D0BD,0x0C134,  
0x039C3,0x0284A,0x01AD1,0x00B58,0x07FE7,0x06E6E,0x05CF5,0x04D7C,  
0x0C60C,0x0D785,0x0E51E,0x0F497,0x08028,0x091A1,0x0A33A,0x0B2B3,  
0x04A44,0x05BCD,0x06956,0x078DF,0x00C60,0x01DE9,0x02F72,0x03EFB,  
0x0D68D,0x0C704,0x0F59F,0x0E416,0x090A9,0x08120,0x0B3BB,0x0A232,  
0x05AC5,0x04B4C,0x079D7,0x0685E,0x01CE1,0x00D68,0x03FF3,0x02E7A,  
0x0E70E,0x0F687,0x0C41C,0x0D595,0x0A12A,0x0B0A3,0x08238,0x093B1,  
0x06B46,0x07ACF,0x04854,0x059DD,0x02D62,0x03CEB,0x00E70,0x01FF9,  
0x0F78F,0x0E606,0x0D49D,0x0C514,0x0B1AB,0x0A022,0x092B9,0x08330,  
0x07BC7,0x06A4E,0x058D5,0x0495C,0x03DE3,0x02C6A,0x01EF1,0x00F78);  
#
our test packet read from an enter key press over the serial line:  
#
#
#
type = 80  
(key press)  
(1 byte of data)  
data_length = 1  
data = 5  
my $type = '80';  
my $length = '01';  
my $data = '05';  
my $packet = chr(hex $type) .chr(hex $length) .chr(hex $data);  
my $valid_crc = '5584' ;  
print "A CRC of Packet ($packet) Should Equal($valid_crc)\n";  
my $crc = 0xFFFF ;  
printf("%x\n", $crc);  
Page | 70  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
foreach my $char (split //, $packet)  
{
# newCrc = (newCrc >> 8) ^ crcLookupTable[(newCrc ^ *bufptr++) & 0xff];  
# & is bitwise AND  
# ^ is bitwise XOR  
# >> bitwise shift right  
$crc = ($crc >> 8) ^ $CRC_LOOKUP[($crc ^ ord($char) ) & 0xFF] ;  
# print out the running crc at each byte  
printf("%x\n", $crc);  
}
# get the complement  
$crc = ~$crc ;  
$crc = ($crc & 0xFFFF) ;  
# print out the crc in hex  
printf("%x\n", $crc);  
Algorithm 7: For PIC18F8722 or PIC18F2685  
This code was written by customer Virgil Stamps of ATOM Instrument Corporation for our CFA635  
module.  
; CRC Algorithm for CrystalFontz CFA635 display (DB535)  
; This code written for PIC18F8722 or PIC18F2685  
;
; Your main focus here should be the ComputeCRC2 and  
; CRC16_ routines  
;
;===================================================================  
ComputeCRC2:  
movlb  
movwf  
RAM8  
dsplyLPCNT  
;w has the byte count  
;w  
nxt1_dsply:  
movf  
POSTINC1  
CRC16  
call  
decfsz  
goto  
dsplyLPCNT  
nxt1_dsply  
.0  
movlw  
;shift accumulator 16 more bits  
;invert result  
call  
CRC16  
movlw  
.0  
call  
CRC16  
comf  
dsplyCRC,F  
dsplyCRC+1,F  
comf  
return  
;===================================================================  
CRC16 movwf:  
dsplyCRCData  
movlw  
;w has the byte crc  
.8  
movwf  
dsplyCRCCount  
_cloop:  
bcf  
rrcf  
STATUS,C  
dsplyCRCData,f  
; clear carry for CRC register shift  
; perform shift of data into CRC  
; register  
rrcf  
rrcf  
dsplyCRC,F  
dsplyCRC+1,F  
STATUS,C  
notset  
0x84  
dsplyCRC,F  
btfss  
goto  
; skip jump if carry  
; otherwise goto next bit  
; XOR poly mask with CRC register  
_
movlw  
xorwf  
_notset:  
decfsz  
bra  
return  
dsplyCRCCount,F  
; decrement bit counter  
; loop if not complete  
cloop  
;===================================================================  
; example to clear screen  
Page | 71  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
dsplyFSR1_TEMP  
equ  
0x83A ;  
; 16-bit save for FSR1 for display  
; message handler  
dsplyCRC  
dsplyLPCNT  
equ  
equ  
0x83C  
0x83E  
; 16-bit CRC (H/L)  
; 8-bit save for display message  
; length - CRC  
dsplyCRCData  
dsplyCRCCount  
SendCount  
equ  
equ  
equ  
0x83F  
0x840  
0x841  
; 8-bit CRC data for display use  
; 8-bit CRC count for display use  
; 8-bit byte count for sending to  
; display  
RXBUF2  
TXBUF2  
equ  
equ  
0x8C0  
0x8E0  
; 32-byte receive buffer for  
; Display  
; 32-byte transmit buffer for  
; Display  
;-------------------------------------------------------------------  
ClearScreen:  
movlb  
movlw  
movwf  
movlw  
movwf  
movlw  
movwf  
call  
RAM8  
.0  
SendCount  
0xF3  
dsplyCRC  
0x21  
; seed ho for CRC calculation  
; seen lo for CRC calculation  
dsplyCRC+1  
ClaimFSR1  
0x06  
movlw  
movwf  
LFSR  
TXBUF2  
FSR1,TXBUF2  
SendCount,w  
TXBUF2+1  
BMD1  
movf  
movwf  
call  
; message data length  
goto  
SendMsg  
;===================================================================  
; send message via interrupt routine. The code is made complex due  
; to the limited FSR registers and extended memory space used  
;
; example of sending a string to column 0, row 0  
;-------------------------------------------------------------------  
SignOnL1:  
call  
ClaimFSR1  
lfsr  
SHOW  
movlw  
addwf  
movff  
FSR1,TXBUF2+4  
C0R0,BusName  
.2  
; set data string position  
; move string to TXBUF2  
;
;
SendCount  
SendCount,TXBUF2+1  
; insert message data length  
call  
BuildMsgDSPLY  
SendMsg  
call  
return  
;===================================================================  
; BuildMsgDSPLY used to send a string to LCD  
;-------------------------------------------------------------------  
BuildMsgDSPLY:  
movlw  
movwf  
movlw  
movwf  
LFSR  
movlw  
movwf  
0xF3  
dsplyCRC  
0x21  
; seed hi for CRC calculation  
dsplyCRC+1  
FSR1,TXBUF2  
0x1F  
; seed lo for CRC calculation  
; point at transmit buffer  
; command to send data to LCD  
; insert command byte from us to  
; CFA635  
TXBUF2  
BMD1  
ddwf  
call  
movf  
movwf  
movf  
movwf  
movlw .2  
SendCount,w  
ComputeCRC2  
dsplyCRC+1,w  
POSTINC1  
; + overhead  
; compute CRC of transmit message  
; append CRC byte  
; append CRC byte  
dsplyCRC,w  
POSTINC1  
Page | 72  
Crystalfontz  
www.crystalfontz.com  
CFA633-YYH-KS LCD Module  
Datasheet Release Date 2017-09-29  
Hardware v2.1 / Firmware s2.2  
return  
;===================================================================  
SendMsg:  
call  
ReleaseFSR1  
LFSR  
movff  
movff  
FSR0,TXBUF2  
FSR0H,irptFSR0  
FSR0L,irptFSR0+1  
; save interrupt use of FSR0  
movff  
bsf  
SendCount,TXBUSY2  
PIE2,TX2IE  
; set transmit interrupt enable  
; (bit 4)  
return  
;===================================================================  
; macro to move string to transmit buffer  
SHOW macro  
call  
src, stringname  
src  
MOVLF  
MOVLF  
MOVLF  
call  
upper stringname, TBLPTRU  
high stringname, TBLPTRH  
low stringname, TBLPTRL  
MOVE_STR  
endm  
;===================================================================  
MOVE_STR:  
tblrd  
movf  
bz  
*+  
TABLAT,w  
ms1b  
movwf  
incf  
goto  
POSTINC1  
SendCount  
MOVE_STR  
ms1b:  
return  
;===================================================================  
Page | 73  

相关型号:

SI9130DB

5- and 3.3-V Step-Down Synchronous Converters

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 202
-
VISHAY

SI9135LG-T1

SMBus Multi-Output Power-Supply Controller

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 202
-
VISHAY

SI9135LG-T1-E3

SMBus Multi-Output Power-Supply Controller

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 202
-
VISHAY

SI9135_11

SMBus Multi-Output Power-Supply Controller

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 202
-
VISHAY

SI9136_11

Multi-Output Power-Supply Controller

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 202
-
VISHAY

SI9130CG-T1-E3

Pin-Programmable Dual Controller - Portable PCs

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 202
-
VISHAY

SI9130LG-T1-E3

Pin-Programmable Dual Controller - Portable PCs

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 202
-
VISHAY

SI9130_11

Pin-Programmable Dual Controller - Portable PCs

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 202
-
VISHAY

SI9137

Multi-Output, Sequence Selectable Power-Supply Controller for Mobile Applications

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 202
-
VISHAY

SI9137DB

Multi-Output, Sequence Selectable Power-Supply Controller for Mobile Applications

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 202
-
VISHAY