CFA633-RDI-KU [CRYSTAIFONTZ]
INTELLIGENT LCD MODULE;型号: | CFA633-RDI-KU |
厂家: | Crystalfontz America, Inc. |
描述: | INTELLIGENT LCD MODULE CD |
文件: | 总86页 (文件大小:7883K) |
中文: | 中文翻译 | 下载: | 下载PDF数据表文档文件 |
Crystalfontz America, Incorporated
INTELLIGENT LCD MODULE
SPECIFICATIONS
Data Sheet Release 2012/02/21
for
CFA633-RDI-KU
Hardware Version: v2.0
Firmware Version: u2v1
Crystalfontz America, Incorporated
12412 East Saltese Avenue
Spokane Valley, WA 99216-0357
Phone: 888-206-9720
Fax:
Email: techinfo@crystalfontz.com
URL: www.crystalfontz.com
509-892-1203
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 2
DATA SHEET REVISION HISTORY
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 Data Sheet release, see
PCN #10402.
Data Sheet version: 2012/02/21
Added section on Accessories (Pg. 12). This section includes a table describing some useful
Crystalfontz cables in Buy Cables Separately (Pg. 13).
Illustration for Keypad Detail Drawing (Pg. 18) was improved to include more dimensions.
Added section on DC Characteristics (Pg. 24).
Added section on LED BACKLIGHT INFORMATION (Pg. 24). Please read this important
information.
In command 1 (0x01): Get Hardware & Firmware Version (Pg. 36), changed revision numbers
from
data[] = "CFA633:hX.X,yYvY"
XvX is the hardware revision, "2.0" for example
YvY is the firmware version, "V .0" for example
to
data[] = "CFA633:h#.#,y#v#"
X.X is the hardware revision, "h2.0" for example
Y.Y is the firmware version, "u2v1" for example
In command 4 (0x04): Store Current State As Boot State (Pg. 37), added the following note: “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.”
Command 10 (0x0A): Read 8 Bytes of LCD Memory (Pg. 41), corrected “data[0] is the
address code native to the LCD controller”
from
0x80 (\128) to 0x93 (\147) for DDRAM, line 1
0xC0 (\192) to 0xD3 (\211) for DDRAM, line 2
to
0x80 (\128) to 0x8F (\143) for DDRAM, line 1
0xC0 (\192) to 0xCF (\207) for DDRAM, line 2
In command 28 (0x1C): Set ATX Power Switch Functionality (Pg. 52), changed description to
reflect enhancement in firmware. From PCN #10402, “Added auto polarity switch. Improved
pulse length functionality, and added feature to hold until system off during power down.” Also
corrected “data[1]: (optional) length of power on & off pulses in 1/32 second”
from
255 = 8 sec
to
254 = pulse length
255 = pin held until power drops (length of time pin is held in active
state)
In Module Reliability (Pg. 61), please read important note added to the top of this section. Also,
we increased backlight specification from “70%” to “90%”.
In Algorithm 2B: “C” Improved Bit Shift Implementation (Pg. 72), added closing } to final line.
Additional minor text changes were made to make text easier to understand.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 3
Data Sheet Revision History (Continued)
Data Sheet version: v3.2
Changes since last revision:
Wherever listed, changed part numbers to reflect improvement from
“standard” to “wide temperature”.
- Operating temperature range from a “minimum 0°C to maximum +50°C”
to “minimum -20°C to +70°C maximum”.
- Storage temperature range from a “minimum-10°C to maximum +60°C”
to “minimum -30°C to +80°C maximum”.
Wherever listed, changed classification code for red variant part numbers
from “CFA633-RMC-KS” to “CFA633-RDI-KS” and from “CFA633-RMC-
KU” to “CFA633-RDI-KU”. The change from “M” to “C” reflects an
improvement in the glass from “STN” to “FFSTN”.
2011/06/01
In Physical Characteristics, decreased weight from 48 grams (typical) to
42 grams (typical). USB interface is integrated and no longer needs a
mounted USB interface board.
Revised illustrations in Module Outline Drawings to show layout changes
on the back of the PCB.
Revised Jumper Locations and Functions to reflect new PCB layout.
In Supply Voltages and Current typical current consumption, changed
specifications for +5v for logic (LCD + microcontroller) and +12v for
backlight (at 100%). For changes, see Hardware revision table above.
Illustrations throughout CONNECTION INFORMATION section have been
revised to reflect changes in PCB layout.
In addition to the list above, wherever needed, made minor modifications
in text and illustrations to improve clarity.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 4
Data Sheet Revision History (Continued)
Data Sheet version: v2.0
Changes since last revision (k1.9b):
The previous version had all three USB variants (CFA633-RDI-KU,
CFA633-TMI-KU, and CFA633-YYB-KU) in one datasheet. For this
version, a separate datasheet was made for each variant.
Wherever listed, deleted dash (“-”) from module part numbers to match
how they now appear on our website without the dash (“-”).
Wherever listed, added dash (“-”) to cable part numbers to match how they
now appear on our website.
Added boxed note “Fine Print” at the bottom of this Revision History.
Please read these disclaimers.
Wherever listed or shown, changed keypad dimensions from “10.5 mm” to
“12 mm” height and module overall depth with keypad from “24.10 mm” to
nominal “25.6 mm” nominal and “25.9 mm” maximum. We started this
gradual transition June 2010. See PCN 10282.
In Main Features,
- Deleted “Built-in reprogrammable microcontroller (factory operation)”
and “Expandable firmware and configurable hardware can be
customized to add specific features for your system needs (tooling fee
and minimum order may apply)”.
- Added “RoHS compliant”. All modules shipped since July 2006 are
RoHS compliant.
- Added “Factories have ISO certification”. Factories have had certification
for several years.
In ORDERING INFORMATION, added a list of all variants in the CFA633
series.
2010/09/28
In Physical Characteristics table,
- Corrected Active Area height from “11.2” to “11.5”. Also corrected this
dimension on website page under Tech Specs tab. Dimension was
correct in all drawings, including Module Outline Drawings. Dimension
has not changed.
- Added Character Pitch dimension.
- Changed weight from “45 grams” to “48 grams”. This weight includes the
USB interface board (PCB).
In Jumper Locations and Functions, updated information on closing and
opening jumpers.
Reworded “Temperature Range” section to Temperature and Humidity
Range and added humidity specification “RH from 10% to 90%
noncondensing”.
Expanded and improved information on power and control connections.
See CONNECTION INFORMATION, including:
- Added source for connector loaded at “PWR” in Standard (Non-ATX)
Power Connection.
- Revised ATX Power Supply Power and Control Connections.
- Added USB Host and Power Connections with URLs for driver download
and installation instructions.
Connections have not changed.
In command 4 (0x04): Store Current State As Boot State, deleted
reference to Command 32 which is reserved for CFA631 key legends.
In command 5 (0x05): Reboot CFA633, Reset Host, or Power Off Host,
added important notes about timing of command packets.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 5
Data Sheet Revision History (Continued)
In command 8 (0x08): Set LCD Contents, Line 2, corrected screen display
text from "data[] = TOP line's display content (must supply
16 bytes)" to "data[] = BOTTOM line's display content (must
supply 16 bytes)".
In command 11 (0x0B): Set LCD Cursor Position, corrected from
data[0] = column (0-19 valid)
data[1] = row (0-3 valid)
to
data[0] = column (0-15 valid)
data[1] = row (0-1 valid)
This command was described correctly in Data Sheet versions published
2005-05-19 and earlier. It was described incorrectly in Data Sheet versions
published 2005-09-06 and later.
In command 12 (0x0C): Set LCD Cursor Style, added note to “3 =
blinking block plus underscore”. “Note: This behavior is not
the same as the CFA533 series which is: blinking
underscore.”
In command 14 (0x0E): Set LCD & Keypad Backlight, corrected return
packet from "type: 0x40 | 0x0D = 0x4D = 7710" to "type: 0x40 |
0x0E = 0x4E = 7810".
In command 22 (0x16): Send Command Directly to the LCD Controller,
corrected controller part number from “The LCD controller on the CFA633
is Samsung S6A0073 compatible” to “The controller on the CFA633 is
HD44780 compatible”. Controller has not changed.
2010/09/28
In command 26 (0x1A): Set Fan Tachometer Glitch Filter, corrected return
packet "type" from "25" to "26".
In command 27 (0x1B): Query Fan Power & Fail-Safe Mask, corrected
return packet "type" from "25" to "27".
In command 33 (0x21): Set Baud Rate,
- Corrected "type" from "27” to "33".
- Corrected from "data_length = 1" to "data_length = 0".
In command 34 (0x22): Set or Set and Configure GPIO Pins, corrected
specification of GPIO pull-up/pull-down mode resistance values from
"approximately 5Ω" to "approximately 5kΩ".
In CHARACTER GENERATOR ROM (CGROM), corrected explanation of
how to find a code for a given character.
Added Module Longevity (EOL / Replacement Policy).
Revised CARE AND HANDLING PRECAUTIONS section.
Corrected label on Figure 1 Test Circuit Schematic in APPENDIX A:
CONNECTING A DS2450 1-WIRE QUAD A/D CONVERTER.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 6
Data Sheet Revision History (Continued)
In APPENDIX C: SAMPLE CODE (INCLUDES ALGORITHMS TO
CALCULATE THE CRC),
- Added section with hypertext links to our free downloadable code.
- In sample code for Algorithm 1: “C” Table Implementation and Algorithm
2: “C” Bit Shift Implementation, added typedefs for "ubyte" and "word".
- Added Algorithm 2B: “C” Improved Bit Shift Implementation. This is a
simplified algorithm that implements the CRC.
- In Algorithm 6: “Perl” Table Implementation, corrected code from "my
$packet = $type . $length . $data ;" to "my $packet =
chr(hex $type) .chr(hex $length) .chr(hex $data);".
- Added Algorithm 7: For PIC18F8722 or PIC18F2685).
In APPENDIX D: QUALITY ASSURANCE STANDARDS, added
information on Color Definitions.
2010/09/28
Improved drawing for Definition of Active Area And Viewing Area.
Added APPENDIX E: VISUAL INSPECTION OF SOLDER BRIDGES.
In addition to list above, wherever needed, made minor modifications in
text and illustrations to improve clarity.
Start Public Version Tracking.
Data Sheet version: vk1.9b
2005/08/01
Changes since last released version (vk1.9a):
Added note on length of command 30 reply (see 30: Read Reporting &
Status.
The Fine Print
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.
The information in this publication is deemed accurate but is not guaranteed.
Company and product names mentioned in this publication are trademarks or registered trademarks of their respective
owners.
Copyright © 2012 by Crystalfontz America, Inc., 12412 East Saltese Avenue, Spokane Valley, WA 99216-0357 U.S.A.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 7
CONTENTS
INTRODUCTION- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10
Comparison to CFA533 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10
Main Features - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10
Module Classification Information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11
Ordering Information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11
Accessories - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12
Customize Your Module (Connectors and Cable Choices) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12
Kit Configurations (Brackets with Overlays and Cable Choices) - - - - - - - - - - - - - - - - - - - - - - - - - - 12
Buy Cables Separately - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 13
MECHANICAL CHARACTERISTICS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 14
Physical Characteristics - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 14
Module Outline Drawings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 15
Jumper Locations and Functions (All Interfaces) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 17
Keypad Detail Drawing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 18
Panel Mounting Application Cutout Drawing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 19
OPTICAL CHARACTERISTICS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 20
ELECTRICAL SPECIFICATIONS- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21
System Block Diagram - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21
Supply Voltages and Current - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22
Absolute Maximum Ratings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 23
DC Characteristics - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 24
ESD (Electro-Static Discharge) Specifications - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 24
LED BACKLIGHT INFORMATION - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 24
CONNECTION INFORMATION - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 25
Standard Power Connection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 25
ATX Power Supply and Control Connections - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 26
USB Host and Power Connections - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 29
Fan Connections - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 29
Connect Optional Crystalfontz WR-DOW-Y17 Temperature Sensors - - - - - - - - - - - - - - - - - - - - - - 32
HOST COMMUNICATIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32
Packet Structure - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 33
About Handshaking - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 34
Report Codes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 34
0x80: Key Activity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 34
0x81: Fan Speed Report - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 35
0x82: Temperature Sensor Report - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 35
Command Codes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 36
0 (0x00): Ping Command - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 36
1 (0x01): Get Hardware & Firmware Version - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 36
2 (0x02): Write User Flash Area - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 37
3 (0x03): Read User Flash Area - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 37
4 (0x04): Store Current State As Boot State - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 37
5 (0x05): Reboot CFA633, Reset Host, or Power Off Host - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 38
6 (0x06): Clear LCD Screen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 40
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 8
CONTENTS, CONTINUED
7 (0x07): Set LCD Contents, Line 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 40
8 (0x08): Set LCD Contents, Line 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 41
9 (0x09): Set LCD Special Character Data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 41
10 (0x0A): Read 8 Bytes of LCD Memory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 41
11 (0x0B): Set LCD Cursor Position - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 42
12 (0x0C): Set LCD Cursor Style - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 42
13 (0x0D): Set LCD Contrast - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 42
14 (0x0E): Set LCD & Keypad Backlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 43
16 (0x10): Set Up Fan Reporting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 43
17 (0x11): Set Fan Power - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 43
18 (0x12): Read DOW Device Information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 45
19 (0x13): Set Up Temperature Reporting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 46
20 (0x14): Arbitrary DOW Transaction - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 47
21 (0x15): Set Up Live Fan or Temperature Display - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 47
22 (0x16): Send Command Directly to the LCD Controller - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 48
23 (0x17): Configure Key Reporting - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 48
24 (0x18): Read Keypad, Polled Mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 49
25 (0x19): Set Fan Power Fail-Safe - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 49
26 (0x1A): Set Fan Tachometer Glitch Filter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 50
27 (0x1B): Query Fan Power & Fail-Safe Mask - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 51
28 (0x1C): Set ATX Power Switch Functionality - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 52
29 (0x1D): Enable/Disable and Reset the Watchdog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 55
30: Read Reporting & Status - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 55
31 (0x1F): Send Data to LCD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 56
32: Reserved for CFA631 Key Legends - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 56
33 (0x21): Set Baud Rate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 56
34 (0x22): Set or Set and Configure GPIO Pins - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 56
35 (0x23): Read GPIO Pin Levels and Configuration State - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 58
CHARACTER GENERATOR ROM (CGROM) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 60
LCD MODULE RELIABILITY AND LONGEVITY - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 61
Module Reliability - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 61
Module Longevity (EOL / Replacement Policy) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 61
CARE AND HANDLING PRECAUTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 62
APPENDIX A: CONNECTING A DS2450 1-WIRE QUAD A/D CONVERTER - - - - - - - - - - - - - - - - - - - - - 64
APPENDIX B: CONNECTING A DS1963S SHA IBUTTON- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 66
APPENDIX C: DEMONSTRATION SOFTWARE AND SAMPLE CODE- - - - - - - - - - - - - - - - - - - - - - - - - 69
Sample Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 69
Algorithms to Calculate the CRC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 69
Algorithm 1: “C” Table Implementation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 69
Algorithm 2: “C” Bit Shift Implementation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 70
Algorithm 2B: “C” Improved Bit Shift Implementation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 72
Algorithm 3: “PIC Assembly” Bit Shift Implementation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 72
Algorithm 4: “Visual Basic” Table Implementation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 74
Algorithm 5: “Java” Table Implementation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 75
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 9
Algorithm 6: “Perl” Table Implementation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 77
Algorithm 7: For PIC18F8722 or PIC18F2685 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 78
APPENDIX D: QUALITY ASSURANCE STANDARDS- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 81
LIST OF FIGURES
Figure 1. Bracket with Aluminum Overlay - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12
Figure 2. CFA633 Module Outline Drawing (two pages below) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 15
Figure 3. Jumper Locations and Functions (All Interfaces) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 17
Figure 4. Keypad Detail Drawing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 18
Figure 5. Panel Mounting Application Cutout Drawing for Optional Bracket - - - - - - - - - - - - - - - - - - - - - - 19
Figure 6. Definition of 6:00 O'clock and 12:00 O'clock Viewing Angles- - - - - - - - - - - - - - - - - - - - - - - - - - 20
Figure 7. System Block Diagram - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21
Figure 8. Standard Power Supply Connection through J_PWR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 25
Figure 9. ATX Power Supply and Control Connections- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 27
Figure 10. ATX Power Supply and Control Using Crystalfontz WR-PWR-Y14 Cable - - - - - - - - - - - - - - - - - 28
Figure 11. Four Fan Connectors - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 29
Figure 12. Graph showing fan PWM power (% on time) for various fan RPM - - - - - - - - - - - - - - - - - - - - - - 30
Figure 13. J_DOW Connection for WR-DOW-Y17 Temperature Sensor - - - - - - - - - - - - - - - - - - - - - - - - - 32
Figure 14. Character Generated ROM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 60
Appendix A, Figure 1. Test Circuit Schematic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -64
Appendix B, Figure 1.Connecting DS1963S SHA iButton using DS9094 iButton Clip - - - - - - - - - - - - - - - - -66
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 10
INTRODUCTION
COMPARISON TO CFA533
If your project does not need the fan connections, the CFA533 family is an economical replacement for the CFA633
family. In November 2010, we issued a Technical Bulletin that describes the differences between the CFA533 family and
three versions of the CFA633 family. Please see Part Change Notice #10291.
MAIN FEATURES
16 characters x 2 lines LCD with keypad and high-level interface. Will fit nicely in a 1U rack mount case (35 mm
overall height).
Module has a 6 o’clock viewing direction. See Definition of 6 O'clock and 12:00 O'clock Viewing Angles (Pg. 20).
Bidirectional 19200 / 115200 baud ESD-protected RS-232 interface.
Edge-lit red LED backlight with negative FFSTN near-black transmissive mode LCD. Displays red characters on
dark red background. Integrated red LED backlit 6-button translucent silicone keypad. The display can be read in
normal office lighting and in dark areas. Not recommended for use in sunlight; may be washed out.
An optional 5.25-inch half-height drive bay kit with mounting bracket is available. See CFA633 Kit Configurator.
Fully decoded keypad: any key combination is valid and unique.
Robust packet based communications protocol with 16-bit CRC.
Nonvolatile memory capability (EEPROM):
Customize the “power-on” display settings.
16-byte “scratch” register for storing IP address, netmask, system serial number . . .
Firmware support for CFA633-RDI-KU allows:
ATX power supply control functionality allows the buttons on the CFA633-RDI-KU to replace the Power and
Reset switches on your system, simplifying front panel design.
Four fan connectors with RPM monitoring and variable PWM fan power control. Fail-safe fan power settings
allows safe host fan control based on temperature. See 25 (0x19): Set Fan Power Fail-Safe.
Add up to 32 Crystalfontz WR-DOW-Y17 cables with DOW (Dallas One-Wire) DS18B20 temperature sensors.
Monitor temperatures at up to 0.5°C absolute accuracy.
Hardware watchdog can reset host system on host software failure.
“Live Display” shows up to eight temperature or four fan readings without host intervention, allowing fans and
temperatures to be shown immediately at boot, even before the host operating system is loaded.
RoHS compliant.
Factories have ISO certification.
Product materials are in compliance with the regulations related to the EU Directive 2006/121/EC for Registration,
Evaluation, Authorization and Restriction of Chemicals (REACH).
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 11
MODULE CLASSIFICATION INFORMATION
CFA 633 - R D I - K U
Brand
Crystalfontz America, Inc.
633
Model Identifier
Backlight Type & Color
R – LED, red
Fluid Type, Image (positive or negative), & LCD Glass Color
D – FFSTN, negative near-black
Polarizer Film Type, Temperature Range, & View Angle
(O ‘Clock)
1
I – Transmissive, Wide Temperature Range , 6:00
Special Code 1
Special Code 2
K – Manufacturer’s code
U – USB
1
Wide Temperature Range is -20°C minimum to +70°C maximum.
ORDERING INFORMATION
LCD GLASS
COLOR
POLARIZER
FILM
PART NUMBER
FLUID
FFSTN
IMAGE
BACKLIGHT COLOR/TYPE
LCD: red edge LEDs
CFA633-RDI-KU
(USB)
near-black
negative
transmissive
Keypad: red LEDs
Additional variants (same form factor, different LCD mode or backlight):
CFA633-TFH-KU
(“full swing” RS-232)
LCD: white edge LEDs
Keypad: white LEDs
FSTN
STN
neutral
blue
positive
negative
positive
negative
positive
negative
positive
transflective
transmissive
transflective
transmissive
transflective
transmissive
transflective
CFA633-TMI-KU
(USB)
LCD: white edge LEDs
Keypad: blue LEDs
CFA633-YYH-KU
(USB)
LCD: yellow-green edge LEDs
Keypad: yellow-green LEDs
STN
yellow-green
near-black
neutral
CFA633-RDI-KS
(“full swing” RS-232)
LCD: red edge LEDs
Keypad: red LEDs
FFSTN
FSTN
STN
CFA633-TFH-KS
(“full swing” RS-232)
LCD: white edge LEDs
Keypad: white LEDs
CFA633-TMI-KS
(“full swing” RS-232)
LCD: white edge LEDs
Keypad: blue LEDs
blue
CFA633-YYH-KS
(“full swing” RS-232)
LCD: yellow-green edge LEDs
Keypad: yellow-green LEDs
STN
yellow-green
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 12
ACCESSORIES
Customize Your Module (Connectors and Cable Choices)
Go to the web page for CFA633-RDI-KU. After you click on the “Customize and Add to Cart” button, you will see a list of
questions for different cables and connectors.
Kit Configurations (Brackets with Overlays and Cable Choices)
Kits with modules are available here: https://www.crystalfontz.com/products/select_kit.html.
The kits have these accessories:
Bracket: A 5.25-inch half-height drive bay mounting bracket.
Overlay: An overlay for the front of module with a display window of thick hard-coated polycarbonate. Overlays are
sold with the bracket. Overlay choices are silver brushed anodized aluminum, beige plastic, and black plastic.
Cables: Three choices. A kit may have one to five cables.
Figure 1. Bracket with Aluminum Overlay
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 13
Buy Cables Separately
Cable lengths are approximate. Common configurations are described in the section CONNECTION
INFORMATION (Pg. 25). Additional cables are available on our website.
Crystalfontz
Cable
Description
All cables are RoHS compliant
WR-PWR-Y12
~13 inches
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.
The cable has two different types of USB connectors, one smaller than the other. Connect the cable’s
smaller 2mm female USB connector to the module’s USB connector. Connect the cable’s larger USB-A
female connector to host’s USB-A connector.
WR-USB-Y03
~6.5 feet
The cable has two different types of USB connectors, one smaller than the other. Connect cable’s smaller
micro-B USB female connector to module’s micro-B USB connector. Connect cable’s larger USB-A female
connector to host’s USB-A connector.
WR-USB-Y27
~6 feet
Connect cable’s micro-B USB female connector to module’s micro-B USB connector. Connect cable’s sin-
gle piece 4-pin 0.1" female connector to USB pins on host’s motherboard. For correct orientation, note the
+5v location on the 4-pin connector.
WR-USB-Y34
~27 inches
Use this ATX power cable to turn an ATX power supply on and off, or power cycle the host through the
module. 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”. Connect the cable’s male 7-pin connector
to the module’s J8 female connector.
WR-PWR-Y14
~24 inches
Connect up to four cables to connect up to four fans. Connect cable’s 3-pin male connector to module’s
connectors labeled FAN1, FAN2, FAN3, or FAN4. Connect cable’s 3-pin female connector to a fan’s con-
nector. (Fans are not sold by Crystalfontz.)
WR-FAN-X01
~16 inches
WR-DOW-Y17
~12 inches + ~12
inches between
connectors
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”.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 14
MECHANICAL CHARACTERISTICS
PHYSICAL CHARACTERISTICS
ITEM
SPECIFICATION
Module Overall Dimensions
Width and Height 110.5 (W) x 35.0 (H)
Depth Without Keypad 20.1
Nominal Depth With Keypad 25.6
Maximum Depth With Keypad 25.9
Viewing Area
Active Area
Character Size
Character Pitch
Dot Size
61.0 (W) x 15.8 (H)
56.20 (W) x 11.5 0(H)
2.95 (W) x 5.55 (H)
3.55 (W) x 5.95 (H)
0.55 (W) x 0.65 (H)
0.60 (W) x 0.70 (H)
Dot Pitch
Keystroke Travel (approximate) 2.4
Weight 42 grams (typical)
110.50 Overall ( PCB )
75.00 PCB Mounting Holes
30.50 M.H.
20.00
68.90 Bezel
25.90 Maximum
25.60 Nominal
61.00 Viewing Area
56.20 Active Area
12.00
12.00
J_PWR FAN2
J_DOW
FAN1
FAN3
FAN4
J8
J_PROG
2.50
1.60
5.55
9.50
See Character
Detail A
3.55
2.95
11.90
.60
.55
See Pixel
Detail B
.05
Pixel Detail B
.60
Character Detail A
Note: Tolerance is 0.5 mm unless specified.
copyright © 2012 by
Part No.(s):
Scale:
Units:
Drawing Number:
Not to scale
CFA633_master
CFA633-xxx-KU
Crystalfontz America, Inc.
Date:
Sheet:
www.crystalfontz.com/products/
of
2012/02/13
1
2
Millimeters
FAN2 J_PWR
FAN1
FAN3
FAN4
28.00
8.00
J_PWR
FAN2
J_DOW FAN1
v2.0
CRYSTALFONTZ
CFA-633
FAN3
FAN4
J_USB
c 2010
Crystalfontz
America, Inc.
http://www.crystalfontz.com
China
1
Rohs 94v0
J_PROG
J8
Keypad Pull-Through (3)
Note: Tolerance is 0.5 mm unless specified.
copyright © 2012 by
Part No.(s):
Scale:
Not to scale
Units:
Millimeters
Drawing Number:
CFA633_master
Date:
CFA633-xxx-KU
Crystalfontz America, Inc.
Sheet:
www.crystalfontz.com/products/
of
2012/02/13
2
2
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 17
JUMPER LOCATIONS AND FUNCTIONS (ALL INTERFACES)
All jumpers are configurable but not all jumpers will affect your interface (serial or USB). Close jumpers by melting a ball
of solder across their gap. Reopen the jumpers by removing the solder with solder wick.
J_DOW
I/O
FAN1
FAN2
J_PWR
JP8
JP7
+5V
GND
GND
1
TACH
PWR
GND
GND
D+
J_USB
D-
TACH
PWR
GND
PWR
JP11
JP12
c
2010
Crystalfontz
America, Inc.
China
//
7
1
J8
JPUSBPWR
JPGPIO1
JP13JP10 JP1 JP3 JP5
JP2 JP4 JP6
J_PROG
CFA633 HW v2.0 Jumper Locations And Functions
Figure 3. Jumper Locations and Functions (All Interfaces)
Color: Red
Pantone 032U
5.0
LED dice dimension:
1.6mm(L)x0.8mm(W)x0.8mm(H)
2.8
2.0
3.0
2.0
17.5 0.2
12.343
17.5 0.2
12.343
12.0
11.0
10.0
10.0
7.5
2.0
1.5
20.0 0.2
U
2.8
5.0
Color: Black
E
Pantone Black
5.0
1.0
L
R
S
D
11.814
10.0
0.7
Color: Green
Pantone 361U
1.65
Notes:
1. Material: silicone rubber,
hardness durometer 50 Shore A
2. Carbon coated
14.0 0.2
3. Lifetime: 1 million keystrokes
4. Resistance: Less than 100 ꢀ
5. Actuation Force: 80~120 grams
6. Silicone rubber color: translucence white
7. All comers have a fillet radius of 0.75mm
3-1.5
3-2.5
2.00.0
2.35
2.55
5.35
6.5
copyright © 2012 by
Part No.(s):
Scale:
Units:
Drawing Number:
Not to scale
CFA633_master
CFA633 Family
Keypad Detail
Crystalfontz America, Inc.
Date:
Sheet:
www.crystalfontz.com/products/
of
2012/02/13
1
1
Millimeters
75.00
15.00
D
15.50
D
D
D
5-Ø2.16 PTH
5-Ø3.66 Pad
D
69.21
2.90
Cutout Detail
Detail A
Detail B
15.00
See Keypad Cutout Detail
D
D
90°
90°
D
1.39
Detail C
12.01
21.77
24.01
33.41
Keypad Cutout Detail
Detail A
Detail B
Detail C
Typical mounting hardware at locations "D" (5 places):
ꢀ
ꢀ
ꢀ
ꢀ
PEM FH-256-8
Bivar Inc. 9913-5 mm Spacer
2-56 "Small Profile" Hex Nut
Use appropriate screen printed overlay to cover display bezel
and mounting hardware, and to protect LCD from scratching.
Sample fabrication drawings are available on request.
copyright © 2012 by
Part No.(s):
Scale:
Not to scale
Units:
Millimeters
Drawing Number:
CFA633 Family
Panel Mounting
Application Detail
CFA633_master
Crystalfontz America, Inc.
Date:
Sheet:
www.crystalfontz.com/products/
of
2012/02/13
1
1
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 20
OPTICAL CHARACTERISTICS
Viewing Direction
6 o’clock
Definition of 6 O'clock and 12:00 O'clock Viewing Angles
This module has a 6:00 o’clock viewing angle.
Eyes look down
Eyes look up
6:00 O’Clock
Bottom Viewing Angle
12:00 O’Clock
Top Viewing Angle
Figure 6. Definition of 6:00 O'clock and 12:00 O'clock Viewing Angles
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 21
ELECTRICAL SPECIFICATIONS
SYSTEM BLOCK DIAGRAM
Additional
Analog or
16 COM
40 SEG
Expansion
Digital I/O
LCD Panel
(custom
Header (J8)
firmware
LCD
Controller
40 SEG
required)
PWR
Segment
Driver
TACH
Fan 1
Fan
PWR
TACH
Power
Fan 2
Control
System
Fans
PWR
TACH
Fan 3
Fan 4
PWR
TACH
LCD
Contrast
Control
Display
Backlight
Temperature
sensors or
other 1-Wire
devices
Dallas
1-Wire
(sensors are (DOW)
Microcontroller
Keypad
Backlight
Backlight
Brightness
Control
optional)
Keypad
Programming
Header (J2)
Figure 7. System Block Diagram
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 22
SUPPLY VOLTAGES AND CURRENT
DRIVING METHOD SPECIFICATION
Duty
Bias
1/16
1.5
SUPPLY VOLTAGE
Supply voltage for driving the LCD module (logic)
Supply voltage for backlight*
+4.75v
+11v
+5.0v
+12v
+12v
+5.25v
+13v
Supply voltage to run fans*
+4.75v
+13v
*JP7 must be opened for the operating range of +12v fans (optional) to be different from +12v
backlights (listed in this table). If JP7 is closed (which is the default), then the voltage specifi-
cation range for backlights must be observed for both backlights AND fans.
TYPICAL CURRENT CONSUMPTION
+5v for logic (LCD + microcontroller)
+12v for backlight (at 100%)
Note
SPECIFICATION
12 mA
60 mA
Draw on +12v for optional fans will vary, depending on user equipment
connected to FAN1 through FAN4.
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.)
GPIO CURRENT LIMITS SPECIFICATION
Sink
25 mA
10 mA
Source
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 23
1
SPECIFICATION
BACKLIGHT AND FAN CRITERIA
2
320 Hz nominal
Backlight PWM Frequency
Fan Tachometer Speed Range (assuming
600 RPM to 3,000,000 RPM
18 Hz nominal
3
two PPR )
2
Fan Power Control PWM Frequency
1
Fans are an optional accessory.
2
PWM is Pulse Width Modulation. PWM is a way to simulate intermediate levels by switch-
ing a level between full on and full off. PWM can be used to control the brightness of LED
backlights, relying on the natural averaging done by the human eye, as well as for control-
ling fan power.
3
PPR is Pulses Per Revolution, also written as p/r.
ABSOLUTE MAXIMUM RATINGS
ABSOLUTE MAXIMUM RATINGS
TOP
TST
Operating Temperature
Storage Temperature
Humidity Range (Noncondensing)
Supply Voltage for Logic
Notes:
-20°C
-30°C
10%
0v
+70°C
+80°C
90%
RH
VDD
+5.5v
These are stress ratings only. Extended exposure to the absolute maxi-
mum 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.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 24
DC CHARACTERISTICS
DC
TEST
CHARACTERISTICS
CONDITIONS
+5.25v1
+5.2v
VDD
TOP =-30°C to +70°C VDD - GND
Supply Voltage for Logic
LCD Driver Voltage
Input High Voltage
Input Low Voltage
+4.75v
+4.8v
+5.0v
+5.0v
VLCD
VIH
Ta = 25°C
VDD = +5v
VDD-1.0v
VIL
0v (GND)
+0.9VDD
+0.6v
VOH
Output High Voltage
VOL
+0.1VDD
Output Low Voltage
0v (GND)
1Do not exceed +5.25v maximum.
ESD (ELECTRO-STATIC DISCHARGE) SPECIFICATIONS
The 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.
LED BACKLIGHT INFORMATION
The backlight uses LEDs. The backlight is easy to use properly but it is also easily damaged by abuse.
NOTE
For modules with white backlights (CFA633-TFH-Kx
and CFA633-TMI-Kx
), we recommend
that the backlight be dimmed or turned off during periods of inactivity to conserve the LEDs’ lifetime.
LEDs are “current” devices. The brightness is controlled by the current flowing through it, not the voltage across it. Ideally,
a current source would be used to drive the LEDs. A simple current limiting resistor works well in most applications and
is much less complex than a current source.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 25
CONNECTION INFORMATION
STANDARD POWER CONNECTION
The easiest way to provide power from a host to CFA633-RDI-KU is to connect a cable that would normally be used from
the host’s power supply to a peripheral. If an older PC is the host, this would be the cable for the 3.5-inch floppy drive
connection. If a cable is not available, you may buy the Crystalfontz WR-PWR-Y12 cable to connect to the large 4-pin
power supply cable connector.
JP7 and JP8 are closed by default. JP7 can be opened to supply power to the fans separate from the power to the
backlight. See Jumper Locations and Functions (All Interfaces) (Pg. 17).
The connector loaded at J_PWR is (Tyco Electronics / Amp part number 4-171825-4, Mouser Electronics part number
571-4-171825-4).
NOTE
Do not connect high power fans to the module when +12v is supplied through J8, Pin 3 and JP7 is
closed. Total fan current must be less than 500 mA if +12v is supplied through J8, Pin 3 and JP7 is
closed. When using high power fans, supply the +12v through the J_PWR connector.
J_PWR
P8
FAN3
v2.0
TACH
FONTZ
D
PWR
FA-633
JP7
GND
TACH
R
JP8
PWR
GND
FAN4
7
1
O1
J8
Figure 8. Standard Power Supply Connection through J_PWR
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 26
ATX POWER SUPPLY AND CONTROL CONNECTIONS
The CFA633-RDI-KU has the ability to control power on/off and reset functions of a standard ATX PC.
NOTE
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. Please see command 34 (0x22): Set or Set and Configure GPIO
Pins (Pg. 56).
The Crystalfontz WR-PWR-Y14 cable simplifies ATX power control connections. When using this cable, please open
jumper JP8 and JPGPIO1. Close jumper JPFLPSNS in order to ensure correct operation. See Jumper Locations and
Functions (All Interfaces) (Pg. 17) for jumper positions and locations.
NOTE
If the Crystalfontz WR-PWR-Y14 cable is ordered at the same time as the module, Crystalfontz will
install the WR-PWR-Y14 connector on the module, open jumper per JP8 and JPGPIO1. Close
jumper JPFLPSNS, and send the following software configuration commands (unless we are other-
wise instructed). Please note that once these changes are made, power must be applied to connec-
tor J_PWR, pin +5v and connector J8, pin +5v for the module to power up:
command = 28 // Set ATX Switch Functionality
length = 1
data[0] = 240 // Enable:
// KEYPAD_POWER_OFF
// KEYPAD_POWER_ON
// KEYPAD_RESET
// LCD_OFF_IF_HOST_IS_OFF
command = 4 // Store current state as boot state
length = 0
For this functionality, this configuration of the CFA633-RDI-KU is powered from the PC's V signal (the “stand-by” or
SB
“always-on” +5v ATX power supply output).
By default, the pin labeled +5v on the CFA633-RDI-KU’s connector J8 is electrically connected to the +5v pin on the
CFA633-RDI-KU’s J_ PWR connector. If you are using CFA633-RDI-KU to do ATX power control, you will want to open
jumper JP8, which will disconnect the +5v of the J_PWR connector from the +5v of connector J8.
Since the CFA633-RDI-KU must act differently depending on if the host's power supply is “on” or “off”. By opening
JPGPIO1, a 5KΩ resistor is added in series that will connect to the host's “switched +5v” through JPFLPSNS. The
switched +5v power can be either the J_PWR for serial or J_USB for USB module.
The motherboard's power switch input is connected to Pin 5 of the CFA633-RDI-KU’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. (See command 28 (0x1C): Set ATX Power Switch
Functionality (Pg. 52).)
The motherboard's reset switch input is connected to Pin 4 of the CFA633-RDI-KU 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
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 27
setting of RESET_INVERT. (See command 28 (0x1C): Set ATX Power Switch Functionality (Pg. 52).) This connection
is also used for the hardware watchdog.
JP8
+5V
I/O
FAN3
v2.0
TACH
CRYSTALFONTZ
PWR
CFA-633
JP7
GND
GND
D+
J_USB
D-
TACH
PWR
JPFLPSNS
JPGPIO1
JP8
PWR
GND
ATX Power Sense
FAN4
http://www.crystalfontz.com
J_PROG
7
1
J8
JPUSBPWR
JPGPIO1
Figure 9. ATX Power Supply and Control Connections
Once configured by the host software (see command 28 (0x1C): Set ATX Power Switch Functionality (Pg. 52)), the
following functions may be individually enabled:
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).
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 28
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 (Pg. 52) (1.0 seconds default). If the user continues to
press the key, the CFA633-RDI-KU 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-RDI-KU will reboot itself immediately after
resetting the host.
Since the computer and LCD module must look off if the computer's power is off, the CFA633-RDI-KU can be configured
to monitor the POWER-ON SENSE line and blank its display any time the POWER-ON SENSE line is low. If +12v
remains active (which would not be expected, since the host is "off"), the fans will remain on at their previous settings.
Here is an illustration of how the optional Crystalfontz WR-PWR-Y14 cable connects to the CFA633 connector J8 and
your ATX power supply:
J_DOW FAN 1
FAN 2 J_PWR
JP8
JP7
RPK2
RPL2
RSK
RSL
RPK1
RPL1
C22
R23
R22
R25
R24
GND
R2
+5V
R1
C17
R14
GND
QF1
I/O
QBL
J_DOW
QF2
C19
C20
R19
R18
R21
R20
1
C14
C16
U4
FAN 3
FAN 4
A
K
K
A
GND
D+
GND
J_USB
QF3
TACH
D-
JP11
JP12
C23
PWR
C24
R27
R26
R29
R28
R31
R30
R33
c 2010
Crystalfontz
America, Inc.
Q1
R32
China
//
D1
QF4
7
1
JPUSBPWR
JPGPIO1
J8
JP13 JP10 JP1 JP3 JP5
JP2 JP4 JP6
J_PROG
22-27-2071
(Molex)
Housing: 22-01-3077
Crimp Terminal: 08-50-00114
(Molex)
Housing: 51065-0300
Terminal: 50212-8100
(Molex)
Connect to your system's
motherboard.
Housing: A26962-ND
Crimp Terminal: A3004-ND
(Typical)
WR-PWR-Y14
CABLE
Figure 10. ATX Power Supply and Control Using Crystalfontz WR-PWR-Y14 Cable
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 29
USB HOST AND POWER CONNECTIONS
To download and install the FTDI USB certified driver for Vista, XP, or a Mac operating system, follow the three-step
installation instructions here: http://www.crystalfontz.com/software/usb/index.html.
See also CrystalControl2 software here: http://www.crystalfontz.com/product/CrystalControl2.
USB Connection to Host
In order to keep the CFA633-RDI-KU as thin as possible, the CFA633-RDI-KU uses a very low profile 2 mm latching
polarized connector for USB connection. Crystalfontz offers two cables that make the connection between the
CFA633-RDI-KU and the host. The WRUSBY03 (6-foot) has the mating 2 mm connector on one end and a standard
“USB A” on the other end. The WRUSBY11 (27-inch) has the mating 2 mm connector on one end and standard single
pin connectors on the opposite end. These single pin connectors are suitable to plug directly onto the USB headers
typically found on motherboards.
If you would like to make your own cable, the connector on the CFA633-RDI-KU is:
FCI/Berg 95000-004: SMT 2mm connector, 4-position, polarized
The mating housing and crimping contact for the cable are:
FCI/Berg 90312-004: Housing, 2 mm connector, 4-position, polarized
FCI/Berg 77138-001: Crimping Contact (4 pieces required)
FAN CONNECTIONS
The CFA633-RDI-KU supports up to 4 standard “3-pin” cooling fans. The fan connectors are compatible with industry
standard “3-pin” fans.
J_PWR
J_DOW
FAN1
FAN2
TACH
PWR
GND
FAN3
FAN4
TACH
PWR
GND
c
2010
Crystalfontz
America, Inc.
//
Figure 11. Four Fan Connectors
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 30
The average power delivered to each fan may be set to any level between 0% and 100% through command 17 (0x11):
Set Fan Power (Pg. 43). 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-RDI-KU 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-RDI-KU is measuring the frequency of the tachometer signal, overriding the PWM. The CFA633-RDI-KU will
leave the power to the fan on until the glitch delay (see command 26 (0x1A): Set Fan Tachometer Glitch Filter (Pg. 50)
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.
Since the on-time is dynamically stretched by the CFA633-RDI-KU 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.
Here 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
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 31
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.
NOTE
For safety, enable the fan power fail-safe (see command 25 (0x19): Set Fan Power Fail-
Safe (Pg. 49)) on any fans involved in host-based speed control. By enabling the fail-safe on a fan
that is being used in closed-loop control through host software, the CFA633-RDI-KU 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, the host operating system hangs, or cooling
control process is terminated, the CFA633-RDI-KU will automatically force those fans to 100%, pre-
venting potential equipment damage due to lack of cooling.
We tested the CFA633-RDI-KU 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. 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-RDI-KU, 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.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 32
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.
J_DOW
c 2010
Crystalfontz
America, Inc.
//
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-RDI-KU's LCD in °C or
°F (see command 21 (0x15): Set Up Live Fan or Temperature Display (Pg. 47)). Independently, any temperature sensor
can be configured to report to the host (see 19 (0x13): Set Up Temperature Reporting (Pg. 46)). Any sensors configured
to be reported are updated once each second.
HOST COMMUNICATIONS
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 (Pg. 56)).
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 33
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).
NOTE
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 to
18.
datais the payload of the packet. Each typeof packet will have a specified data_lengthand format for dataas
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 C: DEMONSTRATION SOFT-
WARE AND SAMPLE CODE (Pg. 69) 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;
On our website, Crystalfontz supplies a demonstration and test program, 633_WinTest along with its C source code.
Included in the 633_WinTest source is a CRC algorithm and an algorithm that detects packets. The algorithm will
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 34
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.
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.
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 (Pg. 48).
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
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 35
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. See command 16 (0x10): Set Up Fan
Reporting (Pg. 43).
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=packet->data[1];
if(number_of_fan_tach_cycles<3)
sprintf(output," STOP");
else if(number_of_fan_tach_cycles<4)
sprintf(output," SLOW");
else if(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)*
(unsigned long)(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. See the command 19 (0x13): Set Up Temperature Reporting (Pg. 46).
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 36
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
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,"BAD 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);
}
}
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 typefield 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
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 37
The return packet will be:
type: 0x40 | 0x01 = 0x41 = 6510
data_length = 16
data[] = "CFA633:h#.#,y#v#"
X.X is the hardware revision, "h2.0" for example
Y.Y is the firmware version, "u2v1" for example
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:
command 6 (0x06): Clear LCD Screen (Pg. 40).
command 7 (0x07): Set LCD Contents, Line 1 (Pg. 40).
command 8 (0x08): Set LCD Contents, Line 2 (Pg. 41).
command 31 (0x1F): Send Data to LCD (Pg. 56).
Special character font definitions (command 9 (0x09): Set LCD Special Character Data (Pg. 41)).
Cursor position (command 11 (0x0B): Set LCD Cursor Position (Pg. 42)).
Cursor style (command 12 (0x0C): Set LCD Cursor Style (Pg. 42)).
Contrast setting (command 13 (0x0D): Set LCD Contrast (Pg. 42)).
Backlight setting (command 14 (0x0E): Set LCD & Keypad Backlight (Pg. 43)).
Fan power settings (command 17 (0x11): Set Fan Power (Pg. 43)).
Settings of any “live” displays (command 21 (0x15): Set Up Live Fan or Temperature Display (Pg. 47)).
Key press and release masks (command 23 (0x17): Configure Key Reporting (Pg. 48)).
Fan glitch delay settings (command 26 (0x1A): Set Fan Tachometer Glitch Filter (Pg. 50)).
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 38
ATX function enable and pulse length settings (command 28 (0x1C): Set ATX Power Switch
Functionality (Pg. 52)).
Baud rate (command 33 (0x21): Set Baud Rate (Pg. 56)).
GPIO settings (command 34 (0x22): Set or Set and Configure GPIO Pins (Pg. 56)).
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
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.
NOTE
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. Please see command 34 (0x22): Set or Set and Configure
GPIO Pins (Pg. 56).
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
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 39
NOTE
The reboot command may take up to 3 seconds to return its acknowledge packet.
At bootup, 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 save 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 a 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
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 (Pg. 52), send the following packet:
type: 0x05 = 510
valid data_length is 3
data[0] = 12
data[1] = 28
data[2] = 97
NOTE
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 (Pg. 52), send the following packet:
type: 0x05 = 510
valid data_length is 3
data[0] = 3
data[1] = 11
data[2] = 95
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 40
NOTE
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 (Pg. 37).
7 (0x07): Set LCD Contents, Line 1
Sets the center 16 characters displayed for the top line of LCD screen.
NOTE
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 (Pg. 56).
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 (Pg. 37).
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 41
8 (0x08): Set LCD Contents, Line 2
Sets the center 16 characters displayed for the bottom line of LCD screen.
NOTE
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 (Pg. 56).
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 (Pg. 37).
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
Set LCD Special Character Data is one of the items stored by the command 4 (0x04): Store Current State As Boot
State (Pg. 37).
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 2
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 42
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 (Pg. 42).
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 (Pg. 37).
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.)
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 (Pg. 37).
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 (Vlcd=5v)
29 = dark (Vlcd=6v)
30-50 = very dark (Vlcd=6.0 to 6.7v)
(may be useful at cold temperatures)
(Vlcd=4v)
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 43
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 (Pg. 37).
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 (Pg. 37).
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)
---- 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. (See 0x81: Fan Speed Report (Pg. 35).) 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. Please see Fan
Connections in Fan Connections (Pg. 29) 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 (Pg. 37).
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 44
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 (Pg. 37).
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 45
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. There is a list of the possible Dallas
One-Wire / iButton device family codes available in App Note 155: 1-Wire Software Resource Guide on the Maxim/Dallas
website.
NOTE ON 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. Please see command 34 (0x22):
Set or Set and Configure GPIO Pins (Pg. 56).
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 One-Wire Digital Thermometer temperature sensor) or 0x28 (DS18B20 High Precision
One-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 (Pg. 46).
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 46
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)
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 (Pg. 45).
The return packet will be:
type: 0x40 | 0x13 = 0x53 = 8310
data_length = 0
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 47
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> //optional, but at least one of write_phase or read_phase must be sent
<read_phase>
//optional, but at least one of write_phase or read_phase must be sent
Please see APPENDIX A: CONNECTING A DS2450 1-WIRE QUAD A/D CONVERTER (Pg. 64) for an example of
using this command.
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 (Pg. 37), 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.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 48
type: 0x15 = 2110
valid data_length is 7 or 2 (for turning a slot off)
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. Please see Fan
Connections (Pg. 29) 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. Note: 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 (Pg. 37).
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 49
#define KP_UP
0x01
#define KP_ENTER 0x02
#define KP_CANCEL 0x04
#define KP_LEFT 0x08
#define KP_RIGHT 0x10
#define KP_DOWN 0x20
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 (Pg. 37).
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 (Pg. 48).
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
#define KP_ENTER 0x02
#define KP_CANCEL 0x04
#define KP_LEFT 0x08
#define KP_RIGHT 0x10
#define KP_DOWN 0x20
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 . . .) 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.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 50
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 (Pg. 37).
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
The return packet will be:
type = 0x40 | 0x1A = 0x5A = 9010
data_length = 0
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 51
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
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 52
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 (Pg. 37).
NOTE ON COMMAND 28: SET ATX SWITCH FUNCTIONALITY
The GPIO pins used for ATX control must not be configured as user GPIO. The pins must be con-
figured 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 (Pg. 56). 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.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 53
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.
NOTE
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 V
,
SB
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.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 54
#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
#define RESET_INVERT
#define POWER_INVERT
#define LCD_OFF_IF_HOST_IS_OFF 0x10
#define KEYPAD_RESET
#define KEYPAD_POWER_ON
#define KEYPAD_POWER_OFF
0x20
0x40
0x80
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
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 55
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.
NOTE
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. Please see the note under command 28 (0x1C): Set ATX Power Switch
Functionality (Pg. 52) or command 34 (0x22): Set or Set and Configure GPIO Pins (Pg. 56).
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: 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)
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 56
Please 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 (Pg. 37).
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 (Pg. 37) 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
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 57
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”.
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.
NOTE ON 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 633_WinTest
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 (Pg. 37).
type: 0x22 = 3410
data_length:
2 bytes to change value only
3 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
Please 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
(Continues on the next page.)
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 58
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
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
Please see command 34 (0x22): Set or Set and Configure GPIO Pins (Pg. 56) 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
Please 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
(Continues on the next page.)
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 59
returns:
data[0] = index of GPIO read
data[1] = Pin state & changes since last poll
---- -RFS Enable Reporting of this Fan’s Tach Input
|||| ||||-- S = state at the last reading
|||| |||--- F = at least one falling edge has
|||| ||
been detected since the last poll
|||| ||---- R = at least one rising edge has
|||| |
|||| |----- 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
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 60
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 Generated ROM
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 61
LCD MODULE RELIABILITY AND LONGEVITY
MODULE RELIABILITY
Note: 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
LCD portion (excluding Keypad and Backlights)
Keypad
SPECIFICATION
50,000 to 100,000 hours (typical)
1,000,000 keystrokes
Red LED Display and Red LED Keypad Backlights
50,000 to 100,000 hours (typical)
MODULE LONGEVITY (EOL / REPLACEMENT POLICY)
Crystalfontz is committed to making all of our LCD modules available for as long as possible. For each module 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 Data Sheet 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 notifications.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 62
CARE AND HANDLING PRECAUTIONS
For optimum operation of the CFA633-RDI-KU and to prolong its life, please follow the precautions described below.
ESD (ELECTROSTATIC DISCHARGE)
The circuitry is industry standard CMOS logic and susceptible to ESD damage. Please use industry standard anti-
static 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.
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-RDI-KU 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.
AVOID SHOCK, IMPACT, TORQUE, OR TENSION
Do not expose the CFA633-RDI-KU to strong mechanical shock, impact, torque, or tension.
Do not drop, toss, bend, or twist the CFA633-RDI-KU.
Do not place weight or pressure on the CFA633-RDI-KU.
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.
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.
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.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 63
CFA633-RDI-KU 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.
OPERATION
Your circuit should be designed to protect the CFA633-RDI-KU 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.
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-RDI-KU while they are in storage.
Please recycle your outdated Crystalfontz modules at an approved facility.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 64
APPENDIX A: CONNECTING A DS2450 1-WIRE QUAD A/D
CONVERTER
This appendix describes a simple test circuit that demonstrates how to connect a Dallas Semiconductor DS2450 4-
channel ADC to the CFA633’s DOW (Dallas One Wire) connector. It also gives a sample command sequence to initialize
and read the ADC.
Up to 32 DOW devices can be connected to the CFA633. In this example the DS2450 appears at device index 0. Your
software should query the connected devices using command 18 (0x12): Read DOW Device Information (Pg. 45) to
verify the locations and types of DOW devices connected in your application.
Please refer to the DS2450 Data Sheet and the description for command 20 (0x14): Arbitrary DOW Transaction (Pg. 47)
more information.
To “DOW”
connector
on CFA-633
Appendix A, Figure 1. Test Circuit Schematic
Start 633_WinTest and open the Packet Debugger dialog.
Select Command 20 = Arbitrary DOW Transaction, then paste each string below into the data field and send the packet.
The response should be similar to what is shown.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 65
//Write 0x40 (=64) to address 0x1C (=28) to leave analog circuitry on
//(see page 6 of the data sheet)
<command 20> \000\002\085\028\000\064
<response> C=84(d=0):2E,05,22 //16 bit "i-button" CRC + 8-bit "DOW" CRC
//Consult "i-button" docs to check 16-bit CRC
//DOW CRC is probably useless for this device.
//Write all 8 channels of control/status (16 bits, 5.10v range)
<command 20> \000\002\085\008\000\000 // address = 8, channel A low
<response> C=84(d=0):6F,F1,68
// 16-bits, output off
<command 20> \000\002\085\009\000\001 // address = 9, channel A high
<response> C=84(d=0):FF,F1,AB // no alarms, 5.1v
<command 20> \000\002\085\010\000\000 // address = 10, channel B low
<response> C=84(d=0):CE,31,88 // 16-bits, output off
<command 20> \000\002\085\011\000\001 // address = 11, channel B high
<response> C=84(d=0):5E,31,4B // no alarms, 5.1v
<command 20> \000\002\085\012\000\000 // address = 12, channel C low
<response> C=84(d=0):2E,30,A3 // 16-bits, output off
<command 20> \000\002\085\013\000\001 // address = 13, channel C high
<response> C=84(d=0):BE,30,60 // no alarms, 5.1v
<command 20> \000\002\085\014\000\000 // address = 14, channel D low
<response> C=84(d=0):8F,F0,43 // 16-bits, output off
<command 20> \000\002\085\015\000\001 // address = 15, channel D high
<response> C=84(d=0):1F,F0,80 // no alarms, 5.1v
//Read all 4 channels of control/status (check only)
<command 20> \000\010\170\008\000
<response> C=84(d=0):00,01,00,01,00,01,00,01,E0,CF,01
//Repeat next two commands for each conversion (two cycles shown)
//Start conversion on all channels
<command 20> \000\002\060\015\000
<response> C=84(d=0):3A,03,28
//Read all 8 channels
<command 20> \000\010\170\000\000
<response> C=84(d=0):00,33,DF,64,84,96,6A,C8,5A,6B,BE
//Decoded response:
0x3300 = 130561.016015625 volts (channel A)
0x64DF = 258232.009541321 volts (channel B)
0x9684 = 385322.998553467 volts (channel C)
0xC86A = 513063.992623901 volts (channel D)
//Start conversion on all channels
<command 20> \000\002\060\015\000
<response> C=84(d=0):3A,03,28
//Read all 8 channels
<command 20> \000\010\170\000\000
<response> C=84(d=0):6B,33,B2,64,97,96,42,C8,0F,C9,0A
//Decoded response:
0x336B = 131631.024342346 volts (channel A)
0x64B2 = 257782.006039429 volts (channel B)
0x9697 = 385513.000032043 volts (channel C)
0xC842 = 512663.989511108 volts (channel D)
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 66
APPENDIX B: CONNECTING A DS1963S SHA IBUTTON
This appendix describes connecting a Dallas Semiconductor DS1963S Monetary iButton with SHA-1 Challenge
Response Algorithm and 4KB of nonvolatile RAM to the CFA633’s DOW (Dallas One Wire) connector. It also gives a
sample command sequence to read and write the DS1963S’s scratch memory.
The DS1963S can be used as a secure dongle to protect your system’s application software from being copied. Even if
the communication channel is compromised or the host is not authentic, the SHA algorithm ensures that the data is still
secure. Please see the following Maxim/Dallas white papers and application notes for more information:
White Paper 1: SHA Devices Used in Small Cash Systems
White Paper 2: Using the 1-Wire Public-Domain Kit
White Paper 3: Why are 1-Wire SHA-1 Devices Secure?
White Paper 4: Glossary of 1-Wire SHA-1 Terms
App Note 1201: White Paper 8: 1-Wire SHA-1 Overview
App Note 150: Small Message Encryption using SHA Devices
App Note 152: SHA iButton Secrets and Challenges
App Note 154: Passwords in SHA Authentication
App Note 156: DS1963S SHA 1-Wire API Users Guide
App Note 157: SHA iButton API Overview
App Note 190: Challenge and Response with 1-Wire SHA devices
Up to 32 DOW devices can be connected to the CFA633. In this example the DS1963S appears at device index 0. Your
software should query the connected devices using command 19 (0x13): Set Up Temperature Reporting (Pg. 46) to
verify the locations and types of DOW devices connected in your application.
Please refer to the DS1963S Data Sheet and the description for command 20 (0x14): Arbitrary DOW
Transaction (Pg. 47) for more information.
To connect the DS1963S to the CFA633, simply make one connection between the DS1963S’s "GND" terminal and the
CFA633 DOW connector’s GND pin, and a second connection between the DS1963S’s "IO" pin and the CFA633 DOW
connector’s I/O pin. By using a DS9094 iButton Clip, the connection is easy.
Appendix B, Figure 1. Connecting DS1963S SHA iButton using DS9094 iButton Clip
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 67
To demonstrate reading and writing the scratch memory on DS1963S, open the 633_WinTest Packet Debugger dialog
and use it to experiment with the following commands: Erase Scratchpad, Read Scratchpad, and Write Scratchpad.
To use the full power of the DS1963S, a program based on the Dallas/Maxim application notes listed above is needed.
The challenge/response sequence would be unwieldy to demonstrate using the 633_WinTest Packet Debugger dialog.
First read the address of the DS1963S as detected by the CFA633 at boot. Since only one device is connected, you only
need to query index 0. In a production situation, query all 32 indices to get a complete picture of the devices available
on the DOW bus.
Command:
18 = Read DOW Device Information
Data sent:
\000
Data received:
C=82(d=0):18,CC,D2,19;00,00,00,9E
The first byte returned is the Family Code of the Dallas One Wire / iButton device. 0x18 indicates that this device is a
DS1963. A list of the possible Dallas One Wire / iButton device family codes is available in App Note 155: 1-Wire
Software Resource Guide on the Maxim/Dallas website.
Erase Scratchpad Command (quote from the Maxim/Dallas DS1963S Data Sheet):
Erase Scratchpad [C3h]
The purpose of this command is to clear the HIDE flag and to wipe out data that might have been left in the
scratchpad from a previous operation. After having issued the command code the bus master transmits a target
address, as with the write scratchpad command, but no data. Next the whole scratchpad will be automatically
filled with FFh bytes, regardless of the target address. This process takes approximately 32 µs during which the
master reads 1’s. After this the master reads a pattern of alternating 0’s and 1’s indicating that the command
has completed. The master must read at least 8 bits of this alternating pattern. Otherwise the device might not
properly respond to a subsequent Reset Pulse.
Command:
20 = Arbitrary DOW transaction
Data sent:
\000\014\xC3\000\000
Data received:
C=84(d=0):FF,AA,AA,AA,AA,AA,AA,AA,AA,AA,AA,AA,AA,AA,9F
The “AA” bytes read are the pattern of alternating 0’s and 1’s indicating that the command has completed.
Read Scratchpad Command (quote from the Maxim/Dallas DS1963S Data Sheet)
Read Scratchpad Command [AAh]
HIDE = 0:
The Read Scratchpad command allows verifying the target address, ending offset and the integrity of the
scratchpad data. After issuing the command code the master begins reading. The first 2 bytes will be the target
address. The next byte will be the ending offset/data status byte (E/S) followed by the scratchpad data
beginning at the byte offset (T4: T0). The master may read data until the end of the scratchpad after which it will
receive the inverted CRC generated by the DS1963S. If the master continues reading after the CRC all data
will be logic 1’s.
Command:
20 = Arbitrary DOW transaction
Data sent:
\000\014\xAA
Data received:
C=84(d=0):00,00,1F,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,07
Since you did an "Erase Scratchpad” as the previous command, the "Read Scratchpad” returns 0xFF bytes as expected.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 68
Write Scratchpad Command (quote from the Maxim/Dallas DS1963S Data Sheet)
Write Scratchpad Command [0Fh]
HIDE = 0, Target Address range 0000h to 01FFh only
After issuing the write scratchpad command, the master must first provide the 2–byte target address, followed
by the data to be written to the scratchpad. The data will be written to the scratchpad starting at the byte offset
(T4:T0). The ending offset (E4: E0) will be the byte offset at which the master stops writing data. Only full data
bytes are accepted. If the last data byte is incomplete its content will be ignored and the partial byte flag PF will
be set.
When executing the Write Scratchpad command the CRC generator inside the DS1963S (see Figure 12)
calculates a CRC of the entire data stream, starting at the command code and ending at the last data byte sent
by the master. This CRC is generated using the CRC16 polynomial by first clearing the CRC generator and
then shifting in the command code (0FH) of the Write Scratchpad command, the Target Addresses TA1 and
TA2 as supplied by the master and all the data bytes. The master may end the Write Scratchpad command at
any time. However, if the ending offset is 11111b, the master may send 16 read time slots and will receive the
CRC generated by the DS1963S.
Write 10 bytes of identifiable test data {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA} to the scratch pad
in location 0:0
Command:
20 = Arbitrary DOW transaction
Data sent:
\000\000\x0F\x00\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xAA
Data received:
C=84(d=0):00
Use the Read Scratchpad Command [AAh] to read back the data.
Command:
20 = Arbitrary DOW transaction
Data sent:
\000\013\xAA
Data received:
C=84(d=0):00,00,09,11,22,33,44,55,66,77,88,99,AA,1E
Now write 10 bytes of identifiable test data {0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78, 0x89, 0x9A, 0xAB} to the scratch
pad in location 0:0x0A
Command:
20 = Arbitrary DOW transaction
Data sent:
\000\000\x0F\x0A\x00\x12\x23\x34\x45\x56\x67\x78\x89\x9A\xAB
Data received:
C=84(d=0):00
Use the Read Scratchpad Command [AAh] to read back the data.
Command:
20 = Arbitrary DOW transaction
Data sent:
\000\013\xAA
Data received:
C=84(d=0):00,02,09,12,23,34,45,56,67,78,89,9A,AB,62
Reading and writing to the scratch pad is the first step required to communicate with the DS1863S. In order to fully use
the DS1963S for a dongle application that securely protects your software from copying, become familiar with the SHA
algorithm as it applies to the SHA iButton by studying the Maxim/Dallas white papers and application notes listed above.
Then create a software application that implements the secure challenge/response protocol as outlined in the application
notes.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 69
APPENDIX C: 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.
http://www.crystalfontz.com/product/633WinTest#docs
Linux compatible command-line demonstration program with C source code. 8K.
http://www.crystalfontz.com/product/linux_cli_examples#docs
Supported by CrystalControl freeware.
http://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 the CFA631 aand 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,
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 70
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};
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++;
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 71
//Push this byte’s bits through a software
//implementation of a hardware shift & xor.
for(bit_count=0;bit_count<=7;bit_count++)
{
//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);
}
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 72
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;
}
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
equ
equ
equ
40h
41h
42h
43h
44h
; 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
Zero
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 73
index
savchr
;
seedlo
seedhi
;
equ
equ
45h
46h
; BYTE - index for string memory read
; BYTE - temp storage for CRC routine
equ
equ
021h
0F3h
; initial seed for CRC reg lo byte
; initial seed for CRC reg hi byte
polyL
polyH
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
4
$
; start of ISR
goto
;
; jump to ISR when coded
org
20
; start of main program
main
movlw
movwf
movlw
movwf
clrf
;
seedhi
accumh
seedlo
accuml
index
; setup intial CRC seed value.
; This must be done prior to
; sending string to CRC routine.
;
; clear string read variables
main1
movlw
movwf
movfw
call
movwf
movf
btfsc
goto
call
call
incf
goto
;
HIGH InputStr ; point to LCD test string
PCLATH
index
InputStr
Zero
; latch into PCL
; get index
; get character
; setup for terminator test
; see if terminator
; skip if not terminator
; else terminator reached, jump out of loop
; calculate new crc
; send data to LCD
; bump index
Zero,f
STATUS,Z
main2
CRC16
SENDUART
index,f
main1
; loop
main2
movlw
call
movlw
call
;
comf
comf
;
00h
; shift accumulator 16 more bits.
; This must be done after sending
; string to CRC routine.
;
CRC16
00h
CRC16
accumh,f
accuml,f
; invert result
;
movfw
call
movfw
call
;
accuml
; get CRC low byte
; send to LCD
; get CRC hi byte
; send to LCD
SENDUART
accumh
SENDUART
stop
goto
stop
; word result of 0x93FA is in accumh/accuml
;====================================================================
; calculate CRC of input byte
;--------------------------------------------------------------------
CRC16
movwf
movwf
movlw
movwf
savchr
datareg
.8
; save the input character
; load data register
; setup number of bits to test
; save to incrementor
j
_loop
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 74
clrc
; clear carry for CRC register shift
rrf
datareg,f ; perform shift of data into CRC register
rrf
rrf
accumh,f
accuml,f
STATUS,C
_notset
polyL
accuml,F
polyH
accumh,F
;
;
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
;--------------------------------------------------------------------
SENDUART
return
; put serial xmit routine here
;====================================================================
; test string storage
;--------------------------------------------------------------------
org
0100h
;
InputStr
addwf PCL,f
dt 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.
'This program is brutally blunt. Just like VB. No apologies.
'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:
'http://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
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 75
End Sub
'My understanding of visual basic is very limited--however it appears that there is no way
'to initialize an array of structures. Nice language. Fast processors, lots of memory, big
'disks, and we fill them up with this . . this . . this . . STUFF.
Sub Initialize_CRC_Lookup_Table()
crcLookupTable(0).Lo = &H0
crcLookupTable(0).Hi = &H0
. . .
'For purposes of brevity in this data sheet, I have removed 251 entries of this table, the
'full source is available in our forum:
'http://www.crystalfontz.com/forum/showthread.php?postid=9921#post9921
. . .
crcLookupTable(255).Lo = &H78
crcLookupTable(255).Hi = &HF
End Sub
'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)
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 76
{
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)));
// 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,
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 77
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;
}
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
# data_length = 1
(key press)
(1 byte of data)
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 78
# 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);
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 RAM8
movwf dsplyLPCNT
nxt1_dsply:
movf
call
;w has the byte count
POSTINC1,w
CRC16_
decfsz dsplyLPCNT
goto nxt1_dsply
movlw .0
; shift accumulator 16 more bits
; invert result
call
CRC16_
movlw .0
call
CRC16_
dsplyCRC,F
comf
comf
dsplyCRC+1,F
return
;===================================================================
CRC16_ movwf:
dsplyCRCData
; w has byte to crc
movlw .8
movwf dsplyCRCCount
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 79
_cloop:
bcf
rrcf
STATUS,C
; clear carry for CRC register shift
dsplyCRCData,f ; perform shift of data into CRC
;register
dsplyCRC,F
rrcf
rrcf
dsplyCRC+1,F
btfss STATUS,C
; skip jump if carry
; otherwise goto next bit
goto
_notset
movlw 0x84
xorwf dsplyCRC,F
movlw 0x08
xorwf dsplyCRC+1,F
; XOR poly mask with CRC register
_notset:
decfsz dsplyCRCCount,F ; decrement bit counter
bra _cloop
return
; loop if not complete
;===================================================================
; example to clear screen
dsplyFSR1_TEMP equ
0x83A ; 16-bit save for FSR1 for display
; message handler
0x83C ; 16-bit CRC (H/L)
0x83E ; 8-bit save for display message
; length - CRC
0x83F ; 8-bit CRC data for display use
0x840 ; 8-bit CRC count for display use
0x841 ; 8-bit byte count for sending to
; display
0x8C0 ; 32-byte receive buffer for
; Display
dsplyCRC
dsplyLPCNT
equ
equ
dsplyCRCData
equ
dsplyCRCCount equ
SendCount
RXBUF2
equ
equ
equ
TXBUF2
0x8E0 ; 32-byte transmit buffer for
; Display
;-------------------------------------------------------------------
ClearScreen:
movlb RAM8
movlw .0
movwf SendCount
movlw 0xF3
movwf dsplyCRC
movlw 0x21
; seed ho for CRC calculation
; seen lo for CRC calculation
movwf dsplyCRC+1
call
ClaimFSR1
movlw 0x06
movwf TXBUF2
LFSR
movf
FSR1,TXBUF2
SendCount,w
movwf TXBUF2+1
; message data length
call
goto
BMD1
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
lfsr
SHOW
ClaimFSR1
FSR1,TXBUF2+4 ; set data string position
C0R0,BusName
movlw .2
; move string to TXBUF2
;
;
addwf SendCount
movff SendCount,TXBUF2+1
; insert message data length
call
call
return
BuildMsgDSPLY
SendMsg
;===================================================================
; BuildMsgDSPLY used to send a string to LCD
;-------------------------------------------------------------------
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 80
BuildMsgDSPLY:
movlw 0xF3
movwf dsplyCRC
movlw 0x21
movwf dsplyCRC+1
; seed hi for CRC calculation
; seed lo for CRC calculation
; point at transmit buffer
; command to send data to LCD
; insert command byte from us to
; CFA635
LFSR
FSR1,TXBUF2
movlw 0x1F
movwf TXBUF2
BMD1
ddwf
call
movf
movlw .2
SendCount,w
ComputeCRC2
dsplyCRC+1,w
; + overhead
; compute CRC of transmit message
movwf POSTINC1
movf dsplyCRC,w
movwf POSTINC1
return
; append CRC byte
; append CRC byte
;===================================================================
SendMsg:
call
LFSR
ReleaseFSR1
FSR0,TXBUF2
movff FSR0H,irptFSR0
movff FSR0L,irptFSR0+1
; save interrupt use of FSR0
movff SendCount,TXBUSY2
bsf
PIE2,TX2IE
; set transmit interrupt enable
; (bit 4)
return
;===================================================================
; macro to move string to transmit buffer
SHOW macro src, stringname
call
src
MOVLF upper stringname, TBLPTRU
MOVLF high stringname, TBLPTRH
MOVLF low stringname, TBLPTRL
call
endm
MOVE_STR
;===================================================================
MOVE_STR:
tblrd *+
movf
bz
TABLAT,w
ms1b
movwf POSTINC1
incf
goto
SendCount
MOVE_STR
ms1b:
return
;===================================================================
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 81
APPENDIX D: QUALITY ASSURANCE STANDARDS
INSPECTION CONDITIONS
Environment
Temperature: 25±5°C
Humidity: 30~85% RH noncondensing
For visual inspection of active display area
Source lighting: two 20 Watt or one 40 Watt fluorescent light
Display adjusted for best contrast
Viewing distance: 30±5 cm (about 12 inches)
Viewable angle: inspect at 45° angle of vertical line right and left, top and bottom0
COLOR DEFINITIONS
We try to describe the appearance of our modules as accurately as possible. For the photos, we adjust for optimal
appearance. Actual display appearance may vary due to (1) different operating conditions, (2) small variations of
component tolerances, (3) inaccuracies of our camera, (4) color interpretation of the photos on your monitor, and/or (5)
personal differences in the perception of color.
DEFINITION OF ACTIVE AREA AND VIEWING AREA
61.00 Viewing Area
56.20 Active Area
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 82
ACCEPTANCE SAMPLING
DEFECT TYPE
AQL*
<0.65%
Major
Minor
<1.00%
*Acceptable Quality Level: maximum allowable error rate or variation from standard
DEFECTS CLASSIFICATION
Defects are defined as:
Major Defect: results in failure or substantially reduces usability of unit for its intended purpose
Minor Defect: deviates from standards but is not likely to reduce usability for its intended purpose
ACCEPTANCE STANDARDS
#
DEFECT TYPE
CRITERIA
1
Electrical defects
1. No display, display malfunctions, or shorted segments.
2. Current consumption exceeds specifications.
Major
Major
Major
2
3
4
Viewing area defect
Viewing area does not meet specifications. (See Inspection
Conditions (Pg. 81).
Contrast adjustment
defect
Contrast adjustment fails or malfunctions.
Blemishes or foreign
matter on display seg-
ments
Defect Size (mm)
Acceptable Qty
Blemish
<0.3
3
Minor
Minor
<2 defects within 10 mm of each other
5
Other blemishes or for-
eign matter outside of
display segments
Defect Size (mm)
<0.15
Acceptable Qty
Defect size = (A + B)/2
Ignore
Length
Width
0.15 to 0.20
0.20 to 0.25
0.25 to 0.30
3
2
1
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 83
#
DEFECT TYPE
CRITERIA
6
Dark lines or scratches
in display area
Defect Width (mm)
<0.03
Defect Length (mm)
<3.0
Acceptable Qty
3
0.03 to 0.05
0.05 to 0.08
0.08 to 0.10
>0.10
<2.0
2
Minor
<2.0
1
Length
≤3.0
0
>3.0
0
7
8
Bubbles between polarizer film and glass
Defect Size (mm)
<0.20
Acceptable Qty
Ignore
0.20 to 0.40
0.40 to 0.60
>0.60
3
2
0
Minor
Glass rest defect
Minor
a<1/4W
9
Display pattern defect
Minor
Dot Size (mm)
Acceptable Qty
((A+B)/2)<0.2
C>0
<3 total defects
<2 pinholes per digit
((D+E)/2)<0.25
((F+G)/2)<0.25
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 84
#
DEFECT TYPE
CRITERIA
10 Chip in corner
Minor
a
b
c
Acceptable Qty
<4 mm
<W
c<T
3
11 Chip on “non-contact”
edge of LCD
Minor
a
b
c
<3 mm
<4 mm
<1 mm
<1.5 mm
<T
<T
12 Chip on “contact” edge of
LCD, on the active side
Minor
a
b
c
Acceptable Qty
<2 mm
<3 mm
<W/4
<W/4
<T
<T
Ignore
3
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 85
#
DEFECT TYPE
CRITERIA
13 Chip on “contact” edge of
LCD, on the inactive side
Minor
a
b
c
Acceptable Qty
<3 mm
<4 mm
<1 mm
<1.5 mm
<T
<T
Ignore
3
14 Chip in seal area
a
b
c
Acceptable Qty
<3 mm
<1.5 mm
<1/2 T
3
Minor
Major
Unacceptable if c>50% of glass thickness or if the seal area is damaged.
15 Backlight defects
1. Light fails or flickers.*
2. Color and luminance do not correspond to specifications.*
3. Exceeds standards for display’s blemishes or foreign matter (see test
5, Pg. 82), and dark lines or scratches (see test 6, Pg. 83).
*Minor if display functions correctly. Major if the display fails.
Minor
Minor
16 COB defects
17 PCB defects
1. Pinholes >0.2 mm.
2. Seal surface has pinholes through to the IC.
3. More than 3 locations of sealant beyond 2 mm of the sealed areas.
1. Oxidation or contamination on connectors.*
2. Wrong parts, missing parts, or parts not in specification.*
3. Jumpers set incorrectly.
Minor
4. Solder (if any) on bezel, LED pad, zebra pad, or screw hole pad is
not smooth.
*Minor if display functions correctly. Major if the display fails.
Crystalfontz America, Inc.
www.crystalfontz.com
February 2012
Data Sheet Release Date 2012/02/21
CFA633-RDI-KU LCD Module (Hardware v2.0 / Firmware u2v1)
Page 86
#
DEFECT TYPE
CRITERIA
18 Soldering defects
1. Unmelted solder paste.
2. Cold solder joints, missing solder connections, or oxidation.*
3. Solder bridges causing short circuits.*
4. Residue or solder balls.
Minor
5. Solder flux is black or brown.
*Minor if display functions correctly. Major if the display fails.
相关型号:
©2020 ICPDF网 联系我们和版权申明