ETC HMS97C7134

HMS91C7134
HMS91C7134
CMOS SINGLE-CHIP 8-BIT MICROCONTROLLER
FOR MONITOR
1. OVERVIEW
1.1 Description
The HMS9xC7134 is a single-chip microcontroller of the 80C51 family, which is dedicated for monitor application. It is particularly suitable for multi-sync computer monitor controller. This contains DDC interfaces to the PC host, sync-detector and sync-processor for autosync application, ADC, static PWM, dynamic PWM and I2C bus interface for control of the video and deflection functions of the monitor.
Device name
ROM Size
RAM
Size
I/O
OTP
Package
HMS91C7134
32K bytes
Mask ROM
512 bytes
30(42DIP)
32(42SDIP)
HMS97C7134
40DIP(HMS91C7134),
42SDIP(HMS91C7134K)
1.2 Features
• 80C51 core
- Separate input for a SOG signal
• 32K bytes of ROM for HMS91C7134
- Missing pulse insertion option
(32K bytes of EPROM for HMS97C7134)
- HSYNC/ VSYNC change interrupt
• 256 bytes of RAM and 256 bytes of XRAM for
DDC operation
• One multi-master/slave I2C interface (up to
400K bit/s) for control of other system IC’s
• Uses an external crystal of 12.0 MHz
• Eight 8-bit Static PWM outputs for digital control applications
• One DDC compliant interface :
- Fully supports DDC1 with dedicated hardware
• Two 8-bit Dynamic PWM outputs for various
waveform generation
- DDC2B, DDC2AB and DDC2B+ compliant dedicated hardware based on an I2C bus interface
• One 8-bit ADC with 4 input channels
- RAM buffer with programmable size, 128 bytes
or 256 bytes, which can be used for DDC operation or shared as system RAM
• On-chip sync processor
• LED driver port ; two port lines with
15 mA drive capability
• One 8-bit port only for I/O function
- HSYNC frequency with 12-bit resolution
• 24 derivative I/O ports configurable for alternative functions
- VSYNC frequency with 12-bit resolution
• Watchdog timer (524ms max.)
- HSYNC and VSYNC polarity
• On-chip low VDD voltage detect and reset
(reset period: 524ms)
- HSYNC and VSYNC presence detection
to 70
- Composite sync separation
• Operating temperature : 0
- Free running sync. generation
• Special idle and power-down modes with low
- Clamping pulse output
- Pattern generation
November.2001 ver1.0
power consumption
• Single power supply : 4.5V to 5.5V
1
2
X TA L2
X TA L1
P0
P1
P2
Parallel
I/O Ports
&
E xternal B us
T hree 16-B it
T im ers
( T0, T1, T 2 )
80C 51 core
P3
C PU
IN T0
VSS1
PA TO U T
CLA M P
H SY N Cout
V SY N Cout
V SY N Cin
H SY N Cin
SO G in
Sync. D etection
& Sync. Process
Program
M em ory
(64K B )
VDD1
SDA1
SCL1
DDC
Interface
D ata
M em ory
(64K B )
PW M 0
to
PW M 7
8x8-B it
Static
PW M
8-B it
ADC
A CH[3:0]
SCL2
DPW M0
to
DPW M1
2x8-B it
D ynam ic
PW M
I2C -B us
Serial I/O
SDA2
V SS2
RE SET
L ow
V oltage
R eset
W atch D og
T im er
VDD2
HMS91C7134
2. BLOCK DIAGRAM
November.2001 ver1.0
HMS91C7134
3. PIN ASSIGNMENT
3.1 40PDIP pinning
40DIP
(Top View)
* : Open-drain option
** : Open-drain type pin
November.2001 ver1.0
PWM0* /P2.2
DPWM0* /P2.1
DPWM0* /P2.0
RESET
VDD1
VSS1
XTAL2
XTAL1
SDA2** /P1.7
SCL2** /P1.6
P0.7**
P0.6**
P0.5**
P0.4**
INT0/VPP
P0.3**
P0.2**
P0.1**
P0.0**
ACH3 /P1.5
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-IN
Hsync-IN
PWM1* /P2.3
PWM2* /P2.4
PWM3* /P2.5
PWM4* /P2.6
PWM5* /P2.7
Hsync-OUT /P3.2
Vsync-OUT /P3.3
PWM6* /INT1 /P3.4
CLAMP/PWM /P3.5
PADOUT /P3.6
SOG /P3.7
VDD2
VSS2
SCL1** /P1.0
SDA1** /P1.1
ACH0 /P1.2
ACH1 /P1.3
ACH2 /P1.4
HMS9xC7134
* : Open-drain option
** : Open-drain type pin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
HMS9xC7132
40DIP
(Top View)
PWM0* /P2.2
DPWM0* /P2.1
DPWM0* /P2.0
RESET
VDD1
VSS1
XTAL2
XTAL1
SDA2** /P1.7
SCL2** /P1.6
P0.7**
P0.6**
P0.5**
P0.4**
INT0/VPP
P0.3**
P0.2**
P0.1**
P0.0**
ACH3 /P1.5
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
Vsync-IN
Hsync-IN
PWM1* /P2.3
PWM2* /P2.4
PWM3* /P2.5
PWM4* /P2.6
PWM5* /P2.7
Hsync-OUT /P3.2
Vsync-OUT /P3.3
PWM6* /INT1 /P3.4/CLAMP
PWM /P3.5
PADOUT /P3.6
SOG /P3.7
P3.0
P3.1
SCL1** /P1.0
SDA1** /P1.1
ACH0 /P1.2
ACH1 /P1.3
ACH2 /P1.4
3
HMS91C7134
3.2 42SDIP pinning
42SDIP
(Top View)
* : Open-drain option
** : Open-drain type pin
4
NC
PWM0* /P2.2
DPWM0* /P2.1
DPWM0* /P2.0
RESET
VDD1
VSS1
XTAL2
XTAL1
SDA2** /P1.7
SCL2** /P1.6
P0.7**
P0.6**
P0.5**
P0.4**
INT0/VPP
P0.3**
P0.2**
P0.1**
P0.0**
ACH3 /P1.5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
Vsync-IN
Hsync-IN
PWM1* /P2.3
PWM2* /P2.4
PWM3* /P2.5
PWM4* /P2.6
PWM5* /P2.7
Hsync-OUT /P3.2
Vsync-OUT /P3.3
PWM6* /INT1 /P3.4
CLAMP/PWM /P3.5
PADOUT /P3.6
SOG /P3.7
VDD2
VSS2
SCL1** /P1.0
SDA1** /P1.1
ACH0 /P1.2
ACH1 /P1.3
ACH2 /P1.4
ACH3 /P1.5
HMS9xC7134K
* : Open-drain option
** : Open-drain type pin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
HMS9xC7132K
42SDIP
(Top View)
PWM0* /P2.2
DPWM0* /P2.1
DPWM0* /P2.0
P3.1
P3.0
RESET
VDD1
VSS1
XTAL2
XTAL1
SDA2** /P1.7
SCL2** /P1.6
P0.7**
P0.6**
P0.5**
P0.4**
INT0/VPP
P0.3**
P0.2**
P0.1**
P0.0**
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
NC
Vsync-IN
Hsync-IN
PWM1* /P2.3
PWM2* /P2.4
PWM3* /P2.5
PWM4* /P2.6
PWM5* /P2.7
Hsync-OUT /P3.2
Vsync-OUT /P3.3
PWM6* /INT1 /P3.4/CLAMP
PWM7* /P3.5
PADOUT /P3.6
SOG /P3.7
P3.0
P3.1
SCL1** /P1.0
SDA1** /P1.1
ACH0 /P1.2
ACH1 /P1.3
ACH2 /P1.4
November.2001 ver1.0
HMS91C7134
4. PACKAGE DIMENSIONS
4.1 40 PDIP
0.550
0.530
MAX 0.200
2.075
2.045
NOTE
1. DIMENSIONS DO NOT INCLUDE MOLD
FLASH AND DAMBAR PROTRUSION.
ALLOWABLE MOLD FLASH IS 0.010 INCH.
2. CONTROLLING DIMENSION : INCH.
0.065
0.045
0.022
0.015
4.2 42 SDIP
0.550
0.530
1.470
1.450
NOTE
1. DIMENSIONS DO NOT INCLUDE MOLD
FLASH AND DAMBAR PROTRUSION.
ALLOWABLE MOLD FLASH IS 0.010 INCH.
2. CONTROLLING DIMENSION : INCH.
November.2001 ver1.0
5
HMS91C7134
5. PIN FUNCTION
VDD1: Supply voltage (Digital).
VSS1: Circuit ground (Digital).
VDD2: Supply voltage (Analog).
VSS2: Circuit ground (Analog).
RESET: Reset the MCU.
XTAL1: Input to the inverting oscillator amplifier and input to
the internal main clock operating circuit.
XTAL2: Output from the inverting oscillator amplifier.
HSYNCIN: Horizontal sync input
VSYNCIN: Vertical sync input
INT0/VPP: External Interrupt input. Programming supply voltage(during OTP programming)
PORT:
The HMS9xC7134 has four 8-bit ports (Port0, Port1, Port2,
and Port3). Port0 - Port3 are the same as in the 80C51, with
the exception of the additional functions of Port1, Port2 and
Port3. Each has latch, SFR P0~P3’ output driver and input
buffer.
P0.0~P0.7: P0 is an 8-bit CMOS bidirectional I/O port. P0 pins
have not pull-up resister and open-drain port. It has the capability
of drive LED. However, while the alternative function is performed, the port type will remain the same. In case of application
to extention of external memory, P0 outputted Write/Read byte
and lower byte of external memory address. Therefore when it is
used as normal I/O port, P0 is open-drain driver and when it used
as bus port, P0 is 3-state driver.
Port pin
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
6
Alternate function
No (Only for I/O
No (Only for I/O
No (Only for I/O
No (Only for I/O
No (Only for I/O
No (Only for I/O
No (Only for I/O
No (Only for I/O
function)
function)
function)
function)
function)
function)
function)
function)
P1.0~P1.7: P1 is an 8-bit CMOS bidirectional I/O port. Because
P1 pins have pull-up resister, it is called as Quasi-Bidirectional
port.
Port pin
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
Alternate function
SCL1 (DDC-SCL)
SDA1 (DDC-SDA)
ACH0
ACH1
ACH2
ACH3
SCL2 (I2C-SCL)
SDA2 (I2C-SDA)
P2.0~P2.7: P2 is an 8-bit CMOS bidirectional I/O port. Because
P2 pins have pull-up resister, it is called as Quasi-Bidirectional
port. .
Port pin
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
Alternate function
DPWM0*
DPWM1*
PWM0*
PWM1*
PWM2*
PWM3*
PWM4*
PWM5*
P3.0~P3.7: P3 is an 8-bit CMOS bidirectional I/O port. Because
P3 pins have pull-up resister, it is called as Quasi-Bidirectional
port.
Port pin
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
Alternate function
Reserved
Reserved
HSYNCOUT
VSYNCOUT
PWM6*
CLAMP/PWM7
PATOUT
SOG
November.2001 ver1.0
HMS91C7134
5.1 40DIP Pin Description
Pin
No.
In/Out
(Alternate)
PWM0 /P2.2
1
I/O
General I/O port P2.2
8-bit Pulse Width Modulation output0
DPWM0 /P2.1
2
I/O
General I/O port P2.1
8-bit Dynamic Pulse Width Modulation output0
DPWM0 /P2.0
3
I/O
General I/O port P2.0
8-bit Dynamic Pulse Width Modulation output1
RESET
4
I
Reset input
VDD1
5
-
Power supply1(+5V)
VSS1
6
-
Ground1
XTAL2
7
O
Oscillator output pin for system clock
XTAL1
8
I
Oscillator input pin for system clock
SDA2 /P1.7
9
I/O
General I/O port P1.7
I2C serial data I/O port
SCL2 /P1.6
10
I/O
General I/O port P1.6
I2C serial clock I/O port
P0.7
11
I/O
General I/O port P0.7; adapted for LED driver
P0.6
12
I/O
General I/O port P1.6; adapted for LED driver
P0.5
13
I/O
General I/O port P0.5
P0.4
14
I/O
General I/O port P0.4
INT0 /VPP
15
I
P0.3
16
I/O
General I/O port P0.3
P0.2
17
I/O
General I/O port P0.2
P0.1
18
I/O
General I/O port P0.1
P0.0
19
I/O
General I/O port P0.0
ACH3 /P1.5
20
I/O
General I/O port P1.5
ADC channel3 input
ACH2 /P1.4
21
I/O
General I/O port P1.4
ADC channel2 input
ACH0 /P1.3
22
I/O
General I/O port P1.3
ADC channel1 input
ACH0 /P1.2
23
I/O
General I/O port P1.2
ADC channel0 input
SDA1 /P1.1
24
I/O
General I/O port P1.1
I2C serial data I/O port for DDC interface
SCL1 /P1.0
25
I/O
General I/O port P1.0
I2C serial clock I/O port for DDC interface
P3.1
26
I/O
General I/O port P3.1
P3.0
27
I/O
General I/O port P3.0
SOGin /P3.7
28
I/O
General I/O port P3.7
Sync on Green input
PATOUT /P3.7
29
I/O
General I/O port P3.6
Pattern out
PWM7 /P3.5 /
PROG
30
I/O
General output only port P3.5
Program pulse input(during OTP
programming)
8-bit Pulse Width Modulation output7
PWM6 /P3.4 /
INT1/CLAMP
31
I/O
General I/O port P3.4
8-bit Pulse Width Modulation output6; External
interrupt input1; Clamp out
VSYNCout /P3.3
32
I/O
General I/O port P3.3
Vertical sync output
HSYNCout /P3.2
33
I/O
General I/O port P3.2
Horizontal sync output
PWM5 /P2.7
34
I/O
General I/O port P2.7
8-bit Pulse Width Modulation output5
PWM4 /P2.6
35
I/O
General I/O port P2.6
8-bit Pulse Width Modulation output4
PWM3 /P2.5
36
I/O
General I/O port P2.5
8-bit Pulse Width Modulation output3
PWM2 /P2.4
37
I/O
General I/O port P2.4
8-bit Pulse Width Modulation output2
PIN NAME
(Alternate)
Function
Basic
Alternate
External interrupt input0; Programming supply voltage (during OTP programming)
Table 5-1 Port Function Description(40DIP)
November.2001 ver1.0
7
HMS91C7134
PIN NAME
(Alternate)
PWM1 /P2.3
Pin
No.
In/Out
(Alternate)
38
I/O
Function
Basic
General I/O port P2.3
HSYNCin
39
I
Horizontal sync input
VSYNCin
40
I
Vertical sync input
Alternate
8-bit Pulse Width Modulation output1
Table 5-1 Port Function Description(40DIP)
5.2 42SDIP Pin Description
The 42SDIP type pin description is the same as The 40DIP type pin description except for adding two pins(P3.1, P3.0) to it
between pin no.4 and 5.
8
November.2001 ver1.0
HMS91C7134
6. PORT STRUCTURES
P1.0, P1.1, P1.6, P1.7, P2, P3.0, P3.1, P3.4, P3.6
P0.0 - P0.7
oen
data
15mA
data
CMOS
CMOS
HSYNCIN, VSYNCIN
P1.2 - P1.5
oen
data
TTL
adc_in
CMOS
P3.2, P3.3, P3.5
adc_enb
P3.7
oen
internal reset
data
TTL
November.2001 ver1.0
data
TTL
9
HMS91C7134
RESET
INT0/VPP
TTL
VPP detector
CMOS
H
VPP
XTAL1, XTAL2
pdb
10
November.2001 ver1.0
HMS91C7134
7. ELECTRICAL CHARACTERISTICS
7.1 Absolute Maximum Ratings
Supply voltage......................................................-0.5 to +6.5 V
Note: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and functional operation of
the device at any other conditions above those indicated in
the operational sections of this specification is not implied.
Exposure to absolute maximum rating conditions for extended periods may affect device reliability.
Input voltage...............................................-0.5 to VDD+0.5 V
Operating Temperature ............................................0 to +70 °C
Storage Temperature .......................................... -65 to +150 °C
Poweer Dissipation .................................................... TBD mW
7.2 Recommended Operating Conditions
Parameter
Symbol
Condition
Supply Voltage
VDD
Operating Frequency
Operating Temperature
Specifications
Unit
Min.
Max.
fXIN=12MHz
4.5
5.5
V
fXIN
VDD=4.5~5.5V
10
16
MHz
TOPR
-
0
70
°C
7.3 DC Electrical Characteristics
(TA= 0~70°C, VDD=4.5~5.5V, VSS=0V ),
Symbol
Parameter
Condition
Specifications
Min.
Typ.
Max.
Unit
SUPPLY
VDD
power supply voltage
-
4.5
5.0
5.5
V
IDD
power supply current
Fosc = 12MHz
-
TBD
-
mA
-
-
-
4.0
V
VLVR
low voltage reset
OTP SUPPLY
VDD
power supply voltage
-
4.5
5.0
5.5
V
VPP
programming voltage
-
-
12.75
-
V
IDDP
power supply current
Fosc = 5 MHz
-
TBD
-
mA
IPP
programming current
Fosc = 5 MHz
-
TBD
-
mA
-
33
-
µA
-
0
1
µA
RESET
IRST
IIH
RESET input pull-up resistance VIN = 0V
input leakage current
VIN = VDD
VIL1
LOW-level input voltage
-
VSS-0.5
-
0.4VDD
V
VIH1
HIGH-level input voltage
-
0.75VDD
-
VDD+0.5
V
VOP
open bias voltage
-
-
2.5
-
V
IFR
feedback resistor current
VIN = 5V
-
10
-
µA
VIL1
LOW-level input voltage
-
VSS-0.5
-
0.3VDD
V
VIH1
HIGH-level input voltage
-
0.7VDD
-
VDD+0.5
V
XTAL
INT0, HSYNCIN, VSYNCIN
IIL
input leakage current
VIN = VSS
-1
0
-
µA
IIH
input leakage current
VIN = VDD
-
0
1
µA
November.2001 ver1.0
11
HMS91C7134
Symbol
Parameter
Condition
Specifications
Min.
Typ.
Max.
Unit
VIL
LOW-level input voltage
-
VSS-0.5
-
0.8
V
VIH
HIGH-level input voltage
-
2.0
-
VDD+0.5
V
SOG/P3.7
IIL1
input leakage current
VIN = 0.45V
-270
-
-70
µA
ITL
input transition current
VIN = 2.0V
-600
-
-180
µA
IIH
input leakage current
VIL
LOW-level input voltage
-
0
1
µA
-
VSS-0.5
-
0.8
V
VIN = VDD
VIH
HIGH-level input voltage
-
2.0
-
VDD+0.5
V
VOL
LOW-level output voltage
IOL = 5mA
0
-
0.4
V
VOH
HIGH-level input voltage
IOH = 5mA
3.5
-
VDD
V
P3.2, P3.3, P3.5,(EAN, ALD,PSENN)
IIL2
input low current
VIN = 0.45 V
-960
0
-320
µA
ITL2
input ltransition current
VIN = 2.0 V
-1240
0
-350
µA
IIH
input leakage current
VIL
LOW-level input voltage
-
0
1
µA
-
VSS-0.5
-
0.8
V
VIN = VDD
VIH
HIGH-level input voltage
-
2.0
-
VDD+0.5
V
VOL
LOW-level output voltage
IOL = 5mA
0
-
0.4
V
VOH
HIGH-level output voltage
IOH = 5mA
3.5
-
VDD
V
IP0
input low current
VIN = VSS
-380
0
-150
µA
IIH
input leakage current
VIN = VDD
-
0
1
µA
P0.0 to P0.7
VIL1
LOW-level input voltage
-
VSS-0.5
-
0.3VDD
V
VIH1
HIGH-level input voltage
-
0.7VDD
-
VDD+0.5
V
VOL1
LOW-level output voltage
IOL = 10mA
0
-
0.4
V
P2.0 to P2.7(BP2.0 to BP2.7)
IIL1
input low current
VIN = 0.45V
-270
-
-70
µA
ITL1
input transition current
VIN = 3.5V
-420
-
-100
µA
IIH
VIL1
input leakage current
LOW-level input voltage
-
0
1
µA
-
VSS-0.5
-
0.3VDD
V
VIN - VDD
VIH1
HIGH-level input voltage
-
0.7VDD
-
VDD+0.5
V
VOL
LOW-level output voltage
IOL = 5mA
0
-
0.4
V
VOH
HIGH-level input voltage
IOH = 5mA
3.5
-
VDD
V
P1.0 to P1.5,P3.0,P3.1,P3.4,P3.6,P3.7
IIL1
input low current
VIN = 0.45V
-270
-
-70
µA
ITL1
input transition current
VIN = 3.5V
-420
-
-100
µA
IIH
VIL1
input leakage current
LOW-level input voltage
-
0
1
µA
-
VSS-0.5
-
0.3VDD
V
VIN = VDD
VIH1
HIGH-level input voltage
-
0.7VDD
-
VDD+0.5
V
VOL
LOW-level output voltage
IOL = 5mA
0
-
0.4
V
VOH
HIGH-level input voltage
IOH = 5mA
3.5
-
VDD
V
IIL1
input low current
VIN = 0.45V
-270
-70
µA
ITL4
input transition current
VIN = 3.5V
-700
-210
µA
P31.6, P1.7
12
November.2001 ver1.0
HMS91C7134
Symbol
IIH
Parameter
input leakage current
Condition
Specifications
Min.
VIN = VDD
Typ.
Max.
0
1
Unit
µA
VIL1
LOW-level input voltage
-
VSS-0.5
0.3VDD
V
VIH1
HIGH-level input voltage
-
0.7VDD
VDD+0.5
V
VOL
LOW-level output voltage
IOL = 5mA
0
0.4
V
VOH
HIGH-level input voltage
IOH = 5mA
3.5
VDD
V
7.4 AC Characteristics
(TA=-0~70°C, VDD=5.0V, VSS=0V)
Symbol
Parameter
Condition
Specifications
Min.
Typ.
Max.
Unit
XTAL
fosc
oscillator frequency
VDD = 5V
10
12
16
MHz
C1
xtal1 external Cap.
-
-
20
-
pF
C2
xtal2 external Cap.
-
-
20
-
pF
analog input voltage
-
VSS
-
VDD
V
nAOFF
zero offset error
-
-
-
TBD
LSB
nFS
full scale error
-
-
-
TBD
LSB
nACC
overall accuracy
-
-
-
TBD
LSB
tCONV
conversion time
fosc = 12MHz
-
13
-
µs
tH(VCLK)
VCLK high time
-
20
-
-
µs
tL(VCLK)
VCLK low time
-
20
-
-
µs
fosc = 12MHz
-
-
680
ns
-
-
TBD
-
µs
cancelled noise input
fosc = 12MHz
-
-
300
ns
SCL clock frequency
-
0
-
100
kHz
tHD(SDA)
Start condition hold time
-
4.0
-
-
µs
tSU(STO)
Stop condition setup time
-
4.0
-
-
µs
tHD(DAT)
Data hold time
-
300
-
-
ns
tSU(STA)
Rstart(1) condition setup time
-
4.7
-
-
µs
tH(SCL)
SCL high period
-
4.0
-
-
µs
tL(SCL)
SCL low period
-
4.7
-
-
µs
HSYNC input frequency
-
12
-
120
kHz
tW(HSYNC)
HSYNC input pulse width
-
0.25
-
8
µs
d(HSYNC)
HSYNC duty cycle
-
-
-
25
%
VSYNC input frequency
-
32
-
200
Hz
A/D Converter
VAIN
DDC1 Mode
tDOV
tSU(DDC1)
tNC(IN)
VCLK to output valid
DDC1 mode setup time
DDC2 Mode
fSCL
HSYNCin
f(HSYNC)
VSYNCin
f(VSYNC)
November.2001 ver1.0
13
HMS91C7134
Symbol
Parameter
Condition
Specifications
Min.
Typ.
Max.
Unit
tW(VSYNC)
VSYNC input pulse width
-
1
-
24
tP(H)
d(VSYNC)
VSYNC duty cycle
-
-
-
25
%
tP(EQ)
equalizing pulse period
-
-
0.5
-
tP(H)
tW(EQ)
equalizing pulse width
-
-
0.5
-
tW(H)
n(EQ)
equalizing pulse interval
-
-
-
30
tP(H)
SOGin
HSYNCout, VSYNCout
tD(HSYNC)
HSYNC input to output
-
-
-
100
ns
tD,MAX(HSYNC)
HSYNC input to output
after missing HSYNCin
-
-
-
250
ns
tD(HSYNC)
VSYNC input to output
-
-
-
180
ns
tD,MAX(VSYNC)
VSYNC input to output
after missing VSYNCin
-
-
-
1
tP(H)
HSYNCin to CLAMP
-
-
-
100
ns
tD(CLAMP)
14
November.2001 ver1.0
HMS91C7134
SDA
SCL
tHD(SDA)
tHD(DAT)
tSU(DAT)
tSU(STA)
tSU(STO)
Figure 7-1 timing on the I2C-bus
HSYNCin
tW(HSYNC)
HSYNCout
tD,MAX(HSYNC)
tD(HSYNC)
CLAMP
(front porch)
CLAMP
(back porch)
tD(CLAMP)
tD(CLAMP)
VSYNCin
tW(VSYNC)
VSYNCout
tD,MAX(VSYNC)
tD(VSYNC)
Figure 7-2 SYNC timing
November.2001 ver1.0
15
HMS91C7134
8. MEMORY ORGANIZATION
The HMS91C7132 has separate address spaces for Program
memory, Data Memory. Program memory can only be read, not
written to. It can be up to 32K bytes of Program memory.(OPT
type: HMS97C7134 32K bytes)
RAM
255
Indirect
only
(“mov @ri”)
32K ROM
Data memory can be read and written to up to 256 bytes including
the stack area.(Internal RAM) and 256bytes (External RAM:
256bytes of XRAM0).
SFR
XRAM
Direct
(“mov”) or
Indirect
(“mov @ri” )
127
Direct(“mov”)
or Indirect
(“mov @ri”)
Indirect
(“movx @ri” or
movx @dptr)
(XRAMS = 0)
0
program memory
data memory
Figure 8-1 Memory map and address spaces
8.1 Registers
This device has several registers that are the Program Counter
(PC), Accumulator (A), B register(B), the Stack Pointer (SP), the
P rog ram St a tus W or d(P SW ), G ene ral pu rpo se reg ister(R0~R7)and DPTR(Data pointer register).
and conditional judgement, etc. The Accumulator can be used as
a 16-bit register with B Register as shown below.
B
PCH
A
ACCUMULATOR
B
B REGISTER
SP
STACK POINTER
PCL
PROGRAM COUNTER
PSW
PROGRAM STATUS
WORD
R0~R7
DPTR(DPH)
DPTR(DPL)
GENERAL PURPOSE
REGISTER (BANK0~3)
DATA POINTER
REGISTER
Figure 8-2 Configuration of Registers
Accumulator: The Accumulator is the 8-bit general purpose register, used for data operation such as transfer, temporary saving,
16
B
A
A
Two 8-bit Registers can be used as a "BA" 16-bit Register
Figure 8-3 Configuration of BA 16-bit Registers
B Register: The B Register is the 8-bit purpose register, used for
an arithmatic operation such as multiply, division with Accumulator
Stack Pointer: The Stack Pointer is an 8-bit register used for occurrence interrupts and calling out subroutines. Stack Pointer
identifies the location in the stack to be access (save or restore).The stack can be located at any position within 0000H to
007FH of the internal data memory. The SP is not initialized by
hardware, requiring to write the initial value (the location with
November.2001 ver1.0
HMS91C7134
which the use of the stack starts) by using the initialization routine. Normally, the initial value of “07H” is used and the stack
area is 00H to 7FH .
Stack Area (30H ~ 7FH)
Bit 15
8 7
00H
SP
This flag stores any carry or not borrow from the ALU of CPU
after an arithmetic operation and is also changed by the Shift Instruction or Rotate Instruction.
[Auxiliary carry flag AC]
After operation, this is set when there is a carry from bit 3 of ALU
or there is no borrow from bit 4 of ALU.
Bit 0
[Register bank select flags RS0, RS1]
This flags select one of four bank(00~07H:bank0, 08~0fH:bank1,
10~17H:bank2, 17~1FH:bank3)in Internal RAM.
00H~7FH
Hardware fixed
SP (Stack Pointer) could be in 00H~7FH.
Program Counter: The Program Counter is a 16-bit wide which
consists of two 8-bit registers, PCH and PCL. This counter indicates the address of the next instruction to be executed. In reset
state, the program counter has reset routine address (PCH:0FFH,
PCL:0FEH).
Program Status Word: The Program Status Word (PSW) contains several bits that reflect the current state of the CPU and select Internal RAM(00H~1FH:Bank0~Bank3). The PSW is
described in Figure 8-4. It contains the Carry flag, the Auxiliary
carry flag, the Half Carry (for BCD operation), the General purpose flag, the Register bank select flags, the Overflow flag, the
undefined flag and Parity flag.
[Overflow flag OV]
This flag is set to “1” when an overflow occurs as the result of an
arithmetic operation involving signs. An overflow occurs when
the result of an addition or subtraction exceeds +127(7FH) or 128(80H). The CLRV instruction clears the overflow flag. There
is no set instruction. When the BIT instruction is executed, bit 6
of memory is copied to this flag.
[Parity flag P]
This flag reflect on number of Accumulator’s 1. If number of Acuumulator’s 1 is odd, P=0. otherwise P=1. Sum of adding Acuumulator’s 1 to P is always even.
R0~R7: General purpose register.
Data Pointer Register:Data Pointer Register is 16-bit wide
which consists of two-8bit registers, DPH and DPL. This register
is used as a data pointer for the data transmission with external
data memory.
[Carry flag CY]
MSB
PSW
CY
LSB
AC
F0 RS1 RS0 0V
P
RESET VALUE: 00H
PARITY FLAG
CARRY FLAG
AUXILIARY CARRY FLAG
NOT ASSIGNED BIT
GENERAL PURPOSE FLAG
OVERFLOW FLAG
REGISTER BANK SELECT FLAG
(to select Bank0~3 with RS0)
REGISTER BANK SELECT FLAG
(to select Bank0~3 with RS1)
Figure 8-4 PSW(Program Status Word)Register
8.2 Program Memory
The program memory consists of ROM : 32K bytes (HMS91C7132) and 32K bytes (HMS97C7134)
8.3 Data memory
The internal data memory is divided into four physically separated part : 256 bytes of RAM, 256 bytes of XRAM0, and 128 bytes
of Special Function Registers (SFRs) areas.
November.2001 ver1.0
RAM
Four register banks, each 8 registers wide, occupy locations 0
through 31 in the lower RAM area. Only one of these banks may
be enabled at a time. The next 16 bytes, locations 32 through 47,
17
HMS91C7134
RAM extension of 80C51 derivatives. XRAM0 0 to 255 is directly addressable as external data memory locations 0 to 255 via
MOVX-DPTR instruction or via MOVX-Ri instruction when the
EXCON’s LSB is zero. Since external access function is not
available, any access to XRAM0 0 to 255 will not affect the
ports.
contain 128 directly addressable bit locations.The stack depth is
only limited by the available internal RAM space of 256 bytes.
XRAM0
The 256 bytes of XRAM0 used to support DDC interface is also
available for system usage by indirect addressing through the address pointer DDCADR and data I/O buffer RAMBUF. The address pointer(DDCADR) is equipped with the postincrement
capability to facilitate the transfer of data in bulk (for details refer
to DDC Interface part). However, it is also possible to address the
DRAM through MOVX command as usually used in the internal
6
5
4
3
2
1
-
-
-
-
-
-
-
2 55
(LS B )
(M S B )
~~
2F H
7F
7E
7D
7C
7B
7A
79
78
47
2E H
77
76
75
74
73
72
71
70
46
2D H
6F
6E
6D
6C
6B
6A
69
68
45
2C H
67
66
65
64
63
62
61
60
44
2B H
5F
5E
5D
5C
5B
5A
59
58
43
2A H
57
56
55
54
53
52
51
50
42
29 H
4F
4E
4D
4C
4B
4A
49
48
41
28 H
27 H
47
46
45
44
43
42
41
40
40
3F
3E
3D
3C
3B
3A
39
38
39
26 H
37
36
35
34
33
32
31
30
38
25 H
2F
2E
2D
2C
2B
2A
29
28
37
24 H
27
26
25
24
23
22
21
20
36
23 H
1F
1E
1D
1C
1B
1A
19
18
35
22 H
17
16
15
14
13
12
11
10
34
21 H
0F
0E
0D
0C
0B
0A
09
08
33
20 H
1F H
07
06
05
04
03
02
01
00
32
31
10 H
0F H
08 H
07 H
00 H
XRAMS
BYTE
ADDRESS
(D E C IM A L)
~~
18 H
17 H
0
Table 8-1 Extended control Register(EXCON)
B IT
ADD R ESS
(H E X )
BYTE
AD DR ESS
(H E X )
FF H
7
BANK3
BANK2
BANK1
BANK0
24
23
16
15
8
7
0
Figure 8-5 RAM ADDRESS
18
November.2001 ver1.0
HMS91C7134
SFR
The SFRs can only be addressed directly in the address range
from 128 to 255. Table 8.2 gives an overview of the Special Function Registers space. Sixteen address in the SFRs space are both-
byte and bit-addressable. The bit-addressable SFRs are those
whose address ends in 0H and 8H. The bit addresses in this area
are 80H to FFH.
F8
-
HVGEN
CPGEN
VFH
VFL
HFH
F0
*B
MDCON
MDST
VPH
HPH
VHPL
E8
*EXCON
E0
*ACC
-
-
S1STA
S1DAT
D8
*S1CON
D0
*PSW
C8
*T2CON
C0
-
-
RC2L
-
HFL
FF
F7
-
-
-
EF
-
-
-
E7
S1ADR0
S2CON
S2STA
S2DAT
S2ADR
DF
S1SDR1
RAMBUF
DDCDAT
DDCADR
DDCCON
D7
RC2H
-
-
CF
-
B8
*IP
-
B0
*P3
DPWMCON
DPWM0
DPWM1
A8
*IE
-
PWM4
PWM5
A0
*P2
PWMCON
PWM0
PWM1
C7
BF
98
-
-
90
*P1
P1SFS
P2SFS
P3SFS
88
*TCON
TMOD
TL0
TL1
80
*P0
SP
DPL
DPH
-
IPA
-
PWM6
PWM7
WDTKEY
PWM2
PWM3
WDTRST
IEA
ADAT
ACON
B7
AF
A7
9F
TH0
TH1
97
8F
PCON
87
Table 8-2 SFR Memory Map
Note: * The register that can be bit-addressing.
November.2001 ver1.0
19
HMS91C7134
8.4 List of SFRS
Register
Address
R/W
Initial Value
7 6 5 4 3 2 1 0
P0
Port0 Register
80H
R/W
1 1 1 1 1 1 1 1
SP
Stack Point register
81H
R/W
0 0 0 0 0 1 1 1
Data Pointer(Low byte) Register
82H
R/W
0 0 0 0 0 0 0 0
DPL
DPH
Data Pointer(High byte) Register
83H
R/W
0 0 0 0 0 0 0 0
Power Control Register
87H
R/W
x x 0 0 0 0 0 0
TCON
Timer/Counter Control Register
88H
R/W
0 0 0 0 0 0 0 0
TMOD
Timer/Counter Mode Control Register
89H
R/W
0 0 0 0 0 0 0 0
TL0
Timer/Counter0 Low byte Register
8AH
R/W
0 0 0 0 0 0 0 0
TL1
Timer/Counter1 Low byte Register
8BH
R/W
0 0 0 0 0 0 0 0
TH0
Timer/Counter0 High byte Register
8CH
R/W
0 0 0 0 0 0 0 0
TH1
Timer/Counter1 High byte Register
8DH
R/W
0 0 0 0 0 0 0 0
PCON
P1
Port1 Register
90H
R/W
1 1 1 1 1 1 1 1
P1SFS
Port1 Special Function Selection Register
91H
R/W
0 0 0 0 0 0 0 0
P2SFS
Port2 Special Function Selection Register
92H
R/W
0 0 0 0 0 0 0 0
P3SFS
Port3 Special Function Selection Register
93H
R/W
0 0 0 0 0 0 0 0
ADAT
ADC Data Register
96H
R/W
0 0 0 0 0 0 0 0
ACON
ADC Control Register
97H
R/W
x x 0 x 0 0 0 1
P2
Port2 Register
0A0H
R/W
1 1 1 1 1 1 1 1
PWMCON
PWM Control Register
0A1H
R/W
0 0 0 0 0 0 0 0
PWM0
PWM0 Output Register
0A2H
R/W
1 1 1 1 1 1 1 1
PWM1
PWM1 Output Register
0A3H
R/W
1 1 1 1 1 1 1 1
PWM2
PWM2 Output Register
0A4H
R/W
1 1 1 1 1 1 1 1
PWM3
PWM3 Output Register
0A5H
R/W
1 1 1 1 1 1 1 1
PWM4
PWM4 Output Register
0AAH
R/W
1 1 1 1 1 1 1 1
PWM5
PWM5 Output Register
0ABH
R/W
1 1 1 1 1 1 1 1
PWM6
PWM6 Output Register
0ACH
R/W
1 1 1 1 1 1 1 1
PWM7
PWM7 Output Register
0ADH
R/W
1 1 1 1 1 1 1 1
WDTKEY
Watchdog Key Register
0AEH
R/W
0 0 0 0 0 0 0 0
WDTRST
Watchdog Timer Reset Register
0A6H
R/W
0 0 0 0 0 0 0 0
IEA
Interrupt Enable Register
0A7H
R/W
0 x x x x x 0 0
IE
Interrupt Enable Register
0A8H
R/W
0 0 0 0 0 0 0 0
P3
Port3 Register
0B0H
R/W
1 1 1 1 1 1 1 1
DPWMCON
Dynamic PWM Control Register
0B1H
R/W
0 x x x x x 0 0
DPWM0
Dynamic PWM0 Output Register
0B2H
R/W
1 1 1 1 1 1 1 1
DPWM1
Dynamic PWM1 Output Register
0B3H
R/W
1 1 1 1 1 1 1 1
IPA
Interrupt Priority Register
0B6H
R/W
0 x x x x x 0 0
IP
Interrupt Priority Register
0B8H
R/W
x 0 0 0 0 0 0 0
T2CON
Timer2 Control Register
0C8H
R/W
0 x x x x 0 x x
Reload Low Register
0CAH
R/W
0 0 0 0 0 0 0 0
RC2H
Reload High Register
0CBH
R/W
0 0 0 0 0 0 0 0
PSW
Program Status Word Register
0D0H
R/W
0 0 0 0 0 0 0 0
RAM Buffer I/O Interface Register
0D4H
R/W
x x x x x x x x
RC2L
RAMBUF
20
Description
November.2001 ver1.0
HMS91C7134
Register
Description
Address
R/W
Initial Value
7 6 5 4 3 2 1 0
DDCDAT
Data Shift Register for DDC1
0D5H
R/W
0 0 0 0 0 0 0 0
DDCADR
DDC Address Pointer Register
0D6H
R/W
0 0 0 0 0 0 0 0
DDCCON
DDC Mode Status and DDC1 Control Register
0D7H
R/W
x 0 0 x 0 0 0 0
S1CON
Serial Control Register for DDC2
0D8H
R/W
0 0 0 0 0 0 0 0
S1STA
Serial Status Register for DDC2
0D9H
R
0 x 0 0 x x x x
S1DAT
Data Shift Register for DDC2
0DAH
R/W
0 0 0 0 0 0 0 0
S1ADR0
Serial Address0 Register for DDC2
0DBH
R/W
0 0 0 0 0 0 0 x
S1ADR1
Serial Address1 Register for DDC2
0D3H
R/W
0 0 0 0 0 0 0 x
S2CON
Serial Control Register
0DCH
R/W
0 0 0 0 0 0 0 0
S2STA
Serial Status Register
0DDH
R
0 x 0 0 x x x x
S2ADR
Serial Address Register for I2C
0DFH
R/W
0 0 0 0 0 0 0 x
S2DAT
Data Shift Register for I2C
0DEH
R/W
0 0 0 0 0 0 0 0
Accumulator
0E0H
R/W
0 0 0 0 0 0 0 0
Extended Control Register
0E8H
R/W
x x x x x x x 0
B Register
0F0H
R/W
0 0 0 0 0 0 0 0
Mode Indication Register
0F1H
R/W
0 0 0 x x 0 0 0
Mode Status Register
0F2H
R
x 0 0 0 0 0 0 0
Vertical scan period High byte Register
0F3H
R/W
0 0 0 0 0 0 0 0
ACC
EXCON
B
MDCON
MDST
VPH
HPH
Horizontal scan period High byte Register
0F4H
R/W
0 0 0 0 0 0 0 0
VHPL
V/H scan period High byte Register
0F5H
R/W
0 0 0 0 0 0 0 0
HVGEN
H/V pulse Control Register
0F9H
R/W
x 0 0 0 x 0 0 0
CPGEN
Clamping pulse and Pattern Control register
0FAH
R/W
0 0 0 0 0 x 0 0
VFH
Vertical free-running output pulse period High byte
register
0FBH
R/W
0 0 1 0 0 0 0 0
VFL
Vertical free-running output pulse period Low byte
register
0FCH
R/W
0 0 0 0 1 0 1 0
HFH
Horizontal free-running output pulse period High
byte register
0FDH
R/W
0 1 1 0 0 0 0 0
HFL
Horizontal free-running output pulse period Low
byte register
0FEH
R/W
0 0 x 1 1 1 1 1
November.2001 ver1.0
21
HMS91C7134
8.5 Addressing Mode
The addressing modes in HMS9xC7134 instruction set are as follows
• Direct addressing
• Register-specific addressing
• Indirect addressing
• Immediate constants addressing
• Register addressing
• Indexed addressing
Note that refer to “Chapter 22. Instruction Set” those addressing modes and related instructions.
(1) Direct addressing
In a direct addressing the operand is specified by an 8-bit address
field in the instruction. Only internal D ata RAM and
SFRs(80~FFH RAM) can be directly addressed.
Example:
mov A, 3EH
; A
PROG. MEMORY
RAM[3E]
3EH
→A
04
(2) Indirect addressing
In indirect addressing the instruction specifies a register which
contains the address of the operand. Both internal and external
RAM can be indirectly addressed. The address register for 8-bit
addresses can be R0 or R1 of the selected register bank, or the
Stack Pointer. The address register for 16-bit addresses can only
be the 16-bit “data pointer” register, DPTR.
Example:
mov @R1, 40H
;[R1]
PROG. MEMORY
40H
H]
55
~
~
R1
~
~
55
(3) Register addressing
The register banks, containing registers R0 through R7, can be
accessed by certain instructions which carry a 3-bit register specification within the opcode of the instruction. Instructions that access the registers this way are code efficient, since this mode
eliminates an address byte. When the instruction is executed, one
of four banks is selected at execution time by the two bank select
bits in the PSW.
Example;
mov PSW, #0001000B ; select Bank0
mov A, #30H
mov R1, A
(4) Register-specific addressing
Some instructions are specific to a certain register. For example,
some instructions always operate on the Accumulator, or Data
22
Pointer, etc., so no address byte is needed to point it. The opcode
itself does that.
November.2001 ver1.0
HMS91C7134
(5) Immediate constants addressing
The value of a constant can follow the opcode in Program memory.
Example;
mov A, #100H.
(6)Indexed addressing
Only Program memory can be accessed with indexed addressing,
and it can only be read. This addressing mode is intended for
reading look-up tables in Program memory. A 16-bit base register
(either DPTR or PC) points to the base of the table, and the Accumulator is set up with the table entry number. The address of
the table entry in Program memory is formed by adding the Accumulator data to the base pointer.
Example;
movc A, @A+DPTR
November.2001 ver1.0
ACC
DPTR
3A
1E73
PROG. MEMORY
~
~
~
~
1EADH
23
HMS91C7134
9. INTERRUPTS
There are interrupt requests from 9 sources as follows.
• INT0 external interrupt
• DDC interrupt
• INT1 external interrupt
• MD interrupt
•Timer0 interrupt
• VSYNC interrupt
• Timer1 interrupt
• I2C interrupt
• Timer2 interrupt
9.1 Interrupt sources
INT0 external interrupt:
•The INT0 can be either level-active or transition-active depending on bit IT0 in register TCON. The flag that actually generates
this interrupt is bit IE0 in TCON.
• When an external interrupt is generated, the corresponding request flag is cleared by the hardware when the service routine is
vectored to only if the interrupt was transition-activated.
• If the interrupt was level-activated then the interrupt request flag
remains set until the requested interrupt is actually generated.
Then it has to deactivate the request before the interrupt service
routine is completed, or else another interrupt will be generated.
INT1 external interrupt:
•The INT1 can be either level-active or transition-active depending on bit IT1 in register TCON. The flag that actually generates
this interrupt is bit IE1 in TCON.
• When an external interrupt is generated, the corresponding request flag is cleared by the hardware when the service routine is
vectored to only if the interrupt was transition-activated.
• If the interrupt was level-activated then the interrupt request flag
remains set until the requested interrupt is actually generated.
Then it has to deactivate the request before the interrupt service
routine is completed, or else another interrupt will be generated.
MD interrupt:
•A MD interrupt is generated by the hardware mode detector in
case of mode change, horizontal or vertical.
• This flag has to be cleared by the software.
VSYNC interrupt:
•The changing of the VSYNC level can generate an interrupt.
This depends on the setting that is programmed in the MDCONSFR. Via this register it is possible to enable the edge of the
VSYNC-signal that should generate the interrupt. Both edges can
be controlled separately.
• The interrupt flag has to be cleared by the software.
DDC interrupt:
•The DDC interrupt is generated either by bit INTR in the S1STA
register for DDC2B/DDC2AB/DDC2B+ protocol or by bit
DDC_int in the DDCCON register for DDC1 protocol or by bit
SWHINT bit in the DDCCON register when DDC protocol is
changed from DDC1 to DDC2.
• Flags except the INTR have to be cleared by the software. INTR
flag is cleared by hardware.
I2C interrupt:
•The interrupt of the second I2C is generated by bit INTR in the
register S2STA.
24
• This flag is cleared by hardware.
November.2001 ver1.0
HMS91C7134
Timer0 and Timer1 interrupt:
•Timer0 and Timer1 interrupts are generated by TF0 and TF1
which are set by an overflow of their respective Timer/Counter
registers(except for Timer0 in mode3).
•These flags are cleared by the internal hardware.
Timer2 interrupt:
•Timer2 interrupt is generated by TF2 which is set by an overflow
of Timer2.
• This flag has to be cleared by the software.
All of the bits that generate interrupts can be set or cleared by software, with the same result as though it had been set or
cleared by hardware. That is, interrupts can be generated or pending interrupts can be cancelled in software.
Interrupt
Sources
IE / IEA
IP / IPA
Priority
High
INT0
Low
MD
Timer0
Interrupt Polling Sequence
I2C
INT1
DDC
Timer1
VSYNC
Not
used
Timer2
Global
Enable
Figure 9-1 Interrupt system
November.2001 ver1.0
25
HMS91C7134
9.2 Interrupt Enable structure
Each interrupt source can be individually enabled or disabled by
setting or clearing a bit in the interrupt enable special function
register IE and IEA. All interrupt source can also be globally disabled by clearing bit EA in IE.
7
6
5
4
3
2
2
0
EA
EVSYNC
ET2
ES
ET1
EX1
ET0
EX0
BIT
Table 9-1 Interrupt Enable Register(IE: 0A8H)
RESET VALUE:00000000B
SYMBOL
FUNCTION
Disable all interrupts.
7
EA
6
EVSYNC
5
ET2
4
ES
3
ET1
2
EX1
1
ET0
0
EX0
0 : no interrupt will be acknowledged
1 : each interrupt source is individually enabled or disabled by setting or clear
ing its enable bit
Enable Vsync interrupt
Enable timer2 interrupt
Not used
Enable timer1 interrupt
Enable external interrupt (INT1)
Enable timer0 interrupt
Enable external interrupt (INT0)
Table 9-2 Description of the IE bits
7
6
5
4
3
2
2
0
EDDC
-
-
-
-
-
EI2C
EMD
Table 9-3 Interrupt Enable Register(IEA: 0A7H)
BIT
SYMBOL
7
EDDC
6
EX6
Not used
5
EX5
Not used
4
EX4
Not used
3
EX3
Not used
2
EX2
Not used
1
EI2C
Enable I2C interrupt
0
EMD
Enable MD interrupt
RESET VALUE:0xxxxx00B
FUNCTION
Enable DDC interrupt
Table 9-4 Description of Enable Register(IEA: 0A7H)
26
November.2001 ver1.0
HMS91C7134
9.3 Interrupt Priority structure
Each interrupt source can be assigned one of two priority levels.
Interrupt priority levels are defined by the interrupt priority special function register IP and IPA.
“0” - low priority
“1” - high priority
A low priority interrupt may be interrupted by a high priority in-
SOURCE
terrupt level interrupt. A high priority interrupt routine cannot be
interrupted by any other interrupt source. If two interrupts of different priority occur simultaneously, the high priority level request is serviced. If requests of the same priority are received
simultaneously, an internal polling sequence determines which
request is serviced. Thus, within each priority level, there is a second priority structure determined by the polling sequence. This
second priority structure is shown in Table 9.5.
PRIORITY WITHIN LEVEL
INT0
MD
1(highest)
Timer0
I2C
INT1
DDC
Timer1
VSYNC
9(lowest)
Timer2
Table 9-5 Priority levels
Note
• The “Priority within level” structure is only used to resolve
simultaneous requests of the same priority level.
• The MD interrupt needs a higher priority then ALL the other interrupts. This is to avoid that a mode change will not be
serviced in time and that the setting of the S-curve is not updated in time. When the S-curve settings are not updated in
time (after a mode change) the monitor may be damaged.
7
6
5
4
3
2
2
0
-
PVSYNC
PT2
PS
PT1
PX1
PT0
PX0
Table 9-6 Interrupt Priority Register(IP: 0B8H)
RESET VALUE: x0000000B
BIT
SYMBOL
FUNCTION
7
-
6
PVSYNC
Vsync interrupt priority level
5
PT2
Timer2 interrupt priority level
4
PS
Not used
3
PT1
Timer1 interrupt priority level
2
PX1
External interrupt (INT1) priority level
1
PT0
Timer0 interrupt priority level
0
PX0
External interrupt (INT0) priority level
Reserved
Table 9-7 Description of the IP bits
November.2001 ver1.0
27
HMS91C7134
7
6
5
4
3
2
2
0
PDDC
-
-
-
-
-
PI2C
PMD
Table 9-8 Interrupt Priority Register(IPA: 0B6H)
BIT
SYMBOL
7
PDDC
6
PX6
Not used
5
PX5
Not used
4
PX4
Not used
3
PX3
Not used
2
PX2
Not used
1
PI2C
I2C interrupt priority level
0
PMD
MD interrupt priority level
RESET VALUE: 0xxxxx00B
FUNCTION
DDC interrupt priority level
Table 9-9 Description of the IPA bits
28
November.2001 ver1.0
HMS91C7134
9.4 How Interrupt are handled
The interrupt flags are sampled at S5P2 of every machine cycle.
The samples are polled during following machine cycle. If one of
the flags was in a set condition at S5P2 of the preceding cycle, the
polling cycle will find it and the interrupt system will generate an
LCALL to the appropriate service routine, provided this H/W
generated LCALL is not blocked by any of the following conditions :
• An interrupt of equal priority or higher priority level is already in progress.
• The current machine cycle is not the final cycle in the execution of the instruction in progress.
• The instruction in progress is RETI or any access to the
interrupt priority or interrupt enable registers.
The polling cycle is repeated with each machine cycle, and the
values polled are the values that were present at S5P2 of the previous machine cycle. Note that if an interrupt flag is active but being responded to for one of the above mentioned conditions, if the
flag is still inactive when the blocking condition is removed, the
denied interrupt will not be serviced. In other words, the fact that
the interrupt flag was once active but not serviced is not remembered. Every polling cycle is new.
The processor acknowledges an interrupt request by executing a
hardware generated LCALL to the appropriate service routine.
The hardware generated LCALL pushes the contents of the Program Counter on to the stack (but it does not save the PSW) and
reloads the PC with an address that depends on the source of the
interrupt being vectored to as shown in Table 9-10.
Execution proceeds from that location until the RETI instruction
is encountered. The RETI instruction informs the processor that
the interrupt routine is no longer in progress, then pops the top
two bytes from the stack and reloads the Program Counter. Execution of the interrupted program continues from where it left off.
Note that a simple RET instruction would also return execution
to the interrupted program, but it would have left the interrupt
control system thinking an interrupt was still in progress, making
future interrupts impossible.
SOURCE
VECTOR ADDRESS
INT0
0003H
MD
004BH
Timer0
000BH
I2C
0043H
INT1
0013H
DDC
003BH
Timer1
001BH
VSYNC
0033H
Timer2
002BH
Table 9-10 Vector addresses
November.2001 ver1.0
29
HMS91C7134
10. POWER-SAVING MODE
Two software selectable modes of reduced power consumption are implemented.
• Idle mode
• Power-down mode
The following functions are switched off when the microcontroller enters the Idle mode.
• CPU (halted)
• I2C interface (halted)
• PWM0 to PWM7 and DPWM0 to DPWM2 (reset, output = High)
• 8-bit ADC (aborted if conversion in progress)
The following functions remain active during Idle mode.
These functions may generate an interrupt or reset and thus terminate the Idle mode.
• Timer0, Timer1 and Timer2
• Watchdog timer
• DDC interface
• External interrupt
• Mode detection
In Power-down mode, the system clock is halted. Both the oscillator will be stopped after setting the bit PD in PCON.
10.1 Power control register
The modes Idle and Power-down are activated by software via the PCON register.
7
6
5
4
3
2
2
0
-
-
LVREN
LVRLS
GF1
GF0
PD
IDL
Table 10-1 Power control Register(PCON:87H)
RESET VALUE:xx000000B
BIT
SYMBOL
FUNCTION
7 to 6
-
5
LVREN
Enable low voltage reset
4
LVRLS
Select low VDD level ; 3.7V or 3.5V
3
GF1
General purpose flag bit
2
GF0
General purpose flag bit
1
PD
Activate Power-down mode
0
IDL
Activate Idle mode
Not used
Table 10-2 Description of the PCON bits
30
November.2001 ver1.0
HMS91C7134
MODE
MEMORY
PORT0-3
SYNC
PWM
I2C
DDC
-
-
Idle
Intenal
Data
on
High
High-Z
on
-
-
Power-down Intenal
Data
High
High
High-Z
High-Z
-
-
Table 10-3 External Pin Status During Idle and Power-down modes
10.2 Idle mode
The instruction that sets PCON.0 is the last instruction executed
in the normal operating mode before idle mode is activated. Once
in the idle mode, the CPU status is preserved in its entirety : Stack
pointer, Program counter, Program status word, Accumulator,
RAM and All other registers maintain their data during idle
mode.
mode. The interrupt is serviced, and following return from
interrupt instruction RETI, the next instruction to be executed will be the one which follows the instruction that wrote a
logic 1 to PCON.0.
There are three ways to terminate the idle mode.
• External hardware reset : the hardware reset is required
to be active for two machine cycle to complete the reset operation.
• Activation of any enabled interrupt X0, T0, X1, T1 etc. will
cause PCON.0 to be cleared by hardware terminating Idle
• Internal watchdog reset : the microcontroller restarts after
3 machine cycles in all cases.
10.3 Power-down mode
The instruction that sets PCON.1 is the last executed prior to going into the Power-down mode. Once in Power-down mode, the
oscillator is stopped. The contents of the on-chip RAM and the
Special Function Register are preserved.
November.2001 ver1.0
The power-down mode can be terminated by an external RESET
in the same way as in the 80C51 (but SFRs are cleared due to RESET).
31
HMS91C7134
11. I/O PORTS
The HMS9xC7134 has four 8-bit ports (Port0, Port1, Port2 and
Port3). Port0 - Port3 are the same as in the 80C51, with the exception of the additional functions of Port1, Port2 and Port3. All
ports are bidirectional and Pins of which the alternative function
is not used may be used as normal bidirectional I/Os except
Port3.2, Port3.3 and Port3.5(These Pins can be only used as the
output).
Enable / Data
0
Special Data / Gnd
1
I/O PIN
Special Function Select
The use of Port1- Port3 pins as alternative functions are carried
out automatically by the HMS9xC7134 provided the associated
SFR bit is set HIGH.Port0 is the type of open-drain I/O. Port0.6
and Port0.7 have the capability to drive LED.
Fig. 11.1 shows the port structure.
Port Data
Input Data
Figure 11-1 Standard output with the open-drain port
The alternative function for Port1, Port2 and Port3 can be described as follows.
• Port 0 : No alternative function.
• Port 1 : P1.0 is combined with the SCL1 interface line(open-drain)
P1.1 is combined with the SDA1 interface line (open-drain)
P1.2 is combined with the ACH0 interface line (high-z)
P1.3 is combined with the ACH1 interface line (high-z)
P1.4 is combined with the ACH2 interface line (high-z)
P1.5 is combined with the ACH3 interface line (high-z)
P1.6 is combined with the SCL2 interface line (open-drain)
P1.7 is combined with the SDA2 interface line (open-drain)
• Port 2 : P2.0 is combined with the dynamic PWM0 interface line(open-drain or push-pull)
P2.1 is combined with the dynamic PWM1 interface line (open-drain or push-pull)
P2.2 is combined with the static PWM0 interface line (open-drain or push-pull)
P2.3 is combined with the static PWM1 interface line (open-drain or push-pull)
P2.4 is combined with the static PWM2 interface line (open-drain or push-pull)
P2.5 is combined with the static PWM3 interface line (open-drain or push-pull)
P2.6 is combined with the static PWM4 interface line (open-drain or push-pull)
P2.7 is combined with the static PWM5 interface line (open-drain or push-pull)
• Port 3 : P3.0 has not alternative function.
P3.1 has not alternative function.
P3.2 is combined with the HSYNCout interface line (push-pull)
P3.3 is combined with the VSYNCout interface line (push-pull)
P3.4 is combined with the PWM6 interface line (open-drain or push-pull)
P3.5 is combined with the CLAMP or PWM7 interface line (push-pull)
P3.6 is combined with the PATOUT interface line (push-pull)
P3.7 is combined with the SOG interface line (pull-up)
32
November.2001 ver1.0
HMS91C7134
11.1 Pin function selection
Special function selection Registers(PxSFS)
Several SFR(P1SFS/P2SFS/P3SFS)s are used to select the port-function or the alternative function of the external pin.
• P1SFS(Port1 special function selection register)
7
6
5
4
3
2
2
0
P1SFS7
P1SFS6
P1SFS5
P1SFS4
P1SFS3
P1SFS2
P1SFS1
P1SFS0
Table 11-1 P1SFS bits(91H)
BIT
SYMBOL
FUNCTION
RESET
The selection of the pin function.
7
P1SFS7
0 : pin 9 has P1.7 function.
0
1 : pin 9 has SDA2 function.
The selection of the pin function.
6
P1SFS6
0 : pin 10 has P1.6 function.
0
1 : pin 10 has SCL2 out function.
The selection of the pin function.
5
P1SFS5
0 : pin 20 has P1.5 function.
0
1 : pin 20 has ACH3 out function.
The selection of the pin function.
4
P1SFS4
0 : pin 21 has P1.4 function.
0
1 : pin 21 has ACH2 out function.
The selection of the pin function.
3
P1SFS3
0 : pin 22 has P1.3 function.
0
1 : pin 22 has ACH1 out function.
The selection of the pin function.
2
P1SFS2
0 : pin 23 has P1.2 function.
0
1 : pin 23 has ACH0 out function.
The selection of the pin function.
1
P1SFS1
0 : pin 24 has P1.1 function.
0
1 : pin 24 has SDA1 out function.
The selection of the pin function.
0
P1SFS0
0 : pin 25 has P1.0 function.
0
1 : pin 25 has SCL1 out function.
Table 11-2 Description of the P1SFS bits
November.2001 ver1.0
33
HMS91C7134
• P2SFS(Port2 special function selection register)
7
6
5
4
3
2
2
0
P2SFS7
P2SFS6
P2SFS5
P2SFS4
P2SFS3
P2SFS2
P2SFS1
P2SFS0
Table 11-3 P2SFS bits(92H)
BIT
SYMBOL
FUNCTION
RESET
The selection of the pin function.
7
P2SFS7
0 : pin 34 has P2.7 function.
0
1 : pin 34 has PWM5 function.
The selection of the pin function.
6
P2SFS6
0 : pin 35 has P2.6 function.
0
1 : pin 35 has PWM4 out function.
The selection of the pin function.
5
P2SFS5
0 : pin 36 has P2.5 function.
0
1 : pin 36 has PWM3 out function.
The selection of the pin function.
4
P2SFS4
0 : pin 37 has P2.4 function.
0
1 : pin 37 has PWM2 out function.
The selection of the pin function.
3
P2SFS3
0 : pin 38 has P2.3 function.
0
1 : pin 38 has PWM1 out function.
The selection of the pin function.
2
P2SFS2
0 : pin 1 has P2.2 function.
0
1 : pin 1 has PWM0 out function.
The selection of the pin function.
1
P2SFS1
0 : pin 2 has P2.1 function.
0
1 : pin 2 has DPWM1 out function.
The selection of the pin function.
0
P2SFS0
0 : pin 3 has P2.0 function.
0
1 : pin 3 has DPWM0 out function.
Table 11-4 Description of the P2SFS bits
34
November.2001 ver1.0
HMS91C7134
• P3SFS(Port3 special function selection register)
7
6
5
4
3
2
2
0
P3SFS7
P3SFS6
P3SFS5
P3SFS4
P3SFS3
P3SFS2
P3SFS1
P3SFS0
Table 11-5
BIT
SYMBOL
P3SFS bits(93H)
FUNCTION
RESET
The selection of the pin function.
7
P3SFS7
0 : pin 28 has P3.7 function.
0
1 : pin 28 has SOG input function.
The selection of the pin function.
6
P3SFS6
0 : pin 29 has P3.6 function.
0
1 : pin 29 has PATOUT out function.
The selection of the pin function.
5
P3SFS5
0 : pin 30 has P3.5 function.
0
1 : pin 30 has CLAMP or PWM7 out function.
The selection of the pin function.
4
P3SFS4
0 : pin 31 has P3.4 function.
0
1 : pin 31 has PWM6 out function.
The selection of the pin function.
3
P3SFS3
0 : pin 32 has P3.3 function.
0
1 : pin 32 has VSYNCout function.
The selection of the pin function.
2
P3SFS2
0 : pin 33 has P3.2 function.
0
1 : pin 33 has VSYNCout function.
1
P3SFS1
The selection of the pin function.
0
reserved
The selection of the pin function.
0
P3SFS0
0
reserved
Table 11-6 Description of the P3SFS bits
November.2001 ver1.0
35
HMS91C7134
12. OSCIALLTOR
The oscillator circuit of the HMS9xC7134 is a single stage inverting amplifier in a Pierce oscillator configuration. The circuitry
between XTAL1 and XTAL2 is basically an inverter biased to the
transfer point. Either a crystal or ceramic resonator can be used as
the feedback element to complete the oscillator circuit. Both are
operated in parallel resonance.
from an external source and XTAL2 left open-circuit.
12MHz
XTAL1 is the high gain amplifier input, and XTAL2 is the output. To drive the HMS9xC7134 externally, XTAL1 is driven
XTAL1
XTAL2
Minimum instruction cycle time
(ex:NOP ; fex 12clock is needed)
Main clock
1uS
XTAL1
XTAL2
10 ~ 16MHz
External clock
Figure 12-1 Oscillator configuration
ideal
standard; R=10K
C=10uF (Recommanded)
reset IC
Vdd
4.2V
reset
Vdd
R
reset
C
36
November.2001 ver1.0
HMS91C7134
13. RESET
Each reset source will cause an internal reset signal active. The
CPU responds by executing an internal reset and puts the internal
registers in a defined state.
There are three ways to invoke a reset and initialize the
HMS9xC7134.
Via the external RESET pin
Via the Watchdog Timer overflow
Via low VDD voltage reset
RESET
NC
WDT
CPU&
PERI.
S
Q
R
LVR
2.0ms
Timer
RSTOUT
Figure 13-1 The reset mechanism
13.1 External reset
The reset pin RESET is connected to a Schmitt trigger for noise
reduction. A reset is accomplished by holding the RESET pin
LOW for at least 2 machine cycles (24 system clock), while the
oscillator is running.
An automatic reset can be obtained by switching on VDD, if the
RESET pin is connected to GND via a capacitor and to the VDD
via resistor. The capacitor should be at least 10uF.
The increase of the RESET pin voltage depends on the capacitor.
The voltage must remain below the higher threshold for at minimum the oscillator start-up time plus 2 machine cycles.
13.2 Watchdog timer overflow
The length of the output pulse from the WDT is over 2048 machine cycles. In chapter 14, the watchdog timer is described in more detail.
13.3 Low VDD voltage reset
When VDD is below 3.7V, the built-in low voltage detector generates an internal reset signals. The reset signal will be LOW during 2ms
@12MHz after the voltage is higher than 3.7V.
November.2001 ver1.0
37
HMS91C7134
14. WATCHDOG TIMER
The hardware watchdog timer (WDT) resets the HMS9xC7134
when it overflows. The WDT is intended as a recovery method in
situations where the CPU may be subjected to a software upset.
To prevent a system reset the timer must be reloaded in time by
the application software. If the processor suffers a hardware/software malfunction, the software will fail to reload the timer. This
failure will result in a reset upon overflow thus preventing the
processor running out of control.
In the idle mode the watchdog timer and reset circuitry remain active. The WDT consists of a 19-bit counter, the watchdog timer
reset(WDTRST) SFR and watchdog key register(WDTKEY).Since the WDT is automatically enabled while the processor is running. the user only needs to be concerned with servicing
it.The 19-bit counter overflows when it reaches 524288(3FFFH).
The WDT increments once every machine cycle.
This means the user must reset the WDT at least every 524288
machine cycles (524ms @12MHz). To reset the WDT the usermust write 01EH and then 0E1H to WDTRST. WDTRST is a
write only register. The WDT count cannot be read or written.
The watchdog timer is controlled by the watchdog key register,
WDTKEY. Only pattern 01010101(=55H), disables the watchdog timer. The rest of pattern combinations will keep the watchdog timer enabled. This security key will prevent the watchdog
timer from being terminated abnormally when the function of the
watchdog timer is needed.
In Idle mode, the oscillator continues to run. To prevent the WDT
from resetting the processor while in Idle, the user should always
set up a timer that will periodically exit Idle, service the WDT,
and re-enter Idle mode.
7
6
5
4
3
2
2
0
WDTKEY7
WDTKEY6
WDTKEY5
WDTKEY4
WDTKEY3
WDTKEY2
WDTKEY1
WDTKEY0
Table 14-1 Watchdog timer key register (WDTKEY : 0AEH)
RESET VALUE:00000000B
BIT
SYMBOL
FUNCTION
7 to 0
WDTKEY7
to
WDTKEY0
Enable or disable watchdog timer.
01010101(=55H) : disable watchdog timer.
others : enable watchdog timer.
Table 14-2 Description of the WDTKEY bits
7
6
5
4
3
2
2
0
WDTRST7
WDTRST6
WDTRST5
WDTRST4
WDTRST3
WDTRST2
WDTRST1
WDTRST0
Table 14-3 Watchdog timer clear register (WDTRST : 0A6H)
RESET VALUE:00000000B
BIT
SYMBOL
FUNCTION
7 to 0
WDTKEY7
to
WDTKEY0
Enable or disable watchdog timer.
01010101(=55H) : disable watchdog timer.
others : enable watchdog timer.
Table 14-4 Description of the WDTRST bits
Example Program; Watch Dog Timer
Reset & WDT_refresh Part
Reset:
WDT_refresh:
clr
38
EA
mov
WDTRST, #1Eh ; Watchdog timer reset
mov PSW, #00
mov
WDTRST, #0E1h ; Watchdog timer reset
mov SP, #STACK_DATA;
mov WDTKEY, #0F0h ; Watchdog start
mov WDTKEY, #55h ; Watchdog stop
ret
November.2001 ver1.0
HMS91C7134
15. TIMER
HMS9xC7134 has two 16-bit timers/counters (Timer0, Timer1) to be placed in 80C51 core and one 16-bit auto-reload timer(Timer2) for
dynamic PWM.
15.1 Timer0 and Timer1
The external input pin that the Timer/Counter0 and Timer/
Counter1 in 80C51 core have is eliminated. In the timer function,
timer register is incremented every machine cycle. Thus, you can
think of it as counting machinecycles. Since a machine cycle consists of 12 oscillator periods, the count rate is 1/12 of the oscilla-
tor frequency.
Timer 0, Timer 1 have four operating modes. These modes is selected by bit-pairs(M1, M0) in TMOD.
7
6
5
4
3
2
2
0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
Table 15-1 Timer Mode Control register(TMOD)
RESET VALUE:00000000B
BIT
SYMBOL
FUNCTION
7,3
GATE
Gating control when set. Timer “x” is enabled only while “INTx” pin is high
and “TRx” control bit is set. When cleared Timer”x” is enabled whenever
“TRx”control bit is set.
Timer or Counter selector
6,2
C/T
0 : Timer
1 : Counter, not supported.
M1, M0
Operating modes
0, 0
8-bit Timer °THx” with “TLx” as 5-bit prescaler
0, 1
16-bit Timer ”THx” and “TLx” are cascaded : there is no prescaler
1, 0
8-bit auto-reload Timer “THx” holds a value which is to be reloaded into
“TLx” each time it overflows.
1, 1
Timer0 : TL0 is an 8-bit Timer controlled by the standard
7 to 0
Timer 0 control bit.
: TH0 is an 8-bit timer only controlled by Timer 1 control bit.
Timer1 : Timer 1 stopped.
Table 15-2 Description of the TMOD bits
November.2001 ver1.0
39
HMS91C7134
7
6
5
4
3
2
2
0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
BIT
Table 15-3 Timer Control register(TCON)
RESET VALUE:00000000B
SYMBOL
FUNCTION
7
TF1
Timer1 overflow flag. Set by hardware on Timer oveflow.
Cleared by hardware when processor vectors to interrupt routine.
6
TR1
5
TF0
4
TR0
3
IE1
Timer1 run control bit. Set/cleared by software to turn Timer on/off .
Timer0 overflow flag. Set by hardware on Timer oveflow.
Cleared by hardware when processor vectors to interrupt routine.
Timer0 run control bit. Set/cleared by software to turn Timer on/off .
Interrupt1 edge flag. Set by hardware when external interrupt edge detected.
Cleared when interrupt processed.
2
IT1
Interrupt1 type control bit. Set/cleared by software to specified falling
edge/low level triggered external interrupts.
1
IE0
Interrupt0 edge flag. Set by hardware when external interrupt edge detected.
Cleared when interrupt processed.
0
IT0
Interrupt0 type control bit. Set/cleared by software to specified falling
edge/low level triggered external interrupts.
Table 15-4 Description of the TCON bits
15.2 TIMER2
Timer2 is a 16-bit auto-reload timer. The 16-bit capture mode,
baud rate generation mode and an event counter function that the
Timer/Counter2 in 80C52 core has are eliminated. Since the
clock of this timer comes from the system oscillator, Timer2 can
be used to count a time period more accurately comparing with
Timer0 and Timer1, but the longest period is limited as 65536 x
(tOSC/2).
The interval between interrupt =
65536 x (2 x tOSC) - (RC2H x 256 + RC2L) x (2 x tOSC)
The maximum interrupt period =
65536 x (2 x tOSC)
7
6
5
4
3
2
2
0
TF2
-
-
-
-
TR2
-
-
Table 15-5 Timer2 control register (T2CON : 0C8H)
BIT
SYMBOL
7
TF2
RESET VALUE:0xxxx0xxB
FUNCTION
Timer2 overflow flag. Set by hardware on Timer overflow.
Must be cleared by software.
6 to 3
-
2
TR2
Reserved
Timer2 run control bit. set/cleared by software to turn Timer on/off.
1 to 0
TR0
Reserved
Table 15-6 Description of the TCON bits
40
November.2001 ver1.0
HMS91C7134
7
6
5
4
3
2
2
0
RC2H7
RC2H6
RC2H5
RC2H4
RC2H3
RC2H2
RC2H1
RC2H0
Table 15-7 Reload/Capture high register (RC2H : 0CBH)
RESET VALUE:00000000B
BIT
SYMBOL
FUNCTION
7 to 0
RC2H7
to
RC2H0
Reload low register bit7 to bit0
7
6
5
4
3
2
2
0
RC2L7
RC2L6
RC2L5
RC2L4
RC2L3
RC2L2
RC2L1
RC2L0
Table 15-8 Reload/Capture low register (RC2L : OCAH)
RESET VALUE:00000000B
BIT
SYMBOL
FUNCTION
7 to 0
RC2L7
to
RC2L0
Reload low register bit7 to bit0
Example Program; Timer
Initial & Timer1 Interrupt part
initial:
;
T1_Isr:
mov IP, #00h; Interrupt Priority
push PSW; PSW
mov PCON, #00;
push DPH; DPTR
mov TCON, #01010000B; T1, T0 enable
push DPL;
mov TMOD, #00010001B; 16 bit timer set
push ACC; A
mov
IE, #11001000B; Global En(7), Vsync(6), Timer1(3)
push 00h; R0
push 01h; R1
push 02h; R2
mov TH1, #0F0h; F060h to Generate 4mSec
mov TL1, #60h;
November.2001 ver1.0
41
HMS91C7134
16. DDC INTERFACE
The monitor typically includes a number of user controls to set
picture size, position, color balance, brightness and contrast.Furthermore, to optimize some internal setting for different display
modes, the timing characteristics should be acquired by the control side. In these days, it is getting popular for these controls to
go to PC host. Therefore the communication between monitor
and host becomes issue.DDC1, DDC2B, DDC2B+, and
DDC2AB(ACCESS.bus) emerge as a standard for monitor inter-
face. A transmitter clocked by incoming VSYNC is dedicated for
DDC1 operation. An I2C interface hardware logic forms the kernel of DDC2B, DDC2B+, and DDC2AB. An address pointer,
with post increment capability is employed to serve DDC1,
DDC2B,DDC2B+ and DDC2AB modes.
The conceptual block diagram is illustrated in Fig. 16.1
7
DDC2B/DDC2AB
DDC2B+ Interface
1
0
Monitor Address
S1ADR0
Monitor Address
S1ADR1
SDA1
Shift Register
S1DAT
Arbitration Logic
SCL1
Internal Bus
Bus Clock Generator
S1CON
S1STA
DDC1/DDC2
Detection
RAMBUF
RAM
Buffer
DDC1 Hold Register
DDCDAT
DDC1 transmitter
VSYNCIN
Address Pointer
Initialization synchronization
X
EX_
DAT
SW
ENB
X
DDC1 DDC1
INT
EN
SWH
INT
M0
DDCADR
INTR (From S1STA)
DDCCON
INT
Figure 16-1 DDC Interface block diagram
42
November.2001 ver1.0
HMS91C7134
16.1 The Special Function register for DDC Interface.
Eight SFR : S1CON, S1STA, S1DAT, S1ADR, RAMBUF, DDCCON, DDCADR, DDCDAT.
S1CON, S1STA, S1DAT, S1ADR are just the copies of the corresponding registers in general I2C-bus interface.
7
6
5
4
3
2
2
0
-
EX_DAT
SWENB
-
DDCINT
DDC1EN
SWHINT
M0
Table 16-1 DDC mode status and DDC1 control register (DDCCON : 0D7H)
BIT
SYMBOL
FUNCTION
7
-
Reserved
RESET VALUE:x00x0000B
This bit defines the size of the EDID data. It is related to the function of the post increment of the
address pointer, DDCADR. When the upper limit is reached, the DDCADR will wrap around to
00H.
6
EX_DAT
(R/W)
If EX_DAT is
1: The data size is 256 byte.
0: The data size is 128 byte(The addressing range for the EDID data buffer is mapped from 0 to
127 ; the rest, 128 to 255 , can still be used by the system).
This bit indicates if the software/CPU is needed to take care of the operation of DDC1 protocol.
If SWENB is
5
SWENB
(R/W)
1 : In DDC1 protocol, CPU is interrupted during the period of the 9th transmitting bit so that the
S/W service routine can update the hold register of transmitter by moving new data from appropriate area(it is not necessary to be the RAM buffer which is pointed by DDCADR) to the register
DDCDAT. This transmitting must be done within 40us.
0 : The hold register of the transmitter will be automatically updated from the RAM buffer without
the intervention of CPU.
4
3
-
DDC1INT
(R/W)
Reserved
Interrupt Request Bit. This bit is only valid in DDC1 protocol while S/W handling is enabled. This
bit is set by H/W and should be cleared by S/W in interrupt service routine.
1 : Interrupt request is pending.
0 : No interrupt request
DDC1 enable control bit. If DDC1EN is
2
DDC1EN
(R/W)
1 : DDC1 is enabled.
0 : DDC1 is disabled ; The activity on VSYNC is ignored.
1
SWHINT
(R/W)
Interrupt Request Bit. This bit is set by H/W when DDC interface switches from DDC1 to DDC2
(i.e. The voltage transient from high to low is observed on SCL1 pin). This bit should be cleared
by S/W in interrupt service routine.
1 : Interrupt request is pending.
0 : No interrupt request
0
M0
(R/W)
DDC mode indication bit. This bit will be set by H/W when the voltage transient from high to low
is observed on SCL1 pin. Once mode changes into DDC2 mode, the mode is reserved until power is off.
0: DDC1 is set.
1: DDC2 is set.
Table 16-2 Description of the DDCCON bits
November.2001 ver1.0
43
HMS91C7134
both in DDC1, DDC2 (DDC2B, DDC2B+, and DDC2AB)
and system operation.
DDC1 DATA register for transmission (DDCDAT : 0D5H)
• 8bit read and write register.
• Indicates DATA BYTE to be transmitted in DDC1 protocol.
Host type detection
Address pointer for DDC interface (DDCADR : 0D6H)
The detection procedure conforms to the sequences proposed by
VESA Monitor Display Data Channel(DDC) specification.The
monitor needs to determine the type of host system:
• 8bit read and write register.
• Address pointer with the capability of the post increment. After each access to RAMBUF register(either by
software or by hardware DDC1 interface), the content
of this register will be increased by one. It’s available-
44
•
•
DDC1 or OLD type host.
DDC2B host (Host is master, monitor is always slave)
• DDC2B+/DDC2AB(ACCESS.bus) host.
November.2001 ver1.0
HMS91C7134
The monitor where HMS9xC7134 resides is always both DDC1
and DDC2 capable with DDC2 having the higher priority. Thedisplay shall start transmitting DDC1 signals whenever it is powered on and the vertical sync signal is applied to it from the
hostfor the first time. The display shall switch to DDC2 within 3
system clocks as soon as it sees a high to low transition on the
clockline(SCL), indicating that there are DDC2 devices connected to the bus. Under that condition, the mode flag, M0 will be
changed from the default setting 0, to 1. Accordingly, the interrupt will be invoked by setting flag, SWHINT as high.
Monitor Power on
Fig. 16.2 illustrates the concept and interaction between the monitor and the host. After power on, the DDC1EN bit is set by S/W
to act as a DDC1 device. Therefore, the mode flag, M0, is set as
0. Following VSYNC as clock, the monitor will transmit EDID
data stream to the host. However, if DDC2 clock, SCL clock, is
present, the monitor will be switched to DDC2B device with the
mode flag setting as 1. Software will judge it is a DDC2B,
DDC2B+, or DDC2AB protocol.
Communication is idle
Is VSYNC present ?
EDID sent continuously using
VSYNC as clock
Is DDC2 clock
present ?
Stop sending of EDID,
Switch to DDC2
communication mode
DDC2 communication
is idle. Monitor is
waiting for a command.
Has a command been received ?
Is 2B+/A.B command detected ?
Is command DDC2B command ?
Is monitor DDC2B+/DDC2AB
capable ?
Respond to
DDC2B command
Respond to DDC2B+/
DDC2AB command
Figure 16-2 Host type detection
November.2001 ver1.0
45
HMS91C7134
16.2 DDC1 protocol
Step6 : Reset DDCADR to 00H.
DDC1 is primitive and a point to point interface. The monitor is
always put at “Transmit only” mode.In the initialization phase, 9
clock cycles on VSYNC pin will be given for the internal synchronization.During this period, the SDA pin will be kept at high
impedance state.
Step7 : Set DDC1EN as high.
In case SWENB is set as high, interrupt service routine must be
finished within 40 machine cycles in 12 MHz system clock.
Note : If EX_DAT equals to low, it is meant the lower part is occupied by DDC1 operation and the upper part is still free to
the system. Nevertheless, the effect of the post increment just applies to the part related to DDC1 operation.
If DDC1 hardware mode is used, the following procedure is recommended to proceed DDC1 operation.
Step1 : Reset DDC1EN (by default, DDC1EN is cleared as low
after power on reset).
In other words, the system program is still able to address the locations from 128 to 255 in the RAM buffer through MOVX command but without the facility of the post increment.
Step2 : Set SWENB as high(the default value is zero.)
Step3 : Depending on the data size of EDID data, set EX_DAT
as low(128 bytes) or high(256bytes).
ex) In case of accessing 200 of the RAM Buffer.
Step4 : By using bulky moving commands (DDCADR, RAMBUF involved) to move the entire EDID data to RAM buffer.
MOV R0, #200
MOVX A, @R0
Step5 : Reset SWENB to low.
SCL
VCLK
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
DDC1INT
DDC1EN
SDA
B7 B6 B5 B4 B3 B2 B1 B0 HiZ B7
Hi-Z
tSU(DDC1)
tH(VSYNC)
tL(VSYNC)
tDOV
Figure 16-3 Transmission protocol in DDC1 interface.
16.3 DDC2B protocol
DDC2B is constructed base on Philips I2C interface. However, in
the level of DDC2B, PC host is fixed as the master and the monitor is always regarded as the slave. Both master and slave can be
operated as a transmitter or receiver, but the master device determines which mode is activated. In this protocol, address pointer
is also used.
According to DDC2B specification, A0(for write mode) and
A1(for read mode) are assigned as the default address of moni-
46
tors.
The reception of the incoming data in write mode or the updating
of the outgoing data in read mode should be finished within the
specified time limit. If software in the slave s side cannot react to
the master in time, based on I2C protocol, SCL pin can be
stretched low to inhibit the further action from the master. The
transaction can be proceeded in either byte or burst format.
November.2001 ver1.0
HMS91C7134
DDC Interrupt
vector address
( 003BH )
SWENB = 0
Check Mode flag in DDCCON
Mode = 1 Mode = 1 Mode = 0
DDC2B+/DDC2AB
command received
SWENB = 1
DDC2B
command received
DDC2B+/DDC2AB
Utilities
DDC2B
Utilities
I2C
Service Routines
DDC1
Utilities
DDC1 Transmitter
(H/W)
I2C Interface
(H/W)
Figure 16-4 The conceptual structure of DDC Interface
16.4 DDC2AB/DDC2B+ protocol
DDC2AB/DDC2B+ is a superset of DDC2B. Monitors that implement DDC2AB/DDC2B+ are full featured ACCESS.bus devices. Monitor that implement DDC2B+ uses the same command
set as DDC2AB but cannot use Access.bus device.
Essentially, they are similar to DDC2B. I2C interface forms the
fundamental layer for both protocols. The default address for
monitors is assigned as 6EH other than A0/A1H in DDC2B.
Monitors and hosts can play both the roles of master and slave.
Under this kind of protocol, it is easy to extend the support for
hosts to read VDIF(VESA Video Display Information Format)
and remotely control monitor functions.
November.2001 ver1.0
Command / Information sequence between host and monitor
must conform to the specification of ACCESS.bus. Timing rules
specified in ACCESS.bus such as maximum response time to
RESET message(< 250 ms)form host, maximum time to hold
SCL low(< 2ms) etc. can be satisfied through software check and
built-in timers such as Timer0, Timer1.
In DDC2AB/DDC2B+, monitor itself can act as a monitor to activate the transaction. The default address assigned for host is
50H.
47
HMS91C7134
16.5 The RAM Buffer and DDC application
RAM Buffer (RAMBUF) : the RAM buffer can be shared as the system RAM or DDC RAM buffer.
MODE
EX_DAT
0
1
SWENB
0
0
XRAM : 0 to 127
XRAM : 128 to 255
Normally reserved for DDC1
EDID data
Available for the system
access.
(Note 1, Note 2, Note 3)
(Note 2)
Normally reserved for DDC1
EDID data
Normally reserved for DDC1
EDID data.
(Note 1, Note 2)
(Note 1, Note 2, Note 4)
Normally reserved for DDC1
EDID data
Available for the system
access.
DDC1
0
1
(Note 3, Note 5)
1
0
1
1
Normally reserved for DDC1
EDID data
Normally reserved for DDC1
EDID data.
(Note 5)
(Note 4, Note 5)
Normally reserved for DDC2
EDID data
Available for the system
access.
(Note 3)
DDC2
1
1
Normally reserved for DDC2
EDID data
Normally reserved for DDC2
EDID data.
(Note 4)
Table 16-3 Description of the EX_DAT and SWENB
Note
1. READ/WRITE through MOVX instruction might conflict with the access from DDC1 hardware. So, the access from
CPU by using MOVX instruction is forbidden.
2. READ/WRITE through DDCADR and RAMBUF registers has the conflicting problem also. Even the content of
DDCADR, which should be employed by DDC1 hardware, will be damaged. So, it is inhibited to use this type of access.
3. If DDCADR reaches 127, it will automatically wrap around to 0 after the access is done.
4. If DDCADR reaches 255, it will automatically wrap around to 0 after the access is done.
5. The access conflicting can be avoided because DDC1 access is done by the interrupt service routine. However, the EDID
transferring from the RAM buffer should be finished within 40 us.
48
November.2001 ver1.0
HMS91C7134
Example Program;
DDC Interface
Initial & Interrupt part
Initial:
mov
mov
mov
mov
mov
mov
DDCCON,#01h
DDCADR,#0
DDCCON,#00100100b
S1CON,#47h
S1ADR0, #0A1h
S1ADR1, #41h
; SWENB(0)
;
; 128(6),DDC1_Int(5),DDC1_enable(1)
; 100kHz(011),ENI1(1),ACK_enable(1)
; DDC2B Slave address
; Factory Alignment Host
!"
$ % ;=================================================================
;
DDC Interface
;
1. ISR
S1STA
S1DAT
.
;
2. ISR
S1CON
Refresh
.
;
3. Slaver Receive Address match
S1DAT
S1STA
;
Dummy Data Writing
.
Slave Receive
.
;=================================================================
;
task
: DDC interrupt Service
;
input
: Control & Status Peripheral register
;=================================================================
DDC_Header:
db
00,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,00
DDC_Isr:
push
PSW
;
push
DPH
;
push
DPL
;
push
ACC
;
push
00
;
push
01
;
mov
A, DDCCON
;
anl
A, #00001000b
; (1) DDC1INT request(bit3=1)?
jz
DDC2_svc
;
;=====================================================
DDC1_mode:
mov
A, mIICFlag
;
anl
A,#00000011b
;bUserSoftDDC(1), bDDC1Enable(0)
cjne
A, #03h, DDC1Enable ;
mov
A, #0FFh
;
mov
DDCDAT, A
;
ljmp
DDC_Int_end
;
#
&'
DDC1Enable:
mov
mov
mov
cjne
mov
A, mDDCData
DDCDAT, A
A, mDDCAddress
A, #80h, DDC1_Svc
DDCCON, #01h
;
;
;
;
; DDC1 Disable,DDC2 Mode
DDC1_Svc:
clr
subb
jnc
mov
mov
movc
sjmp
C
A, #8
NormalDDC1
DPTR, #DDC_Header
A, R0
A, @A+DPTR
DDC1_Save
;
;
;
;
;
;
;
NormalDDC1:
mov
A, #EDID_DATA
;
add
A, R0
; data post
mov
R0, A
;
movx
A, @R0
;
DDC1_Save:
mov
DDCDAT, A
;
inc
mDDCAddress
;
ljmp
DDC_Int_end
;
;=====================================================
DDC2_svc:
mov
A, DDCCON
;
anl
A, #00000010b
; (2) SWHINT (SCLLow bit1=1) SCL activity ?
jz
DDC_I2C_svc
;
mov
mDDCAddress, #00h
; DDC1 Disable,DDC2 Mode
mov
DDCCON, #00000001b ;
DDC_I2C_svc:
mov
A, S1STA
; (3) i2C abnormal by G-call,Stop, Arbitration and no Acknowledge
mov
mI2C_status,A
;
anl
A, #11000110b
; 1 1 0 0
0 1 1
0
jnz
DDC_Abnormal
; GC,STOP,INTR,TX_MODE,BUSY,BLOST,/ACK_REP,SLV
mov
A, S1CON
;
anl
A, #00001000b
; (4) Host address matched ?
jnz
ADDR_Match
;
ljmp
DDC2B_svc
; (5) 1 byte data access by DDC2B format
Addr_Match:
mov
DDCCON, #01h
; DDC1 Disable,DDC2 Mode
setb
bI2C_Dir
; TX
mov
A, S1DAT
;
anl
A, #0FEh
; LSB BIT MASKING
cjne
A, #60h, DDC2B_mode ; 60h = Factory Host ?
November.2001 ver1.0
49
HMS91C7134
Factory_mode:
setb
setb
mov
anl
jz
ljmp
bFactoryMode
bService
A, mI2C_status
A, #10h
Align_Add_Rx
Align_I2C_Tx
; Factory Alignment Host matched 40h
;
;
;
; Slave Receive command
; Slave Transmit command
Align_Add_Rx:
clr
mov
mov
mov
mov
mov
ljmp
bI2C_Dir
A, #0
mIICBuffer+pSave, A
mIICBuffer+pRead, A
S1DAT,#0FFh
S1CON, #01000111b
DDC_Int_end
; RX MCU <== Host
;
;
;
; Dummy write
; i2C enable, Ack out when own slave address in
; Factory Slave Receive start
DDC2B_mode:
clr
bFactoryMode
; Factory Alignment Host matched
cjne
A, #0A0h, DDC_Abnormal; A0h = DDC2B Host ?
mov
A, mI2C_status
;
anl
A, #10h
;
jnz
DDC_I2C_Tx
; Slave Transmit
clr
bI2C_Dir
;
mov
S1DAT,#0FFh
; Dummy write
mov
S1CON, #01000111b
; i2C enable, Ack out when own slave address in
ljmp
DDC_Int_end
; DDC Slave Receive start
;=====================================================
DDC2B_svc:
; 1 byte data handling
jb
bFactoryMode,Line_svc ;
mov
A, mI2C_status
;
anl
A, #10h
;
jnz
DDC_I2C_Tx
; Slave Transmit
;
DDC_I2C_Rx:
mov
A, S1DAT
; Slave-Receive
mov
mDDCAddress, A
; subaddress catch
sjmp
DDC_I2C_ref
;
DDC_I2C_Tx:
mov
A, mDDCAddress
anl
A, #7Fh
mov
R0,A
clr
C
subb
A, #8
mov
A, R0
jnc
Tx_mode_svc
mov
DPTR, #DDC_Header
movc
A, @A+DPTR
sjmp Tx_Mode_out
; Slave Transmit
;
;
;
;
;
;
; Header load
;
;
Tx_mode_svc:
add
A, #EDID_DATA
; 0x80~0xFF
mov
R0, A
;
movx
A, @R0
;
Tx_Mode_out:
mov
S1DAT, A
; EDID data store at S1DAT
inc
mDDCAddress
;
mov
S1CON, #47h
; clear ADDR(bit3)11-15 edit
mov
nI2C_Abn_Cnt,#80h
; no Ack within 128 mSec, P1SFS.1=port
sjmp
DDC_Int_end
;
=====================================================
DDC_Abnormal:
mov
S1CON, #00000111b
; i2C enable, stop out, Ack out
mov
nI2C_Abn_Cnt,#0
; Initial hangup check counter
mov
P1SFS,#00001111b
; normal I2C hardware interface
clr
bFactoryMode
;
mov
DDCCON,#01h
; SWENB(0)
mov
DDCADR,#0
;
mov
DDCCON,#00100100b ; 128(6),DDC1_Int(5),DDC1_enable(1)
mov
S1CON,#47h
; 100kHz(011),ENI1(1),ACK_enable(1)
mov
S1ADR0, #0A1h
; DDC2B Slave address
mov
S1ADR1, #41h
; Factory Alignment Host
jnz
DDC_I2C_sTx
;
DDC_I2C_sRx:
mov
A,S1DAT
sjmp
DDC_I2C_ref
DDC_I2C_sTx:
mov
S1DAT,#0FFh
DDC_I2C_ref:
mov
S1CON, #01000111b
;-----------------------------------DDC_Int_end:
pop
01
pop
00
pop
ACC
pop
DPL
pop
DPH
pop
PSW
reti
;------------------------------------
50
;
; Receive
;
;
; Transmit
;
; i2C enable, Ack out when own slave address in
;
;
;
;
;
;
;
November.2001 ver1.0
HMS91C7134
17. I2C INTERFACE
In the Monitor MCU are two I2C interfaces implemented.
• The first one is used by the DDC protocols.
• The second one is dedicated for internal connection. With this one it s possible to control the video, deflection, convergence and some other functions of the monitor.
The serial port supports the twin line I2C-bus, consists of a data line(SDAx) and a clock line(SCLx).
• SDA1, SCL1 : the serial port line for DDC Protocol
• SDA2, SCL2 : the serial port line for Internal Connection
In both I2C interfaces, these lines also function as I/O port lines as follows.
• SDA1 / P1.1, SCL1 / P1.0, SDA2 / P1.7, SCL2 / P1.6
The system is unique because data transport, clock generation, address recognition and bus control arbitration are
all controlled by hardware.
The I2C serial I/O has complete autonomy in byte handling and operates in 4 modes.
• Master transmitter
• Master receiver
• Slave transmitter
• Slave receiver
These functions are controlled by the SFRs.
• SxCON : the control of byte handling and the operation of 4 mode.
• SxSTA : the contents of its register may also be used as a vector to various service routines.
• SxDAT : data shift register.
• SxADR : slave address register. Slave address recognition is performed by On-Chip H/W.
7
Slave Address
0
0
7
SDAx
Shift Register
Internal Bus
Arbitration + Sync. Logic
Bus Clock Generation
SCLx
7
0
Control Register
7
0
Status Register
Figure 17-1 The block diagram of the I2C-bus serial I/O.
November.2001 ver1.0
51
HMS91C7134
17.1 The Special Function register for I2C Interface.
Serial Control Register(SXCON; S1CON, S2CON)
7
6
5
4
3
2
1
0
CR2
ENI1
STA
STO
ADDR
AA
CR1
CR0
Table 17-1 Serial control register(SxCON; S1CON : 0D8H , S2CON : 0DCH)
BIT
SYMBOL
FUNCTION
7
CR2
This bit along with bits CR1and CR0 determines the serial clock frequency when
SIO is in the Master mode.
6
ENI1
Enable IIC. When ENI1 = 0, the IIC is disabled. SDA and SCL outputs are in the
high impedance state.
5
STA
START flag. When this bit is set, the SIO H/W checks the status of the I2C-bus
and generates a START condition if the bus free. If the bus is busy, the SIO will
generate a repeated START condition when this bit is set.
4
STO
STOP flag. With this bit set while in Master mode a STOP condition is
generated.
When a STOP condition is detected on the I2C-bus, the SIO hardware clears the
STO flag.
3
ADDR
This bit is set when address byte was received. Must be cleared by software.
2
AA
Acknowledge enable signal. If this bit is set, an acknowledge(low level to SDA)is
returned during the acknowledge clock pulse on the SCL line when :
•Own slave address is received
•A data byte is received while the device is programmed to be a Master Receiver
•A data byte is received while the device is a selected Slave Receiver. When this
bit is reset, no acknowledge is returned.
SIO release SDA line as high during the acknowledge clock pulse.
1
CR1
These two bits along with the CR2 bit determine the serial clock frequency when
SIO is in the Master mode.
0
CR0
Table 17-2 Description of the SxCON bits
CR2
CR1
CR0
fosc DIVISOR
BIT RATE (kHz) at fosc
8MHz
12MHz
16MHz
0
0
0
16
250
375
-
0
0
1
14
285.71
428.57
-
0
1
0
40
100
150
-
0
1
1
60
66.67
100
-
1
0
0
120
33.33
50
-
Table 17-3 Selection of the serial clock frequency SCL in Master mode of operation.
52
November.2001 ver1.0
HMS91C7134
Serial Status Register(SXSTA)
SxSTA is a read-only register. The contents of this register may be used as a vector to a service routine. This optimized the response
time of the software and consequently that of the I2C-bus. The status codes for all possible modes of the I2C-bus interface are given
Table
7
6
5
4
3
2
1
0
GC
STOP
INTR
TX_MODE
BBUSY
BLOST
/ACK_REP
SLV
Table 17-4 Serial status register(SXSTA; S1STA:0D9H, S2STA:0DDH)
BIT
SYMBOL
FUNCTION
7
GC
General Call flag.
6
STOP
STOP flag.
This bit is set when a STOP condition was received.
5
INTR
Interrupt flag.
This bit is set when a SIO interrupt is requested.
4
TX_MODE
Transmission mode flag.
This bit is set when the SIO is a transmitter. Otherwise, this bit is reset.
3
BBUSY
Bus busy state flag.
This bit is set when the bus is being used by another master. Otherwise, this bit is reset.
2
BLOST
Bus lost flag.
This bit is set when the master loses the bus contention. Otherwise, this bit is reset.
1
/ACK_REP
Acknowledge response flag.
This bit is set when the receiver transmits the not acknowledge signal.
This bit is reset when the receiver transmits the acknowledge signal.
0
SLV
Slave mode flag.
This bit is set when the SIO plays role in the slave mode. Otherwise, this bit is reset.
Table 17-5 Description of SxSTA
Data Shift Register(SXDAT; S1DAT, S2DAT)
SxDAT contains the serial data to be transmitted or data which has just been received. The MSB (bit7) is transmitted or
received first; I,e. data shifted from right to left.
7
6
5
4
3
2
1
0
SxDAT7
SxDAT6
SxDAT5
SxDAT4
SxDAT3
SxDAT2
SxDAT1
SxDAT0
Table 17-6 Serial data shift register
Addressing Register(SXADR)
This 8-bit register may be loaded with the 7-bit slave address to which the controller will respond when programmed as a slave receive/
transmitter.
7
6
5
4
3
2
1
0
SLA6
SLA5
SLA4
SLA3
SLA2
SLA1
SLA0
-
Table 17-7 Address register(SLA6 to SLA0 : Own slave address.)
November.2001 ver1.0
53
HMS91C7134
17.2 Programmer’s Guide for I2C and DDC2
The I2C serial I/O and DDC Interface has operates in 4 modes.
• Master transmitter
• Slave transmitter
• Master receiver
• Slave receiver
17.2.1 Master transmitter mode
1. Read SxSTA.
2. If BBUSY == 1 then
go to step1.
Else then
write slave address to SxDAT and set both ENI and STA, reset AA in SxCON.
3. Wait for interrupt.
4. Read SxSTA.
If BLOST == 1 or /ACK_REP == 1* then
write dummy data to SxDAT.
Go to step1.
Else then
clear STA.
5. Perform required service routines.
If this datum == LAST then
set STO in SxCON and write last data to SxDAT**.
Go to step 6.
Else then
write next data to SxDAT**.
Go to step3.
6. Wait for interrupt.
Write dummy data to SxDAT**.
* : 1. If the master don’t receive the acknowledge from the slave, it generates the STOP condition and returns to the IDLE state.
**: 1. This action should be the last in service routine.
Slave transmitter mode
1. Write slave address to SxADR, set AA and ENI in SxCON.
2. Wait for interrupt.
3. Read SxSTA and write the first data to SxDAT*. Reset AA in SxCON.
5. Wait for interrupt.
6. Read SxSTA.
If /ACK_REP == 1** then
Go to step7.
Else then
write the next SxDAT*.
Go to step5.
7. Write dummy data to SxDAT*.
* : 1. These actions should be the last.
**: 1. If the master want to stop the current data requests, it don’t have to acknowledge to the slave transmitter.
2. If the slave don’t receive the acknowledge from the master, it releases the SDA and enters the IDLE state,
so if the master is to resume the data requests, it must regenerate the START condition.
54
November.2001 ver1.0
HMS91C7134
Master receiver mode
1. Read SxSTA.
2. If BBUSY == 1 then
go to step1.
Else then
write slave address to SxDAT and set both ENI1 and STA, reset AA in SxCON.
3. Wait for interrupt.
4. Read SxSTA.
If BLOST == 1 or /ACK_REP == 1 then
write dummy data to SxDAT
Go to step1.
Else then
clear STA and write FFH to SxDAT.
Set AA in SxCON.
5. Wait for interrupt.
6. Read SxSTA.
If this datum == LAST then
reset AA* and read SxDAT**.
Go to step7.
Else then
read SxDAT**.
Go to step5.
7. Wait for interrupt.
Read SxSTA.
Read SxDAT**.
* : 1. If the master want to terminate the current data requests, it don’t have to acknowledge to the slave.
**: 1. This action should be the last.
Slave transmitter mode
1. Write slave address to SxADR, set AA and ENI in SxCON.
2. Wait for interrupt.
3. Read SxSTA and write FFH to SxDAT*.
5. Wait for interrupt.
6. Read SxSTA.
If STOP == 1 then
Go to step7.
Else then
read data from SxDAT*.
Go to step5.
7. Read dummy data from SxDAT*.
* : 1. This action should be the last.
November.2001 ver1.0
55
HMS91C7134
Master : restart (transmitter)
1. Read SxSTA.
2. If BBUSY == 1 then
go to step1.
Else then
write slave address to SxDAT and set both ENI1 and STA in SxCON.
Reset AA in SxCON.
3. Wait for interrupt.
4. Read SxSTA.
If BLOST == 1 or /ACK_REP == 1 then
write dummy data to SxDAT.
Go to step1.
Else then
clear STA.
5. Perform required service routines.
If this datum == LAST then
if RESTART is required then
set STA in SxCON and write last data to SxDAT*.
Go to step6.
Else then
set STO in SxCON and write last data to SxDAT*.
Go to step7.
Else then
write next data to SxDAT*.
Go to step3.
6. Wait for interrupt.
Write slave address to SxDAT*.
Go to step3.
7. Wait for interrupt.
Write dummy data to SxDAT*.
* : 1. This action should be the last in service routine.
56
November.2001 ver1.0
HMS91C7134
18. PULSE WIDTH MODULATION
18.1 Static PWM
There are eight static PWM in the HMS9xC7134.
These channels provide output pulses of programmable duty cycle and polarity. The duty cycle is defined by a counter.
The 8-bit counter of a PWM counts modulo 256, i.e. from 0 to
255 inclusive. The value held in the 8-bit counter is compared to
the contents of the Special Function Register(PWMn) of the corresponding PWM. The polarity of the PWM outputs is programmable and selected by the PWMLVL bit in PWMCON register.
Provided the contents of a PWMn register is equal to or greater
than the counter value, the corresponding PWM output is set
HIGH (with PWMLVL =“0”). If the contents of this register is
less than the counter value, the corresponding PWM output is set
LOW(with PWMLVL =“0”). The pulse-width-ratio is therefore
defined by the contents of the corresponding Special Function
Register(PWMn) of a PWM. By loading the corresponding Special Function Register(PWMn) with either 00H or FFH, the
PWM output can be retained at a constant HIGH or LOW level
respectively(with PWMLVL = “0”).
The PWM outputs PWM0 to PWM7 register share the same pins
as Port2.2~Port2.7, Port3.4 and Port3.5 respectively.
Selection of the pin function as either a PWM output, a Port line
or the other function is achieved by using the appropriate value of
P2SF register.
The repetition frequency (fPWM) at a PWM output is given by:
fPWM = fOSC / (2 x 256)
7
6
5
4
3
2
1
0
PWMLVL
PWM6CFG
PWM5CFG
PWM4CFG
PWM3CFG
PWM2CFG
PWM1CFG
PWM0CFG
Table 18-1 PWM control register (PWMCON : 0A1H)
BIT
7
6 to 0
SYMBOL
FUNCTION
PWMLVL
Polarity selection of the PWMs.
0 : PWM outputs are not inverted.
1 : PWM outputs are inverted.
PWM6CFG to
PWM0CFG
Output type selection of the PWMs.
0 : open-drain type.
1 : push-pull type
Table 18-2 Description of the PWMCON bits
November.2001 ver1.0
57
HMS91C7134
18.2 Dynamic PWM
There are two dynamic PWMs in the HMS9xC7134. The DPWMs can be used to generate various waveform by software programming, and are used to achieve geometric compensation by
generating a parabola output waveform which is synchronized
with VSYNCin signal for pin/trap, bow/tilt, vertical linearity or
focus compensation in monitor system.
This is achieved by utilizing timer2. The low 8-bit in timer2 is
used as 8-bit counter for PWM signal and the high 8-bit in timer2
is used to decide the number of PWMs in one video frame. One
video frame can be divided to any number of blocks according to
the register RC2H value within 256 blocks, and here the RC2L
will be 00H for 8-bit PWM resolution.
The dynamic PWM outputs DPWM0 to DPWM1 register share
the same pins as Port2.0~Port2.1respectively.
The repetition frequency (fDPWM) at a DPWM output is given
by (in case of RC2L=00H): fDPWM = fOSC / (2 x 256)
7
6
5
4
3
2
DPWMLVL
-
-
-
-
-
1
0
DPWM1CFG DPWM0CFG
Table 18-3 Dynamic PWM control register (DPWMCON : 0B1H)
BIT
SYMBOL
7
1 to 0
FUNCTION
DPWMLVL
Polarity selection of the DPWMs.
0 : DPWM outputs are not inverted.
1 : DPWM outputs are inverted.
DPWM1CFG to
DPWM0CFG
Output type selection of the DPWMs.
0 : open-drain type.
1 : push-pull type
Table 18-4 Description of the DPWMCON bits
Vsync
DPWMx
VDD
Table 18-5 DPWM application circuit
58
November.2001 ver1.0
HMS91C7134
Using one Dynamic PWM to compensate the following H size distortion :
1. Pincushion (PCC amplitude)
2. Trapezoid (Keystone)
3. CBOW (Quarter Width)
4. PCC corner
5. S Curve
Using one Dynamic PWM to compensate the following H center distortion :
1. Pin Balance (Bow)
2. Key Balance (Tilt)
3. Corner Balance
November.2001 ver1.0
59
HMS91C7134
19. SYNC PROCESSOR
The characteristics of Sync processor are as follows.
Automatic mode detection by hardware to capture the following signal characteristics :
• Hsync and Vsync frequency measured with 12-bit accuracy (fSH= 12MHz, fSV= 125KHz)
• Hsync and Vsync polarity
• Hsync and Vsync presence needed for implementing the VESA DPMS standard
Integrated composite sync separation
Integrated signal generators for generating :
• Free running horizontal and vertical sync pulses
• Clamping pulse(Back porch, Front porch)
• Pattern signal (white picture, black picture, cross hatch and inverse cross hatch)
Special option :
• Missing sync pulse insertion
All measured parameters are stored in Special Function Register such that the data is available at any time.
The block diagram of the complete sync processor is given in Figure 19-1
19.1 Sync input signals
The sync inputs are able to handle standard TTL level sync signals. From Figure 19-1 it can be seen that both the HSYNCin and
SOGin inputs accept composite sync signals. The HSYNCin and
VSYNCin input is meant to be connected to the Hsync and Vsync
of the VGA cable while SOGin input is meant to be connected to
a sync slicer in order to handle Sync-On-Green at the video input.
This last signal should have a TTL level also. The selection between the HSYNCin and the SOGin inputs, as well as the selection between the VSYNCin and separated Vsync, can be done via
software.
Select Flag
Signal to detector
HSEL
0 : HSYNCin
1 : SOGin
VSEL
0 : VSYNCin
1 : Separated VSYNC
Table 19-1 Sync Input selection
19.2 Horizontal polarity correction
In order to simplify the processing in the following stages, the
HSYNC polarity correction circuit is able to convert the input
sync signals to positive polarity signals in all situations. This correction is achieved by the aid of HPOL and HP.
HPOL and HP are only settled down in several horizontal scanning lines or a few milliseconds after power-on or timing mode
change.
19.3 Vertical polarity correction
The purpose of the vertical polarity correction is similar to the
horizontal polarity correction. To get the correct resultafter pow-
er-on or a timing mode change, at least 5 frames is needed.
19.4 Vertical sync separation
This block separates the vertical sync from a composite sync signal. At approximately 1/4 of each HSYNC line the logical level
is latched. This yields a slightly delayed vertical sync signal.
Special precautions have been taken to suppress equalizing puls-
60
es when present and to allow both polarities of the composite signal.The format of the composite sync signal can be standard, as
given in Figure 19-2, or can be one of the non standard format as
given in Figure 19-3
November.2001 ver1.0
November.2001 ver1.0
VSYNCin
SOGin
HSYNCin
fOSC
HPOL
XOR
VPOL
MUX
VSEL
XOR
HSEL
MUX
1 / 96
V
HP
SYNC H
SEP
fSV
fSH
CAPTURE
SFR
MDINT
VINT
HPRES
VPOL VPRES
HPOL
VSYNC
DETECTION
VP
HP
HSYNC
DETECTION
VSYNC
GENERATOR
VP VF VOPOL VPG
VOPW
HPG
HP HF HOPOL HOPW
HSYNC
GENERATOR
CPU
VF
MUX
PAT
MUX/
CLMP
CONTROL
CONTROL
SFR
HP VP HPOL VPOL HPRES VPRES HSYNC VSYNC HF
Change Change
CPU
VSYNCout
PATOUT
CLAMP
HSYNCout
HMS91C7134
Figure 19-1 Block diagram of sync processor
61
HMS91C7134
19.5 Horizontal sync. detection
This block extracts the following parameters from the incoming
horizontal or composite sync :
• HPER : The number of clock cycles (fSH = 12MHz) between five sync pulses (4 period time), thus the 12 bits value HPER will be equal to ((4 x 12 x 106 / fH) - 1) where fH
is the horizontal sync frequency in Hz.
• HPOL : The polarity of the sync signal, HPOL will be reset
in case of a positive polarity and set in case of a negative
polarity. The 1/4 point value of HSYNC period time will be
latched for HPOL.
• HPRES :To detect the presence of the valid HSYNC signal, Detector measures the time interval between five sync
pulses (4 period time). No active sync is coming in if the
counter reaches a value of FF0H(4080).
• HCHG : The HCHG flag will be set if a change is detected
in either the polarity or the period time. To avoid unintended
setting of the HCHG flag a small deviation in the period time
is allowed.The allowed deviation is approximately 167ns
per line.
19.6 Vertical sync. detection
This block extracts the following parameters from the incoming
vertical sync:
sync. The 1/4 value of incoming VSYNC value will be
latched for VPOL.
• VPER : Either the number of clock cycles (fSV=125kHz
sampling) between two sync pulses(period time). In case
the period time is measured this 12 bits VPER will be equal
to 125 x 103 / fV where fV is the vertical sync frequency in
Hz.
• VPRES : To detect the presence of the valid VSYNC signal, Detector measures the time interval between two consecutive rising edges of the input signal. No active sync is
coming in if the counter reaches a value of FF0H(4080).
• VPOL : The polarity of the sync signal, VPOL will be reset
in case of a positive polarity and reset in case of a negative
polarity. It should be noted here that in case of a composite
sync signal at the input the parameter VPOL will be set always, disregarding the polarity of the incoming composite
• VCHG : The VCHG flag will be set if a change is detected
in either the polarity or the period time. To avoid unintended
setting of the VCHG flag a small deviation in the period
time is allowed.The allowed deviation is approximately
32us per line.
Detection input
Threshold frequency
HSYNC input
12 KHz
VSYNC input
30 Hz
Table 19-2 Threshold frequencies of the presence detector
62
November.2001 ver1.0
HMS91C7134
CSYNC
HSYNC
VSYNC
2nd field
1st field
1st field
2nd field
CSYNC
HSYNC
VSYNC
Figure 19-2 Standard composite sync signals
HSYNC
VSYNC
CSYNC-1
CSYNC-2
CSYNC-3
CSYNC-4
CSYNC-5
CSYNC-6
Figure 19-3 Non-standard composite sync signals
November.2001 ver1.0
63
HMS91C7134
Both the HCHG and the VCHG signals are combined and connected to the internal interrupt. Interrupt will be issued when
change is continuously detected like following table.
Mode change
Period
HSYNC
Due to this fast interrupt the S-correction can be set to a safe level
before any damage to the deflection circuitry will occur.
Interval between mode change and interrupt
HPnew < HPpre
HPnew x 61 to (4 x HPnew x 15) - (n x HPpre)
HPnew > HPpre
(4 x HPnew) x 3 - (n x HPpre)
To Static State
(4 x HPnew) x 3 - (n x HPpre)
POS => NEG
60 HSYNC lines
NEG => POS
60 HSYNC lines
VPnew < VPpre
(VPnew x 2 + VPprev) to (Vnew x 3)
VPnew > VPpre
(VPnew) to (VPnew x 2)
To Static State
(VPnew) to (VPnew x 2)
POS => NEG
3 VSYNC lines
NEG => POS
2 VSYNC lines
Polarity
Period
VSYNC
Polarity
Table 19-3 Time interval between mode change and interrupt
Internally there are two 12-bit counter for HSYNC and VSYNC
period check , HSYNC counter count up from 0 to 4096 for 4
HSYNC lines according to 12MHz clock, and VSYNC counter
count up from 0 to 4096 for one VSYNC line according to
64
125KHz clock. For HSYNC static state that HSYNC frequency
is under 12KHz, counter value is more than 4080 value,and for
VSYNC static state that VSYNC frequency is under 32Hz,
counter value is more than 4080 value.
November.2001 ver1.0
HMS91C7134
19.7 Horizontal sync. generator
This block generates horizontal sync pulses with positive polarity.This can be done in 3 modes, selectable with HPG. When HPG
is 00, the generator operates in the free running mode and the generated pulse repetition period equals HF x 1/12 MHz clock period, where HF is a 10 bit value. As a result the frequency of the
HPG[1:0]
free running output sync pulse equals 12 x 106 / HF, with about
12 kHz as lower boundary.When HPG is 01, the input sync pulse
is followed and a substitution pulse is inserted. In case HPG
equals 11, the inputsync pulse is followed but a substitution pulse
is disabled, while the incoming sync is missing.
Selected mode
00
Free running mode
Period time of horizontal pulse generator (= HF)
01
The same pulse as the input horizontal sync
Substitution pulse insertion in case of a missing sync pulse
10
Reserved
11
The same pulse as the input horizontal sync
No substitution pulse insertion in case of a missing sync pulse
Table 19-4 Modes of the horizontal pulse generator
HOPW[4:0]
Selected mode
00000
2 x 83 ns
00001
3 x 83 ns
00010
4 x 83 ns
-------
Incremented by 83ns (1/12 x 10-6 )
11101
31 x 83 ns
11110
32 x 83 ns
11111
33 x 83 ns
Table 19-5 Free running horizontal sync pulse width
Example Program; Freerun mode
;================================================================
;
Free running
;================================================================
SetFreeRunning:
lcall
SetVcp
SetFreeRunning1:
mov
A, #01000100b
; rising Edge Interrupt
mov
MDCON, A
;
mov
HFH,#00101110b
; Hf = 64.6 kHz
mov
HFL,#01010000b
; HOPW[10000]
mov
VFH,#01000010b
; Vf = 60 Hz
mov
VFL,#11001000b
; VOPW[1000]
mov
CPGEN,#11100000b
; White Picture Clamping and Pattern
mov
A, #01000000b
; Negative Hsync, Positive Vsync free-run
mov
HVGEN, A
;
lcall
DpmsHLinearity
;
ret
November.2001 ver1.0
65
HMS91C7134
19.8 Vertical sync. generator
This block generates vertical sync pulses with positive polarity.
This can be done in 3 modes, selectable with VPG. When VPG is
00, the generator operates in the free running mode and the generated pulse repetition period equals VF x HF x 1/12 MHz clock
period, where VF is a 12 bit value. As a result the frequency of
VPG[1:0]
the free running output sync pulse equals 12 x 106 / HF / VF.
When VPG is 01, the input sync pulse is followed and a substitution pulse is inserted. In case VPG equals 11, the input sync pulse
is followed but a substitution pulse is disabled, while the incoming sync is missing.
Selected mode
00
Free running mode
Period time of vertical pulse generator (= VF)
01
The same pulse as the input horizontal sync
Substitution pulse insertion in case of a missing sync pulse
10
Reserved
11
The same pulse as the input vertical sync
No substitution pulse insertion in case of a missing sync pulse
Table 19-6 Modes of the vertical pulse generator
VOPW[3:0]
Selected mode
0000
2 x t H(free)
0001
3 x t H(free)
0010
4 x t H(free)
-------
Incremented by t H(free)
1101
15 x t H(free)
1110
16 x t H(free)
1111
17 x t H(free)
Table 19-7 Free running vertical sync pulse width
19.9 HSYNC / VSYNC output driver
This is output stage for HSYNCout and VSYNCout. It offers output selection, output enabling/disabling and output polarity selec-
66
tion. With HOPOL and VOPOL the output is selected.
November.2001 ver1.0
HMS91C7134
19.10 Clamp pulse generator
The clamp pulse is generated by setting CLMPEN and always accompanies the HSYNCout pulse, even in the free running mode.
This block generates a clamping pulse with programmable pulse
width, determined by CPW. It can be started at the front porch
(CFB reset) or at the back porch (CFB set), and the polarity can
be set with COPOL.
CPW[2:0]
Clamping pulse width
000(11)
5 x 83ns
001(11)
9 x 83ns
010(11)
13 x 83ns
011(11)
17 x 83ns
100(11)
21 x 83ns
101(11)
25 x 83ns
110(11)
29 x 83ns
111(11)
33 x 83ns
Table 19-8 Clamping pulse width
19.11 Pattern generator
This generator is used for test pattern generation when in free running mode.Four picture can be selected : a white, a cross hatch, a
balck and inverted cross hatch pictures.When not in free running
mode , the output is disabled. The pattern output can be used for
burn-in test or e.g. for quick servicing without the need of a video
source. The displayed pattern might look different in the different
timing modes,symmetric display is not guaranteed.
19.12 Suspend mode
The complete Sync processor can be set into a suspend mode for lowering the power consumption by means of signal MDDN.
MDDN
Mode
0
Sync. processor is running.(default)
1
Sync. processor is disabled.
Table 19-9 Suspend mode
7
6
5
4
3
2
1
0
MDDN
CLMPEN
PATEN
-
-
VINTE
HSEL
VSEL
Table 19-10 Mode detection control register.(MDCON : 0F1H)
November.2001 ver1.0
67
HMS91C7134
BIT
SYMBOL
FUNCTION
7
MDDN
0 : hardware mode detection operating normally(default)
1 : hardware mode detection disabled (low power consumption)
6
CLMPEN
5
PATEN
0 : clamp pulse out disabled(default)
1 : clamp pulse out enabled
0 : pattern out disabled(default)
1 : pattern out enabled
4 to 3
-
Not used
2
VINTE
Vsync rising or falling edge interrupt select
0: Vsync rising edge interrupt
1: Vsync falling edge interrupt
1
HSEL
0 : HSYNCin
1 : SOGin
0
VSEL
0 : VSYNCin
1 : separated VSYNC
Table 19-11 Description of the MDCON bits
7
6
5
4
3
2
1
0
-
VINT
HPRES
VPRES
HPOL
VPOL
HCHG
VCHG
Table 19-12 Mode detection status register(MDST : 0F2H)
BIT
SYMBOL
FUNCTION
7
-
Not used
6
VINT
Vsync interrupt flag
5
HPRES
Indicate the presence of Hsync
0 : not present (Hfreq < 12 kHz)
1 : present ( Hfreq ≥ 12 kHz)
4
VPRES
Indicate the presence of Vsync
0 : not present (Vfreq < 30 Hz)
1 : present ( Vfreq ≥ 30 Hz)
3
HPOL
2
VPOL
1
HCHG
0
VCHG
Indicate the polarity of Hsync/Csync :
0 : positive polarity
1 : negative polarity
Indicate the polarity of Vsync :
0 : positive polarity
1 : negative polarity
Indicate a change in horizontal period and/or polarity:
0 : no change
1 : change detected
Indicate a change in vertical period and/or polarity:
0 : no change
1 : change detected
Table 19-13 Description of the MDST bits
68
November.2001 ver1.0
HMS91C7134
7
6
5
4
3
2
1
0
VP11
VP10
VP9
VP8
VP7
VP6
VP5
VP4
Table 19-14 Vsync period low byte register (VPH : 0F3H)
7
6
5
4
3
2
1
0
HP11
HP10
HP9
HP8
HP7
HP6
HP5
HP4
Table 19-15 Hsync period low byte register (HPH : 0F4H)
7
6
5
4
3
2
1
0
VP3
VP2
VP1
VP0
HP3
HP2
HP1
HP0
Table 19-16 Vsync and Hsync period low high register (VHPL : 0F5H)
7
6
5
4
3
2
1
0
-
HOPOL
HPG1
HPG0
-
VOPOL
VPG1
VPG0
Table 19-17 Hsync and Vsync generation control register.(HVGEN : 0F9H)
BIT
SYMBOL
FUNCTION
7
-
Not used
6
HOPOL
Select polarity of the horizontal output pulse
0 : positive polarity
1 : negative polarity
5 to 4
HPG1
to
HPG0
Horizontal pulse output modes
00 : free running
01 : missing insertion
10 : reserved
11 : the same pulse as the incoming horizontal sync.
3
-
Not used
2
VOPOL
Select polarity of the vertical output pulse
0 : positive polarity
1 : negative polarity
1 to 0
VPG1
to
VPG0
Vertical pulse output modes
00 : free running
01 : missing insertion
10 : reserved
11 : the same pulse as the incoming vertical sync.
Table 19-18 Description of the HVGEN bits
November.2001 ver1.0
69
HMS91C7134
7
6
5
4
3
2
1
0
VF11
VF10
VF9
VF8
VF7
VF6
VF5
VF4
Table 19-19 Vsync free running output high byte register (VFH : 0FBH)
7
6
5
4
3
2
1
0
VF3
VF2
VF1
VF0
VOPW3
VOPW2
VOPW1
VOPW0
Table 19-20 Vsync free running output low byte register (VFL : 0FCH)
7
6
5
4
3
2
1
0
HF9
HF8
HF7
HF6
HF5
HF4
HF3
HF2
Table 19-21 Hsync free running output high byte register (HFH : 0FDH)
7
6
5
4
3
2
1
0
HF1
HF0
-
HOPW4
HOPW3
HOPW2
HOPW1
HOPW0
Table 19-22 Hsync free running output low byte register (HFL : 0FEH)
7
6
5
4
3
2
1
0
COPOL
CFB
CPW2
CPW1
CPW0
-
PATS1
PATS0
Table 19-23 Clamping and Pattern control register(CPGEN : 0FAH)
BIT
SYMBOL
FUNCTION
7
COPOL
Select the polarity or level of the clamping pulse:
0 : positive polarity when enabled, static low level when disabled
1 : negative polarity when enabled, static high level when disabled
6
CFB
Select the trigger moment of the clamping output pulse :
0 : clamp pulse after FRONT porch of horizontal sync
1 : clamp pulse after BACK porch of horizontal sync
CPW2 to CPW0
Clamp pulse width
-
Not used
PATS1 to PATS0
Select one of the following patterns :
00 : white picture
01 : cross hatch picture
10 : black picture
11 : inverse cross hatch picture
5 to 3
2
1 to 0
Table 19-24 Description of the CPGEN bits
70
November.2001 ver1.0
HMS91C7134
20. ANALOG-TO-DIGITAL CONVERTOR (ADC)
The analog to digital converter (A/D) allows conversion of an analog input to a corresponding 8-bit digital value. TheA/D module
has four analog inputs, which are multiplexed into one sample
and hold. The output of the sample and hold is the input into the
converter, which generates the result via successive approximation. The analog supply voltage is connected to VDD2 of ladder
resistance of A/D module.
The A/D module has two registers which are the control register
ACON and A/D result register ADAT. The register ACON,
shown in Table 17.1, controls the operation of the A/D converter
module. To use analog inputs, I/O is selected by P1SFS register.
The processing of conversion starts when the start bit ADST is set
to “1”. After one cycle, it is cleared by hardware. The register
ADAT contains the results of the A/D conversion. When conversion is completed, the result is loaded into the ADAT the A/D
conversion status bit ADSF is set to “1”.
The block diagram of the A/D module is shown in Fig. 17.1. The
A/D status bit ADSF is set automatically when A/D conversion is
completed, cleared when A/D conversion is in process. The conversion time takes maximum 13us (@12MHz)
Ladder
Resistor
Decoder
VDD2
ACH0
ACH1
ACH2
Input
MUX
Successive
Approximation
Circuit
S/H
ACH3
ACON
ADAT
INTERNAL BUS
Figure 20-1 A/D block diagram
November.2001 ver1.0
71
HMS91C7134
7
6
5
4
3
2
1
0
-
-
ADEN
-
ADS1
ADS0
ADST
ADSF
Table 20-1 ADC control register (ACON : 97H)
BIT
7 to 6
SYMBOL
FUNCTION
-
Reserved
5
ADEN
ADC enable bit
0 : ADC shut off and consumes no operating current
1 : enable ADC
4
-
Reserved
ADS1, ADS0
Analog channel select
1
0, 0
0, 1
1, 0
1, 1
ADST
0
ADSF
Channel0 (ACH0)
Channel1 (ACH1)
Channel2 (ACH2)
Channel3 (ACH3)
ADC start bit
0 : force to zero
1 : start an ADC; after one cycle, bit is cleared to “0”
ADC status bit
0 : A/D conversion is in process
1 : A/D conversion is completed, not in process
3 to 2
Table 20-2 Description of the ACON bits
7
6
5
4
3
2
1
0
ADAT7
ADAT6
ADAT5
ADAT4
ADAT3
ADAT2
ADAT1
ADAT0
Table 20-3 ADC data register (ADAT : 96H)
BIT
SYMBOL
7 to 6
ADAT7 to ADAT0
FUNCTION
A/D conversion result bit7 to bit0
Table 20-4 Description of the ADAT bits
72
November.2001 ver1.0
HMS91C7134
21. OPERATION MODE
21.1 OTP MODE
the program memory, the encryption table, and the security bits.
The circuit configuration and waveforms for quick pulse programming are shown in Figure 21-1 and Figure 21-2. Figure 213 shows the circuit configuration for normal program memory
verification.
The HMS97C7134 is programmed by using a modified QuickPulse Programming algorithm. The HMS97C7134 contains two
signature bytes that can be read and used by an EPROM programming system to identify the device. The signature bytes identify
the device as an manufactured by Hynix. Table 21-1 shows the
logic levels for reading the signature byte, and for programming
•Program / Verify algorithms
Any algorithm in agreement with the conditions listed in Table 21-1, and which satisfies the timing specifications is suitable.
MODE
RESET
P3.3
P3.5/
PROG
P3.2
1
1
INT0/
VPP
P2.7
P2.6
P3.7
P3.6
1
0
0
0
0
1
VPP
1
0
1
1
1
1
0
0
1
1
Read Signature
0
0
Program Code Data
0
0
Verify Code Data
0
0
Program Encryption Table
0
0
1
VPP
1
0
1
0
Program Lock Bit 1
0
0
1
VPP
1
1
1
1
Program Lock Bit 2
0
0
1
VPP
1
1
0
0
1
Table 21-1 EPROM programming modes
Note :
1. “0” = Valid low for that pin, “1”= Valid high for that pin.
2. VPP = 12.75V
3. VDD = 5V
0.25V
10% during programming and verification.
4. P3.5/PROG receives 10 programming pulses while VPP is held at 12.75V.
Each programming pulse is low for 100
( 10) and high for a minimum of 10
•Program Memory Lock Bits
The two-level Program Lock system consists of 2 Lock Bits and a 64-bytes Encryption Array which are used to protect the program memory against software piracy.
MODE
LB1
LB2
Protection Type
1
U
U
No program lock features
2
P
U
Further programming of the EPROM is disabled
3
P
P
Same as mode 2, also verify is disabled
U : unprogrammed, P : programmed
Table 21-2Lock Bit Protection Modes
November.2001 ver1.0
73
HMS91C7134
•Encryption Array
Within the EPROM array are 64bytes of Encryption Array that
are initially unprogrammed (all 1s). Every time that a byte addressed during a verify, address line are used to select a byte of
the Encryption array. This byte is then exclusive NOR-ed
(XNOR) with the code byte, creating an Encrypted Verify byte.
The algorithm, with the array in the unprogrammed state (all 1s),
will return the code in its original, unmodified form. It is recommended that whenever the Encryption Array is used, at least one
of the Lock Bits be programmed as well.
•Reading the Signature Bytes
The HMS97C7134 signature bytes in location 30H and 20H. To read these bytes follow the procedure for EPROM verify, except that P3.6
and P3.7 need to be pulled to a logic low.
Device
Location
Contents
30H
ADH
Manufacturer ID
20H
68H
Device ID
Remarks
HMS97C7132
Table 21-3 The Value
•Quick-pulse programming
The setup for micro-controller quick-pulse programming is
shown in Figure 21-2. Note that the HMS97C7134 is running
with a 4 to 6MHz oscillator. The reason the oscillator needs to be
running is that the device is executing internal address and program data transfers.
Encryption Table” levels. Do not forget that after the encryption
table is programmed, verification cycle will produce only encrypted data.
The address of the EPROM location to be programmed is applied
to port 1, 2 and VSYNCIN, as shown in Figure 21-1. The code
byte to be programmed into that location is applied to port 0. RESET, PSEN and pins of port2 and 3 in Table 21.1 are held at the
“Program Code Data” levels indicated in Table 21.1. The P3.5/
PROG is pulsed low 10 times as shown Figure 21-2.
To program the security bits, repeat the 10 pulses programming
sequence using the “Program Security Bit” levels. After one security bit is programmed, further programming of the code memory and encryption table is disabled. However, the other security
bit can still be programmed. Note that INT0/VPP pin must not be
allowed to go above the maximum specified VPP level for any
amount of time. Even a narrow glitch above that voltage can
cause permanent damage to the device.
To program the encryption table, repeat the 10 pulses programming sequence for address 0 through 3F H, using the “Program
The VPP source should be well regulated and free glitches and
overshoot.
74
November.2001 ver1.0
HMS91C7134
0
RESET
HSYNCIN
VSYNCIN
VDD1
P2.0
-P2.5
VSS1
P2.6
PGM DATA
A13 - A8
0
P2.7
1
P3.2/EA
1
P3.3/PSEN
0
P3.5/PROG
PULSE
XTAL2
XTAL1
A14
P0
P3.6
1
P3.7
1
VDD2
12.75 V
INT0/VPP
VSS2
P1
A7 - A0
Figure 21-1 Programming Configuration
10 PULSES
P3.5/PROG
Min 10µs
(
100µs 10
(
100µs 10
Enlarged View
Figure 21-2 PROG Waveform
November.2001 ver1.0
75
HMS91C7134
•Program Verification
If Lock Bit 2 has not been programmed, the on-chip program
memory can be read out for program verification. The address of
the program memory location to be read is applied to port 1, 2 and
VSYNCIN as shown in Figure 21-4. The other pins are held at
the “Verify Code Data” levels indicated in Table 21.1. The contents of the address location will be emitted on port 0 for this op-
0
RESET
eration. If the encryption table has been programmed, the data
presented at port 0 will be the exclusive NOR of the program byte
with one of the encryption bytes. The user will have to know the
encryption table contents in order to correctly decode the verification data. The encryption table itself cannot be read out.
HSYNCIN
VSYNCIN
VDD1
VSS1
XTAL2
XTAL1
10kΩ
PGM DATA
P0
P2.0
-P2.5
P2.6
A14
A13 - A8
0
P2.7
0
P3.2/EA
1
P3.3/PSEN
0
P3.5/PROG
1
P3.6
1
P3.7
1
VDD2
5V
INT0/VPP
VSS2
P1
A7 - A0
Figure 21-3 Verification Configuration
76
November.2001 ver1.0
HMS91C7134
EPROM Programming and Verification Characteristics
to 27 , Vcc = 5V + 10%,
TA = 21
Vss = 0V
Limit Values
Parameter
Symbol
Unit
Min
Max
Programming supply voltage
VPP
12.5
13.0
V
Programming supply current
IPP
-
50
mA
Oscillator frequency
1/tCLCL
4
6
MHz
Address setup to PROG low
tAVGL
48 tCLCL
-
-
Address hold after PROG
tGHAX
48 tCLCL
-
-
Data setup to PROG
tDVGL
48 tCLCL
-
-
Data hold after PROG
tGHDX
48 tCLCL
-
-
P2.7 (ENABLE) high to VPP
tEHSH
48 tCLCL
-
-
VPP setup to PROG
tSHGL
10
-
µs
VPP hold after PROG
tGHSL
10
-
µs
PROG width
tGLGL
90
110
µs
Address to data valid
tAVQV
-
48 tCLCL
-
ENABLE low to data valid
tELQV
-
48 tCLCL
-
Data float after ENABLE
tEHQZ
0
48 tCLCL
-
PROG high to PROG low
tGHGL
10
-
µs
PROGRAMMING
P1.0 - P1.7
P2.0 - P2.5
VSYNCIN
PORT0
tDVGL
tAVGL
ADDRESS
//
//
DATA IN
//
//
10 PULSES
P3.5/PROG
tGHGL
tSHGL
tGLGL
INT0/VPP
//
VERIFICATION
ADDRESS
tAVQV
DATA OUT
tGHDX
tGHAX
tGHSL
//
tEHSH
tELQV
tEHQZ
//
P2.7(ENABLE)
Figure 21-4 EPROM Programming and Verification
November.2001 ver1.0
77
HMS91C7134
1
N .C
2
VDD1
3
V S S1
4
X TA L2
5
X TA L1
6
B P 2 .7
7
B P 2 .6
8
S D A 2* * /P 1 .7
9
S C L 2 * * /P 1 .6
10
B P 2 .5
11
B P 2 .4
P 3 .0
P 3 .1
D P W M 0 * /P 2 .0
D P W M 1 * /P 2 .1
P W M 0 * /P 2 .2
EAN
ALE
P S EN N
V S YN C
IN
H SY N C
IN
P W M 1 * /P 2 .3
P W M 2 * /P 2 .4
62
61
60
59
58
57
56
55
54
53
52
R ES ET
64
N .C
63
21.2 64MQFP pinning and Package Dimensions
51
P W M 3 * /P 2 .5
50
N .C
49
N .C
48
N .C
47
P W M 4 * /P 2 .6
46
P W M 5 * /P 2 .7
45
H S Y N C O U T /P 3 .2
44
V S Y N C O U T /P 3 .3
43
P W M 6 * /P 3 .4 /IN T 1
42
B P 2 .0
41
B P 2 .1
12
40
C L A M P /P W M 7 /P 3 .5 /P R O G
P 0 .7
13
39
P A T O U T /P 3 .6
P 0 .6
14
38
S O G I N /P 3 .7
P 0 .5
15
37
R STO U T
P 0 .4
16
36
VDD2
N .C
17
35
V S S2
N .C
18
34
N .C
N .C
19
33
N .C
31
32
SCL1
* * /P 1 .0
30
A C H 0 /P 1 .2
S D A *1* /P 1 .1
29
26
B P 2 .2
A C H 1 /P 1 .3
25
B P 2 .3
28
24
P 0 .0
A C H 2 /P 1 .4
23
P 0 .1
27
22
P 0 .2
A C H 3 /P 1 .5
21
20
IN T 0 /V P P
P 0 .3
H M S97C 7132
YYW W
NOTE
1. DIMENSIONS DO NOT INCLUDE MOLD PROTRUSION AND
DAMBAR PROTRUSION.
ALLOWABLE MOLD PROTRUSION IS 0.254mm.
ALLOWABLE DAMBAR PROTRUSION SHALL BE 0.08mm
TOTAL AT MAXIMUM MATERIAL CONDITION.
2. FORMED LEAD SHALL BE PLANAR WITH RESPECT ANOTHER
WITHIN 0.10mm
3. CONTROLLING DIMENSION : MILLIMETER.
THIS OUTLINE CONFIRMS TO JEDEC PUBLICATION 95
RESISTRATION MO-112.
3.18 MAX
78
November.2001 ver1.0
HMS91C7134
21.3 64MQFP Pin Description
PIN NAME
(Alternate)
N.C
Pin
No.
In/Out
(Alternate)
1
-
Function
Basic
Alternate
No connection
N.C
2
-
No connection
VDD1
3
-
Power supply1(+5V)
VSS1
4
-
Ground1
XTAL2
5
O
Oscillator output pin for system clock
XTAL1
6
I
Oscillator input pin for system clock
BP2.7
7
I/O
External Access / Emulation port2.7
BP2.6
8
I/O
External Access / Emulation port2.6
SDA2 /P1.7
9
I/O
General I/O port P1.7
I2C serial data I/O port
SCL2 /P1.6
10
I/O
General I/O port P1.6
I2C serial clock I/O port
BP2.5
11
I/O
External Access / Emulation port2.5
BP2.4
12
I/O
External Access / Emulation port2.4
P0.7
13
I/O
General I/O port P0.7; adapted for LED driver
P0.6
14
I/O
General I/O port P0.6; adapted for LED driver
P0.5
15
I/O
General I/O port P0.5
P0.4
16
I/O
General I/O port P0.4
N.C
17
-
No connection
N.C
18
-
No connection
N.C
19
-
No connection
INT0 /VPP
20
I
External interrupt input0; Programming supply voltage (during OTP programming)
P0.3
21
I/O
General I/O port P0.3
P0.2
22
I/O
General I/O port P0.2
P0.1
23
I/O
General I/O port P0.1
P0.0
24
I/O
General I/O port P0.0
BP2.3
25
I/O
External Access / Emulation port2.3
BP2.2
26
I/O
External Access / Emulation port2.2
ACH3 /P1.5
27
I/O
General I/O port P1.5
ADC channel3 input
ACH2 /P1.4
28
I/O
General I/O port P1.4
ADC channel2 input
ACH0 /P1.3
29
I/O
General I/O port P1.3
ADC channel1 input
ACH0 /P1.2
30
I/O
General I/O port P1.2
ADC channel0 input
SDA1 /P1.1
31
I/O
General I/O port P1.1
I2C serial data I/O port for DDC interface
SCL1 /P1.0
32
I/O
General I/O port P1.0
I2C serial clock I/O port for DDC interface
N.C
33
-
No connection
N.C
34
-
No connection
VSS2
35
-
Ground2
VDD2
36
-
Power supply2(+5V)
RSTOUT
37
O
RESET or Internal reset out / EH-IC reset signal; active High
SOGin /P3.7
38
I/O
General I/O port P3.7
Sync on Green input
Table 21-4 Port Function Description(64MQFP)
November.2001 ver1.0
79
HMS91C7134
Function
Pin
No.
In/Out
(Alternate)
PATOUT /P3.6
39
I/O
General I/O port P3.6
Pattern out
CLAMP /PWM7 /
P3.5 /PROG
40
I/O
General output only port P3.5
Program pulse input(during OTP
programming)
Clamp out ; 8-bit Pulse Width Modulation
output7
BP2.1
41
I/O
External Access / Emulation port2.1
BP2.0
42
I/O
External Access / Emulation port2.0
PWM6 /P3.4
INT1
43
I/O
General I/O port P3.4
8-bit Pulse Width Modulation output6; External
interrupt input1
VSYNCout /P3.3
44
I/O
General I/O port P3.3
Vertical sync output
PIN NAME
(Alternate)
Basic
Alternate
HSYNCout /P3.2
45
I/O
General I/O port P3.2
Horizontal sync output
PWM5 /P2.7
46
I/O
General I/O port P2.7
8-bit Pulse Width Modulation output5
PWM4 /P2.6
47
I/O
General I/O port P2.6
8-bit Pulse Width Modulation output4
N.C
48
-
No connection
N.C
49
-
No connection
N.C
50
-
No connection
PWM3 /P2.5
51
I/O
General I/O port P2.5
8-bit Pulse Width Modulation output3
PWM2 /P2.4
52
I/O
General I/O port P2.4
8-bit Pulse Width Modulation output2
PWM1 /P2.3
53
I/O
General I/O port P2.3
8-bit Pulse Width Modulation output1
HSYNCin
54
I
Horizontal sync input
VSYNCin
55
I
PSENN
56
I/O
Program Store Enable Not / Emulation PSEN
Vertical sync input
ALE
57
I/O
Address Latch Enable / Emulation ALE
EAN
58
I/O
External Access Not / Emulation EA
PWM0 /P2.2
59
I/O
General I/O port P2.2
8-bit Pulse Width Modulation output0
DPWM0 /P2.1
60
I/O
General I/O port P2.1
8-bit Dynamic Pulse Width Modulation output0
8-bit Dynamic Pulse Width Modulation output1
DPWM0 /P2.0
61
I/O
General I/O port P2.0
P3.1
62
I/O
General I/O port P3.1
P3.0
63
I/O
RESET
64
I
General I/O port P3.0
Reset input
Table 21-4 Port Function Description(64MQFP)
80
November.2001 ver1.0
HMS91C7134
21.4 Development Tools
The HMS9xC7134 is supported by a full-featured macro assembler / linker , an in-circuit emulator MetaICETM.
Product
Developer
An agency in Korea
In Circuit Emulators
MetaICE
zeusemtek(www.emtek.co.kr)
Compiler
KEIL C51 Compiler, A51/A251 Assembler/Linker
Debugger
XHP3051.exe (Source-level Debugging)
PC
RS-232
MetaLink
iceMASTER-SF
POWER
Hankook MDS(www.hkmds.com)
CONVERTER
POD
Monitor
Board
Emulator
Figure 21-5 Developement system Hardware Blockdiagram
November.2001 ver1.0
81
HMS91C7134
22. INSTRUCTION SET
The HMS9xC7134 uses a powerful instruction set which permits
the expansion of on-chip CPU peripherals and optimizes byte efficiency and execution speed. Assigned opcodes add new highpower operation and permit new addressing modes.
The instruction set consists of 49 single-byte, 46 two-byte and 16
three-byte instructions. When using a 12MHz oscillator, 64 in-
structions execute in 1us and 45 instructions execute in 2us. Multiply and divide instructions execute in 4 us.
For the description of the Date Addressing modes and Hexadecimal opcode cross-reference see Boolean variable manipulation,Program brranching.
•Arithmatic operations
Mnemonic
Description
Bytes
Cycles
Hex Code
ADD
A, Rn
add register to A
1
1
2x
ADD
A, direct
add direct byte to A
2
1
25
ADD
A, @Ri
add indirect RAM to A
1
1
26,27
ADD
A, #data
add immediate data to A
2
1
24
ADDC
A, Rn
add register to A with carry flag
1
1
3x
ADDC
A, direct
add direct byte to A with carry flag
2
1
35
ADDC
A, @Ri
add indirect RAM to A with carry flag
1
1
36,37
ADDC
A, #data add immediate data to A with carry flag
2
1
34
SUBB
A, Rn
subtract register from A with borrow
1
1
9x
SUBB
A, direct
subtract direct byte from A with borrow
2
1
95
SUBB
A, @Ri
subtract indirect RAM from A with borrow
1
1
96,97
A, #data
SUBB
subtract immediate data from A with borrow
1
1
94
INC
A
increment A
1
1
04
INC
Rn
increment register
1
1
0x
INC
direct
increment direct byte
INC
@Ri
increment indirect RAM
1
1
06,07
DEC A
decrement A
1
1
14
DEC Rn
decrement Rn
1
1
1x
DEC direct
decrement direct byte
2
1
15
DEC @Ri
decrement indirect RAM
1
1
16,17
INC
increment data pointer
1
2
A3
MUL AB
multiply A and B
1
4
A4
DIV
AB
divide A by B
1
4
84
DA
A
decimal adjust A
1
1
D4
82
DTPR
November.2001 ver1.0
HMS91C7134
•Logical operations
Mnemonic
Description
Bytes
Cycles
Hex Code
ANL
A, Rn
AND register to A
1
1
5x
ANL
A, direct
AND direct byte to A
2
1
55
ANL
A, @Ri
AND indirect RAM to A
1
1
56,57
ANL
A, #data
AND immediate data to A
2
1
54
ANL
direct, A
AND A to direct byte
2
1
52
ANL
direct, #data
AND immediate data to direct byte
3
2
53
ORL
A, Rn
OR register to A
1
1
4x
ORL
A, direct
OR direct byte to A
2
1
45
ORL
A, @Ri
OR indirect RAM to A
1
1
46,47
ORL
A, #data
OR immediate data to A
2
1
44
ORL
direct, A
OR A to direct byte
2
1
42
ORL
direct, #data
OR immediate data to direct byte
3
2
43
XRL
A, Rn
exclusive-OR register to A
1
1
6x
XRL
A, direct
exclusive-OR direct byte to A
2
1
65
XRL
A, @Ri
exclusive-OR indirect RAM to A
2
1
66,67
XRL
A, #data
exclusive-OR immediate data to A
2
1
64
XRL
direct, A
exclusive-OR A to direct byte
2
1
62
XRL
direct, #data
exclusive-OR immediate data to direct byte
3
2
63
CLR
A
clear A
1
1
E4
CPL
A
complement A
1
1
F4
RL
A
rotate A left
1
1
23
RLC
A
rotate A left through the carry flag
1
1
33
RR
A
rotate A right
1
1
03
RRC
A
rotate A right through the carry flag
1
1
13
swap nibbles within A
1
1
C4
SWAP A
•Data transfer
Mnemonic
Description
Bytes
Cycles
Hex Code
MOV
A, Rn
move register to A
1
1
Ex
MOV
A, direct
move direct byte to A
2
1
E5
MOV
A, @Ri
move indirect RAM to A
1
1
E6,E7
MOV
A, #data
move immediate data to A
2
1
74
MOV
Rn, A
move A to register
1
1
Fx
MOV
Rn, direct
move direct byte to register
2
2
Ax
MOV
Rn, #data
move immediate data to register
2
1
7x
MOV
direct, A
move A to direct byte
2
1
F5
MOV
direct, Rn
move register to direct byte
2
2
8x
MOV
direct, direct
move direct byte to direct byte
3
2
85
November.2001 ver1.0
83
HMS91C7134
Mnemonic
Description
Bytes
Cycles
Hex Code
MOV
direct, @Ri
move indirect RAM to direct byte
2
2
86,87
MOV
direct, #data
move immediate data to direct byte
3
2
75
MOV
@Ri, A
move A to indirect RAM
1
1
F6,F7
MOV
@Ri, direct
move direct byte to indirect RAM
2
2
A6,A7
MOV
@Ri, #data
move immediate data to indirect RAM
2
1
76,77
MOV DPTR, #data16 load data pointer with a 16-bit constant
3
2
90
MOVC A, @A+DPTR
move code byte relative to DPTR to A
1
2
93
MOVC A, @A+C
move code byte relative to PC to A
1
2
83
MOVX
A, @Ri
move external RAM (8-bit address) to A
1
2
E2,E3
MOVX
A, @DPTR
move external RAM (16-bit address) to A
1
2
E0
MOVX
@Ri, A
move A to external RAM (8-bit address)
1
2
F2,F3
MOVX
@DPTR, A
move A to external RAM (16-bit address)
1
2
F0
PUSH
direct
push direct byte onto stack
2
2
C0
POP
direct
pop direct byte from stack
2
2
D0
XCH
A, Rn
exchange register with A
1
1
Cx
XCH
A, direct
exchange direct byte with A
2
4
C5
XCH
A, @Ri
exchange indirect RAM with A
1
1
C6,C7
XCHD
A, @Ri
exchange LOW-order digit indirect RAM with A
1
1
D6,D7
•Boolean variable manipulation
Mnemonic
Description
Bytes
Cycles
Hex Code
CLR
C
clear carry flag
1
1
C3
CLR
bit
clear direct bit
2
1
C2
SETB C
set carry flag
1
1
D3
SETB bit
set direct bit
2
1
D2
CPL
C
complement carry flag
1
1
B3
CPL
bit
complement direct bit
2
1
B2
ANL
C, bit
AND direct bit to carry flag
2
1
82
ANL
C, /bit
AND complement of direct bit to carry flag
2
2
B0
OR direct bit to carry flag
2
2
72
OR
C, bit
OR
C, /bit
OR complement of direct bit to carry flag
2
2
A0
MOV C, bit
move direct bit to carry flag
2
1
A2
*MOV bit, C
move carry flag to direct bit
2
2
92
JC
jump if carry flag is set
2
2
40
JNC rel
jump if carry flag is not set
2
2
50
JB
jump if direct bit is set
3
2
20
JNB bit, rel
jump if direct bit is not set
3
2
30
JBC bit, rel
jump if direct bit is set and clear bit
3
2
10
rel
bit, rel
Note: * This command is not available under OTP Emulation Mode
84
November.2001 ver1.0
HMS91C7134
•Program branching
Mnemonic
Description
Bytes
Cycles
Hex Code
ACALL
addr11
absolute subroutine call
2
2
y1
LCALL
addr16
long subroutine call
3
1
12
return from subroutine
1
2
22
RET
RETI
return from interrupt
2
2
32
AJMP
addr16
absolute jump
2
2
z1
LJMP
addr16
long jump
3
2
02
SJMP
addr16
short jump(relative address)
2
2
80
JMP
@A+DPTR
jump indirect relative to the DPTR
1
2
73
JZ
rel
jump if A is zero
2
2
60
JNZ
rel
jump if A is not zero
2
2
70
CJNE
A, direct, rel
compare direct byte to A and jump if not equal
3
2
B5
CJNE
A, #data, rel
compare immediate data to A and jump if not equal
3
2
B4
CJNE
Rn, #data, rel compare immediate data to register and jump if not 3
equal
2
Bx
CJNE
A, @Ri, rel
compare immediate data to indirect RAM and jump if 3
not equal
2
B6,B7
DJNZ
Rn, rel
decrement register and jump if not zero
2
2
Dx
DJNZ
direct, rel
decrement direct byte and jump if not zero
3
2
D5
no operation
1
1
00
NOP
•Data addressing modes
Mnemonic
Description
Rn
working register R0-R7
direct
128 internal RAM locations and any special function register (SFR)
@Ri
indirect internal RAM location addressed by register by register R0 or R1 of the actual register
bank
#data
8-bit constant included in instruction
#data16
16-bit constant included as bytes 2 and 3 of instruction
bit
direct addressed bit in internal RAM or SFR
addr16
16-bit destination address. Used by LCALL and LJMP;
the branch will be anywhere within the 64 kbytes Program Memory address space
addr11
111-bit destination address. Used by ACALL and AJMP;the branch will be within the
rel
signed(two°Øs complement) 8-bit offset byte. Used by SJMP and all conditional jumps;
same 2 kbytes page of Program Memory as the first byte of the following instruction
range is - 128 to + 127 bytes relative to first byte of the following instruction
November.2001 ver1.0
85
HMS91C7134
•Hexadecimal opcode cross-reference
Mnemonic
Description
x
8, 9, A, B, C, D, E, F
y
1, 3, 5, 7, 9, B, D, F
z
0, 2, 4, 6, 8, A, C, E
86
November.2001 ver1.0