25.10.2013 Views

OLED Display Driver for the HCS08 Family: OLED Driver ... - Freescale

OLED Display Driver for the HCS08 Family: OLED Driver ... - Freescale

OLED Display Driver for the HCS08 Family: OLED Driver ... - Freescale

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Freescale</strong> Semiconductor<br />

Application Note<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong><br />

<strong>HCS08</strong> <strong>Family</strong><br />

This application note describes how to interface an<br />

<strong>HCS08</strong> device to an <strong>OLED</strong> display. Organic<br />

light-emitting diode (<strong>OLED</strong>) displays can provide a<br />

graphical user interface to various applications. They can<br />

be found in television screens, MP3 players, portable<br />

meters (electrical, medical), home automation<br />

equipment (<strong>the</strong>rmostats, alarm controls), mobile phones,<br />

vending machines, coffee machines, white goods, etc.<br />

The code was written <strong>for</strong> MCUs with limited RAM and<br />

flash memory, with a minimum of I/Os used to drive an<br />

OSRAM Pictiva 128x64 <strong>OLED</strong> <strong>Display</strong>, Elegance<br />

Yellow with 16 gray scales (Part No.<br />

OS128064PK27MY0B00). The code is provided as a zip<br />

file, AN3415SW.zip, and can be downloaded from <strong>the</strong><br />

<strong>Freescale</strong> website, www.freescale.com. The example<br />

code can be easily modified <strong>for</strong> o<strong>the</strong>r <strong>OLED</strong> displays.<br />

A hardware daughter card is also described. The card<br />

layout allows ei<strong>the</strong>r <strong>the</strong> <strong>Freescale</strong> DEMO9S08AW60<br />

board or <strong>the</strong> DEMO9S08QG8 board to to interface <strong>the</strong><br />

© <strong>Freescale</strong> Semiconductor, Inc., 2007. All rights reserved.<br />

Document Number: AN3415<br />

Rev. 0, 03/2007<br />

<strong>OLED</strong> <strong>Driver</strong> Demonstration <strong>for</strong> 4 Bits-per-Pixel <strong>Display</strong>s<br />

by: Wolfgang Bihlmayr<br />

Systems Engineering<br />

Munich, Germany<br />

Contents<br />

1 <strong>OLED</strong> <strong>Display</strong> Description . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

1.1 Basic Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.2 Command Description. . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.3 Power Up / Power Down Sequence . . . . . . . . . . . 10<br />

1.4 <strong>Display</strong> Initialization. . . . . . . . . . . . . . . . . . . . . . . . 11<br />

2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

2.1 <strong>OLED</strong> Daughter Card . . . . . . . . . . . . . . . . . . . . . . 13<br />

2.2 Setup with DEMO9S08QG8 Board . . . . . . . . . . . . 14<br />

2.3 Setup with DEMO9S08AW60 Board . . . . . . . . . . . 15<br />

3 Software and CodeWarrior ‘ Development Tool . . . . . . . 15<br />

3.1 <strong>OLED</strong> <strong>Driver</strong> Software Description . . . . . . . . . . . . 18<br />

4 Demo Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

4.1 MC9S08QG8 Example Demo . . . . . . . . . . . . . . . . 24<br />

4.2 9S08AW60 Example Demo. . . . . . . . . . . . . . . . . . 25<br />

5 Image <strong>for</strong>mat and BMP2C.EXE Utility . . . . . . . . . . . . . . 27<br />

6 Font Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

7 Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

Appendix A<strong>OLED</strong> Daughter Card . . . . . . . . . . . . . . . . . . . . . 33<br />

A.1 Schematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

A.2 Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

A.3 <strong>OLED</strong> Daughter Card BOM (Bill of Materials) . . . . 37<br />

A.4 DEMO9S08QG8 Board . . . . . . . . . . . . . . . . . . . . . 39<br />

A.5 DEMO9S08AW60 Board. . . . . . . . . . . . . . . . . . . . 40


<strong>OLED</strong> <strong>Display</strong> Description<br />

<strong>OLED</strong>. The <strong>OLED</strong> daughter card contains <strong>the</strong> interface, a DC/DC converter to provide <strong>the</strong> <strong>OLED</strong> voltage<br />

(12 V), and <strong>the</strong> actual <strong>OLED</strong> display itself.<br />

The <strong>OLED</strong> displays are a self-emissive technology that typically require less power than LCDs with<br />

backlights. Only an “on” pixel consumes power. This feature makes <strong>OLED</strong> displays suitable <strong>for</strong><br />

battery-powered devices.<br />

Advantages of <strong>OLED</strong> displays:<br />

• Less power than LCDs — Better <strong>for</strong> portable/handheld applications<br />

• Self-emissive technology<br />

• Vivid color — High brightness and contrast<br />

• Video capability<br />

• Wide viewing angle<br />

• Thin <strong>for</strong>m factor — No backlight required<br />

• Long-lasting lifetime — Up to 55,000 hours<br />

• Monochrome (yellow, orange, green, white, blue) with one- or four-bit gray-scale capability<br />

• Full color capability<br />

1 <strong>OLED</strong> <strong>Display</strong> Description<br />

The <strong>OLED</strong> display used in this application note offers a parallel- or serial-interface-connection option. The<br />

BS1 and BS2 pins are used to select <strong>the</strong> interface to be used. In this example only <strong>the</strong> serial interface is<br />

used (Figure 1).<br />

2<br />

15<br />

17<br />

11<br />

12<br />

16<br />

D/C<br />

CS<br />

SDIN<br />

SCLK<br />

RST<br />

<strong>OLED</strong> Module<br />

BS1 BS2<br />

20 21<br />

Figure 1. <strong>OLED</strong> Module Interface (Serial Mode)<br />

The main advantage of using <strong>the</strong> serial interface ra<strong>the</strong>r than <strong>the</strong> parallel interface is <strong>the</strong> number of I/Os<br />

required to drive <strong>the</strong> display. For <strong>the</strong> serial interface, only 5 I/Os (D/C, CS, SDIN, SCLK, RST) are<br />

required, compared with 13 I/Os (D/C, CS, R/W, E/RD, D0:D7, RST) <strong>for</strong> <strong>the</strong> parallel interface.<br />

Table 1 briefly describes <strong>the</strong> <strong>OLED</strong> pin functions <strong>for</strong> <strong>the</strong> serial interface.<br />

VCC<br />

VDD<br />

VSS<br />

COMH<br />

IREFH<br />

VSL<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

2<br />

21<br />

29<br />

3<br />

4<br />

30<br />

<strong>Freescale</strong> Semiconductor


1.1 Basic Operation<br />

Table 1. <strong>OLED</strong> Pin Description<br />

Pin Pin Name Description<br />

15 D/C Data/Command<br />

17 CS Chip-select control<br />

11 SDIN Serial-data input<br />

12 SCLK Serial-clock input<br />

16 RST Reset<br />

20, 21 BS1, BS2 Interface selection<br />

BS1 = 0; BS2 = 0 <strong>for</strong> serial<br />

2 V CC <strong>OLED</strong> power-supply voltage (12 V)<br />

21 V DD Logic-supply voltage (3.3 V)<br />

29 V SS Ground<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>OLED</strong> <strong>Display</strong> Description<br />

3 COMH Common (row) high voltage — A capacitor should be connected between this pin<br />

and V SS.<br />

4 IREFH Segment (column) current reference — A resistor should be connected between<br />

this pin and V SS .<br />

30 VSL Voltage segment low — A capacitor should be connected between this pin and<br />

V SS.<br />

The <strong>OLED</strong> display contains a chip-on-glass (COG) controller (SSD0323 128 x 80, 16 Gray Scale Dot<br />

Matrix <strong>OLED</strong>/PLED Segment/Common <strong>Driver</strong> with Controller from Solomon Systech) with display<br />

RAM (graphic display data RAM — GDDRAM) that holds <strong>the</strong> data <strong>for</strong> <strong>the</strong> pattern/images to be displayed.<br />

Four bits of data are required <strong>for</strong> each pixel (4 bpp = bits per pixel) allowing 16 possible gray values. One<br />

byte is used to store <strong>the</strong> in<strong>for</strong>mation <strong>for</strong> two pixels. In total, 4 Kbytes (4096 bytes) are required to hold <strong>the</strong><br />

complete display content <strong>for</strong> <strong>the</strong> 128_x_64 pixels. The MCU needs to transfer data only if <strong>the</strong> display<br />

content needs updated. Cyclic refresh of <strong>the</strong> display is not necessary .<br />

The data transfer is done byte-wise, first sending <strong>the</strong> most significant bit (MSB) (Figure 2). The data is<br />

applied with <strong>the</strong> rising edge of <strong>the</strong> SCLK signal and is sampled at <strong>the</strong> falling edge of <strong>the</strong> SCLK signal. The<br />

data/command signal D/C is used to distinguish between graphic display data access and control<br />

commands sent to <strong>the</strong> display. Table 3 outlines <strong>the</strong> available display-control commands.<br />

<strong>Freescale</strong> Semiconductor 3


<strong>OLED</strong> <strong>Display</strong> Description<br />

4<br />

D/C<br />

CS<br />

SCLK<br />

SDIN<br />

B7 B6 B5 B4 B3 B2 B1 B0<br />

Figure 2. Serial Data Transfer (Command)<br />

The display data is sent byte-by-byte. Each byte automatically increments <strong>the</strong> address pointer to <strong>the</strong> next<br />

position. The display supports different GDDRAM to pixel mappings <strong>for</strong> mounting flexibility (regarding<br />

display orientation). You can rotate <strong>the</strong> display output by 180 degrees. Figure 3 and Table 2 show <strong>the</strong><br />

default pixel mapping <strong>the</strong> software uses.<br />

(0,0)<br />

Figure 3. Pixel Mapping<br />

(127,63)<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


Row<br />

Table 2. GDDRAM Address Mapping (Data-Byte Sequence D0, D1, ..., D5119)<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>OLED</strong> <strong>Display</strong> Description<br />

To update a portion of <strong>the</strong> display partially, you can use <strong>the</strong> set-column-address and set-row-address<br />

commands. They allow defining a portion (canvas) of <strong>the</strong> display to be updated without updating <strong>the</strong> whole<br />

128 x 64 pixels. Also, each transferred data byte increases <strong>the</strong> address pointer to <strong>the</strong> next (two) pixel within<br />

<strong>the</strong> defined area. Basically, this mechanism allows you to individually update any (two) pixel (respectively,<br />

any byte in <strong>the</strong> GDDRAM).<br />

One constraint of using <strong>the</strong> serial interface is that it supports only unidirectional data transfer (write-only).<br />

Basically, in <strong>the</strong> serial mode you cannot read back <strong>the</strong> GDDRAM content; you cannot update only a single<br />

pixel of two pixel in a byte by using a read-modify-write one byte method.<br />

1.2 Command Description<br />

Column<br />

0 1 ... 63 Address<br />

0 1 2 3 ... 126 127 Pixel<br />

0 D0[7:4] D0[3:0] D1[7:4] D1[3:0] ... D63[7:4] D63[3:0]<br />

1 D64[7:4] D64[3:0] D65[7:4] D65[3:0] .... D127[7:4] D127[3:0]<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

Table 3 briefly explains <strong>the</strong> available commands (<strong>for</strong> <strong>the</strong> serial interface) and <strong>the</strong>ir corresponding<br />

parameters. For a more detailed description, consult <strong>the</strong> OSRAM Pictiva or SSD0323 documentation<br />

(Section 8, “References,” on page 32). Most commands are used to parametrize <strong>the</strong> COG <strong>for</strong> a specific<br />

display under specific ambient conditions. Recommendations <strong>for</strong> setup <strong>for</strong> various displays are provided<br />

by <strong>the</strong> display manufacturers (<strong>for</strong> OSRAM <strong>OLED</strong> see Table 4).<br />

<strong>Freescale</strong> Semiconductor 5<br />

.<br />

.<br />

.<br />

... .<br />

.<br />

.<br />

63 D5056[7:4] D5056[3:0] D5057[7:4] D5057[3:0] ... D5119[7:4] D5119[3:0]<br />

Address<br />

.<br />

.<br />

.


<strong>OLED</strong> <strong>Display</strong> Description<br />

6<br />

Table 3. Command Table (Sheet 1 of 5)<br />

D/C Hex Command Length Description 1<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0x15<br />

A[5:0]<br />

B[5:0]<br />

0x75<br />

A[5:0]<br />

B[5:0]<br />

0x81<br />

A[6:0]<br />

Set Column Address 3 bytes This command specifies column start address and end address of<br />

<strong>the</strong> display data RAM. It also sets <strong>the</strong> column address pointer to<br />

column start address.<br />

Second byte A[5:0] sets <strong>the</strong> column start address from 0–63. POR<br />

= 0.<br />

Third byte B[5:0] sets <strong>the</strong> column end address from 0–63,<br />

POR = 63<br />

Set Row Address 3 bytes This command specifies row start address and end address of <strong>the</strong><br />

display data RAM. It also sets <strong>the</strong> row address pointer to row start<br />

address.<br />

Second byte A[5:0] sets <strong>the</strong> row start address from 0–79, POR= 0.<br />

Third byte B[5:0] sets <strong>the</strong> row end address from 0–79, POR = 79<br />

Set Contrast Control Register 2 bytes This command is to set contrast setting of <strong>the</strong> display. The COG<br />

chip has 128 contrast steps from 0x00 to 0x7F. The segment<br />

output current increases linearly with <strong>the</strong> increase of contrast step.<br />

Second byte A[6:0] sets <strong>the</strong> contrast in 128 steps. Contrast<br />

increases as level increases. POR = 0x40.<br />

0 0x84–0x86 Set Current Range 1 byte This command is used to select quarter range or half range or full<br />

range current mode. With <strong>the</strong> same contrast level, quarter range<br />

mode gives a quarter of <strong>the</strong> current output of <strong>the</strong> full range mode.<br />

Similar to half-range current mode, it gives a half of <strong>the</strong> current<br />

output of <strong>the</strong> full-range mode.<br />

0x84 = Quarter-current range (POR)<br />

0x85 = Half-current range<br />

0x86 = Full-current range<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


0<br />

0<br />

0<br />

0<br />

0xA0<br />

A[6:0]<br />

0xA1<br />

A[6:0]<br />

Table 3. Command Table (Sheet 2 of 5)<br />

D/C Hex Command Length Description 1<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>OLED</strong> <strong>Display</strong> Description<br />

Set Re-map 2 bytes This command changes <strong>the</strong> mapping between <strong>the</strong> display data<br />

column address and segment driver, row address and common<br />

driver. It allows flexibility in layout during <strong>OLED</strong> module assembly.<br />

Column Address Re-map<br />

If column address re-map is set, columns 0–63 map to<br />

SEG127–0, regardless of star-column and end-column<br />

commands.<br />

Nibble Re-map<br />

If nibble re-map is set, <strong>the</strong> two nibbles of <strong>the</strong> data bus <strong>for</strong> RAM<br />

access are re-mapped, such that B7, B6, B5, B4, B3, B2, B1, B0<br />

acts like B3, B2, B1, B0, B7, B6, B5, B4.<br />

This feature working with column address re-map produces an<br />

effect of flipping outputs SEG0–127 to SEG127–SEG0.<br />

Address Increment Mode<br />

If horizontal increment mode is set, <strong>the</strong> column address pointer<br />

advances after each RAM access. If vertical increment mode is<br />

set, <strong>the</strong> row-address pointer advances after each RAM access.<br />

COM Re-map<br />

If COM re-map is set, ROW 0–79 maps to COM79–0, regardless<br />

of start and end row commands.<br />

A[0]=0, Disable Column Address Re-map (POR)<br />

A[0]=1, Enable Column Address Re-map<br />

A[1]=0, Disable Nibble Re-map (POR)<br />

A[1]=1, Enable Nibble Re-map<br />

A[2]=0, Horizontal Address Increment (POR)<br />

A[2]=1, Vertical Address Increment<br />

A[4]=0, Disable COM Re-map disable (POR)<br />

A[4]=1, Enable COM Re-map<br />

A[5]=0, Reserved (POR)<br />

A[5]=1, Reserved<br />

A[6]=0, Disable COM Split Odd Even (POR)<br />

A[6]=1, Enable COM Split Odd Even<br />

Set <strong>Display</strong> Start Line 2 bytes This command sets <strong>the</strong> display-start-line register, determining <strong>the</strong><br />

display RAM address that can be shown by selecting a value from<br />

0 to 79.<br />

Second byte A[6:0] sets <strong>the</strong> display RAM start-line register from 0<br />

to 79. POR = 0.<br />

<strong>Freescale</strong> Semiconductor 7


<strong>OLED</strong> <strong>Display</strong> Description<br />

0<br />

0<br />

8<br />

0xA2<br />

A[6:0]<br />

Set <strong>Display</strong> Offset 2 bytes This command is to set <strong>the</strong> display-offset register to determine <strong>the</strong><br />

mapping of <strong>the</strong> display start line to one of COM0–79. (It is<br />

assumed that COM0 is <strong>the</strong> display start line, display start line<br />

register equals 0.)<br />

For example, to move <strong>the</strong> COMX toward <strong>the</strong> COM0 direction <strong>for</strong> L<br />

lines, <strong>the</strong> 7-bit data in <strong>the</strong> second command should be given by L.<br />

In o<strong>the</strong>r words, to move <strong>the</strong> COMX towards <strong>the</strong> COM79 direction<br />

<strong>for</strong> L lines, <strong>the</strong> 7-bit data in <strong>the</strong> second command should be given<br />

by 80–L.<br />

Second byte A[6:0] sets <strong>the</strong> vertical scroll by COM from 0–79.<br />

POR = 0.<br />

0 0xA4–0xA7 Set <strong>Display</strong> Mode 1 byte This command is used to set normal display, entire display on,<br />

entire display off, and inverse display.<br />

0<br />

0<br />

0<br />

0<br />

0xA8<br />

A[6:0]<br />

0xAD<br />

A[1:0]<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Normal <strong>Display</strong> turns <strong>the</strong> data to ON at <strong>the</strong> corresponding gray<br />

levels GS0–GS15 (see Set Gray Scale Table).<br />

Entire <strong>Display</strong> On <strong>for</strong>ces <strong>the</strong> entire display to be at gray level<br />

GS15, regardless of <strong>the</strong> contents of <strong>the</strong> display data RAM.<br />

Entire <strong>Display</strong> Off <strong>for</strong>ces <strong>the</strong> entire display to be at gray level GS0<br />

regardless of <strong>the</strong> contents of <strong>the</strong> display data RAM.<br />

Inverse <strong>Display</strong> uses <strong>the</strong> gray scale table in reverse order gray<br />

level 0–15 uses GS15–GS0, and so on.<br />

0xA4 = Normal <strong>Display</strong> (POR)<br />

0xA5 = Entire <strong>Display</strong> On (GS15)<br />

0xA6 = Entire <strong>Display</strong> Off (GS0)<br />

0xA7 = Inverse <strong>Display</strong><br />

Set Multiplex Ratio 2 bytes This command sets multiplex ratio N from 16 to 80.<br />

Second byte A[6:0] determines multiplex ration N. POR = 0x4F<br />

(80).<br />

Set Master Configuration 2 bytes This command is used to enable or disable <strong>the</strong> internal DC–DC<br />

voltage converter. This command is executed when display is on.<br />

A[0] = 0, Disable DC–DC converter<br />

A[0] = 1, Enable DC–DC converter (POR)<br />

A[1] = 0, Disable internal VCOMH<br />

A[1] = 1, Enable internal VCOMH (POR)<br />

0 0xAE–0xAF Set <strong>Display</strong> On/Off 1 byte This command turns <strong>the</strong> display on or off. When <strong>the</strong> display is off,<br />

<strong>the</strong> segment and common output are in high impedance state.<br />

0xAE = display off (sleep mode) (POR)<br />

0xAF = display on<br />

0<br />

0<br />

0<br />

0<br />

0xB0<br />

A[5:0]<br />

0xB4<br />

A[2:0]<br />

Set Pre-charge<br />

Compensation Enable<br />

Set Pre-charge<br />

Compensation Level<br />

Table 3. Command Table (Sheet 3 of 5)<br />

D/C Hex Command Length Description 1<br />

2 bytes This command enables <strong>the</strong> pre-charge voltage.<br />

A[5:0] = 0x08 (POR)<br />

A[5:0] = 0x28, enable pre-charge compensation<br />

2 bytes This command sets <strong>the</strong> pre-charge voltage level.<br />

A[2:0] = 0 (POR)<br />

A[2:0] = 3, recommended level<br />

<strong>Freescale</strong> Semiconductor


0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0xBF<br />

A[3:0]<br />

0xBE<br />

A[5:0]<br />

0xBC<br />

A[7:0]<br />

0xB1<br />

A[7:0]<br />

0xB2<br />

A[7:0]<br />

Set Segment Low<br />

Voltage (VSL)<br />

Table 3. Command Table (Sheet 4 of 5)<br />

D/C Hex Command Length Description 1<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>OLED</strong> <strong>Display</strong> Description<br />

2 bytes This command is used to set segment low voltage (VSL). The<br />

value of VSL is <strong>the</strong> same <strong>for</strong> display all on, display all off pattern<br />

with internal or external DC–DC voltage converter.<br />

The second byte A[3:0] sets <strong>the</strong> VSL voltage as follow: 1000–1110<br />

A[3:0] = 0010 connects to V SS<br />

A[3:0] = 1110 (POR)<br />

(When V DD > 2.5 V)<br />

Set VCOMH Voltage 2 bytes This command is used to set VCOMH voltage level.<br />

The second byte A[5:0] specifies <strong>the</strong> VCOMH voltage level<br />

000000–011111<br />

A[5:0] = 1xxxxx = 1.0*VREF<br />

A[5:0] = 010001(POR)<br />

Set Pre-charge Voltage 2 bytes This command is used to set <strong>the</strong> pre-charge voltage level.<br />

The second byte A[7:0] sets <strong>the</strong> pre-charge voltage level<br />

00000000–00011111<br />

A[7:0] = 1xxxxxxx connects to VCOMH<br />

A[7:0] = 001xxxxx equals 1.0*VREF<br />

A[7:0] = 00011000(POR)<br />

Set Phase Length 2 bytes This command sets <strong>the</strong> phase length. The lower nibble of <strong>the</strong><br />

second byte selects phase 1 period (no pre-charge and current<br />

drive) from 1 to 16 DCLKs. The higher nibble of <strong>the</strong> second byte<br />

is used to select phase 2 period (pre-charge) from 1 to 16 DCLKs.<br />

A[3:0] = P1, phase 1 period of 1–15 DCLK clocks, POR = 3DCLKS<br />

= 3<br />

A[7:4] = P2, phase 2 period of 1–15 DCLK clocks, POR = 5DCLKS<br />

= 5<br />

Set Row Period 2 bytes This command is used to set <strong>the</strong> row period. It is defined by<br />

multiplying <strong>the</strong> internal display clock period by <strong>the</strong> number of<br />

DCLKSs per row (value from 2–158).<br />

The larger <strong>the</strong> value, <strong>the</strong> more precise tuning of each gray scale<br />

level. See set gray scale table command <strong>for</strong> details.<br />

Also, it is used to define <strong>the</strong> frame frequency with <strong>the</strong> display clock<br />

divide ratio command.<br />

Row period equal to <strong>the</strong> sum of phase 1, 2 periods and <strong>the</strong> pulse<br />

width of GS15.<br />

Second byte sets <strong>the</strong> number of DCLKs, K, per row between<br />

2–158DCLKS, POR = 37DCLKS = 0x25<br />

The K value should be set as K = P1+P2+GS15 pulse width (POR:<br />

3+5+29DCLKS)<br />

<strong>Freescale</strong> Semiconductor 9


<strong>OLED</strong> <strong>Display</strong> Description<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

1.3 Power Up / Power Down Sequence<br />

To protect <strong>the</strong> <strong>OLED</strong> display and to extend <strong>the</strong> display life time <strong>the</strong> power up/down sequence should be<br />

controlled, specifically, <strong>the</strong> display voltage V CC (typ. 12–15 V).<br />

1.3.1 Power-Up Sequence<br />

To power-up <strong>the</strong> <strong>OLED</strong> display follow <strong>the</strong> steps below:<br />

1. Power-up VDD (3.3 V) and wait until stable<br />

2. <strong>OLED</strong> display hardware reset<br />

3. Send display-off command<br />

10<br />

0xB3<br />

A[7:0]<br />

B8<br />

A[2:0]<br />

B[6:4][2:0]<br />

C[6:4][2:0]<br />

D[6:4][2:0]<br />

E[6:4][2:0]<br />

F[6:4][2:0]<br />

G[6:4][2:0]<br />

H[6:4][2:0]<br />

0xCF<br />

A[7:4]<br />

Set <strong>Display</strong> Clock Divide<br />

Ratio/Oscillator<br />

Frequency<br />

2 bytes This command is used to set <strong>the</strong> frequency of <strong>the</strong> internal display<br />

clocks, DCLKs. It is defined by dividing <strong>the</strong> oscillator frequency by<br />

<strong>the</strong> divide ratio (Value from 1 to 16). Frame frequency is<br />

determined by divide ratio, number of display clocks per row, MUX<br />

ratio and oscillator frequency.<br />

The lower nibble of <strong>the</strong> second byte is used to select <strong>the</strong> oscillator<br />

frequency.<br />

The lower nibble of <strong>the</strong> next byte sets <strong>the</strong> divide ratio of <strong>the</strong> display<br />

clocks: Divide ratio = 1–16, POR = 2<br />

The higher nibble of <strong>the</strong> next byte sets <strong>the</strong> Oscillator Frequency.<br />

Oscillator Frequency increases with <strong>the</strong> value of A[7:4] and vice<br />

versa. POR=0<br />

Set Gray Scale Table 9 bytes This command is used to set <strong>the</strong> gray scale table <strong>for</strong> <strong>the</strong> display.<br />

The next 8 bytes set <strong>the</strong> gray scale level of GS1–15 as below:<br />

A[2:0] = L1, POR=1<br />

B[2:0] = L2, POR=1<br />

B[6:4] = L3, POR=1<br />

C[2:0] = L4 POR=1<br />

C[6:4] = L5, POR=1<br />

D[2:0] = L6, POR=1<br />

D[6:4] = L7, POR=1<br />

E[2:0] = L8, POR=1<br />

E[6:4] = L9, POR=1<br />

F[2:0] = L10, POR=1<br />

F[6:4] = L11, POR=1<br />

G[2:0] = L12, POR=1<br />

G[6:4] = L13, POR=1<br />

H[2:0] = L14, POR=1<br />

H[6:4] = L15, POR=1<br />

Set Biasing Current <strong>for</strong><br />

DC–DC converter<br />

1 byte F0H = High (POR)<br />

70H = Low<br />

0 0xE3 NOP 1 byte Command <strong>for</strong> no operation<br />

1 POR indicates <strong>the</strong> default value after power on reset<br />

Table 3. Command Table (Sheet 5 of 5)<br />

D/C Hex Command Length Description 1<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


4. Power-up V CC (12 V) and wait until stable<br />

5. Delay 100 ms<br />

6. Send display-on command<br />

1.3.2 Power-Down Sequence<br />

To power-down <strong>the</strong> <strong>OLED</strong> display follow <strong>the</strong> steps below:<br />

1. Send display-off command<br />

2. Power down VCC (12 V)<br />

3. Delay 100 ms (when VCC has reached 0 V and panel is completely discharged)<br />

4. Power down VDD (3.3 V)<br />

1.4 <strong>Display</strong> Initialization<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>OLED</strong> <strong>Display</strong> Description<br />

Table 4 shows <strong>the</strong> manufacturers (OSRAM) recommended initialization sequence after power-up <strong>for</strong> <strong>the</strong><br />

Pictiva 2.7-inch 128x64 <strong>OLED</strong> <strong>Display</strong>, Elegance Yellow with <strong>the</strong> following parameters:<br />

• VDD = 3.3 V<br />

• VCC = 12 V<br />

• Frame frequency = 100 Hz<br />

CAUTION<br />

Consult <strong>the</strong> manufacturer documentation <strong>for</strong> <strong>the</strong> latest in<strong>for</strong>mation and <strong>for</strong><br />

different displays (<strong>for</strong> example, spring green instead of elegance yellow)<br />

and/or parameters (<strong>for</strong> example, different V CC voltages).<br />

Table 4. Initialization Sequence After Power-Up<br />

Command Code POR Default Value<br />

Set column address 0x15 0x00<br />

0x3F<br />

Set row address 0x75 0x00<br />

0x4F<br />

Initialization<br />

(Dual Voltage Supply)<br />

<strong>Freescale</strong> Semiconductor 11<br />

0x00<br />

0x3F<br />

0x00<br />

0x3F<br />

Set contrast control 0x81 0x40 0x66 1<br />

Set current range 0x84–0x86 quarter (0x84) full (0x86)<br />

Set re-map 0xA0 0x00 0x41<br />

Set display start line 0xA1 00 default<br />

Set display offset 0xA2 0x00 0x44<br />

Set multiplexer ratio 0xA8 0x4F 0x3F<br />

Set display ON/OFF 0xAE (OFF) 0xAF (ON)<br />

Set display mode 0xA4 default


<strong>OLED</strong> <strong>Display</strong> Description<br />

12<br />

Table 4. Initialization Sequence After Power-Up (continued)<br />

Command Code POR Default Value<br />

Set DC-DC converter 0xAD 0x02 0x02 (disabled)<br />

Set DC-DC bias current 0xCF 0xF0 default<br />

Set row period 0xB2 0x25 0x46<br />

Set pre-charge<br />

compensation enable<br />

Set pre-charge<br />

compensation level<br />

0xB0 0x08 0x28<br />

0xB4 0x00 0x07<br />

Set clock divide 0xB3 0x02 0xF1<br />

Set phase length 0xB1 P1=3, P2=5 0x22 (P1=2, P2=2)<br />

Set VSL 0xBF 0x0E 0x0D<br />

Set VCOMH 0xBE 0x11 0x021 Set Vprecharge 0xBC 0x18 0x04<br />

Set gray scale table 0xB8 all 1 see Table 5<br />

1 This setting represents maximum luminance <strong>for</strong> proper operation of <strong>the</strong> display. A lower<br />

setting can be used <strong>for</strong> dimming. A higher setting adversely affects <strong>the</strong> operating lifetime, as<br />

defined in this specification.<br />

Table 5 shows <strong>the</strong> corresponding recommended gray-scale settings.<br />

Table 5. Gray-Scale Settings<br />

GS Level Phase 1 Phase 2 S/W Set GS Pulse Total DCLK<br />

L0 2 2 0 0 4<br />

L1 2 2 1 1 5<br />

L2 2 2 1 3 7<br />

L3 2 2 1 5 9<br />

L4 2 2 2 8 12<br />

L5 2 2 2 11 15<br />

L6 2 2 2 14 18<br />

L7 2 2 3 18 22<br />

L8 2 2 3 22 26<br />

L9 2 2 4 27 31<br />

L10 2 2 4 32 36<br />

L11 2 2 5 38 42<br />

L12 2 2 5 44 48<br />

L13 2 2 6 51 55<br />

L14 2 2 6 58 62<br />

L15 2 2 7 66 70<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Initialization<br />

(Dual Voltage Supply)<br />

<strong>Freescale</strong> Semiconductor


2 Hardware<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Hardware<br />

The system is set up using <strong>the</strong> standard DEMO9S08AW60 and DEMO9S08QG8 boards with a second pcb<br />

board called an <strong>OLED</strong> daughter card (Figure 4).<br />

Power Supply<br />

2 Switches<br />

Potentiometer<br />

Light Sensor<br />

QG8DEMO Board<br />

2.1 <strong>OLED</strong> Daughter Card<br />

3.3 V Logic Supply<br />

GND<br />

12 V Enable<br />

RESET<br />

Data/Command<br />

MOSI<br />

SPCLK<br />

SS<br />

DC/DC<br />

3.3 V<br />

to<br />

12 V<br />

Figure 4. System Setup Example<br />

<strong>OLED</strong> <strong>Display</strong><br />

128x64pixel<br />

(Yellow 4bit)<br />

<strong>OLED</strong> Daughter Card<br />

The <strong>OLED</strong> daughter card allows <strong>the</strong> <strong>OLED</strong> display to connect to <strong>the</strong> DEMO9S08QG8 or<br />

DEMO9S08AW60 demo boards. The <strong>OLED</strong> daughter card contains <strong>the</strong> socket <strong>for</strong> <strong>the</strong> flat flex cable (FFC)<br />

of <strong>the</strong> <strong>OLED</strong> display, a DC/DC converter (12 V, 120 mA boost converter) to supply <strong>the</strong> <strong>OLED</strong> display with<br />

<strong>the</strong> necessary 12 V derived from <strong>the</strong> 3.3 V supply of <strong>the</strong> DEMO9S08AW60 and DEMO9S08QG8 boards.<br />

It has two separate 0.1-inch pinheader connectors, J1 and J2, that can be directly connected to <strong>the</strong><br />

DEMO9S08AW60 and DEMO9S08QG8 boards, respectively.<br />

Fur<strong>the</strong>r details of <strong>the</strong> <strong>OLED</strong> Daughter Card, like schematics, layout and bill of materials (BOM), can be<br />

found in Section Appendix A, “<strong>OLED</strong> Daughter Card.”<br />

2.1.1 Interface<br />

• <strong>OLED</strong> daughter-card interface — Requires six signals and two power-supply connections (Table 6,<br />

Table 7).<br />

• MCU serial peripheral interface — Used to transfer data and commands to <strong>the</strong> <strong>OLED</strong> display.<br />

Three SPI pins—slave select (SS), serial clock (SPSCK), and master-out slave-in (MOSI)—are<br />

used <strong>for</strong> <strong>the</strong> unidirectional data flow from <strong>the</strong> MCU to <strong>the</strong> <strong>OLED</strong> display. The master-in slave-out<br />

(MISO) pin is available <strong>for</strong> o<strong>the</strong>r use.<br />

• 12VEN signal — Controls DC/DC converter output voltage. Allows a controlled power up/down<br />

of <strong>the</strong> <strong>OLED</strong> power voltage V CC .<br />

<strong>Freescale</strong> Semiconductor 13


Hardware<br />

14<br />

• RST signal — Connected to an MCU general-purpose input output (GPIO) pin to control <strong>the</strong><br />

<strong>OLED</strong> display hardware reset by software.<br />

2.2 Setup with DEMO9S08QG8 Board<br />

Figure 4 indicates <strong>the</strong> <strong>OLED</strong> driver setup using <strong>the</strong> DEMO9S08QG8 board.<br />

To protect <strong>the</strong> system and <strong>for</strong> proper operation, set up <strong>the</strong> DEMO9S08QG8 board be<strong>for</strong>e <strong>the</strong> system<br />

powers up.<br />

Use <strong>the</strong> documentation provided with <strong>the</strong> board <strong>for</strong> more details about <strong>the</strong> DEM09S08QG8 board.<br />

2.2.1 Jumpers<br />

Table 6. <strong>OLED</strong> Daughter-Card Connector J1 (DEMO9S08QG8)<br />

Pin Signal Description<br />

1 3.3 V 3.3 V power supply input<br />

3 GND Ground<br />

17 SDIN Serial data input<br />

19 12VEN 12 V enable control input<br />

21 SCLK Serial clock input<br />

23 CS Chip Select input<br />

27 D/C Data/command input<br />

29 RST Reset input<br />

all o<strong>the</strong>r pins Unused — not connected<br />

Table 7. <strong>OLED</strong> Daughter-Card Connector J2 (DEMO9S08AW60)<br />

Pin Signal Description<br />

1 3.3 V 3.3 V power supply input<br />

3 GND Ground<br />

13 D/C Data/command input<br />

15 RST Reset input<br />

17 SDIN Serial data input<br />

19 12VEN 12 V enable control input<br />

21 SCLK Serial clock input<br />

23 CS Chip Select input<br />

All o<strong>the</strong>r pins Unused — not connected<br />

Jumper VX_EN must be closed to provide <strong>the</strong> <strong>OLED</strong> daughter card with power (3.3 V).<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Software and CodeWarrior ‘ Development Tool<br />

The Jumper PWR_SEL must be in position V DD . This selects <strong>the</strong> external power supply as <strong>the</strong> power<br />

source.<br />

The Jumper USER_EN should be closed <strong>for</strong> full demo functionality.<br />

Figure 5 summarizes <strong>the</strong> jumper settings.<br />

Figure 5. DEMO9S08QG8 Jumper Settings<br />

2.3 Setup with DEMO9S08AW60 Board<br />

Figure 13 indicates <strong>the</strong> <strong>OLED</strong> <strong>Driver</strong> setup using <strong>the</strong> DEMO9S08AW60 board.<br />

To protect <strong>the</strong> system and <strong>for</strong> proper operation, set up <strong>the</strong> DEMO9S08AW60 board be<strong>for</strong>e <strong>the</strong> system<br />

powers up.<br />

WARNING<br />

Set up <strong>the</strong> DEMO9S08AW60 board correctly to avoid system damage or<br />

malfunction! The board must be configured <strong>for</strong> 3 V (see Section 2.3.1,<br />

“Jumpers”).<br />

Use <strong>the</strong> documentation provided with <strong>the</strong> board <strong>for</strong> more details about <strong>the</strong> DEM09S08AW60 board.<br />

2.3.1 Jumpers<br />

• Jumper W1 — V DD _SEL must be in position 3 V. This selects <strong>the</strong> 3 V operation.<br />

• Jumper W2 — 5V_SEL must be in position EXT. This selects <strong>the</strong> external power supply as <strong>the</strong><br />

power source.<br />

• Jumper W3 — P_IO_5V must be closed to provide <strong>the</strong> <strong>OLED</strong> daughter card with power (3.3 V).<br />

• Jumpers from J3 to J31 — Should be closed <strong>for</strong> full demo functionality.<br />

Figure 6 summarizes jumper settings.<br />

W3 P_IO_5V<br />

VX_EN PWR_SEL<br />

USB EXT<br />

5V_SEL<br />

W2<br />

VB VDD<br />

5V 3V<br />

VDD_SEL<br />

Figure 6. DEMO9S08AW60 Jumper Settings<br />

USER_EN<br />

3 Software and CodeWarrior Development Tool<br />

The application software was developed <strong>for</strong> <strong>the</strong> DEMO9S08QG8 and <strong>the</strong> DEMO9S08AW60 boards<br />

driving an OSRAM Pictiva OSRAM Pictiva 2.7-inch 128x64 <strong>OLED</strong> <strong>Display</strong>, Elegance Yellow with 16 gray<br />

<strong>Freescale</strong> Semiconductor 15<br />

W1<br />

SW1<br />

SW2<br />

LED1<br />

LED2<br />

RV1<br />

RZ1<br />

J31<br />

J3


Software and CodeWarrior ‘ Development Tool<br />

scales (Part.No. OS128064PK27MY0B00). It is written in a way which should make it easy to adopt <strong>for</strong><br />

different MCUs or different <strong>OLED</strong> displays.<br />

The software is also tested to be used with <strong>the</strong> OSRAM Pictiva 1.6-inch 128x64 <strong>OLED</strong> display, elegance<br />

yellow with 16 gray scales (Part.No. OS128064PK16MY0A01).<br />

The driver project was developed with <strong>the</strong> CodeWarrior <strong>for</strong> HC08 V5.1 — Special Edition development<br />

tool.<br />

Application features:<br />

• Serial interface to <strong>OLED</strong> display using SPI module (low number of I/Os used)<br />

• Low-level routines:<br />

— Send data byte<br />

— Send command byte<br />

— <strong>OLED</strong> power voltage ON/OFF<br />

— <strong>OLED</strong> hardware reset<br />

• High-level routines:<br />

— <strong>Display</strong> initialization<br />

— Set drawing area<br />

— Fill drawing area<br />

— Draw text using bitmap font<br />

— Draw bitmap graphic<br />

• Two bitmap type fonts 5x7 and 8x15 pixel size are included<br />

• Adaptable <strong>for</strong> o<strong>the</strong>r <strong>OLED</strong> displays or MCUs<br />

To open <strong>the</strong> <strong>OLED</strong> driver demo project, open file <strong>OLED</strong>Demo.mcp in <strong>the</strong> CodeWarrior integrated<br />

development environment (IDE). Figure 7 shows <strong>the</strong> project view.<br />

16<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


Figure 7. <strong>OLED</strong> <strong>Driver</strong> Demo Project Tree<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Software and CodeWarrior ‘ Development Tool<br />

<strong>Freescale</strong> Semiconductor 17


Software and CodeWarrior ‘ Development Tool<br />

3.1 <strong>OLED</strong> <strong>Driver</strong> Software Description<br />

The <strong>OLED</strong> driver project contains <strong>the</strong> following files:<br />

3.1.1 <strong>Driver</strong> Configuration<br />

18<br />

Table 8. <strong>OLED</strong> <strong>Driver</strong> Files<br />

Files Description<br />

<strong>OLED</strong>.H <strong>OLED</strong> driver header file<br />

— Constants (defines) <strong>for</strong> <strong>OLED</strong> commands<br />

— Preparation <strong>for</strong> different <strong>OLED</strong> displays<br />

— Definition of MCU hardware interface<br />

<strong>OLED</strong>.C <strong>OLED</strong> driver c file<br />

— <strong>OLED</strong> initialization sequence (array)<br />

— <strong>OLED</strong> functions (Table 9)<br />

FONT.H Font include file<br />

FONT.C Font c file<br />

— Definition of two fonts 5x7pixel and 8x16pixel<br />

IMAGES.H Image include file<br />

IMAGES.C Image c file<br />

— Example images<br />

DERIVATIVE.H Header file to include <strong>the</strong> derivative specific header file<br />

— This and <strong>the</strong> MCU derivative-specific files (<strong>for</strong> example,<br />

MC9S08QG8.H and MC9S08QG8.C) are controlled by <strong>the</strong><br />

CodeWarrior IDE (Section 3.1.1, “<strong>Driver</strong> Configuration”).<br />

MYTYPES.H Type definitions<br />

MAIN.C Shows an example implementation of <strong>the</strong> <strong>OLED</strong> driver<br />

The <strong>OLED</strong>.H header file can adapt <strong>the</strong> driver <strong>for</strong> different microcontrollers. Currently, it supports <strong>the</strong><br />

MC9S08QG8 and <strong>the</strong> MC9S08AW60 MCUs.<br />

To change <strong>the</strong> microcontroller, click on <strong>the</strong> “Change MCU/Connection ...” button and select <strong>the</strong> MCU<br />

derivative and <strong>the</strong> debugger connection you want to use (Figure 8 and Figure 9).<br />

NOTE<br />

You must select <strong>the</strong> correct MCU derivative and debugger interface to<br />

download <strong>the</strong> software into <strong>the</strong> microcontroller flash memory.<br />

Figure 8. Change MCU<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


Figure 9. Select MCU Derivative and Debugger Connection<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Software and CodeWarrior ‘ Development Tool<br />

The CodeWarrior IDE automatically modifies <strong>the</strong> DERIVATIVE.H file and inclues <strong>the</strong> right MCU<br />

derivative files.<br />

For example, after changing to <strong>the</strong> MC9S08QG8 MCU <strong>the</strong> DERIVATIVE.H file looks like this:<br />

/*<br />

* Note: This file is recreated by <strong>the</strong> project wizard whenever <strong>the</strong> MCU is<br />

* changed and should not be edited by hand<br />

*/<br />

/* Include <strong>the</strong> derivative-specific header file */<br />

#include <br />

<strong>Freescale</strong> Semiconductor 19


Software and CodeWarrior ‘ Development Tool<br />

And now, <strong>the</strong> project contains <strong>the</strong> MC9S08QG.C and MC9S08QG8.H files:<br />

20<br />

Figure 10. IDE Updates MCU Derivative Files<br />

The MC9S08QG8.H file defines a macro with <strong>the</strong> derivative name, <strong>for</strong> example, _MC9S08QG8_H, which<br />

is used to implement <strong>the</strong> hardware interface-specific code.<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Software and CodeWarrior ‘ Development Tool<br />

// ----------------------------------------------------------------------------<br />

// macros <strong>for</strong> hardware interface<br />

// ----------------------------------------------------------------------------<br />

// ------------------------------<br />

// pinout <strong>for</strong> DEMO9S08QG8 board:<br />

#ifdef _MC9S08QG8_H<br />

// use PTB4/MISO pin to enable 12V <strong>for</strong> <strong>OLED</strong> display<br />

#define _12V_Init() PTBD_PTBD4 = 0; PTBDD_PTBDD4 = 1<br />

#define _12V_Enable() (PTBD_PTBD4 = 1)<br />

#define _12V_Disable() (PTBD_PTBD4 = 0)<br />

// use PTB7 pin to drive reset signal <strong>OLED</strong> display<br />

#define _RST_Init() PTBD_PTBD7 = 1; PTBDD_PTBDD7 = 1<br />

#define _RST_Assert() (PTBD_PTBD3 = 0)<br />

#define _RST_Release() (PTBD_PTBD3 = 1)<br />

// use PTB6 pin to drive D/#C (Data/Command) signal to <strong>OLED</strong> display<br />

#define _DC_Init() {PTBD_PTBD6 = 1; PTBDD_PTBDD6 = 1;}<br />

#define _DC_Set() (PTBD_PTBD6 = 1)<br />

#define _DC_Clr() (PTBD_PTBD6 = 0)<br />

// SPI init<br />

#define _SPI_Init() { \<br />

SPIC1 = SPIC1_SPE_MASK|SPIC1_MSTR_MASK|SPIC1_SSOE_MASK; \<br />

SPIC2 = SPIC2_MODFEN_MASK|SPIC2_BIDIROE_MASK|SPIC2_SPC0_MASK; \<br />

SPIBR = 0; \<br />

}<br />

#define _SPI_Send(v) {while(!SPIS_SPTEF) {;} SPID = (v);}<br />

#endif<br />

To adapt <strong>the</strong> driver software <strong>for</strong> a different <strong>OLED</strong> display, modify <strong>the</strong> initialization routine. This is<br />

currently limited to only 4 bpp displays. Different color resolutions require fur<strong>the</strong>r adaptations.<br />

In <strong>the</strong> <strong>OLED</strong>.H file, a define, based on <strong>the</strong> manufacturer part number (<strong>for</strong> example,<br />

OS128064PK27MY0B00), is used to select which display is connected. A second definition<br />

_UP_SIDE_DOWN allows to select <strong>the</strong> display orientation.<br />

// ----------------------------------------------------------------------------<br />

// macros <strong>for</strong> display selection and orientation<br />

// ----------------------------------------------------------------------------<br />

// select which display to use, if necessary add new display and init sequence<br />

//#define OS128064PK27MY0B00<br />

#define OS128064PK16MY0A01<br />

// select if display is mounted up side down<br />

//#define _UP_SIDE_DOWN // define to rotate output 180 degrees<br />

<strong>Freescale</strong> Semiconductor 21


Software and CodeWarrior ‘ Development Tool<br />

In <strong>the</strong> <strong>OLED</strong>.C file, modify <strong>the</strong> actual initialization sequence.<br />

22<br />

//-----------------------------------------------------------------------------<br />

// <strong>OLED</strong> Init Sequence <strong>for</strong> Pictiva 128x64 2.7" Yellow OS128064PK27MY0B00<br />

// is used by <strong>OLED</strong>_<strong>Display</strong>_Init()<br />

//-----------------------------------------------------------------------------<br />

#if defined(OS128064PK27MY0B00)<br />

const UINT8 _<strong>Display</strong>_Init_Seq[] = {<br />

<strong>OLED</strong>_SETCONTRAST,0x5D, // <strong>for</strong> yellow<br />

<strong>OLED</strong>_SETCURRENTRANGE_100,<br />

#if defined (_UP_SIDE_DOWN)<br />

<strong>OLED</strong>_SETREMAP,0x52,<br />

<strong>OLED</strong>_SETDISPLAYOFFSET,0x4C, // mapping of RAM to display<br />

#else<br />

<strong>OLED</strong>_SETREMAP,0x41,<br />

<strong>OLED</strong>_SETDISPLAYOFFSET,0x44, // mapping of RAM to display<br />

#endif<br />

<strong>OLED</strong>_SETDISPLAYSTARTLINE,0, // TOP<br />

<strong>OLED</strong>_SETMULTIPLEXRATIO,63, // 64 MUX<br />

<strong>OLED</strong>_SETDISPLAYMODE_NORM,<br />

<strong>OLED</strong>_SETPHASELENGTH,0x22,<br />

<strong>OLED</strong>_SETROWPERIOD,0x46,<br />

<strong>OLED</strong>_SETDISPLAYCLOCKDIVIDE,0x41,<br />

<strong>OLED</strong>_SETSEGMENTLOWVOLT,0x0D,<br />

<strong>OLED</strong>_SETVCOMH,0x00,<br />

<strong>OLED</strong>_SETPRECHAGEVOLT,0x10,<br />

<strong>OLED</strong>_SETGREYSCALETABLE,0x01,0x11,0x22,0x32,0x43,0x54,0x65,0x76,<br />

<strong>OLED</strong>_SETMASTERCONFIG,0x02, // DC-DC 0x02 disabled, 0x03 enabled<br />

};<br />

#endif<br />

3.1.2 <strong>OLED</strong> <strong>Driver</strong> API<br />

Table 9 summarizes <strong>the</strong> services provides by <strong>the</strong> <strong>OLED</strong> driver:<br />

Table 9. <strong>OLED</strong> <strong>Driver</strong> Services<br />

Function Name Type Parameters Description<br />

<strong>OLED</strong>_Interface_Init void void Initialization of MCU <strong>OLED</strong> hardware-interface (I/O ports, SPI)<br />

<strong>OLED</strong>_VCC_On void void Turn ON V CC <strong>OLED</strong> power voltage (12 V)<br />

<strong>OLED</strong>_VCC_Off void void Turn OFF V CC <strong>OLED</strong> power voltage (12 V)<br />

<strong>OLED</strong>_Reset void void Applies hardware reset (RST) to <strong>OLED</strong> display<br />

<strong>OLED</strong>_WriteCmd void UINT8 cmd Transfers one byte of command data (D/C = 0)<br />

<strong>OLED</strong>_WriteData void UINT8 data Transfers one byte of display data (D/C = 1)<br />

<strong>OLED</strong>_<strong>Display</strong>_Init void void Initialization sequence <strong>for</strong> <strong>OLED</strong> display.<br />

The actual command sequence is specified as a const array <strong>for</strong> easy<br />

adaptation, <strong>for</strong> example, <strong>for</strong> a different display type.<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


<strong>OLED</strong>_Fill void UINT8 left<br />

UINT8 top<br />

UINT8 width<br />

UINT8 height<br />

UINT8 fill<br />

<strong>OLED</strong>_SetCanvas void UINT8 left<br />

UINT8 top<br />

UINT8 width<br />

UINT8 height<br />

<strong>OLED</strong>_DrawImage void UINT8 left<br />

UINT8 top<br />

UINT8 mask<br />

UINT8* image<br />

<strong>OLED</strong>_WriteString5x7 void UINT8 left<br />

UINT8 top<br />

UINT8 cc<br />

char* text<br />

<strong>OLED</strong>_WriteString8x15 void UINT8 left<br />

UINT8 top<br />

UINT8 cc<br />

char* text<br />

4 Demo Functionality<br />

Table 9. <strong>OLED</strong> <strong>Driver</strong> Services (continued)<br />

Function Name Type Parameters Description<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Demo Functionality<br />

Fills a specified area with a color:<br />

— Left/top are <strong>the</strong> x/y coordinates of <strong>the</strong> top/left corner of <strong>the</strong> area<br />

— Width/height of <strong>the</strong> area<br />

— Fill is <strong>the</strong> pattern=color to fill <strong>the</strong> area (high/low nibble specifying<br />

<strong>the</strong> color) (4bpp)<br />

Attention: 4bpp is <strong>the</strong> supported color depth. An even number must<br />

be set <strong>for</strong> left and width.<br />

Sets a canvas (an sub-set of <strong>the</strong> display area) to be active<br />

— Left/top are <strong>the</strong> x/y coordinates of <strong>the</strong> top/left corner<br />

— Width/height of <strong>the</strong> area<br />

Attention: 4bpp is <strong>the</strong> supported color depth. An even number must<br />

be set <strong>for</strong> left and width.<br />

draws a image (bitmap) to <strong>the</strong> specified position<br />

— Left/top are <strong>the</strong> x/y coordinates of <strong>the</strong> top/left corner<br />

— Mask allows to modify <strong>the</strong> color of <strong>the</strong> image to be modified.<br />

Darkens an onscreen button to indicate it has been pressed (see<br />

demo).<br />

— *Image is a pointer to <strong>the</strong> image data<br />

Attention: <strong>for</strong> 4bpp left and <strong>the</strong> width of <strong>the</strong> image must be an even<br />

number.<br />

Writes <strong>the</strong> text with <strong>the</strong> Font 5x7 to <strong>the</strong> specified position<br />

— Left/top are <strong>the</strong> x/y coordinates of <strong>the</strong> top/left corner<br />

— cc is <strong>the</strong> color of <strong>the</strong> font (high/low nibble specifying <strong>the</strong> color)<br />

(4bpp)<br />

Attention: <strong>for</strong> 4bpp left must be an even number.<br />

Writes <strong>the</strong> text with <strong>the</strong> Font 8x15 to <strong>the</strong> specified position<br />

— Left/top are <strong>the</strong> x/y coordinates of <strong>the</strong> top/left corner<br />

— cc is <strong>the</strong> color of <strong>the</strong> font (high/low nibble specifying <strong>the</strong> color)<br />

(4bpp)<br />

Attention: On <strong>the</strong> left side <strong>for</strong> 4bpp, set an even number.<br />

The demo functionality varies slightly between <strong>the</strong> DEMO9S08QG8 and <strong>the</strong> DEMO9S08AW60 setups.<br />

Figure 11 depicts <strong>the</strong> basic program flow and <strong>the</strong> <strong>OLED</strong> display outputs <strong>for</strong> DEMO9S08QG8 example.<br />

<strong>Freescale</strong> Semiconductor 23


Demo Functionality<br />

24<br />

Power On<br />

(Reset)<br />

MCU initialization<br />

(Real Time Interrupt modules<br />

RTI used <strong>for</strong> timing)<br />

<strong>OLED</strong>_Interface_Init()<br />

<strong>OLED</strong> Power Up Sequence<br />

<strong>Display</strong> Welcome Message<br />

(<strong>for</strong> about 1 second)<br />

<strong>Display</strong> example GUI<br />

with real time data<br />

(about 10 second)<br />

<strong>Display</strong> <strong>Freescale</strong> Logo<br />

(scrolls in)<br />

<strong>Display</strong> Memory In<strong>for</strong>mation<br />

Message<br />

(<strong>for</strong> about 3 seconds)<br />

4.1 MC9S08QG8 Example Demo<br />

Figure 11. Basic Program Flow<br />

The demo software demonstrates <strong>the</strong> <strong>OLED</strong> display drive and displays some real-time data (see Figure 4):<br />

• Status of two switches<br />

• Analog-voltage reading set by potentiometer<br />

• Analog-voltage reading of ambient-light sensor<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


Potentiometer Light Sensor<br />

4.2 9S08AW60 Example Demo<br />

Figure 12. Demo Setup with DEMO9S08QG8 (Photo)<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>OLED</strong> Daughter Card<br />

9S08QG8<br />

BDM Interface<br />

Switches SW1,SW2<br />

Demo Functionality<br />

The demo software demonstrates <strong>the</strong> drive of <strong>the</strong> <strong>OLED</strong> display and displays some real-time data:<br />

• Status of four switches<br />

• Analog-voltage reading set by potentiometer<br />

• Analog-voltage reading of ambient light sensor<br />

• Two analog-voltage readings of a X/Y accelerometer<br />

<strong>Freescale</strong> Semiconductor 25


Demo Functionality<br />

26<br />

Power Supply<br />

4 Switches<br />

Potentiometer<br />

Light Sensor<br />

X/Y Accelerometer<br />

AW60DEMO Board<br />

3.3 V Logic Supply<br />

GND<br />

12 V Enable<br />

RESET<br />

Data/Command<br />

MOSI<br />

SPCLK<br />

SS<br />

DC/DC<br />

3.3 V<br />

to<br />

12 V<br />

<strong>OLED</strong> Daughter Card<br />

Figure 13. Demo Setup with DEMO9S08AW60 Board<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>OLED</strong> <strong>Display</strong><br />

128x64pixel<br />

(Yellow 4bit)<br />

<strong>Freescale</strong> Semiconductor


Switches SW1-SW4<br />

Figure 14. Demo Setup with DEMO9S08AW60 (Photo)<br />

5 Image <strong>for</strong>mat and BMP2C.EXE Utility<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Image <strong>for</strong>mat and BMP2C.EXE Utility<br />

The BMP2C.EXE utility (freeware from <strong>Freescale</strong>) is a command-line tool to convert a Windows bitmap<br />

file (*.bmp) to a C-language structure used with <strong>the</strong> <strong>OLED</strong> driver software. To convert a bitmap file, open<br />

a command window and run <strong>the</strong> BMP2C.EXE, as described below:<br />

Usage:<br />

BMP2C.exe bmpfile outfile<br />

bmpfile bitmap file to be converted<br />

outfile output "C" file created<br />

Light Sensor<br />

<strong>OLED</strong> Daughter Card<br />

9S08AW60<br />

Accelerometer<br />

Potentiometer<br />

BDM Interface<br />

(bottom side)<br />

<strong>Freescale</strong> Semiconductor 27


Font Format<br />

The tool converts bitmap pixel from <strong>the</strong> RGB <strong>for</strong>mat to <strong>the</strong> 4 bpp <strong>for</strong>mat using <strong>the</strong> following equation:<br />

R, G, B are <strong>the</strong> 8bit values representing <strong>the</strong> red, green, and blue portion of <strong>the</strong> pixel.<br />

All converted pixel are packed into a C-language structure (byte array).<br />

Each byte contains <strong>the</strong> in<strong>for</strong>mation <strong>for</strong> two pixels.<br />

28<br />

const char Image[] = {<br />

128,40, // first two byte are size in pixel (x * y)<br />

0x00, 0x00, .........}; // pixel data<br />

NOTE<br />

The software and <strong>the</strong> BMP2C.EXE requires that <strong>the</strong> source bitmap file<br />

horizontal resolution is an even number.<br />

This structure can be included into <strong>the</strong> IMAGE.C source file (<strong>for</strong> example, in <strong>the</strong> CodeWarrior IDE).<br />

6 Font Format<br />

Pixel<br />

Bitmap type fonts are stored in a <strong>for</strong>mat where one bit represents one pixel of in<strong>for</strong>mation — monochrome<br />

font. Each letter can <strong>the</strong>n be displayed in one of 16 gray levels.<br />

To explain how <strong>the</strong> font data is represented, <strong>the</strong> character 1 is used as an example.<br />

For <strong>the</strong> 5x7 font, five bytes are used to store each character:<br />

const char FONT5X7 [][5] = {<br />

....................<br />

{ 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1<br />

....................<br />

}<br />

R + G + B<br />

=<br />

-----------------------<br />

3 ⋅ 16<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


Byte<br />

0 1 2 3 4<br />

0x00 0x42 0x7F 0x40 0x00<br />

For <strong>the</strong> 8x15 font, 8 times 2 = 16 bytes are used to store each character:<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Font Format<br />

<strong>Freescale</strong> Semiconductor 29<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

Bit<br />

Figure 15. Number “1” in FONT 5x7 Format<br />

const char FONT8X15 [][8][2] = {<br />

.....................<br />

{ {0x00, 0x00}, {0x04, 0x08}, {0x06, 0x08}, {0xFF, 0x0F}, {0xFF, 0x0F}, {0x00, 0x08},<br />

{0x00, 0x08}, {0x00, 0x00} } , // 1<br />

.....................<br />

}


Font Format<br />

30<br />

Byte<br />

0 2 4 6 8 10 12 14<br />

0x00 0x04 0x06 0xFF 0xFF 0x00 0x00 0x00<br />

Byte<br />

1 3 5 7 9 11 13 15<br />

0x00 0x08 0x08 0x0F 0x0F 0x08 0x08 0x00<br />

Figure 16. Number “1” in FONT8x15 Format<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

Bit<br />

Bit<br />

<strong>Freescale</strong> Semiconductor


7 Conclusion<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

Conclusion<br />

The provided documentation and software show how to control an <strong>OLED</strong> display with an <strong>HCS08</strong><br />

microcontroller, even with a limited amount of memory or GPIOs. The software can be used as <strong>the</strong> basis<br />

<strong>for</strong> o<strong>the</strong>r projects and fur<strong>the</strong>r enhancements, such as:<br />

• Support <strong>for</strong> monochrome (1bpp) <strong>OLED</strong> displays<br />

• Support <strong>for</strong> full-color <strong>OLED</strong> displays<br />

• Support <strong>for</strong> software SPI or parallel interface<br />

• Scalable fonts<br />

• Use of power-down sequence (controlled shut down)<br />

• Implementation of a screen saver<br />

• Power-consumption optimization<br />

• Implementation of drawing functions, <strong>for</strong> example, lines, rectangulars, etc.(requires sufficient<br />

amount of RAM memory)<br />

• Use of compressed storage of data to enhance memory efficiency<br />

• Utility to generate fonts<br />

More in<strong>for</strong>mation on how to use an <strong>OLED</strong> in a real-world application can be found on <strong>the</strong> OSRAM Pictiva<br />

website (see Section 8, “References”).<br />

For more in<strong>for</strong>mation on CodeWarrior tools, see Section 8, “References”.<br />

To get to a small memory footprint, some specific actions were incorporated (<strong>the</strong> storage of <strong>the</strong> <strong>Freescale</strong><br />

Logo image). Only <strong>the</strong> logo itself was stored and not <strong>the</strong> surrounding background. Like this <strong>the</strong> size of <strong>the</strong><br />

bitmap could be reduced by 37.5% from 4096 bytes (128 x 64 x 4 Bit) to 2560 bytes (128 x 40 x 4 Bit).<br />

A second method used <strong>for</strong> <strong>the</strong> push buttons (Figure 11) is <strong>the</strong> ability to “darken” a bitmap during runtime<br />

when it is drawn (<strong>OLED</strong>_DrawImage function — see Table 9). Like this, <strong>the</strong> storage of two<br />

images—button released and button pressed—can be reduced to only one image. This saves 258 bytes<br />

(50% reduction).<br />

Table 10 summarizes <strong>the</strong> memory consumption <strong>for</strong> <strong>the</strong> example applications. This differences are mainly<br />

caused by demonstration functionalities.<br />

Table 10. Memory Consumption Overview<br />

MC9S08QG8 MC9S08AW60<br />

Images 3912 bytes 5260 bytes<br />

Fonts 1995 bytes 1995 bytes<br />

Text 187 bytes 134 bytes<br />

Program 1951 bytes 1987 bytes<br />

Flash total 8045 bytes 9376 bytes<br />

RAM


References<br />

8 References<br />

Fur<strong>the</strong>r details can be found in <strong>the</strong> following documentation<br />

• MC9S08QG8 Data Sheet<br />

• MC9S08AW60 Advanced In<strong>for</strong>mation Data Sheet<br />

• SSD0323 Data sheet (128x80, 16 gray scale dot matrix controller)<br />

Useful web sites:<br />

• <strong>Freescale</strong> website http://www.freescale.com<br />

• OSRAM Pictiva website http://www.pictiva.com<br />

• Wikipedia website http://en.wikipedia.org/wiki/Oled<br />

• <strong>OLED</strong> In<strong>for</strong>mation website http://www.oled-info.com<br />

32<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


Appendix A <strong>OLED</strong> Daughter Card<br />

A.1 Schematics<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

References<br />

<strong>Freescale</strong> Semiconductor 33


References<br />

A.2 Layout<br />

34<br />

Figure 17. Placement<br />

Figure 18. Solderstop Mask (Top)<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


Figure 19. Copper (Top)<br />

Figure 20. Copper (Bottom)<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

References<br />

<strong>Freescale</strong> Semiconductor 35


References<br />

36<br />

Figure 21. Solderstop Mask (Bottom)<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

<strong>Freescale</strong> Semiconductor


A.3 <strong>OLED</strong> Daughter Card BOM (Bill of Materials)<br />

Table 11. <strong>OLED</strong> Daughter Card Bill of Materials<br />

Quantity Reference Description Supplier PartNo. Supplier<br />

1 U1 TPS7634ID (Texas Instruments)<br />

IC, DC/DC 120 mA, 12 V<br />

SMD-SOIC8<br />

2 C1, C2 Ceramic Capacitor<br />

4.7 μF 6.3 V 20%<br />

SMD–0805<br />

1 C3 Tantal Capacitor<br />

4.7 μF 16 V 20%<br />

SMC–A<br />

1 C4 Tantal Capacitor<br />

10 μF 16 V 20%<br />

SMC–B<br />

2 C5, C6 Tantal Capacitor<br />

33 μF 16 V 10%<br />

SMC–D<br />

1 C7 Ceramic Capacitor<br />

47pF 50 V 10%<br />

SMD–0603<br />

1 C8 Ceramic Capacitor<br />

1 pF 50 V 10%<br />

SMD–0603<br />

1 D1 Schottky Diode<br />

MBRA130LT3 ONSEMI<br />

SMD–SMA (DO–214AC)<br />

1 J1 PinHeader 2x16<br />

0.1 inch pitch<br />

1 J2 PinHeader 2x20<br />

0.1 inch pitch<br />

1 J3 FCB Flex 30 pin socket<br />

0.5 mm pitch<br />

1 L1 Inductor 15 μH, max. 850 mA, 0.15 Ω<br />

Panasonic ELL6RH150M<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

8458111 Farnell<br />

9227857 Farnell<br />

197269 Farnell<br />

498737 Farnell<br />

757858 Farnell<br />

722042 Farnell<br />

721840 Farnell<br />

3004120 Farnell<br />

9729070 Farnell<br />

9729070 Farnell<br />

SFV30R1–ST FCI<br />

3837403 Farnell<br />

References<br />

<strong>Freescale</strong> Semiconductor 37


References<br />

38<br />

1 LED1, LED2 LED green<br />

low power<br />

SMD–ChipLED 0603<br />

1 R1 Resistor<br />

820 kΩ, 5%, 0.1 W<br />

SMD–0805<br />

1 R2 Resistor<br />

3 kΩ, 5%, 0.1 W<br />

SMD–0805<br />

1 R3 Resistor<br />

330 Ω, 5%, 0.1 W<br />

SMD–0805<br />

Table 11. <strong>OLED</strong> Daughter Card Bill of Materials (continued)<br />

Quantity Reference Description Supplier PartNo. Supplier<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

8554609 Farnell<br />

9334920 Farnell<br />

9334319 Farnell<br />

9334351 Farnell<br />

<strong>Freescale</strong> Semiconductor


A.4 DEMO9S08QG8 Board<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

References<br />

<strong>Freescale</strong> Semiconductor 39


References<br />

A.5 DEMO9S08AW60 Board<br />

40<br />

1<br />

2<br />

3<br />

4<br />

5<br />

P_EXT_5V<br />

P3_3V<br />

U1<br />

VDD_5V<br />

U2<br />

F50<br />

1 2<br />

VIN_F<br />

3<br />

1<br />

VIN<br />

ADJ<br />

0.75A<br />

2<br />

2<br />

0.6<br />

VOUT VOUT<br />

4<br />

VOUT VOUT<br />

4<br />

+ C54 10uF<br />

1<br />

3<br />

100uf C55<br />

ADJ<br />

LT1086<br />

VIN<br />

LT1086<br />

D50<br />

0.1<br />

MBRS130L<br />

R1<br />

R3<br />

1 2<br />

1 2<br />

+ + C50 C50<br />

0.6<br />

C51<br />

100uf<br />

+ C57 10uF<br />

+ C58<br />

R2<br />

510 OHM<br />

10uF<br />

0.1<br />

100uf C59<br />

R53<br />

510 OHM<br />

C56<br />

100uf<br />

D J1<br />

+/-5%<br />

D<br />

1.5K<br />

0.6<br />

0.1<br />

820 +/-5%<br />

10uF<br />

0.1<br />

1<br />

+/-5%<br />

+/-5%<br />

0.6<br />

3<br />

2<br />

1<br />

1 2<br />

2<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

2<br />

2<br />

2<br />

1 2<br />

2<br />

2<br />

JP4<br />

1<br />

PJ-002A-SMT<br />

PJ-002A-SMT<br />

7V to 12V CENTER POSITIVE<br />

HDR_1X1<br />

NO _POP<br />

RESET_B<br />

BKGD<br />

VDD<br />

VDD<br />

R70<br />

R7<br />

10.0K<br />

C 10.0K<br />

C<br />

+/-1%<br />

+/-1%<br />

VDD<br />

BKGD<br />

RESET_B<br />

VDD_5V<br />

Q51<br />

VDD<br />

VDD<br />

VCC IRLML6402TRPBF VCC_3V<br />

U3A<br />

1 OF 2<br />

3 2<br />

56<br />

P_EXT_5V VCC_TGT_5V<br />

BKGD/MS<br />

VDD<br />

SW3<br />

RESET_B<br />

C53<br />

+ C52<br />

JP1<br />

1 3<br />

3<br />

RESET<br />

0.1uF<br />

100uf<br />

1<br />

R4<br />

2<br />

4<br />

XTAL 57<br />

0.1<br />

0.1<br />

P_IO_5V<br />

10K<br />

PTG5/XTAL<br />

SPST PB NO<br />

W3<br />

HDR_1X1<br />

+/-5%<br />

58<br />

PTG6/EXTAL<br />

2<br />

NO _POP<br />

1<br />

69190-603<br />

R61<br />

W2<br />

W1<br />

XTAL_R<br />

HDR_2X1<br />

1 2<br />

U50<br />

3<br />

ZR431<br />

0ohm<br />

2<br />

2 1<br />

1<br />

5%<br />

Q50<br />

R56<br />

R57<br />

1<br />

MGSF1N02LT1G<br />

1 2 EXTAL_R 1 2 EXTAL<br />

69190-603<br />

P3_3V<br />

R50<br />

10M +/-5%<br />

10K<br />

0ohm<br />

D7<br />

Y1<br />

+/-5%<br />

5%<br />

MC9S08AW60<br />

SML-LXL1206GC<br />

1 2<br />

4MHz<br />

B B<br />

C60<br />

C61<br />

R54<br />

22pF<br />

22pF<br />

510ohm<br />

0.2<br />

0.2<br />

C65 C63 C62<br />

5%<br />

0.1uF 0.1uF 0.1uF<br />

0.1 0.1<br />

0.1<br />

22<br />

VSS<br />

21<br />

VSS<br />

59<br />

VREFH 54<br />

VDDAD<br />

VREFL<br />

55<br />

44<br />

VSSAD 45<br />

J18<br />

1 2<br />

3 4<br />

5<br />

6<br />

TSW-103-07-S-D<br />

NO_POP<br />

1<br />

1<br />

2<br />

<strong>OLED</strong> <strong>Display</strong> <strong>Driver</strong> <strong>for</strong> <strong>the</strong> <strong>HCS08</strong> <strong>Family</strong>, Rev. 0<br />

1<br />

3<br />

2<br />

2<br />

1<br />

1 2<br />

R1<br />

2 1<br />

1<br />

2 1<br />

2<br />

2<br />

1 2<br />

1 2<br />

1<br />

1<br />

2<br />

1<br />

2<br />

3<br />

2<br />

2 3<br />

1<br />

1<br />

1<br />

1<br />

2<br />

2<br />

2<br />

2<br />

VDD<br />

14<br />

13<br />

12<br />

11<br />

10<br />

9<br />

8<br />

IO14<br />

IO13<br />

IO12<br />

IO11<br />

IO10<br />

IO9<br />

IO8<br />

R60<br />

10.0K<br />

+/-1%<br />

J6<br />

1<br />

IO1<br />

2<br />

IO2<br />

3<br />

IO3<br />

4<br />

IO4<br />

5<br />

IO5<br />

6<br />

IO6<br />

7<br />

IO7<br />

DIP14<br />

1 2<br />

NO_POP<br />

R59<br />

10.0K<br />

+/-1%<br />

1 2<br />

A A<br />

Drawing Title:<br />

DEMO9S08AW60<br />

Page Title:<br />

POWER, CLOCK, AND RESET<br />

Size Document Number Rev<br />

C PDF: SPF-20805 SOURCE: SCH-20805 B<br />

Date: Date: Thursday, September 22, 2005 Sheet Sheet 3 of 5<br />

1<br />

<strong>Freescale</strong> Semiconductor<br />

2<br />

3<br />

4<br />

5


5<br />

1<br />

2<br />

3<br />

4<br />

PTA[0:7]<br />

PTB[0:7]<br />

PTC[0:6]<br />

RESET_B<br />

BKGD<br />

VDD<br />

PTE[0:7]<br />

P3_3V<br />

PTF[0:7]<br />

VDD<br />

U3B<br />

D D<br />

2 OF 2<br />

PTG[0:4]<br />

IRQ<br />

PTC4_SW<br />

PTA7<br />

PTA6<br />

P_IO_5V<br />

VDD<br />

PTA5<br />

PTA4<br />

IRQ<br />

PTA3<br />

PTC4<br />

RESET_B<br />

PTA2<br />

PTE0<br />

BKGD<br />

PTA1<br />

PTE1<br />

PTG4<br />

PTA0<br />

PTG0<br />

PTB0<br />

PTG1<br />

PTB1<br />

PTD0 PTD0_SW<br />

PTE2<br />

PTB2<br />

PTB7<br />

PTE3<br />

PTB3<br />

PTB6<br />

PTE6<br />

PTB4<br />

PTB5<br />

PTE5<br />

PTB5<br />

PTB4<br />

VDD<br />

PTE7<br />

PTB6<br />

PTB3<br />

PTD1<br />

PTE4<br />

PTB7<br />

PTB2<br />

PTA0<br />

PTC1<br />

PTD5_SW<br />

PTB1<br />

PTA1<br />

PTC0<br />

PTB0<br />

PTA2<br />

PTG2<br />

PTA3<br />

PTG3<br />

PTD2<br />

PTA4<br />

PTF4<br />

PTC6<br />

PTA5<br />

PTF5<br />

PTC5<br />

PTA6<br />

PTC5<br />

PTC4<br />

PTA7<br />

PTC3<br />

PTC3<br />

PTC2<br />

PTD3<br />

PTC1<br />

PTC0<br />

VDD<br />

PTD7<br />

PTD4<br />

PTD4_SW<br />

PTD6<br />

PTD5<br />

HDR_2X1<br />

C PTD4<br />

VDD<br />

C<br />

PTD3<br />

J9<br />

PTD2<br />

PTD5<br />

PTD1<br />

PTD0<br />

PTD1_SW<br />

PTE7<br />

PTD6<br />

PTE6<br />

U51<br />

PTE5<br />

V+<br />

PTE4<br />

SW8<br />

- 3<br />

PTE3<br />

PTC2_SW 1 3<br />

4<br />

PTE2<br />

PTD7<br />

+ 1<br />

PTE1<br />

2<br />

4<br />

PTE0<br />

SPST PB NO<br />

V-<br />

LMV321DBV<br />

PTC2<br />

SW7<br />

PTF7<br />

PTC6<br />

PTC6_SW 1 3<br />

PTF6<br />

PTF5<br />

2<br />

4<br />

PTF4<br />

PTE0<br />

SPST PB NO<br />

PTF3<br />

PTF2<br />

PTD7_SW<br />

PTF1<br />

PTD2_SW<br />

PTF0<br />

PTD6_SW<br />

PTE1<br />

C7<br />

0.1uF<br />

VDD<br />

P3_3V<br />

HDR_2X1<br />

0.1<br />

PTG4<br />

J17<br />

PTD3_SW<br />

VDD<br />

PTG3<br />

PTF0<br />

VDD<br />

PTG2<br />

PTG1<br />

LT_PTC4_SW<br />

PTG0<br />

R89<br />

1 2<br />

MC9S08AW60<br />

PTF1<br />

0ohm 5%<br />

PTE0_SW<br />

PTE0<br />

B B<br />

PTF0_SW<br />

PTF1_SW<br />

PTF2<br />

PTF2_SW<br />

PTE0_TXD<br />

PTE1_SW<br />

PTE1<br />

HDR_2X1<br />

J12<br />

PTE1_RXD<br />

PTF3<br />

PTF3_SW<br />

PTE2_SW<br />

PTE2<br />

NO_POP<br />

R81<br />

0 ZERO OHM<br />

+/-5%<br />

PTF4 PTF4_SW<br />

PTE3_SW<br />

PTE3<br />

R97 510ohm 1 2 5%<br />

PTF5 PTF5_SW<br />

PTE4_SW<br />

PTE4<br />

PTF6 PTF6_SW<br />

PTE5_SW<br />

PTE5<br />

2<br />

R83<br />

10.0K<br />

+/-1%<br />

PTA7<br />

33<br />

PTA6<br />

32<br />

PTA5<br />

31<br />

PTA4<br />

30<br />

PTA3<br />

29<br />

R82<br />

PTA2<br />

28<br />

1 2<br />

PTA1<br />

27<br />

PTA0<br />

26<br />

47K +/-5%<br />

PTB7/AD1P7<br />

41<br />

PTB6/AD1P6<br />

40<br />

PTB5/AD1P5<br />

39<br />

C74<br />

U57<br />

PTB4/AD1P4<br />

38<br />

0.1uF<br />

V+<br />

PTB3/AD1P3<br />

37<br />

0.1<br />

VR1<br />

- 3<br />

PTB2/AD1P2<br />

36<br />

1 3<br />

4<br />

PTB1/AD1P1<br />

35<br />

+ 1<br />

PTB0/AD1P0<br />

34<br />

10K<br />

+/-10%<br />

V-<br />

LMV321DBV R79<br />

PTC6<br />

9<br />

10.0K C75<br />

PTC5/RXD2<br />

64<br />

HDR_2X1<br />

+/-1% 0.1uF<br />

PTC4<br />

1<br />

0.1<br />

PTC3/TXD2<br />

63<br />

J3<br />

PTC2/MCLK<br />

62<br />

PTC1/SDA1<br />

61<br />

PTC0/SCL1<br />

60<br />

PTD7/AD1P15/KBI1P7<br />

53<br />

PTD6/AD1P14/TPM1CLK<br />

52<br />

PTD5/AD1P13<br />

51<br />

PTD4/AD1P12/TPM2CLK<br />

50<br />

PTD3/AD1P11/KBI1P6<br />

47<br />

PTD2/AD1P10/KBI1P5<br />

46<br />

PTD1/AD1P9<br />

43<br />

PTD0/AD1P8<br />

42<br />

HDR_2X1<br />

J5<br />

C68<br />

PTE7/SPSCK1<br />

20<br />

0.1uF<br />

PTE6/MOSI1<br />

19<br />

0.1<br />

PTE5/MISO1<br />

18<br />

PTE4/SS1<br />

17<br />

PTE3/TPM1CH1<br />

16<br />

PTE2/TPM1CH0<br />

15<br />

PTE1/RXD1<br />

14<br />

PTE0/TXD1<br />

13<br />

PTF7<br />

10<br />

PTF6<br />

12<br />

PTF5/TPM2CH1<br />

11<br />

PTF4/TPM2CH0<br />

8<br />

PTF3/TPM1CH5<br />

7<br />

PTF2/TPM1CH4<br />

6<br />

PTF1/TPM1CH3<br />

5<br />

PTF0/TPM1CH2<br />

4<br />

C69<br />

0.1uF<br />

U4<br />

PTG4/KBI1P4<br />

49<br />

0.1<br />

PTG3/KBI1P3<br />

48<br />

VDD<br />

PTG2/KBI1P2<br />

25<br />

PTG1/KBI1P1<br />

24<br />

PTG0/KBI1P0<br />

23<br />

R80<br />

ST<br />

12<br />

10.0K<br />

XOUT<br />

15<br />

+/-1%<br />

YOUT<br />

14<br />

SW6<br />

1<br />

20<br />

2<br />

19<br />

3<br />

18<br />

HDR_2X1<br />

4<br />

17<br />

J24<br />

5<br />

16<br />

6<br />

15<br />

7<br />

14<br />

8<br />

13<br />

9<br />

12<br />

10<br />

11<br />

76SB10ST<br />

MMA6260Q_QFN16<br />

HDR_2X1<br />

J13<br />

R16<br />

10.0K<br />

+/-1%<br />

HDR_2X1<br />

J23<br />

1 2<br />

3<br />

U59<br />

VCC<br />

EL7900ILCZ<br />

NC1<br />

1<br />

NC2<br />

2<br />

NC3<br />

5<br />

NC4<br />

6<br />

NC5<br />

7<br />

NC6<br />

8<br />

NC7<br />

9<br />

NC8<br />

10<br />

17<br />

VSS NC9<br />

11<br />

NC10<br />

13<br />

4<br />

VSS NC11<br />

16<br />

1<br />

U54<br />

5<br />

DIR VCCA<br />

1<br />

VCCB<br />

6<br />

3<br />

A<br />

B<br />

4<br />

2<br />

GND<br />

SN74LVC1T45<br />

HDR_2X1<br />

J20<br />

HDR_2X1<br />

J8<br />

HDR_2X1<br />

J4<br />

R65<br />

1 2<br />

R63<br />

47K +/-5%<br />

1 2<br />

5<br />

20K +/-5%<br />

C66<br />

OUT<br />

0.1uF<br />

4<br />

NC<br />

0.1<br />

HDR_2X1<br />

2<br />

GND1EN_B<br />

3<br />

J2<br />

6<br />

GND2<br />

R91<br />

1.0K<br />

+/-5%<br />

C67<br />

0.1uF<br />

0.1<br />

U58<br />

C77<br />

SW4<br />

1 3<br />

1 2<br />

2<br />

4<br />

0.1uF<br />

SPST PB NO<br />

0.1<br />

HDR_2X1<br />

J11<br />

C8<br />

J22<br />

1 2<br />

M1<br />

HDR_2X1<br />

1<br />

J10<br />

0.1uF<br />

6<br />

0.1<br />

2<br />

7<br />

3<br />

8<br />

4<br />

9<br />

5<br />

R71 510ohm 1 2 5%<br />

M2<br />

R73 510ohm<br />

R5IN<br />

1 2 5%<br />

788750-1<br />

R74 510ohm 1 2 5%<br />

MAX3243<br />

R94 510ohm 1 2 5%<br />

HDR_2X1<br />

J34<br />

8<br />

R1IN 4<br />

R2IN 5<br />

R3IN 6<br />

R4IN 7<br />

15<br />

R5OUT<br />

R4OUT<br />

16 R3OUT<br />

17 R2OUT<br />

18 R1OUT<br />

19 R2OUTB<br />

27<br />

V+<br />

VCC<br />

28<br />

C1+<br />

24<br />

C1-<br />

V-<br />

3<br />

C2+<br />

1<br />

21<br />

INVALID<br />

22<br />

FORCEOFF<br />

23<br />

FORCEON<br />

C2-<br />

2<br />

14<br />

T1IN T1OUT<br />

9<br />

13<br />

T2IN T2OUT<br />

10<br />

12<br />

T3IN T3OUT<br />

11<br />

20<br />

26<br />

GND 25<br />

J50<br />

1 2<br />

3 4<br />

5 6<br />

7 8<br />

R78<br />

9 10<br />

11 12<br />

1 2<br />

C76<br />

13 14<br />

0.1uF<br />

15 16<br />

20K +/-5%<br />

0.1<br />

17 18<br />

19 20<br />

21 22<br />

23 24<br />

25 26<br />

HDR_2X1<br />

27 28<br />

29 30<br />

J7<br />

31 32<br />

33 34<br />

35 36<br />

37 38<br />

39 40<br />

CONN_SKT_20X2<br />

R75<br />

10.0K<br />

+/-1%<br />

HDR_2X1<br />

HDR_2X1<br />

R64<br />

J19<br />

J32<br />

10.0K<br />

+/-1%<br />

HDR_2X1<br />

HDR_2X1<br />

J33<br />

SW5<br />

1 3<br />

J16<br />

2<br />

4<br />

SPST PB NO<br />

C5<br />

R77<br />

R8<br />

0.1uF<br />

2 1<br />

10.0K<br />

0.1<br />

+/-1%<br />

1K +/-5%<br />

R90<br />

R69<br />

C9<br />

1 2<br />

2 1<br />

0.1uF<br />

0.1<br />

0ohm 5%<br />

1K +/-5%<br />

HDR_2X1<br />

J25<br />

LED1<br />

1 20<br />

2 19 R72 510ohm 1 2 5%<br />

3 18<br />

HDR_2X1<br />

4 17<br />

J26<br />

5 16<br />

6 15 R96 510ohm 1 2 5%<br />

7 14<br />

8 13 R95 510ohm 1 2 5%<br />

9 12<br />

HDR_2X1<br />

10 11<br />

J27<br />

R15<br />

LED_BAR_10<br />

10.0K<br />

+/-1%<br />

HDR_2X1<br />

J28<br />

1 2<br />

1 2<br />

1<br />

2<br />

1<br />

2<br />

5<br />

2<br />

1 2<br />

1<br />

2<br />

1 2<br />

1 2<br />

2<br />

1<br />

2<br />

1<br />

2<br />

1<br />

2<br />

1<br />

2<br />

1 2<br />

5<br />

1 2<br />

1<br />

2<br />

1<br />

1 2<br />

1<br />

2<br />

1<br />

2<br />

1 2<br />

1 2<br />

2<br />

2<br />

1<br />

2<br />

1<br />

2<br />

1 2<br />

1<br />

2<br />

1<br />

2<br />

1 2<br />

1 2<br />

1 2<br />

1<br />

2<br />

1<br />

2<br />

1<br />

2<br />

1<br />

2<br />

2<br />

1<br />

1<br />

1<br />

2<br />

2<br />

1<br />

2<br />

1<br />

2<br />

2<br />

1<br />

1 2<br />

1 2<br />

1<br />

2<br />

2<br />

1<br />

1<br />

2<br />

2<br />

1<br />

HDR_2X1<br />

HDR_2X1<br />

J14<br />

J29<br />

PTF7 PTF7_SW<br />

PTE6_SW<br />

PTE6<br />

A A<br />

HDR_2X1<br />

HDR_2X1<br />

J15<br />

J30<br />

PTE7_SW<br />

PTE7<br />

1<br />

2<br />

2<br />

1<br />

2<br />

1<br />

Drawing Title:<br />

HDR_2X1<br />

J31<br />

DEMO9S08AW60<br />

Page Title:<br />

USER FUNCTIONS<br />

Size Document Number Rev<br />

C PDF: SPF-20805 SOURCE: SCH-20805 B<br />

Date: Monday, September 26, 2005 Sheet 4 of 5<br />

1<br />

2<br />

3<br />

4<br />

5


How to Reach Us:<br />

Home Page:<br />

www.freescale.com<br />

E-mail:<br />

support@freescale.com<br />

USA/Europe or Locations Not Listed:<br />

<strong>Freescale</strong> Semiconductor<br />

Technical In<strong>for</strong>mation Center, CH370<br />

1300 N. Alma School Road<br />

Chandler, Arizona 85224<br />

+1-800-521-6274 or +1-480-768-2130<br />

support@freescale.com<br />

Europe, Middle East, and Africa:<br />

<strong>Freescale</strong> Halbleiter Deutschland GmbH<br />

Technical In<strong>for</strong>mation Center<br />

Schatzbogen 7<br />

81829 Muenchen, Germany<br />

+44 1296 380 456 (English)<br />

+46 8 52200080 (English)<br />

+49 89 92103 559 (German)<br />

+33 1 69 35 48 48 (French)<br />

support@freescale.com<br />

Japan:<br />

<strong>Freescale</strong> Semiconductor Japan Ltd.<br />

Headquarters<br />

ARCO Tower 15F<br />

1-8-1, Shimo-Meguro, Meguro-ku,<br />

Tokyo 153-0064<br />

Japan<br />

0120 191014 or +81 3 5437 9125<br />

support.japan@freescale.com<br />

Asia/Pacific:<br />

<strong>Freescale</strong> Semiconductor Hong Kong Ltd.<br />

Technical In<strong>for</strong>mation Center<br />

2 Dai King Street<br />

Tai Po Industrial Estate<br />

Tai Po, N.T., Hong Kong<br />

+800 2666 8080<br />

support.asia@freescale.com<br />

For Literature Requests Only:<br />

<strong>Freescale</strong> Semiconductor Literature Distribution Center<br />

P.O. Box 5405<br />

Denver, Colorado 80217<br />

1-800-441-2447 or 303-675-2140<br />

Fax: 303-675-2150<br />

LDCFor<strong>Freescale</strong>Semiconductor@hibbertgroup.com<br />

Document Number: AN3415<br />

Rev. 0<br />

03/2007<br />

In<strong>for</strong>mation in this document is provided solely to enable system and software<br />

implementers to use <strong>Freescale</strong> Semiconductor products. There are no express or<br />

implied copyright licenses granted hereunder to design or fabricate any integrated<br />

circuits or integrated circuits based on <strong>the</strong> in<strong>for</strong>mation in this document.<br />

<strong>Freescale</strong> Semiconductor reserves <strong>the</strong> right to make changes without fur<strong>the</strong>r notice to<br />

any products herein. <strong>Freescale</strong> Semiconductor makes no warranty, representation or<br />

guarantee regarding <strong>the</strong> suitability of its products <strong>for</strong> any particular purpose, nor does<br />

<strong>Freescale</strong> Semiconductor assume any liability arising out of <strong>the</strong> application or use of any<br />

product or circuit, and specifically disclaims any and all liability, including without<br />

limitation consequential or incidental damages. “Typical” parameters that may be<br />

provided in <strong>Freescale</strong> Semiconductor data sheets and/or specifications can and do vary<br />

in different applications and actual per<strong>for</strong>mance may vary over time. All operating<br />

parameters, including “Typicals”, must be validated <strong>for</strong> each customer application by<br />

customer’s technical experts. <strong>Freescale</strong> Semiconductor does not convey any license<br />

under its patent rights nor <strong>the</strong> rights of o<strong>the</strong>rs. <strong>Freescale</strong> Semiconductor products are<br />

not designed, intended, or authorized <strong>for</strong> use as components in systems intended <strong>for</strong><br />

surgical implant into <strong>the</strong> body, or o<strong>the</strong>r applications intended to support or sustain life,<br />

or <strong>for</strong> any o<strong>the</strong>r application in which <strong>the</strong> failure of <strong>the</strong> <strong>Freescale</strong> Semiconductor product<br />

could create a situation where personal injury or death may occur. Should Buyer<br />

purchase or use <strong>Freescale</strong> Semiconductor products <strong>for</strong> any such unintended or<br />

unauthorized application, Buyer shall indemnify and hold <strong>Freescale</strong> Semiconductor and<br />

its officers, employees, subsidiaries, affiliates, and distributors harmless against all<br />

claims, costs, damages, and expenses, and reasonable attorney fees arising out of,<br />

directly or indirectly, any claim of personal injury or death associated with such<br />

unintended or unauthorized use, even if such claim alleges that <strong>Freescale</strong><br />

Semiconductor was negligent regarding <strong>the</strong> design or manufacture of <strong>the</strong> part.<br />

<strong>Freescale</strong> and <strong>the</strong> <strong>Freescale</strong> logo are trademarks of <strong>Freescale</strong> Semiconductor, Inc.<br />

All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners.<br />

© <strong>Freescale</strong> Semiconductor, Inc. 2007. All rights reserved.<br />

RoHS-compliant and/or Pb-free versions of <strong>Freescale</strong> products have <strong>the</strong> functionality<br />

and electrical characteristics as <strong>the</strong>ir non-RoHS-compliant and/or non-Pb-free<br />

counterparts. For fur<strong>the</strong>r in<strong>for</strong>mation, see http://www.freescale.com or contact your<br />

<strong>Freescale</strong> sales representative.<br />

For in<strong>for</strong>mation on <strong>Freescale</strong>’s Environmental Products program, go to<br />

http://www.freescale.com/epp.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!