Weltrend Wt60p1 Isti Kao Tvm384600
Weltrend Wt60p1 Isti Kao Tvm384600
Weltrend Wt60p1 Isti Kao Tvm384600
GENERAL DESCRIPTION
The WT60P1 is a MTP (Multiple-Time-Programmable) version of WT60xx microcontroller which is specially designed for digital controlled multi-sync monitor. It contains 8-bit CPU, 16K bytes flash memory, 288 bytes RAM, 14 PWMs, parallel I/O, SYNC processor, timer, one DDC interface (slave mode I2C interface with DDC1), one master/slave I2C interface, two 4-bit A/D converters and watchdog timer.
FEATURES
* 8-bit 6502 compatible CPU, 4MHz operating frequency * 16384 bytes flash memory, 288 bytes SRAM * 8MHz crystal oscillator * 14 channels 8-bit/62.5kHz PWM outputs (8 open drain outputs & 6 CMOS outputs) * Sync signal processor with H+V separation, frequency calculation, H/V polarity detection/control * Three free-running sync signal outputs for burn-in test (64kHz/62.5Hz, 48kHz/75Hz, 31kHz/60Hz) * Self-test pattern generator generates cross hatch picture * DDC interface supports VESA DDC1/DDC2B standard * Master/slave I2C interface * Watch-dog timer (0.524 second) * Maximum 25 programmable I/O pins * One 8-bit programmable timer * Two 4-bit A/D converter * One external interrupt request * Built-in low VDD voltage reset * +5V power supply
PIN CONFIGURATION
40-Pin PDIP
DA2 DA1 DA0 RESET/VPP VDD GND OSCO OSCI PB5/SDA2 PB4/SCL2 PB3/PAT PB2 PB1/HLFI PB0/HLFO PB6/IRQ PC7 PC6 PC5 PC4 PC3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VSYNC HSYNC DA3 DA4 DA5 DA6 DA7 PA7/HSO PA6/VSO PA5/DA13 PA4/DA12 PA3/DA11 PA2/DA10 PA1/DA9 PA0/DA8 SCL1/PD0 SDA1/PD1 PC0/AD0 PC1/AD1 PC2 GND OSCO OSCI PB5/SDA2 PB4/SCL2 PB3/PAT PB2 PB1/HLFI PB0/HLFO PB6/IRQ PC7 PC6 PC5 PC4 PC3 DA2 DA1 DA0 RESET/VPP VDD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
42-Pin SDIP
42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 DA6 DA7 PA7/HSO PA6/VSO PA5/DA13 PA4/DA12 PA3/DA11 PA2/DA10 PA1/DA9 PA0/DA8 SCL1/PD0 SDA1/PD1 PC0/AD0 PC1/AD1 PC2 VSYNC HSYNC DA3 DA4 DA5
* I2C is a trademark of Philips Corporation. * DDC is a trademark of Video Electronics Standard Association (VESA).
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
PIN DESCRIPTION
Pin No. 40 42
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
Pin Name
I/O
O O O I
Descriptions
D/A converter 2. Open-drain output. External applied voltage can up to 10V. D/A converter 1. Open-drain output. External applied voltage can up to 10V. D/A converter 0. Open-drain output. External applied voltage can up to 10V. Reset or Vpp. Active low reset input or Vpp for erase/write flash memory. Power supply (+5V). Ground (0V). Oscillator Output. Connects a 8MHz crystal. Oscillator Input. Connects a 8MHz crystal. I/O Port B5 or I2C data pin. This pin can be an I/O port or I2C serial data pin. I/O Port B4 or I2C clock pin. This pin can be I/O port or I2C clock pin. I/O Port B3 or self-test pattern output. When as an I/O port, it is same as PB5. When it is configured to test pattern output, a vedio signal is output. I/O Port B2. When it is an input pin, it has an internal pull-up resistor. When it is an output pin, the source/sink current is 5mA. I/O Port B1 or half frequency input. I/O Port B0 or half frequency output. I/O Port B6 or Interrupt Request . When as interrupt request input, it has an internal pull high resistor. When as an I/O port, it is same as PB3. I/O Port C7. When it is an input pin, it has an internal pull-up resistor. When it is an output pin, the sink current is 10mA and the source current is 5mA. I/O Port C6. Same as PC7. I/O Port C5. Same as PC7. I/O Port C4. Same as PC7. I/O Port C3. Same as PC7. I/O Port C2. Same as PC7. I/O Port C1 or A/D converter input 0. I/O Port C0 or A/D converter input 1. DDC serial data or I/O Port D1. When it is a DDC interface pin, It is an open- drain output. When as an I/O port, it is same as Port B. DDC serial clock or I/O Port D0. When it is a DDC interface pin, It is an open- drain output. When as an I/O port, it is same as Port B. I/O Port A0 or D/A converter 8. This pin can be the output of D/A converter 8 (source/sink = 5mA) or an I/O pin (source = -100uA, sink = 5mA). I/O Port A1 or D/A converter 9. Same as PA0/DA8. I/O Port A2 or D/A converter 10. Same as PA0/DA8. I/O Port A3 or D/A converter 11. Same as PA0/DA8. I/O Port A4 or D/A converter 12. Same as PA0/DA8. I/O Port A5 or D/A converter 13. Same as PA0/DA8. I/O Port A6 / VSYNC OUT. This pin can be the output of VSYNC or an I/O pin. When as an I/O pin, it is same as PA0. I/O Port A7 / HSYNC OUT. This pin can be the output of HSYNC or an I/O pin. When as an I/O pin, it is same as PA0. D/A converter 7. Open-drain output. External applied voltage can up to 10V. D/A converter 6. Open-drain output. External applied voltage can up to 10V. D/A converter 5. Open-drain output. External applied voltage can up to 10V. D/A converter 4. Open-drain output. External applied voltage can up to 10V. D/A converter 3. Open-drain output. External applied voltage can up to 10V. HSYNC input. Schmitt trigger input. VSYNC input. Schmitt trigger input.
1 DA2 2 DA1 3 DA0 4 /RESET/VPP 5 VDD 7 GND 8 OSCO 9 OSCI 10 PB5/SDA2 11 PB4/SCL2 12 PB3/PAT 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 PB2 PB1/HLFI PB0/HLFO PB6/IRQ PC7 PC6 PC5 PC4 PC3 PC2 PC1/AD1 PC0/AD0 SDA1/PD1 SCL1/PD0 PA0/DA8 PA1/DA9 PA2/DA10 PA3/DA11 PA4/DA12 PA5/DA13 PA6/VSO PA7/HSO DA7 DA6 DA5 DA4 DA3 HSYNC VSYNC
O I I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O O O O O O I I
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
FUNCTIONAL DESCRIPTION
CPU
The CPU core is 6502 compatible, operating frequency is 4MHz. Address bus is 16-bit and data bus is 8-bit. the non-maskable interrupt (/NMI) of 6502 is changed to maskable interrupt and is defined as the INT0. The interrupt request (/IRQ) of 6502 is defined as the INT1. Default stack pointer is 01FFH. Please refer the 6502 reference menu for more detail.
ROM
16384 bytes flash memory are provided for program codes. Address is located from C000H to FFFFH. The following addresses are reserved for special purpose : FFFAH (low byte) and FFFBH (high byte) : INT0 interrupt vector. FFFCH (low byte) and FFFDH (high byte) : program reset vector. FFFEH (low byte) and FFFFH (high byte) : INT1 interrupt vector.
RAM
Built-in 288 bytes SRAM, address is located from 0080H to 019FH. Because the initial stack pointer is 01FFH, so program must set proper stack pointer when program starts. A recommended value is 019FH. Note : If user wants to emulate WT6014, please set bit 7 in REG#7FH. This will set stack pointer to 00FFH. 0000H : 0020H 0021H : 007FH 0080H : 019FH 01A0H : BFFFH C000H : : : FFFFH
REGISTERS
Reserved
RAM
Reserved
ROM
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
To program the PWM D/A converters, write the corresponding registers ( REG#00H to REG#0DH). Address 0000H 0001H 0002H 0003H 0004H 0005H 0006H 0007H 0008H 0009H 000AH 000BH 000CH 000DH R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W Initial 80H 80H 80H 80H 80H 80H 80H 80H 80H 80H 80H 80H 80H 80H Bit7 DA07 DA17 DA27 DA37 DA47 DA57 DA67 DA77 DA87 DA97 DA107 DA117 DA127 DA137 Bit6 DA06 DA16 DA26 DA36 DA46 DA56 DA66 DA76 DA86 DA96 DA106 DA116 DA126 DA136 Bit5 DA05 DA15 DA25 DA35 DA45 DA55 DA65 DA75 DA85 DA95 DA105 DA115 DA125 DA135 Bit4 DA04 DA14 DA24 DA34 DA44 DA54 DA64 DA74 DA84 DA94 DA104 DA114 DA124 DA134 Bit3 DA03 DA13 DA23 DA33 DA43 DA53 DA63 DA73 DA83 DA93 DA103 DA113 DA123 DA133 Bit2 DA02 DA12 DA22 DA32 DA42 DA52 DA62 DA72 DA82 DA92 DA102 DA112 DA122 DA132 Bit1 DA01 DA11 DA21 DA31 DA41 DA51 DA61 DA71 DA81 DA91 DA101 DA111 DA121 DA131 Bit0 DA00 DA10 DA20 DA30 DA40 DA50 DA60 DA70 DA80 DA90 DA100 DA110 DA120 DA130
Bit value 01H : 1/256 duty cycle 02H : 2/256 duty cycle 03H : 3/256 duty cycle : FFH : 255/256 duty cycle
**Do not write 00H to the PWM registers. This will cause unstable output.
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
I/O Ports
Port_A : Pin PA0/DA8 Pin PA1/DA9 Pin PA2/DA10 Pin PA3/DA11 Pin PA4/DA12 Pin PA5/DA13 Pin PA6/VSO Pin PA7/HSO
- general purpose I/O shared with DA8 output. - general purpose I/O shared with DA9 output. - general purpose I/O shared with DA10 output. - general purpose I/O shared with DA11 output. - general purpose I/O shared with DA12 output. - general purpose I/O shared with DA13 output. - general purpose I/O shared with VSYNC output. - general purpose I/O shared with HSYNC output.
Port_A is controlled by REG#10H & REG#11H. In REG#10H, each corresponding bit enables HSYNC output, VSYNC output or D/A converter output when it is "1". If the corresponding bit is "0", the output level is decided by REG#11H. In REG#11H, if the I/O corresponding bit (PAn) is "0", the output is low level (IOL=5mA). If PAn bit is "1", the output is high level (IOH= -100uA) and can be used as an input. Address 0010H 0011H 0011H R/W W W R Initial 00H FFH -Bit7 EHO PA7W PA7R Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 EVO EDA13 EDA12 EDA11 EDA10 EDA9 PA6W PA5W PA4W PA3W PA2W PA1W PA6R PA5R PA4R PA3R PA2R PA1R Bit0 EDA8 PA0W PA0R
Bit Name Bit value = 1 Bit value = 0 EHO Enable PA7 as HSYNC output. PA7 as general purpose I/O. EVO Enable PA6 as VSYNC output. PA6 as general purpose I/O. EDA13 Enable PA5 as DA13 output. PA5 as general purpose I/O. EDA12 Enable PA4 as DA12 output. PA4 as general purpose I/O. EDA11 Enable PA3 as DA11 output. PA3 as general purpose I/O. EDA10 Enable PA2 as DA10 output. PA2 as general purpose I/O. EDA9 Enable PA1 as DA9 output. PA1 as general purpose I/O. EDA8 Enable PA0 as DA8 output. PA0 as general purpose I/O. PA7W - PA0W Outputs high level (IOH= -100uA). Outputs low level (IOL= 5mA). PA7R- PA0R Pin is high level. Pin is low level. * If the program wants to force VSYNC output (VSO pin) in low state, write "0" to PA6 bit first, then write "0" to EVO bit. This is used to prevent high frequency output on VSO pin when the VSYNC frequency is increased to read EDID data in DDC1 mode. EDAx DAx 5mA PAnW
5mA
PAnR
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998 Port_B : Pin PB0/HLFO - general purpose I/O pin shared with half frequency output. Pin PB1/HLFI - general purpose I/O pin shared with half frequency output. Pin PB2 - general purpose I/O pin. Pin PB3/PAT - general purpose I/O pin shared with self-test pattern output. Pin PB4/SCL2 - general purpose I/O pin shared with I2C interface clock pin. Pin PB5/SDA2 - general purpose I/O pin shared with I2C interface data pin. Pin PB6/IRQB - general purpose I/O pin shared with interrupt request input. The source/sink current of port_B is 5mA when as an output. When it is input, an internal pull high resistor is connected. Address 0012H 0013H 0013H R/W W W R Initial 00H FFH -Bit7 0 1 -Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PB6OE PB5OE PB4OE PB3OE PB2OE PB1OE PB0OE PB6W PB5W PB4W PB3W PB2W PB1W PB0W PB6R PB5R PB4R PB3R PB2R PB1R PB0R Bit value = 0 Output disable (internal pull-up). Outputs low level (IOL= 5mA). Pin is low level.
Bit value = 1 Output enable. Outputs high level (IOH= -5mA). Pin is high level.
* If IEN_D bit in REG#1AH is 1 and PB6OE bit is "0", the PB6 pin becomes interrupt request input. * If ENI2C bit in REG#1EH is 1, the PB5 and PB4 pins becomes I2C interface pins. * If ENPAT bit in REG#16H is 1, the PB3 pin becomes self-test pattern output. * If ENHALF bit in REG#17H is 1, the PB1 pin becomes half frequency input and PB0 pin becomes half frequency output pin.
PBnOE 5mA Pin PB0 to PB6 PBnW 100uA PBnR Structure of Port B 5mA
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998 Port_C : Pin PC0 - general purpose I/O pin shared with 4-bit A/D converter 0 input. Pin PC1 - general purpose I/O pin shared with 4-bit A/D converter 1 input Pin PC2 to PC7 - general purpose I/O pins. The REG#14H defines the I/O direction and the REG#15H controls the output level. The structure of Port_C is same as the Port_B except the sink current is 10mA. When PC0 and PC1 are programmed as the A/D converter inputs, the pull high transistor is disconnected. Address 0014H 0015H 0015H R/W W W R Initial 00H FFH -Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PC7OE PC6OE PC5OE PC4OE PC3OE PC2OE PC1OE PC0OE PC7W PC6W PC5W PC4W PC3W PC2W PC1W PC0W PC7R PC6R PC5R PC4R PC3R PC2R PC1R PC0R Bit value = 0 Output disable (internal pull-up). Outputs low level (IOL= 10mA). Pin is low level.
Bit value = 1 Output enable. Outputs high level (IOH= -5mA). Pin is high level.
Pin SCL1/PD0 - general purpose I/O pin shared with DDC interface serial clock. Pin SDA1/PD1 - general purpose I/O pin shared with DDC interface serial data. The structure of these two pins are same as the PB4 and PB5. Default is DDC interface and can be changed to I/O port D by setting ENPD bit. Address 000FH 000FH R/W W R Initial 00H -Bit7 --Bit6 --Bit5 --Bit4 Bit3 Bit2 Bit1 ENPD PD1OE PD0OE PD1W ---PD1R Bit0 PD0W PD0R
Bit value = 1 Enable I/O Port_D. Output enable. Outputs high level (IOH= -5mA). Pin is high level.
Bit value = 0 DDC interface.(open drain) Output disable (internal pull-up). Outputs low level (IOL= 5mA). Pin is low level.
* If program wants to read current status on the I/O pins (any I/O port), do not set output enable bit to 0. Because the registers for reading I/O are always indicating the current state on the I/O pins, set output enable bit to 0 will change the level on the I/O pin. Please reference the I/O pin structure.
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
SYNC Processor
The SYNC processor can : (1) separate the composite sync signal; (2) calculate HSYNC and VSYNC frequencies; (3) detect polarities of HSYNC and VSYNC inputs; (4) control the output polarities of HSO and VSO pins. (5) generate free-running horizontal and vertical sync signals for burn-in test; (6) generate self-test pattern signal.
HSYNC
H Polarity detect
Sync Separator
H V
SELF
HSO VSO
Mux Mux
VSYNC
H+V
Mux
PB3
PB3/PAT
Composite Sync Signal Separation The composite sync signal comes from HSYNC pin and is separated by the sync separator. The operations of sync separator are: - detect the polarity and convert composite sync signal to positive polarity. - extract Vsync Pulse width less than 8us will be filtered, but the Vsync will be widened about 8us. - count the pulses during the separated Vsync is low and save the counter value (NH). - bypass the composite sync pulses before the counter equals to NH. - start inserting Hsync pulses after the counter equals to NH until the separated Vsync is low. - the period of inserted Hsync is decided by the last two bypassed Hsync. - the pulse width of the inserted Hsync is 2us.
separated Vsync To decide whether the HSYNC input is a composite sync signal or not, program should check the frequency of VSYNC first (reset H+V bit to 0). If the VSYNC frequency is lower than 15.25Hz (OVF2=1), set H+V bit to 1 and check VSYNC frequency again. If VSYNC still has no frequency, that is power saving condition, program should reset H+V bit. If it has a valid frequency, the HSYNC input is composite signal.
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998 Frequency Calculation Horizontal frequency and vertical frequencies calculation are done by using one 10-bit up counter. After power is on, the SYNC processor calculates the vertical frequency first (H/V bit ="0"). A 31.25KHz clock counts the time interval between two VSYNC pulses, then sets the FRDY bit and generates an INT1 interrupt (if IEN_S bit is "1"). The software can either use interrupt or polling the FRDY bit to read the correct vertical frequency. After reading the REG#16H, the FRDY bit is cleared to "0", counter is reset and H/V bit is set. The SYNC processor starts to count horizontal frequency. The horizontal frequency calculation is done by counting the HSYNC pulses in 8.192 ms. Like the vertical frequency, the horizontal frequency can be read when the FRDY bit is set or INT1 occurs. After reading the REG#16H, the FRDY, INT_S and H/V bits are cleared. The SYNC processor starts to calculate the vertical frequency again, and so on. The relationships between counter value and frequency are : Hfreq = (counter value x 122.07) Hz Vfreq = ( 31250 / counter value ) Hz The frequency range : Hfreq range : 122.07 Hz to 124.8 kHz ; Resolution : 122.07Hz Vfreq range : 30.5 Hz to 31.25 kHz If counter overflowed, the OVF1 bit will be set to "1". The counter keeps on counting until it overflowed again. The OVF2 bit and FRDY bit will be set when counter overflowed twice. This is designed for finding the vertical frequency bellows 15.25Hz. The program should check REG#17H before reading REG#16H. Polarity Detect/Control The polarities of HSYNC and VSYNC are automatically detected and are shown in the H_POL and V_POL bits. The polarities of HSO and VSO are controlled by the HOP and VOP bits. For example, set HOP bit to 1, the HSO pin always outputs positive horizontal sync signal, whatever the HSYNC inputs polarity is. Free-running Sync Signal The self-generated sync signals are output from HSO and VSO pins if SELF bit is 1. Three kinds of frequencies are provided : (1) Hfreq = 8MHz/125 = 64.0kHz, Vfreq = Hfreq/1024 = 62.5Hz. (2) Hfreq = 8MHz/167 = 47.9kHz, Vfreq = Hfreq/640 = 74.9Hz. (3) Hfreq = 8MHz/257 = 31.1kHz, Vfreq = Hfreq/512 = 60.8Hz . The output polarities are controlled by the HOP and VOP bits. The pulse width of HSO is 2us and VSO is four HSO cycles. The timing relationship is shown in the following : 2us HSO VSO
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998 Test Pattern Generation A self-test pattern signal comes out from pin PB3/PAT. It can generate a cross hatch picture, a inverted cross hatch picture, a white picture or a black picture.
8 X 8 cross hatch
White Picture
Black Picture
The test pattern signal is generated when SELF and ENPAT are both set to 1. This vedio signal will synchronize to the free-running Hsync and Vsync, no matter which frequency is chosen. The following diagram shows the timing relationship of cross hatch picture.
HSO PAT T2 T1 T1 T3 T2
10
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998 Half Frequency HLFO pin outputs same or half frequency from HLFI pin. The divide-by-2 operation is done on the falling edge of HLFI pin when HALF bit is set. Polarity of HLFO is specified by HLFPO bit.
HLFI HLFO (HALF=0) (HLFPO=0) HLFO (HALF=0) (HLFPO=1) HLFO (HALF=1)
R/W W R W R
Initial ---00H
Bit7 0 F9 -H/V
Bit6 0 F8 ---
Bit5 Bit4 Bit3 Bit2 ENPAT PAT1 PAT0 SELF F7 F6 F5 F4 ENHLF HALF HLFPO H+V H_POL V_POL OVF2 OVF1
ENHLF
F9-F0
Bit value = 1 Bit value = 0 Pin PB3/PAT outputs test pattern. Pin PB3/PAT is I/O port. If PAT1=0, PAT0=0, cross hatch picture. If PAT1=0, PAT0=1, white picture. If PAT1=1, PAT0=0, inverted cross hatch picture. If PAT1=1, PAT0=1, black picture. HSO and VSO output free-running HSO and VSO output sync signals. frequency. H64K=1,H48K=1 : Burn-in frequency=47.9kHz/74.9Hz H64K=0,H48K=1 : Burn-in frequency=47.9kHz/74.9Hz H64K=1,H48K=0 : Burn-in frequency=64kHz/62.5Hz H64K=0,H48K=0 : Burn-in frequency=31.1kHz/60.8Hz Pin PB1/HLFI is frequency input. Pin PB1/HLFI and PB0/HLFO is I/O Pin PB0/HLFO is half frequency port. output. HLFO outputs half frequency of HLFI. HLFO outputs same frequency of HLFI HLFO is positive polarity. HLFO is negative polarity. Enable H+V separation function. Disable H+V separation. This will select the sync signals come from the sync separator. HSO pin is always positive polarity. HSO pin is always negative polarity. VSO pin is always positive polarity. VSO pin is always negative polarity. Counter stores horizontal frequency. Counter stores vertical frequency. HSYNC input is positive polarity. HSYNC input is negative polarity. VSYNC input is positive polarity. VSYNC input is negative polarity. OVF2=1,OVF1=0 : Counter overflowed twice. OVF2=0,OVF1=1 : Counter overflowed once. OVF2=0,OVF1=0 : No overflow. OVF2=1,OVF1=1 : No such condition. Frequency counter value. (F9 is MSB)
11
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
DDC Interface
The DDC interface is a slave mode I2C interface with DDC1 function. It is fully compatible with VEAS DDC1/2B standard. The functional block diagram is shown in the below.
Internal Data Bus ENACK Data Buffer SDA I/O VSYNC MUX Shift Register R/W Address Compare
MSB
1 0 1 0 0 0 0 Address Register
After power on or reset the DDC interface, it is in DDC1 state. The shift register shifts out data to SDA pin on the rising edge of VSYNC clock. Data format is an 8-bit byte followed by a null bit. Most significant bit (MSB) is transmitted first. Every time when the ninth bit has been transmitted, the shift register will load a data byte from data buffer (REG#18H). After loading data to the shift register, the data buffer becomes empty and generates an INT0 interrupt. So the program must write one data byte into REG#18 every nine VSYNC clocks. Since the default values of data buffer(REG#22) and shift register are FFH, the SDA pin outputs high level if no data had been written into data buffer after power on reset. When program finished initialization and set the IEN_D bit to "1", the INT0 will occur because the data buffer is empty. The INT0 service routine should check the DDC2B bit is "0" and then writes the first EDID data byte into data buffer. When the second INT0 occurs, the INT0 service routine writes the second EDID data byte into data buffer and so on.
SDA VSYNC Load data to shift register INT0 IEN_D Bit7 1 2 3 9 10 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 18 Bit7 19
12
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998 If a low level occurs on the SCL pin in DDC1 state, the DDC interface will switch to DDC2B state immediately and set the DDC2B bit to "1". No interrupt will be generated. But, if there is no valid device address and it receives 128 VSYNC pulses while the SCL is high level, it will go back to DDC1 state automatically. If it receives a valid device address, it will lock into DDC2B state and disregard VSYNC. In some case, program wants to go back DDC1 state, set RDDC bit in REG#1AH and reset it again. This operation resets the DDC interface to the initial condition. When it is in DDC2B state, the VSYNC clock is disregarded and the communication protocol follows the DDC standard. The data format on SDA pin is: S Address R/W A D7,D6,...., D0 A D7,D6,...., D0 A P
S : Start condition. A falling edge occurs when SCL is high level. P : Stop condition. A rising edge occurs when SCL is high level. A : Acknowledge bit. 0 means acknowledge and 1 means non-acknowledge. Address : 7-bit device address. R/W : Read/Write control bit, "1" is read and "0" is write. D7,D6,...., D0 : data byte.
The hardware operations in DDC2B state are : (1) START/STOP detection When the START condition is detected, the DDC interface is enabled and set START bit to "1". When the STOP condition is detected, the DDC interface is disabled, set STOP bit to "1" and generate INT0 interrupt. The START bit is cleared when the following data byte received. The STOP bit is cleared after writing REG#19H. (2) Address Recognition It contains two device addresses in WT6018. One fixed address (1010000) is for EDID reading and one programmable address (REG#19H) is for external control, such as auto alignment. If the address is equal to "1010000", set ADDR bit to "0". If the address is equal to the bit A6 to bit A0 (REG#19H), set ADDR bit to "1". If the address is not equal to anyone above, the DDC interface will not response acknowledge. The ADDR bit is updated when a new device address is received. (3) Store R/W bit and decide the direction of SDA pin The R/W bit on the SDA pin will be stored in the RW bit. (4) Acknowledge bit control/detection Acknowledge bit control in receive direction : If ENACK=1 and address compare is true, response acknowledge (Acknowledge bit ="0"). If ENACK=0 or address compare is false, response non-acknowledge (Acknowledge bit ="1"). Acknowledge bit detect in transmit direction : If the acknowledge bit is "1" , the DDC interface will be disabled and release the SDA pin. If the acknowledge bit is "0" , the DDC interface keeps on communicating.
13
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998 (5) Data bytes transmit/receive If the RW bit is "1", the shift register will load data from the data buffer (REG#18H) before the data byte is transmitted and shift out data to the SDA pin before the rising edge of the SCL clock. If the RW bit is "0", the shift register will shift in data on the rising edge of the SCL clock and the whole data byte is latched to the data buffer(REG#18H). (6) Handshaking procedure The handshaking is done on the byte level. The DDC interface will hold the SCL pin low after the acknowledge bit automatically. The bus master will be forced to wait until the WT6018 is ready for the next byte transfer. To release the SCL pin, write REG#19H will release clear the wait state. (7) Interrupt INT0 The DDC interface interrupt is enabled by setting the IEN_D bit in the REG#1AH. Interrupt INT0 occurs when: - Transmit buffer empty in DDC1 state. The INT0 occurs when the shift register load data from data buffer. Write REG#18H will clear the transmit buffer empty condition. - Acknowledge is detected in DDC2B state. The INT0 occurs on the falling edge of the SCL clock after the acknowledge had been detected. The SCL pin will be pulled low to force the bus master to wait until the service routine write REG#19H. - STOP condition occurs in DDC2B mode
R/W R/W R W
Bit5 D5 RW A4
Bit2 D2 -A1
Bit1 D1 -A0
Bit0 D0 -ENACK
Bit value = 1 Bit value = 0 DDC2B state. DDC1 state. received address equals to the address received address equals to 1010000. in REG#19H(W). received R/W bit is 1. received R/W bit is 0. START condition is detected. No START condition is detected. STOP condition is detected. No STOP condition is detected. Enable acknowledge. Disable acknowledge. 7-bit slave address Data to be transmitted or received data.
14
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
Pull low SCL SCL SDA In SDA Out Write REG#19H to release SCL Shift register to data buffer INT0 1 0 1 0 0 0 0 0 A Data Byte A Data Byte A Pull low SCL Pull low SCL
Pull low SCL SCL SDA In SDA Out Write REG#19H to release SCL Data buffer to shift reg INT0 1 0 1 0 0 0 0 1 A Data Byte
A Data Byte
15
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
I C Interface
This is a master/slave mode I2C interface. In slave mode, the structure is same as the DDC2B mode of DDC interface. Address 001DH 001EH 001FH 001FH R/W R/W W R W Initial FFH 00H -00H Bit7 ID7 IA6 MS MSS Bit6 ID6 IA5 ACK MACK Bit5 ID5 IA4 BB CLK Bit4 ID4 IA3 AL ENI2C Bit3 ID3 IA2 RW 0 Bit2 ID2 IA1 START 0 Bit1 ID1 IA0 -0 Bit0 D0 ENADR -0
Bit Name MS ACK BB AL RW START ENADR MSS MACK CLK ENI2C IA6,IA5, .,IA0 ID7,ID6, .,ID0
Bit value = 1 I C interface is in master mode. Received Acknowledge bit is 1. Bus busy. Arbitration loss. Received R/W bit is 1. START condition is detected. Enable address compare. Set master mode. If this bit is from 01, it will send START. Master send acknowledge. SCL2 pin clock frequency is 996Hz. Enable I2C interface.
2
Bit value = 0 I C interface is in slave mode. Received Acknowledge bit is 0. Bus idle. Arbitration success. Received R/W bit is 0. No START condition is detected. No address compare. Set slave mode. If this bit is from 10, it will send a STOP. Master send non-acknowledge. SCL2 pin clock frequency is 62.5kHz. Disable I2C interface. These two pins become I/O pins and reset I2C interface.
2
Write data to register $001EH will send out clock for receive or transmit one data byte.
16
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
Interrupt Control
There are two interrupt sources : INT0 and INT1. INT0 has the higher priority. Interrupt vector : INT0 : FFFAH (low byte) and FFFBH (high byte). INT1 : FFFEH (low byte) and FFFFH (high byte). INT0 occurs when : (1) data buffer empty in the DDC1 mode (DDC="1" and DDC2B="0"). (2) acknowledge or STOP condition is detected in the DDC2B mode (DDC="1" and DDC2B="0"). INT1 occurs when : (1) a falling edge or a low level occurs on the /IRQ pin (EXT="1"). (2) the timer is time out (TIM="1"). (3) SYNC processor has a valid frequency (SYNC="1"). If H/V ="0" , it is vertical frequency ready. If H/V ="1" , it is horizontal frequency ready. (4) I2C interface interrupt. INT0 is cleared when : (1) writing the REG#18H in DDC1 state. (2) writing the REG#19H in DDC2B state. INT1 is cleared when : (1) reading the REG#1AH if EXT="1". (2) reading the REG#1BH if TIM="1". (3) reading the REG#16H if SYNC="1". (4) writing the REG#1EH if I2C=1.
IEN_D DDC
CK
INT0
17
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
R/W W R
Bit value = 1 Bit value = 0 Enable /IRQ pin interrupt. Disable /IRQ pin interrupt. Enable timer interrupt. Disable timer interrupt. Enable SYNC processor interrupt. Disable SYNC processor interrupt. Enable DDC interface interrupt. Disable DDC interface interrupt. /IRQ pin interrupt is edge trigger. /IRQ pin interrupt is level trigger. Reset DDC interface. Clear the reset of DDC interface. It will always reset DDC interface if this bit keeps 1. Enable I2C interface interrupt. Disable I2C interface interrupt. /IRQ pin interrupt occurs. No /IRQ pin interrupt. Timer interrupt occurs. No timer interrupt. SYNC processor interrupt occurs. No SYNC processor interrupt. DDC interface interrupt occurs. No DDC interface interrupt. /IRQ pin is low level /IRQ pin is high level Timer is time-out. Timer is not time-out. H/V frequency counter is ready. H/V frequency counter is not ready. The counter value is valid. The counter value is invalid. I2C interface interrupt occurs. No I2C interface interrupt.
18
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
Timer
It is a 8-bit down counter and clock frequency is 976.5625Hz (period=1.024ms). The timer is started by writing a value into REG#1BH. When the timer counts down to zero, the timer stops, sets the TOUT bit and generates an INT1 interrupt (if the IEN_T bit is "1"). The TOUT bit will be cleared after REG#1BH is read.
Watch-Dog Timer
The watch-dog timer is enabled after the power is on. Software must clear the watch-dog timer within every 524ms. If the watch-dog timer expired, It will cause the whole chip reset just like external reset. If user want to disable the watch-dog timer when debugging program, set bit 6 of REG#7FH. But user must remember that the watch-dog timer is always enabled in mask-rom type IC. To clear the watch-dog timer, write any data to REG#1CH. Address 001BH 001CH 007FH R/W R/W W W Initial --00H Bit7 Bit6 TM7 TM6 WDT WDT SET14 DWDT Bit5 TM5 WDT -Bit4 TM4 WDT -Bit3 TM3 WDT -Bit2 TM2 WDT -Bit1 TM1 WDT -Bit0 TM0 WDT --
Bit value = 1 Bit value = 0 Timer value (0 - 255) Write any value to this register will reset the watchdog timer. Ser to WT6014. Page 1 mapping to No memory mapping. page 0. So the stack pointer is 00FFH. Disable watch-dog timer. Enable watch-dog timer.
19
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
A/D Converter
Two 4-bit A/D converter inputs are shared with I/O port_C PC0 and PC1. Use ENAD1 bit and ENAD0 bit to enable the corresponding A/D converter. The sampling rate is 488.3Hz and converted value is store in REG#20H. 4-bit data
1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000
Volt
0 0.75 4.02
R/W R W
Initial -00H
Bit7 AD13 0
Bit6 AD12 0
Bit5 AD11 0
Bit4 AD10 0
Bit3 AD03 0
Bit value = 1 Enable A/D converter 1. Pin PC1 is the input of A/D converter 1. Enable A/D converter 0. Pin PC0 is the input of A/D converter 0. 4-bit data of A/D converter 1. 4-bit data of A/D converter 0.
Bit value = 0 Disable A/D converter 1. Pin PC1 is I/O. Disable A/D converter 0. Pin PC0 is I/O.
20
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
REGISTER MAP
Address 0000H 0001H 0002H 0003H 0004H 0005H 0006H 0007H 0008H 0009H 000AH 000BH 000CH 000DH 000EH 000FH 0010H 0011H 0012H 0013H 0014H 0015H 0016H 0017H 0018H 0019H 001AH 001BH 001CH 001DH 001EH 001FH 001FH 0020H 007FH Initial R/W value R/W 80H R/W 80H R/W 80H R/W 80H R/W 80H R/W 80H R/W 80H R/W 80H R/W 80H R/W 80H R/W 80H R/W 80H R/W 80H R/W 80H R W W R W W R W W R W R W R W R/W R W R W R/W W R/W W R W R W W X 00H 00H X FFH 00H X FFH 00H FFH X X 00H 00H X FFH 40H A0H 00H 00H X X FFH 00H -00H X 00H 00H Bit5 Bit4 DA05 DA04 DA15 DA14 DA25 DA24 DA35 DA34 DA45 DA44 DA55 DA54 DA65 DA64 DA75 DA74 DA85 DA84 DA95 DA94 DA105 DA104 DA115 DA114 DA125 DA124 DA135 DA134 Reserved ----0 0 0 ENPD EHO EVO EDA13 EDA12 PA7R PA6R PA5R PA4R PA7W PA6W PA5W PA4W 0 PB6OE PB5OE PB4OE -PB6R PB5R PB4R 1 PB6W PB5W PB4W PC7OE PC6OE PC5OE PC4OE PC7R PC6R PC5R PC4R PC7W PC6W PC5W PC4W F9 F8 F7 F6 0 0 ENPAT PAT1 H/V -H_POL V_POL 0 0 ENHLF HALF D7 D6 D5 D4 DDC2B ADDR RW START A6 A5 A4 A3 EXT TIM SYNC DDC IEN_X IEN_T IEN_S IEN_D TM7 TM6 TM5 TM4 CWDT CWDT CWDT CWDT ID7 ID6 ID5 ID4 IA6 IA5 IA4 IA3 MS ACK BB AL MSS MACK CLK ENI2C AD13 AD12 AD11 AD10 0 0 0 0 Bit7 DA07 DA17 DA27 DA37 DA47 DA57 DA67 DA77 DA87 DA97 DA107 DA117 DA127 DA137 Bit6 DA06 DA16 DA26 DA36 DA46 DA56 DA66 DA76 DA86 DA96 DA106 DA116 DA126 DA136 Bit3 DA03 DA13 DA23 DA33 DA43 DA53 DA63 DA73 DA83 DA93 DA103 DA113 DA123 DA133 -PD1OE EDA11 PA3R PA3W PB3OE PB3R PB3W PC3OE PC3R PC3W F5 PAT0 OVF2 HLFPO D3 STOP A2 IRQ EDGE TM3 CWDT ID3 IA2 RW 0 AD03 0 Bit2 DA02 DA12 DA22 DA32 DA42 DA52 DA62 DA72 DA82 DA92 DA102 DA112 DA122 DA132 Bit1 DA01 DA11 DA21 DA31 DA41 DA51 DA61 DA71 DA81 DA91 DA101 DA111 DA121 DA131 Bit0 DA00 DA10 DA20 DA30 DA40 DA50 DA60 DA70 DA80 DA90 DA100 DA110 DA120 DA130 PD0R PD0W EDA8 PA0R PA0W PB0OE PB0R PB0W PC0OE PC0R PC0W F2 H48K F0 VOP D0 -ENACK I2C IEN_I2C TM0 CWDT D0 ENI2C -0 AD00 ENAD0
-PD1R PD0OE PD1W EDA10 EDA9 PA2R PA1R PA2W PA1W PB2OE PB1OE PB2R PB1R PB2W PB1W PC2OE PC1OE PC2R PC1R PC2W PC1W F4 F3 SELF H62K OVF1 F1 H+V HOP D2 D1 --A1 A0 TOUT FRDY RDDC 0 TM2 TM1 CWDT CWDT ID2 ID1 IA1 IA0 START -0 0 AD02 AD01 0 ENAD1
SET14 DWDT
--
--
--
--
--
--
21
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
ELECTRICAL CHARACTERISTICS
Absolute Maximum Ratings
Parameter DC Supply Voltage (VDD) Input and output voltage with respect to Ground All pins except DA0 to DA7 DA0 to DA7 Storage temperature Ambient temperature with power applied Min. -0.3 -0.3 -0.3 -20 -10 Max 7.0 VDD+0.3 11.5V 125 70 Units V V V oC oC
* Note : Stresses above those listed may cause permanent damage to the device.
Parameter
Supply Voltage Input High Voltage Input Low Voltage Sync Input High Voltage Sync Input Low Voltage Output High Voltage
Condition
All input pins (except HSYNC and VSYNC) All input pins (except HSYNC and VSYNC) HSYNC and VSYNC pin HSYNC and VSYNC pin
IOH= -100uA PA0-PA7 pins IOH= -6mA PB0-PB6, PC0-PC7, PD0, PD1, DA8-DA13, HSO, VSO and HSO pins DA0-DA7 pins (external voltage) SCL and SDA pins (open drain) VOL Output Low Voltage IOL= 5mA PA0-PA7, PB0-PB6, PD0-1, DA0-DA13, SCL, SDA, VSO and HSO pins IOL= 10mA PC0-PC7 pins IIL Input Leakage Current SDA, SCL, HSYNC and VSYNC pins ( VIN = 0 to 5V) RPH Pull High Resistance VIN=0.8V PA0-PA7, PB0-PB6, PC0-PC7, /RESET and /IRQ pins IDD Operating Current No load. Oscillator frequency=8MHz VRESET Reset Voltage /RESET pin
V V V
-10 16
22
0.4 10 28
V uA Kohm
3.8
13 4.0
25 4.2
mA V
22
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998
Typ. -
Max. -
Units ns ns
tLOW,RES tHIGH,IRQ
SYNC Processor Timing Symbol Parameter tHIGH,SYNC HSYNC and VSYNC high time tLOW,SYNC HSYNC and VSYNC low time tFPW,HSO Self generated free-running HSO pulse width tFPW,VSO Self generated free-running VSO pulse width tIPW,HSO Inserted Hsync pulse width (composite sync input)
HSYNC VSYNC
tHIGH,SYNC
tLOW,SYNC
DDC1 Timing Symbol tVAA,DDC1 tMT Parameter SDA output valid from VSYNC rising edge Mode transition time (DDC1 to DDC2B) Min. 125 Typ. Max. 500 500 Units ns ns
SCL
tMT tVAA,DDC1
SDA
Bit 0 (LSB)
Null Bit
Bit 7 (MSB)
VSYNC
tHIGH,SYNC
tLOW,SYNC
23
WT60P1
Digital Monitor Controller
Ver. 1.51 Jul-31-1998 DDC2B Timing Symbol fSCL tBF tHD,START tSU,START tHIGH,SCL tLOW,SCL tHD,DATA tSU,DATA tRISE tFALL tSU,STOP Parameter SCL input clock frequency Bus free time Hold time for START condition Set-up time for START condition SCL clock high time SCL clock low time Hold time for DATA input Hold time for DATA output Set-up time for DATA input Set-up time for DATA output SCL and SDA rise time SCL and SDA fall time Set-up time for STOP condition Min. 0 2 1 1 1 1 0 250 250 500 4 Typ. Max. 100 1 300 Units kHz us us us us us ns ns ns ns us ns us
tBF
SDA
tHD,START
SCL
tRISE
tFALL
tSU,STOP
tLOW,SCL
tHD,DATA
tHIGH,SCL
tSU,DATA
tSU,START
24