8-Bit Microcontroller With Full Speed USB Device AT83C5134 AT83C5135 AT83C5136
8-Bit Microcontroller With Full Speed USB Device AT83C5134 AT83C5135 AT83C5136
8-Bit Microcontroller With Full Speed USB Device AT83C5134 AT83C5135 AT83C5136
1. Description
AT83C5134/35/36 are high performance ROM versions
of the 80C51 single-chip 8-bit microcontrollers with full
speed USB functions.
AT83C5134/35 is pin compatible with AT89C5130A 16-
Kbytes In-System Programmable Flash microcontrollers.
This allows to use AT89C5130A for development, pre-production and flexibility, while using
AT83C5134/35 for cost reduction in mass production. Similarly AT83C5136 is pin compatible
with AT89C5131A 32-Kbytes Flash microcontroller.
AT83C5134/35/36 features a full-speed USB module compatible with the USB specifications
Version 2.0. This module integrates the USB transceivers and the Serial Interface Engine (SIE)
with Digital Phase Locked Loop and 48 MHz clock recovery. USB Event detection logic (Reset
and Suspend/Resume) and FIFO buffers supporting the mandatory control Endpoint (EP0) and
5 versatile Endpoints (EP1/EP2/EP3/EP4/EP5) with minimum software overhead are also part of
the USB module.
AT83C5134/35/36 retains the features of the Atmel 80C52 with extended ROM cpacity (8/16/32
Kbytes), 256 bytes of internal RAM, a 4-level interrupt system, two 16-bit timer/counters (T0/T1),
a full duplex enhanced UART (EUART) and an on-chip oscillator.
In addition, AT83C5134/35/36 has an on-chip expanded RAM of 1024 bytes (ERAM), a dual-
data pointer, a 16-bit up/down Timer (T2), a Programmable Counter Array (PCA), up to 4 pro-
grammable LED current sources, a programmable hardware watchdog and a power-on reset.
AT83C5134/35/36 has two software-selectable modes of reduced activity for further reduction in
power consumption. In the idle mode the CPU is frozen while the timers, the serial ports and the
interrupt system are still operating. In the power-down mode the RAM is saved, the peripheral
clock is frozen, but the device has full wake-up capability through USB events or external
interrupts.
2 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
3. Block Diagram
MISO
MOSI
SCK
VSS
T2EX
CEX
VDD
SS
RxD
TxD
ECI
SDA
SCL
T2
(1) (1) (1) (1) (1) (1) (1) (1)
(2) (2)
XTAL1
XTAL2 ERAM EEPROM*
EUART RAM 32Kx8 ROM 1Kx8 1Kx8
+ PCA Timer2 TWI SPI
BRG 256x8 TWI interface
ALE C51
CORE
PSEN
CPU
EA
(2) Timer 0 INT Parallel I/O Ports & Ext. Bus Key Watch USB
RD
Timer 1 Ctrl Board Dog
(2) Port 0 Port 1 Port 2 Port 3 Port 4
WR
P2
P3
P0
RST
T0
T1
P4
INT0
INT1
KIN
D+
D-
* EEPROM only available in MLF48
Notes: 1. Alternate function of Port 1
2. Alternate function of Port 3
3. Alternate function of Port 4
3
7683CUSB11/07
4. Pinout Description
4.1 Pinout
P1.5/CEX2/KIN5/MISO
P1.7/CEX4/KIN7/MOSI
P1.6/CEX3/KIN6/SCK
P1.1/T2EX/KIN1/SS
P1.3/CEX0/KIN3
P1.4/CEX1/KIN4
P1.2/ECI/KIN2
P1.0/T2/KIN0
P4.1/SDA
P0.0/AD0
P2.2/A10
P4.0/SCL
P2.1/A9
P2.0/A8
NC
NC
64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49
NC 1 48 NC
P2.3/A11 2 47
NC
P2.4/A12 3 46 P0.1/AD1
P2.5/A13 4 45 P0.2/AD2
XTAL2 5 44
RST
XTAL1 6 43 P0.3/AD3
P2.6/A14 7 42 VSS
P2.7/A15 8 41 NC
9
VQFP64 40
VDD P0.4/AD4
AVDD 10 39
P3.7/RD/LED3
NC 11 38 P0.5/AD5
AVSS 12 37 P0.6/AD6
NC 13 36 P0.7/AD7
P3.0/RxD 14 35 P3.6/WR/LED2
NC 15 34 NC
NC 16 33 NC
17 18 19 20 21 22 23 24 25 26 27 28 29 30 3132
NC
P3.5/T1/LED1
NC
NC
NC
P3.3/INT1/LED0
ALE
PSEN
P3.4/T0
VREF
EA
P3.1/TxD
PLLF
D-
D+
P3.2/INT0
4 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
P1.5/CEX2/KIN5/MISO
P1.7/CEX4/KIN7/MOSI
P1.6/CEX3/KIN6/SCK
P1.1/T2EX/KIN1/SS
P1.4/CEX1/KIN4
P1.3/CEX0/KIN3
P1.2/ECI/KIN2
P4.0/SCL
P0.0/AD0
P2.2/A10
P2.1/A9
P2.0/A8
48 47 46 45 44 43 42 41 40 39 38 37
P4.1/SDA 1 36 P1.0/T2/KIN0
P2.3/A11 2 35 P0.1/AD1
P2.4/A12 3 34 P0.2/AD2
P2.5/A13 4 33 RST
XTAL2 5 32 P0.3/AD3
XTAL1 6 31 VSS
P2.6/A14 7 30 P0.4/AD4
P2.7/A15 8
MLF48
29 P3.7/RD/LED3
VDD 9 28 P0.5/AD5
AVDD 10 27 P0.6/AD6
AVSS 11 26 P0.7/AD7
P3.0/RxD 12 25 P3.6/WR/LED2
13 14 15 16 17 18 19 20 21 22 23 24
P3.5/T1/LED1
ALE
VREF
P3.2/INT0
PSEN
P3.1/TxD
P3.3/INT1/LED0
D-
P3.4/T0
EA
D+
PLLF
P1.5/CEX2/KIN5/MISO 1 28 P1.4/CEX1/KIN4
P1.6/CEX3/KIN6/SCK 2 27 P1.3/CEX0/KIN3
P1.7/CEX4/KIN7/MOSI 3 26 P1.2/ECI/KIN2
P4.0/SCL 4 25 P1.1/T2EX/KIN1/SS
P4.1/SDA 5 SO28 24 P1.0/T2/KIN0
XTAL2 6 23 RST
XTAL1 7 22 VSS
VDD 8 21 P3.7/RD/LED3
AVSS 9 20 P3.6/WR/LED2
P3.0/RxD 10 19 P3.5/T1/LED1
PLLF 11 18 P3.4/T0
D- 12 17 P3.3/INT1/LED0
D+ 13 16 P3.2/INT0
VREF 14 15 P3.1/TxD
5
7683CUSB11/07
Figure 4-4. AT83C5134/35/36 32-pin QFN Pinout
P1.7/CEX4/KIN7/MOSI
P1.5/CEX2/KIN5/MISO
P1.6/CEX3/KIN6/SCK
P1.1/T2EX/KIN1/SS
P1.3/CEX0/KIN3
P1.4/CEX1/KIN4
P1.2/ECI/KIN2
P4.0/SCL
32 31 30 29 28 27 26 25
P4.1/SDA 1 24 P1.0/T2/KIN0
XTAL2 2 23 RST
XTAL1 3 22 NC
VDD 4 21 VSS
AVDD 5
QFN32 20 VSS
AVSS 6 19 P3.7/RD/LED3
P3.0/RxD 7 18 P3.6/WR/LED2
PLLF 8 17 P3.5/T1/LED1
9 10 11 12 13 14 15 16
D+
VREF
UVSS
D-
P3.2/INT0
P3.1/TxD
P3.3/INT1/LED0
P3.4/T0
Note : The metal plate can be connected to Vss
4.2 Signals
All the AT83C5134/35/36 signals are detailed by functionality on Table 4-1 through Table 4-12.
Table 4-1. Keypad Interface Signal Description
Signal Alternate
Name Type Description Function
P1.3
Capture External Input
P1.4
CEX[4:0] I/O P1.5
Compare External Output
P1.6
P1.7
6 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Serial Input
RxD I P3.0
The serial input for Extended UART. This I/O is 5 Volt Tolerant.
Serial Output
TxD O P3.1
The serial output for Extended UART. This I/O is 5 Volt Tolerant.
7
7683CUSB11/07
Table 4-6. TWI Signal Description
Signal Alternate
Name Type Description Function
SS I/O SS: SPI Slave Select . This I/O is 5 Volt tolerant P1.1
MISO I/O When SPI is in master mode, MISO receives data from the slave peripheral. When P1.5
SPI is in slave mode, MISO outputs data to the master controller. This I/O is 5 Volt
tolerant
Port 0
P0 is an 8-bit open-drain bidirectional I/O port. Port 0 pins that
P0[7:0] I/O have 1s written to them float and can be used as high AD[7:0]
impedance inputs. To avoid any parasitic current consumption,
Floating P0 inputs must be pulled to VDD or VSS.
KIN[7:0]
T2
Port 1
P1[7:0] I/O T2EX
P1 is an 8-bit bidirectional I/O port with internal pull-ups.
ECI
CEX[4:0]
Port 2
P2[7:0] I/O A[15:8]
P2 is an 8-bit bidirectional I/O port with internal pull-ups.
8 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Signal
Name Type Description Alternate Function
LED[3:0]
RxD
TxD
Port 3 INT0
P3[7:0] I/O INT1
P3 is an 8-bit bidirectional I/O port with internal pull-ups.
T0
T1
WR
RD
Port 4 SCL
P4[1:0] I/O
P4 is an 2-bit open port. SDA
9
7683CUSB11/07
Signal Alternate
Name Type Description Function
Read Signal
RD I/O Read signal asserted during external data memory read operation. P3.7
Control input for slave port read access cycles.
Write Signal
WR I/O Write signal asserted during external data memory write operation. P3.6
Control input for slave write access cycles.
Reset
Holding this pin low for 64 oscillator periods while the oscillator is running resets
the device. The Port pins are driven to their reset conditions when a voltage lower
than VIL is applied, whether or not the oscillator is running.
This pin has an internal pull-up resistor which allows the device to be reset by
RST I/O -
connecting a capacitor between this pin and VSS.
Asserting RST when the chip is in Idle mode or Power-down mode returns the chip
to normal operation.
This pin is set to 0 for at least 12 oscillator periods when an internal reset occurs
(hardware watchdog or Power monitor).
Alternate Ground
AVSS GND -
AVSS is used to supply the on-chip PLL and the USB PAD.
Digital Ground
VSS GND -
VSS is used to supply the buffer ring and the digital core.
10 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
5. Typical Application
VDD
VDD
AVDD
1.5K
USB VRef
VBUS AT83C5134/35/3
27R
D+ D+
XTAL1
27R 22pF
D- D-
Q
22pF
GND
XTAL2 VSS
VSS
PLLF
AVSS
VSS
560
150pF
820pF
VSS VSS
VSS
11
7683CUSB11/07
5.2 PCB Recommandations
VRef
D+
D-
USB Connector
AVss PLLF
Components must be
close to the
C1
C2
R
microcontroller
12 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
6. Clock Controller
6.1 Introduction
The AT83C5134/35/36 clock controller is based on an on-chip oscillator feeding an on-chip
Phase Lock Loop (PLL). All the internal clocks to the peripherals and CPU core are generated
by this controller.
The AT83C5134/35/36 X1 and X2 pins are the input and the output of a single-stage on-chip
inverter (see Figure 6-1) that can be configured with off-chip components as a Pierce oscillator
(see Figure 6-2). Value of capacitors and crystal characteristics are detailed in the section DC
Characteristics.
The X1 pin can also be used as input for an external 48 MHz clock.
The clock controller outputs three different clocks as shown in Figure 6-1:
a clock for the CPU core
a clock for the peripherals which is used to generate the Timers, PCA, WD, and Port
sampling clocks
a clock for the USB controller
These clocks are enabled or disabled depending on the power reduction mode as detailed in
Section Power Management, page 135.
2 0 Peripheral
Clock
1
CPU Core
Clock
X2 IDL
CKCON.0 PCON.0
PLL
X1 0
USB
1 Clock
X2
EXT48 PD
PLLCON.2 PCON.1
6.2 Oscillator
Two clock sources are available for CPU:
Crystal oscillator on X1 and X2 pins: Up to 32 MHz
External 48 MHz clock on X1 pin
13
7683CUSB11/07
In order to optimize the power consumption, the oscillator inverter is inactive when the PLL out-
put is not selected for the USB device.
X1
C1
Q
C2
VSS X2
6.3 PLL
PLLCON.1 PLLF
PLLEN
N divider
OSC Up
N3:0 Vref
CLOCK PFLD CHP VCO USB Clock
Down
PLOCK R divider
PLLCON.0
R3:0
USB
CLOCK
OSCclk ( R + 1 )
USBclk = ----------------------------------------------- USB Clock Symbol
N+1
14 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
R
C2
C1
VSS VSS
PLL
Programming
Configure Dividers
N3:0 = xxxxb
R3:0 = xxxxb
Enable PLL
PLLEN = 1
PLL Locked?
LOCK = 1?
3 MHz 16 1 F0h
6 MHz 8 1 70h
8 MHz 6 1 50h
12 MHz 4 1 30h
16 MHz 3 1 20h
18 MHz 8 3 72h
20 MHz 12 5 B4h
24 MHz 2 1 10h
15
7683CUSB11/07
Oscillator Frequency R+1 N+1 PLLDIV
32 MHz 3 2 21h
40 MHz 12 10 B9h
6.4 Registers
Table 6-2. CKCON0 (S:8Fh)
Clock Control Register 0
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
TWI Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low, this bit
7 TWIX2 has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Watchdog Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low, this bit
6 WDX2 has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Timer2 Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low, this bit
3 T2X2 has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Timer1 Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low, this bit
2 T1X2 has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Timer0 Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low, this bit
1 T0X2 has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
16 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
7 6 5 4 3 2 1 0
- - - - - - - SPIX2
Bit
Bit Number Mnemonic Description
Reserved
7-1 -
The value read from this bit is always 0. Do not set this bit.
SPI Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low, this bit
0 SPIX2 has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
Reserved
7-3 -
The value read from this bit is always 0. Do not set this bit.
7 6 5 4 3 2 1 0
R3 R2 R1 R0 N3 N2 N1 N0
Bit
Bit Number Mnemonic Description
17
7683CUSB11/07
7. SFR Mapping
The Special Function Registers (SFRs) of the AT83C5134/35/36 fall into the following
categories:
C51 core registers: ACC, B, DPH, DPL, PSW, SP
I/O port registers: P0, P1, P2, P3, P4
Timer registers: T2CON, T2MOD, TCON, TH0, TH1, TH2, TMOD, TL0, TL1, TL2, RCAP2L,
RCAP2H
Serial I/O port registers: SADDR, SADEN, SBUF, SCON
PCA (Programmable Counter Array) registers: CCON, CMOD, CCAPMx, CL, CH, CCAPxH,
CCAPxL (x: 0 to 4)
Power and clock control registers: PCON
Hardware Watchdog Timer registers: WDTRST, WDTPRG
Interrupt system registers: IEN0, IPL0, IPH0, IEN1, IPL1, IPH1
Keyboard Interface registers: KBE, KBF, KBLS
LED register: LEDCON
Two Wire Interface (TWI) registers: SSCON, SSCS, SSDAT, SSADR
Serial Port Interface (SPI) registers: SPCON, SPSTA, SPDAT
USB registers: Uxxx (17 registers)
PLL registers: PLLCON, PLLDIV
BRG (Baud Rate Generator) registers: BRL, BDRCON
Others: AUXR, AUXR1, CKCON0, CKCON1
18 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
The table below shows all SFRs with their address and their reset value.
Table 7-1. SFR Descriptions
Bit
Addressable Non-Bit Addressable
B LEDCON
F0h F7h
0000 0000 0000 0000
Reserved
The Special Function Registers (SFRs) of the AT89C5131 fall into the following categories:
19
7683CUSB11/07
Table 7-2. C51 Core SFRs
Mnemonic Add Name 7 6 5 4 3 2 1 0
B F0h B Register
Program Status
PSW D0h
Word
Stack Pointer
SP 81h
LSB of SPX
P0 80h Port 0
P1 90h Port 1
P2 A0h Port 2
P3 B0h Port 3
Timer/Counter 0 and 1
TCON 88h TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
control
Timer/Counter 0 and 1
TMOD 89h GATE1 C/T1# M11 M01 GATE0 C/T0# M10 M00
Modes
T2CON C8h Timer/Counter 2 control TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2# CP/RL2#
20 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Timer/Counter 2
RCAP2H CBh
Reload/Capture High byte
Timer/Counter 2
RCAP2L CAh
Reload/Capture Low byte
SCON 98h Serial Control FE/SM0 SM1 SM2 REN TB8 RB8 TI RI
BDRCON 9Bh Baud Rate Control BRR TBCK RBCK SPD SRC
CCON D8h PCA Timer/Counter Control CF CR CCF4 CCF3 CCF2 CCF1 CCF0
CMOD D9h PCA Timer/Counter Mode CIDL WDTE CPS1 CPS0 ECF
CCAPM
0
CCAPM DAh PCA Timer/Counter Mode 0 ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0
1
DBh PCA Timer/Counter Mode 1 ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1
CCAPM
DCh PCA Timer/Counter Mode 2 ECOM2 CAPP2 CAPN2 MAT2 TOG2 PWM2 ECCF2
2
DDh PCA Timer/Counter Mode 3 ECOM3 CAPP3 CAPN3 MAT3 TOG3 PWM3 ECCF3
CCAPM
3 DEh PCA Timer/Counter Mode 4 ECOM4 CAPP4 CAPN4 MAT4 TOG4 PWM4 ECCF4
CCAPM
4
21
7683CUSB11/07
Table 7-7. PCA SFRs
Mnemo-
nic Add Name 7 6 5 4 3 2 1 0
IEN0 A8h Interrupt Enable Control 0 EA EC ET2 ES ET1 EX1 ET0 EX0
IPL0 B8h Interrupt Priority Control Low 0 PPCL PT2L PSL PT1L PX1L PT0L PX0L
IPH0 B7h Interrupt Priority Control High 0 PPCH PT2H PSH PT1H PX1H PT0H PX0H
IPL1 B2h Interrupt Priority Control Low 1 PUSBL PSPIL PTWIL PKBL
IPH1 B3h Interrupt Priority Control High 1 PUSBH PSPIH PTWIH PKBH
Keyboard Flag
KBF 9Eh KBF7 KBF6 KBF5 KBF4 KBF3 KBF2 KBF1 KBF0
Register
22 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Keyboard Level
KBLS 9Ch KBLS7 KBLS6 KBLS5 KBLS4 KBLS3 KBLS2 KBLS1 KBLS0
Selector Register
Synchronous Serial
SSCON 93h CR2 SSIE STA STO SI AA CR1 CR0
Control
Synchronous Serial
SSCS 94h SC4 SC3 SC2 SC1 SC0 - - -
Control-Status
Synchronous Serial
SSDAT 95h SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0
Data
Synchronous Serial
SSADR 96h A7 A6 A5 A4 A3 A2 A1 A0
Address
Serial Peripheral
SPCON C3h SPR2 SPEN SSDIS MSTR CPOL CPHA SPR1 SPR0
Control
Serial Peripheral
SPSTA C4h SPIF WCOL SSERR MODF - - - -
Status-Control
SDRMWU
USBCON BCh USB Global Control USBE SUSPCLK DETACH UPRSM RMWUPE CONFG FADDEN
P
USBADDR C6h USB Address FEN UADD6 UADD5 UADD4 UADD3 UADD2 UADD1 UADD0
UEPCONX D4h USB Endpoint X Control EPEN - - - DTGL EPDIR EPTYPE1 EPTYPE0
UEPSTAX CEh USB Endpoint X Status DIR RXOUTB1 STALLRQ TXRDY STLCRC RXSETUP RXOUTB0 TXCMP
UEPRST D5h USB Endpoint Reset - - EP5RST EP4RST EP3RST EP2RST EP1RST EP0RST
UEPINT F8h USB Endpoint Interrupt - - EP5INT EP4INT EP3INT EP2INT EP1INT EP0INT
23
7683CUSB11/07
Table 7-13. USB SFRs
Mnemonic Add Name 7 6 5 4 3 2 1 0
PCON 87h Power Control SMOD1 SMOD0 - POF GF1 GF0 PD IDL
CKCON0 8Fh Clock Control 0 TWIX2 WDX2 PCAX2 SIX2 T2X2 T1X2 T0X2 X2
24 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
8. Program/Code Memory
The AT83C5134/35/36 implement 16 or 32 Kbytes of on-chip program/code memory. Figure 8-1
shows the split of internal and external program/code memory spaces depending on the
product.
32 Kbytes
External Code
48 Kbytes
External Code
8000h
7FFFh
4000h
32 Kbytes
3FFFh ROM
16 Kbytes
ROM
0000h 0000h
AT83C5135 AT83C5136
Note: If the program executes exclusively from on-chip code memory (not from external memory),
beware of executing code from the upper byte of on-chip memory and thereby disrupting I/O Ports
0 and 2 due to external prefetch. Fetching code constant from this location does not affect Ports 0
and 2.
D7:0
PSEN OE
25
7683CUSB11/07
Table 8-1. External Data Memory Interface Signals
Signal Alternate
Name Type Description Function
Address Lines
A15:8 O P2.7:0
Upper address lines for the external bus.
Address/Data Lines
AD7:0 I/O P0.7:0
Multiplexed lower address lines and data for the external memory.
CPU Clock
ALE
PSEN
26 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
9. AT89C5131 ROM
Bit Bit
Number Mnemonic Description
7 - Reserved
6 - Reserved
3 - Reserved
2 - Reserved
27
7683CUSB11/07
9.2.1 Program ROM lock Bits
The lock bits when programmed according to Table 9-2 will provide different level of protection
for the on-chip code and data.
Table 9-2. Program Lock bits
Program Lock Bits Protection Description
Security
level LB1 LB0
U: unprogrammed
P: programmed
28 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
10.1 Overview
The AT83C5134/35/36 features a stacked 2-wire serial data EEPROM. The data EEPROM
allows to save from 512 Byte for AT24C04 version up to 32 Kbytes for AT24C256 version. The
EEPROM is internally connected to the microcontroller on SDA and SCL pins.
10.2 Protocol
In order to access this memory, it is necessary to use software subroutines according to the
AT 24Cx x da tashee t. Never thele ss , beca use the in te rnal pul l-u p re sis tors of the
AT83C5134/35/36 is quite high (around 100K), the protocol should be slowed in order to be
sure that the SDA pin can rise to the high level before reading it.
Another solution to keep the access to the EEPROM in specification is to work with a software
pull-up.
Using a software pull-up, consists of forcing a low level at the output pin of the microcontroller
before configuring it as an input (high level).
The C51 the ports are quasi-bidirectional ports. It means that the ports can be configured as
output low or as input high. In case a port is configured as an output low, it can sink a current
and all internal pull-ups are disconnected. In case a port is configured as an input high, it is
pulled up with a strong pull-up (a few hundreds Ohms resistor) for 2 clock periods. Then, if the
port is externally connected to a low level, it is only kept high with a weak pull up (around
100K), and if not, the high level is latched high thanks to a medium pull (around 10k).
Thus, when the port is configured as an input, and when this input has been read at a low level,
there is a pull-up of around 100K, which is quite high, to quickly load the SDA capacitance. So
in order to help the reading of a high level just after the reading of a low level, it is possible to
force a transition of the SDA port from an input state (1), to an output low state (0), followed by a
new transition from this output low state to input state; In this case, the high pull-up has been
replaced with a low pull-up which warranties a good reading of the data.
29
7683CUSB11/07
11. On-chip Expanded RAM (ERAM)
The AT83C5134/35/36 provides additional Bytes of random access memory (RAM) space for
increased data parameters handling and high level language usage.
AT83C5134/35/36 devices have an expanded RAM in the external data space; maximum size
and location are described in Table 11-1.
Table 11-1. Description of Expanded RAM
Address
The AT83C5134/35/36 has on-chip data memory which is mapped into the following four sepa-
rate segments.
1. The Lower 128 bytes of RAM (addresses 00h to 7Fh) are directly and indirectly
addressable.
2. The Upper 128 bytes of RAM (addresses 80h to FFh) are indirectly addressable only.
3. The Special Function Registers, SFRs, (addresses 80h to FFh) are directly address-
able only.
4. The expanded RAM bytes are indirectly accessed by MOVX instructions, and with the
EXTRAM bit cleared in the AUXR register (see Table 11-1)
The lower 128 bytes can be accessed by either direct or indirect addressing. The Upper 128
bytes can be accessed by indirect addressing only. The Upper 128 bytes occupy the same
address space as the SFR. That means they have the same address, but are physically sepa-
rate from SFR space.
Upper Special
128 bytes External
Function Data
Internal
RAM Register Memory
direct accesses
indirect accesses
Lower
128 bytes
Internal
RAM
direct or indirect
accesses 00FFh up to 03FFh (*)
00 00 0000
When an instruction accesses an internal location above address 7Fh, the CPU knows whether
the access is to the upper 128 bytes of data RAM or to SFR space by the addressing mode used
in the instruction.
30 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Instructions that use direct addressing access SFR space. For example: MOV 0A0H, # data,
accesses the SFR at location 0A0h (which is P2).
Instructions that use indirect addressing access the Upper 128 bytes of data RAM. For
example: MOV atR0, # data where R0 contains 0A0h, accesses the data byte at address
0A0h, rather than P2 (whose address is 0A0h).
The ERAM bytes can be accessed by indirect addressing, with EXTRAM bit cleared and
MOVX instructions. This part of memory which is physically located on-chip, logically
occupies the first bytes of external data memory. The bits XRS0 and XRS1 are used to hide a
part of the available ERAM as explained in Table 11-1. This can be useful if external
peripherals are mapped at addresses already used by the internal ERAM.
With EXTRAM = 0, the ERAM is indirectly addressed, using the MOVX instruction in
combination with any of the registers R0, R1 of the selected bank or DPTR. An access to
ERAM will not affect ports P0, P2, P3.6 (WR) and P3.7 (RD). For example, with EXTRAM =
0, MOVX atR0, # data where R0 contains 0A0H, accesses the ERAM at address 0A0H rather
than external memory. An access to external data memory locations higher than the
accessible size of the ERAM will be performed with the MOVX DPTR instructions in the same
way as in the standard 80C51, with P0 and P2 as data/address busses, and P3.6 and P3.7
as write and read timing signals. Accesses to ERAM above 0FFH can only be done by the
use of DPTR.
With EXTRAM = 1, MOVX @Ri and MOVX @DPTR will be similar to the standard 80C51.
MOVX at Ri will provide an eight-bit address multiplexed with data on Port0 and any output
port pins can be used to output higher order address bits. This is to provide the external
paging capability. MOVX @DPTR will generate a sixteen-bit address. Port2 outputs the high-
order eight address bits (the contents of DPH) while Port0 multiplexes the low-order eight
address bits (DPL) with data. MOVX at Ri and MOVX @DPTR will generate either read or
write signals on P3.6 (WR) and P3.7 (RD).
The stack pointer (SP) may be located anywhere in the 256 bytes RAM (lower and upper RAM)
internal data memory. The stack may not be located in the ERAM.
The M0 bit allows to stretch the ERAM timings; if M0 is set, the read and write pulses are
extended from 6 to 30 clock periods. This is useful to access external slow peripherals.
Bit Bit
Number Mnemonic Description
Reserved
6 -
The value read from this bit is indeterminate. Do not set this bit
Pulse length
Cleared to stretch MOVX control: the RD and the WR pulse length is 6 clock periods
5 M0
(default).
Set to stretch MOVX control: the RD and the WR pulse length is 30 clock periods.
31
7683CUSB11/07
Bit Bit
Number Mnemonic Description
Reserved
4 -
The value read from this bit is indeterminate. Do not set this bit
EXTRAM bit
1 EXTRAM Cleared to access internal ERAM using MOVX at Ri at DPTR.
Set to access external memory.
32 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
12. Timer 2
The Timer 2 in the AT83C5134/35/36 is the standard C52 Timer 2. It is a 16-bit timer/counter:
the count is maintained by two cascaded eight-bit timer registers, TH2 and TL2. It is controlled
by T2CON (Table 12-1) and T2MOD (Table 12-2) registers. Timer 2 operation is similar to Timer
0 and Timer 1. C/T2 selects FOSC/12 (timer operation) or external pin T2 (counter operation) as
the timer clock input. Setting TR2 allows TL2 to be incremented by the selected input.
Timer 2 has 3 operating modes: capture, auto reload and Baud Rate Generator. These modes
are selected by the combination of RCLK, TCLK and CP/RL2 (T2CON).
Refer to the Atmel 8-bit microcontroller hardware documentation for the description of Capture
and Baud Rate Generator Modes.
Timer 2 includes the following enhancements:
Auto-reload mode with up or down counter
Programmable Clock-output
33
7683CUSB11/07
Figure 12-1. Auto-reload Mode Up/Down Counter (DCEN = 1)
FCLK PERIPH :6 0
1
T2
C/T2 TR2
T2CON T2CON
RCAP2L RCAP2H
(8-bit) (8-bit)
(UP COUNTING RELOAD VALUE)
34 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
It is possible to use Timer 2 as a baud rate generator and a clock generator simultaneously. For
this configuration, the baud rates and clock frequencies are not independent since both func-
tions use the values in the RCAP2H and RCAP2L registers.
FCLK PERIPH :6
TR2
T2CON TL2 TH2
(8-bit) (8-bit)
OVERFLOW
RCAP2L RCAP2H
(8-bit) (8-bit)
Toggle
T2
Q D
T2OE
T2MOD
Timer 2
T2EX EXF2 INTERRUPT
T2CON
EXEN2
T2CON
35
7683CUSB11/07
Table 12-1. T2CON Register
T2CON - Timer 2 Control Register (C8h)
7 6 5 4 3 2 1 0
Bit Bit
Number Mnemonic Description
36 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
- - - - - - T2OE DCEN
Bit Bit
Number Mnemonic Description
Reserved
7 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
6 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
5 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
4 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
3 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
2 -
The value read from this bit is indeterminate. Do not set this bit.
37
7683CUSB11/07
13. Programmable Counter Array (PCA)
The PCA provides more timing capabilities with less CPU intervention than the standard
timer/counters. Its advantages include reduced software overhead and improved accuracy. The
PCA consists of a dedicated timer/counter which serves as the time base for an array of five
compare/capture modules. Its clock input can be programmed to count any one of the following
signals:
Peripheral clock frequency (FCLK PERIPH) 6
Peripheral clock frequency (FCLK PERIPH) 2
Timer 0 overflow
External input on ECI (P1.2)
Each compare/capture modules can be programmed in any one of the following modes:
rising and/or falling edge capture,
software timer
high-speed output, or
pulse width modulator
Module 4 can also be programmed as a watchdog timer (see Section "PCA Watchdog Timer",
page 48).
When the compare/capture modules are programmed in the capture mode, software timer, or
high speed output mode, an interrupt can be generated when the module executes its function.
All five modules plus the PCA timer overflow share one interrupt vector.
The PCA timer/counter and compare/capture modules share Port 1 for external I/O. These pins
are listed below. If the port pin is not used for the PCA, it can still be used for standard I/O.
The PCA timer is a common time base for all five modules (see Figure 13-1). The timer count
source is determined from the CPS1 and CPS0 bits in the CMOD register (Table 13-1) and can
be programmed to run at:
1/6 the peripheral clock frequency (FCLK PERIPH).
1/2 the peripheral clock frequency (FCLK PERIPH).
The Timer 0 overflow
The input on the ECI pin (P1.2)
38 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
FCLK PERIPH/6
FCLK PERIPH/2 overflow It
CH CL
T0 OVF
P1.2 16 Bit Up Counter
CMOD
CIDL WDTE CPS1 CPS0 ECF 0xD9
Idle
CCON
CF CR CCF4 CCF3 CCF2 CCF1 CCF0 0xD8
Bit Bit
Number Mnemonic Description
Reserved
5 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
4 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
3 -
The value read from this bit is indeterminate. Do not set this bit.
39
7683CUSB11/07
Reset Value = 00XX X000b
Not bit addressable
The CMOD register includes three additional bits associated with the PCA (See Figure 13-1 and
Table 13-1).
The CIDL bit allows the PCA to stop during idle mode.
The WDTE bit enables or disables the watchdog function on module 4.
The ECF bit when set causes an interrupt and the PCA overflow flag CF (in the CCON SFR)
to be set when the PCA timer overflows.
The CCON register contains the run control bit for the PCA and the flags for the PCA timer (CF)
and each module (see Table 13-2).
Bit CR (CCON.6) must be set by software to run the PCA. The PCA is shut off by clearing this
bit.
Bit CF: The CF bit (CCON.7) is set when the PCA counter overflows and an interrupt will be
generated if the ECF bit in the CMOD register is set. The CF bit can only be cleared by
software.
Bits 0 through 4 are the flags for the modules (bit 0 for module 0, bit 1 for module 1, etc.) and
are set by hardware when either a match or a capture occurs. These flags can only be
cleared by software.
Table 13-2. CCON Register
CCON - PCA Counter Control Register (D8h)
7 6 5 4 3 2 1 0
Bit Bit
Number Mnemonic Description
Reserved
5
The value read from this bit is indeterminate. Do not set this bit.
40 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Bit Bit
Number Mnemonic Description
PCA Timer/Counter
Module 0
Module 1 To Interrupt
priority decoder
Module 2
Module 3
Module 4
IE.6 IE.7
CMOD.0 ECF ECCFn CCAPMn.0 EC EA
PCA Modules: each one of the five compare/capture modules has six possible functions. It can
perform:
16-bit capture, positive-edge triggered
16-bit capture, negative-edge triggered
16-bit capture, both positive and negative-edge triggered
16-bit Software Timer
16-bit High-speed Output
8-bit Pulse Width Modulator
In addition, module 4 can be used as a Watchdog Timer.
Each module in the PCA has a special function register associated with it. These registers are:
CCAPM0 for module 0, CCAPM1 for module 1, etc. (see Table 13-3). The registers contain the
bits that control the mode that each module will operate in.
41
7683CUSB11/07
The ECCF bit (CCAPMn.0 where n = 0, 1, 2, 3, or 4 depending on the module) enables the
CCF flag in the CCON SFR to generate an interrupt when a match or compare occurs in the
associated module.
PWM (CCAPMn.1) enables the pulse width modulation mode.
The TOG bit (CCAPMn.2) when set causes the CEX output associated with the module to
toggle when there is a match between the PCA counter and the module's capture/compare
register.
The match bit MAT (CCAPMn.3) when set will cause the CCFn bit in the CCON register to be
set when there is a match between the PCA counter and the module's capture/compare
register.
The next two bits CAPN (CCAPMn.4) and CAPP (CCAPMn.5) determine the edge that a
capture input will be active on. The CAPN bit enables the negative edge, and the CAPP bit
enables the positive edge. If both bits are set both edges will be enabled and a capture will
occur for either transition.
The last bit in the register ECOM (CCAPMn.6) when set enables the comparator function.
Table 13-4 shows the CCAPMn settings for the various PCA functions.
Bit Bit
Number Mnemonic Description
Reserved
7 -
The value read from this bit is indeterminate. Do not set this bit.
Enable Comparator
6 ECOMn Cleared to disable the comparator function.
Set to enable the comparator function.
Capture Positive
5 CAPPn Cleared to disable positive edge capture.
Set to enable positive edge capture.
Capture Negative
4 CAPNn Cleared to disable negative edge capture.
Set to enable negative edge capture.
Match
When MATn = 1, a match of the PCA counter with this module's compare/capture
3 MATn
register causes the
CCFn bit in CCON to be set, flagging an interrupt.
Toggle
2 TOGn When TOGn = 1, a match of the PCA counter with this module's compare/capture
register causes the CEXn pin to toggle.
42 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Bit Bit
Number Mnemonic Description
0 0 0 0 0 0 0 No Operation
1 0 0 0 0 1 0 8-bit PWM
There are two additional registers associated with each of the PCA modules. They are CCAPnH
and CCAPnL and these are the registers that store the 16-bit count when a capture occurs or a
compare should occur. When a module is used in the PWM mode these registers are used to
control the duty cycle of the output (see Table 13-5 and Table 13-6)
43
7683CUSB11/07
Table 13-5. CCAPnH Registers (n = 0-4)
CCAP0H - PCA Module 0 Compare/Capture Control Register High (0FAh)
CCAP1H - PCA Module 1 Compare/Capture Control Register High (0FBh)
CCAP2H - PCA Module 2 Compare/Capture Control Register High (0FCh)
CCAP3H - PCA Module 3 Compare/Capture Control Register High (0FDh)
CCAP4H - PCA Module 4 Compare/Capture Control Register High (0FEh)
7 6 5 4 3 2 1 0
- - - - - - - -
Bit Bit
Number Mnemonic Description
Bit Bit
Number Mnemonic Description
- - - - - - - -
Bit Bit
Number Mnemonic Description
PCA counter
7-0 -
CH Value
44 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
- - - - - - - -
Bit Bit
Number Mnemonic Description
PCA Counter
7-0 -
CL Value
PCA IT
PCA Counter/Timer
Cex.n
CH CL
Capture
CCAPnH CCAPnL
45
7683CUSB11/07
Figure 13-4. PCA Compare Mode and PCA Watchdog Timer
CCON
CF CR CCF4 CCF3 CCF2 CCF1 CCF0 0xD8
Write to
CCAPnL Reset
PCA IT
Write to
CCAPnH CCAPnH CCAPnL
1 0 Enable Match
16-bit Comparator
RESET(1)
CH CL
PCA Counter/Timer
CCAPMn, n = 0 to 4
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
0xDA to 0xDE
CMOD
CIDL WDTE CPS1 CPS0 ECF
0xD9
46 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
1 0 Enable Match
16-bit Comparator
CEXn
CH CL
PCA counter/timer
CCAPMn, n = 0 to 4
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
0xDA to 0xDE
Before enabling ECOM bit, CCAPnL and CCAPnH should be set with a non zero value, other-
wise an unwanted match could happen.
Once ECOM set, writing CCAPnL will clear ECOM so that an unwanted match doesnt occur
while modifying the compare value. Writing to CCAPnH will set ECOM. For this reason, user
software should write CCAPnL first, and then CCAPnH. Of course, the ECOM bit can still be
controlled by accessing to CCAPMn register.
47
7683CUSB11/07
Figure 13-6. PCA PWM Mode
CCAPnH
Overflow
CCAPnL
0
Enable < CEXn
8-bit Comparator
1
CL
PCA Counter/Timer
48 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
When this feature is enabled, the receiver checks each incoming data frame for a valid stop bit.
An invalid stop bit may result from noise on the serial lines or from simultaneous transmission by
two CPUs. If a valid stop bit is not found, the Framing Error bit (FE) in SCON register (See Table
14-1) bit is set.
Software may examine FE bit after each reception to check for data errors. Once set, only soft-
ware or a reset can clear FE bit. Subsequently received frames with valid stop bits cannot clear
FE bit. When FE feature is enabled, RI rises on stop bit instead of the last data bit (See Figure
14-2 and Figure 14-3).
RI
SMOD0 = X
FE
SMOD0 = 1
49
7683CUSB11/07
Figure 14-3. UART Timings in Modes 2 and 3
RXD D0 D1 D2 D3 D4 D5 D6 D7 D8
RI
SMOD0 = 0
RI
SMOD0 = 1
FE
SMOD0 = 1
50 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
The use of dont care bits provides flexibility in defining the broadcast address, in most applica-
tions, a broadcast address is FFh. The following is an example of using broadcast addresses:
Slave A:SADDR1111 0001b
SADEN1111 1010b
Broadcast1111 1X11b,
For slaves A and B, bit 2 is a dont care bit; for slave C, bit 2 is set. To communicate with all of
the slaves, the master must send an address FFh. To communicate with slaves A and B, but not
slave C, the master can send and address FBh.
51
7683CUSB11/07
SADEN - Slave Address Mask Register (B9h)
7 6 5 4 3 2 1 0
TIMER1 TIMER_BRG_TX
0
TIMER2 0
1 / 16
1 Tx Clock
TCLK
INT_BRG TBCK
52 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
0 0 0 0 Timer 1 Timer 1
1 0 0 0 Timer 2 Timer 1
0 1 0 0 Timer 1 Timer 2
1 1 0 0 Timer 2 Timer 2
X 0 1 0 INT_BRG Timer 1
X 1 1 0 INT_BRG Timer 2
0 X 0 1 Timer 1 INT_BRG
1 X 0 1 Timer 2 INT_BRG
X X 1 1 INT_BRG INT_BRG
SPD BRL
SMOD1
BRR
53
7683CUSB11/07
Bit Bit
Number Mnemonic Description
54 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
4800 43 1.23 - -
The baud rate generator can be used for mode 1 or 3 (refer to Figure 14-4.), but also for mode 0
for UART, thanks to the bit SRC located in BDRCON register (Table 14-4.)
55
7683CUSB11/07
BRL - Baud Rate Reload Register for the internal baud rate generator, UART (9Ah)
7 6 5 4 3 2 1 0
Bit Bit
Number Mnemonic Description
56 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Bit Bit
Number Mnemonic Description
Reserved
5 -
The value read from this bit is indeterminate. Do not set this bit.
Power-Off Flag
Cleared to recognize next reset type.
4 POF
Set by hardware when VCC rises from 0 to its nominal voltage. Can also be set by
software.
General-purpose Flag
3 GF1 Cleared by user for general-purpose usage.
Set by user for general-purpose usage.
General-purpose Flag
2 GF0 Cleared by user for general-purpose usage.
Set by user for general-purpose usage.
57
7683CUSB11/07
Table 14-4. BDRCON Register
BDRCON - Baud Rate Control Register (9Bh)
7 6 5 4 3 2 1 0
Bit Bit
Number Mnemonic Description
Reserved
7 -
The value read from this bit is indeterminate. Do not set this bit
Reserved
6 -
The value read from this bit is indeterminate. Do not set this bit
Reserved
5 -
The value read from this bit is indeterminate. Do not set this bit.
58 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
7 0
DPS
DPTR1
DPTR0
AUXR1(A2H)
DPH(83H) DPL(82H)
- - - - GF3 0 - DPS
Bit Bit
Number Mnemonic Description
Reserved
7 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
6 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
5 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
4 -
The value read from this bit is indeterminate. Do not set this bit.
2 0 Always cleared.
Reserved
1 -
The value read from this bit is indeterminate. Do not set this bit.
59
7683CUSB11/07
; Block move using dual data pointers
; Modifies DPTR0, DPTR1, A and PSW
; note: DPS exits opposite of entry state
; unless an extra INC AUXR1 is added
;
00A2 AUXR1 EQU 0A2H
;
0000 909000MOV DPTR,#SOURCE ; address of SOURCE
0003 05A2 INC AUXR1 ; switch data pointers
0005 90A000 MOV DPTR,#DEST ; address of DEST
0008 LOOP:
0008 05A2 INC AUXR1 ; switch data pointers
000A E0 MOVX A,@DPTR ; get a byte from SOURCE
000B A3 INC DPTR ; increment SOURCE address
000C 05A2 INC AUXR1 ; switch data pointers
000E F0 MOVX @DPTR,A ; write the byte to DEST
000F A3 INC DPTR ; increment DEST address
0010 70F6JNZ LOOP ; check for 0 terminator
0012 05A2 INC AUXR1 ; (optional) restore DPS
INC is a short (2 bytes) and fast (12 clocks) way to manipulate the DPS bit in the AUXR1 SFR.
However, note that the INC instruction does not directly force the DPS bit to a particular state,
but simply toggles it. In simple routines, such as the block move example, only the fact that DPS
is toggled in the proper sequence matters, not its actual value. In other words, the block move
routine works the same whether DPS is '0' or '1' on entry. Observe that without the last instruc-
tion (INC AUXR1), the routine will exit with DPS in the opposite state.
60 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
16.1 Overview
The AT83C5134/35/36 has a total of 11 interrupt vectors: two external interrupts (INT0 and
INT1), three timer interrupts (timers 0, 1 and 2), the serial port interrupt, SPI interrupt, Keyboard
interrupt, USB interrupt and the PCA global interrupt. These interrupts are shown in Figure 16-1.
RI 3
TI
0
TF2 3
EXF2 0
3
KBD IT
0
3
TWI IT
0
3
SPI IT
0
USBINT 3
UEPINT 0
Low Priority
Individual Enable Global Disable
Interrupt
Each of the interrupt sources can be individually enabled or disabled by setting or clearing a bit
in the Interrupt Enable register (Table 16-2). This register also contains a global disable bit,
which must be cleared to disable all interrupts at once.
Each interrupt source can also be individually programmed to one out of four priority levels by
setting or clearing a bit in the Interrupt Priority register (Table 16-3.) and in the Interrupt Priority
61
7683CUSB11/07
High register (Table 16-4). Table 16-1. shows the bit values and priority levels associated with
each combination.
16.2 Registers
The PCA interrupt vector is located at address 0033H, the SPI interrupt vector is located at
address 004BH and Keyboard interrupt vector is located at address 003BH. All other vectors
addresses are the same as standard C52 devices.
0 0 0 (Lowest)
0 1 1
1 0 2
1 1 3 (Highest)
A low-priority interrupt can be interrupted by a high priority interrupt, but not by another low-prior-
ity interrupt. A high-priority interrupt cant be interrupted by any other interrupt source.
If two interrupt requests of different priority levels are received simultaneously, the request of
higher priority level is serviced. If interrupt requests of the same priority level are received simul-
taneously, 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.
62 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Bit Bit
Number Mnemonic Description
63
7683CUSB11/07
Table 16-3. IPL0 Register
IPL0 - Interrupt Priority Register (B8h)
7 6 5 4 3 2 1 0
Bit Bit
Number Mnemonic Description
Reserved
7 -
The value read from this bit is indeterminate. Do not set this bit.
64 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Bit Bit
Number Mnemonic Description
Reserved
7 -
The value read from this bit is indeterminate. Do not set this bit.
65
7683CUSB11/07
Table 16-5. IEN1 Register
IEN1 - Interrupt Enable Register (B1h)
7 6 5 4 3 2 1 0
Bit Bit
Number Mnemonic Description
7 - Reserved
5 - Reserved
4 - Reserved
3 - Reserved
66 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Bit Bit
Number Mnemonic Description
Reserved
7 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
5 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
4 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
3 -
The value read from this bit is indeterminate. Do not set this bit.
67
7683CUSB11/07
Table 16-7. IPH1 Register
IPH1 - Interrupt Priority High Register (B3h)
7 6 5 4 3 2 1 0
Bit Bit
Number Mnemonic Description
Reserved
7 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
5 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
4 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
3 -
The value read from this bit is indeterminate. Do not set this bit.
68 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
0 0 Reset 0000h
11 11 0053h
12 12 005Bh
13 13 0063h
15 15 0073h
69
7683CUSB11/07
17. Keyboard Interface
17.1 Introduction
The AT83C5134/35/36 implements a keyboard interface allowing the connection of a 8 x n
matrix keyboard. It is based on 8 inputs with programmable interrupt capability on both high or
low level. These inputs are available as an alternate function of P1 and allow to exit from idle
and power down modes.
17.2 Description
The keyboard interface communicates with the C51 core through 3 special function registers:
KBLS, the Keyboard Level Selection register (Table 17-3), KBE, The Keyboard interrupt Enable
register (Table 17-2), and KBF, the Keyboard Flag register (Table 17-1).
17.2.1 Interrupt
The keyboard inputs are considered as 8 independent interrupt sources sharing the same inter-
rupt vector. An interrupt enable bit (KBD in IE1) allows global enable or disable of the keyboard
interrupt (see Figure 17-1). As detailed in Figure 17-2 each keyboard input has the capability to
detect a programmable level according to KBLS.x bit value. Level detection is then reported in
interrupt flags KBF.x that can be masked by software using KBE.x bits.
This structure allow keyboard arrangement from 1 by n to 8 by n matrix and allow usage of P1
inputs for other purpose.
0
P1:x KBF.x
1
KBE.x
Internal Pull-up
KBLS.x
70 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
17.3 Registers
Table 17-1. KBF Register
KBF - Keyboard Flag Register (9Eh)
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
71
7683CUSB11/07
Table 17-2. KBE Register
KBE - Keyboard Input Enable Register (9Dh)
7 6 5 4 3 2 1 0
Bit Bit
Number Mnemonic Description
72 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
73
7683CUSB11/07
18. Programmable LED
AT83C5134/35/36 have up to 4 programmable LED current sources, configured by the register
LEDCON.
Bit
Bit Number Mnemonic Description
74 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
19.1 Features
Features of the SPI module include the following:
Full-duplex, three-wire synchronous transfers
Master or Slave operation
Eight programmable Master clock rates
Serial clock with programmable polarity and phase
Master mode fault error flag with MCU interrupt capability
Write collision flag protection
MISO
MOSI
SCK
SCK
SS
SS VDD
Master
0
PORT
1
2
3
MISO
MOSI
MISO
MOSI
MISO
MOSI
SCK
SCK
SCK
SS
SS
SS
The Master device selects the individual Slave devices by using four pins of a parallel port to
control the four SS pins of the Slave devices.
75
7683CUSB11/07
19.2.3 SPI Serial Clock (SCK)
This signal is used to synchronize the data movement both in and out the devices through their
MOSI and MISO lines. It is driven by the Master for eight clock cycles which allows to exchange
one byte on the serial lines.
0 0 1 FCLK PERIPH/4 4
0 1 0 FCLK PERIPH/8 8
0 1 1 FCLK PERIPH/16 16
1 0 0 FCLK PERIPH/32 32
1 0 1 FCLK PERIPH/64 64
76 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
SPDAT
Shift Register
FCLK PERIPH 7 6 5 4 3 2 1 0
/4
Clock /8 Receive Data Register
Divider /16 Pin MOSI
/32
/64 Control MISO
/128
Logic
Clock M
Logic S SCK
Clock
SS
Select
SPSTA
SPIF WCOL SSERR MODF - - - -
77
7683CUSB11/07
Figure 19-3. Full-duplex Master/Slave Interconnection
MOSI MOSI
SS VDD SS
Master MCU VSS
Slave MCU
1. The SPI module should be configured as a Master before it is enabled (SPEN set). Also the Mas-
ter SPI should be configured before the Slave SPI.
2. The SPI module should be configured as a Slave before it is enabled (SPEN set).
3. The maximum frequency of the SCK for an SPI configured as a Slave is the bus clock speed.
4. Before writing to the CPOL and CPHA bits, the SPI should be disabled (SPEN =0).
78 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
SPEN (internal)
SCK (CPOL = 0)
SCK (CPOL = 1)
MOSI (from Master) MSB bit6 bit5 bit4 bit3 bit2 bit1 LSB
MISO (from Slave) MSB bit6 bit5 bit4 bit3 bit2 bit1 LSB
SS (to Slave)
Capture point
SPEN (internal)
SCK (CPOL = 0)
SCK (CPOL = 1)
MOSI (from Master) MSB bit6 bit5 bit4 bit3 bit2 bit1 LSB
MISO (from Slave) MSB bit6 bit5 bit4 bit3 bit2 bit1 LSB
SS (to Slave)
Capture point
Master SS
Slave SS
(CPHA = 0)
Slave SS
(CPHA = 1)
As shown in Figure 19-5, the first SCK edge is the MSB capture strobe. Therefore the Slave
must begin driving its data before the first SCK edge, and a falling edge on the SS pin is used to
start the transmission. The SS pin must be toggled high and then low between each byte trans-
mitted (Figure 19-2).
Figure 19-6 shows an SPI transmission in which CPHA is1. In this case, the Master begins driv-
ing its MOSI pin on the first SCK edge. Therefore the Slave uses the first SCK edge as a start
transmission signal. The SS pin can remain low between transmissions (Figure 19-1). This for-
mat may be preferable in systems having only one Master and only one Slave driving the MISO
data line.
79
7683CUSB11/07
19.3.3.1 Mode Fault (MODF)
Mode Fault error in Master mode SPI indicates that the level on the Slave Select (SS) pin is
inconsistent with the actual mode of the device. MODF is set to warn that there may have a
multi-master conflict for system control. In this case, the SPI system is affected in the following
ways:
An SPI receiver/error CPU interrupt request is generated,
The SPEN bit in SPCON is cleared. This disable the SPI,
The MSTR bit in SPCON is cleared
When SS DISable (SSDIS) bit in the SPCON register is cleared, the MODF flag is set when the
SS signal becomes 0.
However, as stated before, for a system with one Master, if the SS pin of the Master device is
pulled low, there is no way that another Master attempt to drive the network. In this case, to pre-
vent the MODF flag from being set, software can set the SSDIS bit in the SPCON register and
therefore making the SS pin as a general-purpose I/O pin.
Clearing the MODF bit is accomplished by a read of SPSTA register with MODF bit set, followed
by a write to the SPCON register. SPEN Control bit may be restored to its original set state after
the MODF bit has been cleared.
19.3.4 Interrupts
Two SPI status flags can generate a CPU interrupt requests:
Serial Peripheral data transfer flag, SPIF: This bit is set by hardware when a transfer has been
completed. SPIF bit generates transmitter CPU interrupt requests.
80 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Mode Fault flag, MODF: This bit becomes set to indicate that the level on the SS is inconsistent
with the mode of the SPI. MODF with SSDIS reset, generates receiver/error CPU interrupt
requests.
Figure 19-7 gives a logical view of the above statements.
19.3.5 Registers
There are three registers in the module that provide control, status and data storage functions. These registers are
describes in the following paragraphs.
Bit
Number Bit Mnemonic Description
SS Disable
Cleared to enable SS in both Master and Slave modes.
5 SSDIS
Set to disable SS in both Master and Slave modes. In Slave mode, this bit has no
effect if CPHA = 0.
Clock Polarity
4 CPOL Cleared to have the SCK set to 0 in idle state.
Set to have the SCK set to 1 in idle state.
81
7683CUSB11/07
Bit
Number Bit Mnemonic Description
Clock Phase
3 CPHA Cleared to have the data sampled when the SCK leaves the idle state (see CPOL).
Set to have the data sampled when the SCK returns to idle state (see CPOL).
Bit
Bit Number Mnemonic Description
82 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Bit
Bit Number Mnemonic Description
Mode Fault
Cleared by hardware to indicate that the SS pin is at appropriate logic level, or has been
4 MODF
approved by a clearing sequence.
Set by hardware to indicate that the SS pin is at inappropriate logic level.
Reserved
3 -
The value read from this bit is indeterminate. Do not set this bit
Reserved
2 -
The value read from this bit is indeterminate. Do not set this bit
Reserved
1 -
The value read from this bit is indeterminate. Do not set this bit.
Reserved
0 -
The value read from this bit is indeterminate. Do not set this bit.
Reset Value = 00X0 XXXXb
Not Bit addressable
7 6 5 4 3 2 1 0
R7 R6 R5 R4 R3 R2 R1 R0
83
7683CUSB11/07
20. Two Wire Interface (TWI)
This section describes the 2-wire interface. The 2-wire bus is a bi-directional 2-wire serial com-
munication standard. It is designed primarily for simple but efficient integrated circuit (IC) control.
The system is comprised of two lines, SCL (Serial Clock) and SDA (Serial Data) that carry infor-
mation between the ICs connected to them. The serial data transfer is limited to 100 Kbit/s in
standard mode. Various communication configuration can be designed using this bus. Figure
20-1 shows a typical 2-wire bus configuration. All the devices connected to the bus can be mas-
ter and slave.
SCL
SDA
84 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Input Comparator
Filter
SDA
Output
Stage SSDAT ACK
Shift Register
Internal Bus
Arbitration &
Input Sink Logic
Filter Timing &
FCLK PERIPH/4
Control
SCL
logic
Output Serial clock Interrupt
Stage generator
Timer 1
overflow
Status Status
Bits Decoder
85
7683CUSB11/07
20.1 Description
The CPU interfaces to the 2-wire logic via the following four 8-bit special function registers: the
Synchronous Serial Control register (SSCON; Table 20-10), the Synchronous Serial Data regis-
ter (SSDAT; Table 20-11), the Synchronous Serial Control and Status register (SSCS; Table 20-
12) and the Synchronous Serial Address register (SSADR Table 20-13).
SSCON is used to enable the TWI interface, to program the bit rate (see Table 20-3), to enable
slave modes, to acknowledge or not a received data, to send a START or a STOP condition on
the 2-wire bus, and to acknowledge a serial interrupt. A hardware reset disables the TWI
module.
SSCS contains a status code which reflects the status of the 2-wire logic and the 2-wire bus.
The three least significant bits are always zero. The five most significant bits contains the status
code. There are 26 possible status codes. When SSCS contains F8h, no relevant state informa-
tion is available and no serial interrupt is requested. A valid status code is available in SSCS one
machine cycle after SI is set by hardware and is still present one machine cycle after SI has
been reset by software. to Table 20-9. give the status for the master modes and miscellaneous
states.
SSDAT contains a byte of serial data to be transmitted or a byte which has just been received. It
is addressable while it is not in process of shifting a byte. This occurs when 2-wire logic is in a
defined state and the serial interrupt flag is set. Data in SSDAT remains stable as long as SI is
set. While data is being shifted out, data on the bus is simultaneously shifted in; SSDAT always
contains the last byte present on the bus.
SSADR may be loaded with the 7-bit slave address (7 most significant bits) to which the TWI
module will respond when programmed as a slave transmitter or receiver. The LSB is used to
enable general call address (00h) recognition.
Figure 20-3 shows how a data transfer is accomplished on the 2-wire bus.
SDA MSB
acknowledgement acknowledgement
signal from receiver signal from receiver
SCL 1 2 7 8 9 1 2 3-8 9
S ACK ACK P
start clock line held low stop
condition while interrupts are serviced condition
86 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
CR0, CR1 and CR2 define the internal serial bit rate if external bit rate generator is not used.
SSIE must be set to enable TWI. STA, STO and SI must be cleared.
The master transmitter mode may now be entered by setting the STA bit. The 2-wire logic will
now test the 2-wire bus and generate a START condition as soon as the bus becomes free.
When a START condition is transmitted, the serial interrupt flag (SI bit in SSCON) is set, and the
status code in SSCS will be 08h. This status must be used to vector to an interrupt routine that
loads SSDAT with the slave address and the data direction bit (SLA+W).
When the slave address and the direction bit have been transmitted and an acknowledgement
bit has been received, SI is set again and a number of status code in SSCS are possible. There
are 18h, 20h or 38h for the master mode and also 68h, 78h or B0h if the slave mode was
enabled (AA=logic 1). The appropriate action to be taken for each of these status code is
detailed in Table . This scheme is repeated until a STOP condition is transmitted.
SSIE, CR2, CR1 and CR0 are not affected by the serial transfer and are referred to Table 7 to
Table 11. After a repeated START condition (state 10h) the TWI module may switch to the mas-
ter receiver mode by loading SSDAT with SLA+R.
87
7683CUSB11/07
address and the data direction bit (SLA+R). The serial interrupt flag SI must then be cleared
before the serial transfer can continue.
When the slave address and the direction bit have been transmitted and an acknowledgement
bit has been received, the serial interrupt flag is set again and a number of status code in SSCS
are possible. There are 40h, 48h or 38h for the master mode and also 68h, 78h or B0h if the
slave mode was enabled (AA=logic 1). The appropriate action to be taken for each of these sta-
tus code is detailed in Table . This scheme is repeated until a STOP condition is transmitted.
SSIE, CR2, CR1 and CR0 are not affected by the serial transfer and are referred to Table 7 to
Table 11. After a repeated START condition (state 10h) the TWI module may switch to the mas-
ter transmitter mode by loading SSDAT with SLA+W.
A6 A5 A4 A3 A2 A1 A0 GC
The upper 7 bits are the address to which the TWI module will respond when addressed by a
master. If the LSB (GC) is set the TWI module will respond to the general call address (00h);
otherwise it ignores the general call address.
CR0, CR1 and CR2 have no effect in the slave mode. SSIE must be set to enable the TWI. The
AA bit must be set to enable the own slave address or the general call address acknowledge-
ment. STA, STO and SI must be cleared.
When SSADR and SSCON have been initialised, the TWI module waits until it is addressed by
its own slave address followed by the data direction bit which must be at logic 0 (W) for the TWI
to operate in the slave receiver mode. After its own slave address and the W bit have been
received, the serial interrupt flag is set and a valid status code can be read from SSCS. This sta-
tus code is used to vector to an interrupt service routine.The appropriate action to be taken for
each of these status code is detailed in Table . The slave receiver mode may also be entered if
arbitration is lost while TWI is in the master mode (states 68h and 78h).
If the AA bit is reset during a transfer, TWI module will return a not acknowledge (logic 1) to SDA
after the next received data byte. While AA is reset, the TWI module does not respond to its own
slave address. However, the 2-wire bus is still monitored and address recognition may be
resume at any time by setting AA. This means that the AA bit may be used to temporarily isolate
the module from the 2-wire bus.
88 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
20.2 Notes
the TWI module interfaces to the external 2-wire bus via two port pins: SCL (serial clock line)
and SDA (serial data line). To avoid low level asserting on these lines when the TWI module is
enabled, the output latches of SDA and SLC must be set to logic 1.
0 0 0 47 62.5 256
0 1 0 62.5 83 192
0 1 1 75 100 160
89
7683CUSB11/07
Bit Frequency ( kHz)
1 0 0 - - Unused
1 1 0 200 266.6 60
Successfull
transmission S SLA W A Data A P
to a slave
receiver
Next transfer
started with a
repeated start S SLA W
condition
10h
Not acknowledge R
received after the A P
slave address
20h
MR
Not acknowledge A P
received after a data
byte
30h
38h 38h
From master to slave Any number of data bytes and their associated
90 AT83C5134/35/36 Data A acknowledge bits
7683CUSB11/07
From slave to master This number (contained in SSCS) corresponds
n
to a defined state of the 2-wire bus
AT83C5134/35/36
91
7683CUSB11/07
Figure 20-5. Format and State in the Master Receiver Mode
MR
Successfull
transmission S SLA R A Data A Data A P
to a slave
receiver
Next transfer
started with a
repeated start S SLA R
condition
10h
Not acknowledge W
received after the A P
slave address
48h MT
38h 38h
To corresponding
68h 78h B0h states in slave mode
From master to slave Any number of data bytes and their associated
Data A
acknowledge bits
From slave to master n This number (contained in SSCS) corresponds
to a defined state of the 2-wire bus
92 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
SLA+R has been No SSDAT action 0 0 0 0 Data byte will be received and NOT ACK will be
40h transmitted; ACK has returned.
been received No SSDAT action 0 0 0 1 Data byte will be received and ACK will be returned.
Data byte has been Read data byte 0 0 0 0 Data byte will be received and NOT ACK will be
50h received; ACK has returned.
been returned Read data byte 0 0 0 1 Data byte will be received and ACK will be returned.
93
7683CUSB11/07
Figure 20-6. Format and State in the Slave Receiver Mode
Reception of the own
slave address and one or S SLA W A Data A Data A P or S
more data bytes. All are
acknowledged.
88h
Arbitration lost as master A
and addressed as slave
68h
98h
A
Arbitration lost as master and
addressed as slave by general call
78h
From master to slave Any number of data bytes and their associated
Data A
acknowledge bits
From slave to master This number (contained in SSCS) corresponds
n
to a defined state of the 2-wire bus
94 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Arbitration lost in SLA+R/W as Data byte will be received and NOT ACK will be
No SSDAT action or X 0 0 0
master; own SLA+W has been returned
68h
received; ACK has been Data byte will be received and ACK will be
returned No SSDAT action X 0 0 1
returned
Arbitration lost in SLA+R/W as Data byte will be received and NOT ACK will be
No SSDAT action or X 0 0 0
master; general call address returned
78h
has been received; ACK has Data byte will be received and ACK will be
No SSDAT action X 0 0 1
been returned returned
Previously addressed with own Data byte will be received and NOT ACK will be
No SSDAT action or X 0 0 0
SLA+W; data has been returned
80h
received; ACK has been Data byte will be received and ACK will be
returned No SSDAT action X 0 0 1
returned
Previously addressed with Data byte will be received and NOT ACK will be
Read data byte or X 0 0 0
general call; data has been returned
90h
received; ACK has been Data byte will be received and ACK will be
Read data byte X 0 0 1
returned returned
95
7683CUSB11/07
Table 20-7. Status in Slave Receiver Mode (Continued)
Application Software Response
96 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
B0h
C8h
From master to slave Any number of data bytes and their associated
Data A
acknowledge bits
From slave to master This number (contained in SSCS) corresponds
n
to a defined state of the 2-wire bus
Arbitration lost in SLA+R/W as Last data byte will be transmitted and NOT ACK
Load data byte or X 0 0 0
master; own SLA+R has been will be received
B0h
received; ACK has been Data byte will be transmitted and ACK will be
returned Load data byte X 0 0 1
received
97
7683CUSB11/07
Table 20-8. Status in Slave Transmitter Mode (Continued)
Application Software Response
98 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
20.3 Registers
Bit
Bit Number Mnemonic Description
Start flag
5 STA
Set to send a START condition on the bus.
Stop flag
4 ST0
Set to send a STOP condition on the bus.
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
99
7683CUSB11/07
Bit
Bit Number Mnemonic Description
Table 20-12. SSCS (094h) Read - Synchronous Serial Control and Status Register
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
0 0 Always zero
1 0 Always zero
2 0 Always zero
A7 A6 A5 A4 A3 A2 A1 A0
Bit
Bit Number Mnemonic Description
100 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
21.1 Description
The USB device controller provides the hardware that the AT89C5131 needs to interface a USB
link to a data flow stored in a double port memory (DPRAM).
The USB controller requires a 48 MHz 0.25% reference clock, which is the output of the
AT89C5131 PLL (see Section PLL, page 14) divided by a clock prescaler. This clock is used to
generate a 12 MHz Full-speed bit clock from the received USB differential data and to transmit
data according to full speed USB device tolerance. Clock recovery is done by a Digital Phase
Locked Loop (DPLL) block, which is compliant with the jitter specification of the USB bus.
The Serial Interface Engine (SIE) block performs NRZI encoding and decoding, bit stuffing, CRC
generation and checking, and the serial-parallel data conversion.
The Universal Function Interface (UFI) realizes the interface between the data flow and the Dual
Port RAM.
DPLL 12 MHz
C51
Microcontroller
D+ USB Interface
D+/D- UFI
D- Buffer
Up to 48 MHz
UC_sysclk
SIE
101
7683CUSB11/07
Address checking.
Clock generation (via DPLL).
SYNC Detection
Start of Packet
Detection
PID Decoder
D+ NRZI NRZ
Bit Un-stuffing
D-
Packet Bit Counter
Address Decoder DataOut
Serial to 8
Parallel
Clock SysClk
Recovery (12 MHz)
CRC5 and CRC16
Clk48 Generation/Check
(48 MHz) USB Pattern Generator
Parallel to Serial Converter
Bit Stuffing 8
NRZI Converter
DataIn [7:0]
CRC16 Generator
102 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
FIU
Asynchronous Information C51
DPLL Transfer CSREG 0 to 7
Microcontroller
Transfer Interface
Control
Registers
FSM Endpoint 5 Bank
Endpoint 4
Endpoint 3
Endpoint 2
DPR Control Endpoint 1 DPR Control
SIE Up to 48 MHz
USB Side Endpoint 0 mP side UC_sysclk
User DPRAM
OUT Transactions:
HOST OUT DATA0 (n bytes) OUT DATA1 OUT DATA1
IN Transactions:
HOST IN IN IN ACK
UFI NACK DATA1 DATA1 interrupt C51
C51 Endpoint FIFO write Endpoint FIFO write
21.2 Configuration
103
7683CUSB11/07
Set configuration
The CONFG bit in the USBCON register has to be set after a SET_CONFIGURATION
request with a non-zero value. Otherwise, this bit has to be cleared.
UEPNUM
Endpoint enable
Before using an endpoint, this one will be enabled by setting the EPEN bit in the UEPCONX
register.
An endpoint which is not enabled wont answer to any USB request. The Default Control
Endpoint (Endpoint 0) will always be enabled in order to answer to USB standard requests.
104 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
The Endpoint 0 is the Default Control Endpoint and will always be configured in Control type.
105
7683CUSB11/07
Figure 21-6. Endpoint FIFO Configuration
UEPNUM
106 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
ACK
RXOUTB0
Endpoint FIFO read byte 1
OUT DATA1
Endpoint FIFO read byte 2
NAK
OUT DATA1
ACK
RXOUTB0
Endpoint FIFO read byte 1
An endpoint will be first enabled and configured before being able to receive Bulk or Interrupt
packets.
When a valid OUT packet is received on an endpoint, the RXOUTB0 bit is set by the USB con-
troller. This triggers an interrupt if enabled. The firmware has to select the corresponding
endpoint, store the number of data bytes by reading the UBYCTLX and UBYCTHX registers. If
the received packet is a ZLP (Zero Length Packet), the UBYCTLX and UBYCTHX register val-
ues are equal to 0 and no data has to be read.
When all the endpoint FIFO bytes have been read, the firmware will clear the RXOUTB0 bit to
allow the USB controller to accept the next OUT packet on this endpoint. Until the RXOUTB0 bit
has been cleared by the firmware, the USB controller will answer a NAK handshake for each
OUT requests.
If the Host sends more bytes than supported by the endpoint FIFO, the overflow data wont be
stored, but the USB controller will consider that the packet is valid if the CRC is correct and the
endpoint byte counter contains the number of bytes sent by the Host.
107
7683CUSB11/07
21.4.2 Bulk/Interrupt OUT Transactions in Ping-pong Mode
ACK
RXOUTB0
Endpoint FIFO Bank 0 - Read Byte 1
OUT DATA1 (m Bytes) Endpoint FIFO Bank 0 - Read Byte 2
An endpoint will be first enabled and configured before being able to receive Bulk or Interrupt
packets.
When a valid OUT packet is received on the endpoint bank 0, the RXOUTB0 bit is set by the
USB controller. This triggers an interrupt if enabled. The firmware has to select the correspond-
ing endpoint, store the number of data bytes by reading the UBYCTLX and UBYCTHX registers.
If the received packet is a ZLP (Zero Length Packet), the UBYCTLX and UBYCTHX register val-
ues are equal to 0 and no data has to be read.
When all the endpoint FIFO bytes have been read, the firmware will clear the RXOUB0 bit to
allow the USB controller to accept the next OUT packet on the endpoint bank 0. This action
switches the endpoint bank 0 and 1. Until the RXOUTB0 bit has been cleared by the firmware,
the USB controller will answer a NAK handshake for each OUT requests on the bank 0 endpoint
FIFO.
When a new valid OUT packet is received on the endpoint bank 1, the RXOUTB1 bit is set by
the USB controller. This triggers an interrupt if enabled. The firmware empties the bank 1 end-
point FIFO before clearing the RXOUTB1 bit. Until the RXOUTB1 bit has been cleared by the
firmware, the USB controller will answer a NAK handshake for each OUT requests on the bank 1
endpoint FIFO.
The RXOUTB0 and RXOUTB1 bits are alternatively set by the USB controller at each new valid
packet receipt.
The firmware has to clear one of these two bits after having read all the data FIFO to allow a new
valid packet to be stored in the corresponding bank.
108 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
A NAK handshake is sent by the USB controller only if the banks 0 and 1 has not been released
by the firmware.
If the Host sends more bytes than supported by the endpoint FIFO, the overflow data wont be
stored, but the USB controller will consider that the packet is valid if the CRC is correct.
IN
DATA0 (n Bytes)
ACK
TXCMPL
Clear TXCMPL
Endpoint FIFO Write Byte 1
An endpoint will be first enabled and configured before being able to send Bulk or Interrupt
packets.
The firmware will fill the FIFO with the data to be sent and set the TXRDY bit in the UEPSTAX
register to allow the USB controller to send the data stored in FIFO at the next IN request con-
cerning this endpoint. To send a Zero Length Packet, the firmware will set the TXRDY bit without
writing any data into the endpoint FIFO.
Until the TXRDY bit has been set by the firmware, the USB controller will answer a NAK hand-
shake for each IN requests.
To cancel the sending of this packet, the firmware has to reset the TXRDY bit. The packet stored
in the endpoint FIFO is then cleared and a new packet can be written and sent.
When the IN packet has been sent and acknowledged by the Host, the TXCMPL bit in the UEP-
STAX register is set by the USB controller. This triggers a USB interrupt if enabled. The firmware
will clear the TXCMPL bit before filling the endpoint FIFO with new data.
The firmware will never write more bytes than supported by the endpoint FIFO.
All USB retry mechanisms are automatically managed by the USB controller.
109
7683CUSB11/07
21.4.4 Bulk/Interrupt IN Transactions in Ping-pong Mode
IN
Endpoint FIFO Bank 1 - Write Byte 1
DATA0 (n Bytes)
Endpoint FIFO Bank 1 - Write Byte 2
ACK
Set TXRDY
IN
Endpoint FIFO Bank 0 - Write Byte 1
DATA1 (m Bytes)
Endpoint FIFO Bank 0 - Write Byte 2
ACK
An endpoint will be first enabled and configured before being able to send Bulk or Interrupt
packets.
The firmware will fill the FIFO bank 0 with the data to be sent and set the TXRDY bit in the UEP-
STAX register to allow the USB controller to send the data stored in FIFO at the next IN request
concerning the endpoint. The FIFO banks are automatically switched, and the firmware can
immediately write into the endpoint FIFO bank 1.
When the IN packet concerning the bank 0 has been sent and acknowledged by the Host, the
TXCMPL bit is set by the USB controller. This triggers a USB interrupt if enabled. The firmware
will clear the TXCMPL bit before filling the endpoint FIFO bank 0 with new data. The FIFO banks
are then automatically switched.
When the IN packet concerning the bank 1 has been sent and acknowledged by the Host, the
TXCMPL bit is set by the USB controller. This triggers a USB interrupt if enabled. The firmware
will clear the TXCMPL bit before filling the endpoint FIFO bank 1 with new data.
The bank switch is performed by the USB controller each time the TXRDY bit is set by the firm-
ware. Until the TXRDY bit has been set by the firmware for an endpoint bank, the USB controller
will answer a NAK handshake for each IN requests concerning this bank.
Note that in the example above, the firmware clears the Transmit Complete bit (TXCMPL) before
setting the Transmit Ready bit (TXRDY). This is done in order to avoid the firmware to clear at
the same time the TXCMPL bit for bank 0 and the bank 1.
110 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
The firmware will never write more bytes than supported by the endpoint FIFO.
111
7683CUSB11/07
21.6 Isochronous Transactions
112 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
The firmware has to clear one of these two bits after having read all the data FIFO to allow a new
packet to be stored in the corresponding bank.
If the Host sends more bytes than supported by the endpoint FIFO, the overflow data wont be
stored, but the USB controller will consider that the packet is valid if the CRC is correct.
21.7 Miscellaneous
113
7683CUSB11/07
21.7.2 STALL Handshake
This function is only available for Control, Bulk, and Interrupt endpoints.
The firmware has to set the STALLRQ bit in the UEPSTAX register to send a STALL handshake
at the next request of the Host on the endpoint selected with the UEPNUM register. The
RXSETUP, TXRDY, TXCMPL, RXOUTB0 and RXOUTB1 bits must be first reset to 0. The bit
STLCRC is set at 1 by the USB controller when a STALL has been sent. This triggers an inter-
rupt if enabled.
The firmware will clear the STALLRQ and STLCRC bits after each STALL sent.
The STALLRQ bit is cleared automatically by hardware when a valid SETUP PID is received on
a CONTROL type endpoint.
Important note: when a Clear Halt Feature occurs for an endpoint, the firmware will reset this
endpoint using the UEPRST register in order to reset the data toggle management.
For Control endpoints, each SETUP transaction starts with a DATA0 and data toggling is then
used as for Bulk endpoints until the end of the Data stage (for a control write transfer). The Sta-
tus stage completes the data transfer with a DATA1 (for a control read transfer).
For Isochronous endpoints, the device firmware will ignore the data-toggle.
21.8.1 Suspend
The Suspend state can be detected by the USB controller if all the clocks are enabled and if the
USB controller is enabled. The bit SPINT is set by hardware when an idle state is detected for
more than 3 ms. This triggers a USB interrupt if enabled.
In order to reduce current consumption, the firmware can put the USB PAD in idle mode, stop
the clocks and put the C51 in Idle or Power-down mode. The Resume detection is still active.
The USB PAD is put in idle mode when the firmware clear the SPINT bit. In order to avoid a new
suspend detection 3ms later, the firmware has to disable the USB clock input using the SUSP-
CLK bit in the USBCON Register. The USB PAD automatically exits of idle mode when a wake-
up event is detected.
114 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
The stop of the 48 MHz clock from the PLL should be done in the following order:
1. Clear suspend interrupt bit in USBINT (required to allow the USB pads to enter power
down mode).
2. Enable USB resume interrupt.
3. Disable of the 48 MHz clock input of the USB controller by setting to 1 the SUSPCLK bit
in the USBCON register.
4. Disable the PLL by clearing the PLLEN bit in the PLLCON register.
5. Make the CPU core enter power down mode by setting PDOWN bit in PCON.
21.8.2 Resume
When the USB controller is in Suspend state, the Resume detection is active even if all the
clocks are disabled and if the C51 is in Idle or Power-down mode. The WUPCPU bit is set by
hardware when a non-idle state occurs on the USB bus. This triggers an interrupt if enabled.
This interrupt wakes up the CPU from its Idle or Power-down state and the interrupt function is
then executed. The firmware will first enable the 48 MHz generation and then reset to 0 the
SUSPCLK bit in the USBCON register if needed.
The firmware has to clear the SPINT bit in the USBINT register before any other USB operation
in order to wake up the USB controller from its Suspend mode.
The USB controller is then re-activated.
SPINT
Detection of a SUSPEND State
Clear SPINT
Set SUSPCLK
Disable PLL
microcontroller in Power-down
WUPCPU
Detection of a RESUME State
Enable PLL
Clear SUSPCLK
Clear WUPCPU Bit
115
7683CUSB11/07
21.8.3 Upstream Resume
A USB device can be allowed by the Host to send an upstream resume for Remote Wake Up
purpose.
When the USB controller receives the SET_FEATURE request: DEVICE_REMOTE_WAKEUP,
the firmware will set to 1 the RMWUPE bit in the USBCON register to enable this functionality.
RMWUPE value will be 0 in the other cases.
If the device is in SUSPEND mode, the USB controller can send an upstream resume by clear-
ing first the SPINT bit in the USBINT register and by setting then to 1 the SDRMWUP bit in the
USBCON register. The USB controller sets to 1 the UPRSM bit in the USBCON register. All
clocks must be enabled first. The Remote Wake is sent only if the USB bus was in Suspend
state for at least 5 ms. When the upstream resume is completed, the UPRSM bit is reset to 0 by
hardware. The firmware will then clear the SDRMWUP bit.
SET_FEATURE: DEVICE_REMOTE_WAKEUP
Set RMWUPE
SPINT
Detection of a SUSPEND State
Suspend Management
Enable Clocks
Clear SPINT
UPRSM = 1 Set SDMWUP
UPRSM
Upstream RESUME Sent
Clear SDRMWUP
116 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
VREF
1.5 kW
1
VCC
D- 2
D-
3
D+ D+
4 GND
AT89C5131 USB-B Connector
VIL
D-
VSS
> = 2,5 ms
Device Disconnect
Disconnected Detected
00
D+ USB 01
Controller 10
D- 11
EUSB EA
IE1.6 IE0.7 IPH/L
Interrupt Enable Priority Enable Lowest Priority Interrupts
117
7683CUSB11/07
Table 21-2. Priority Levels
IPHUSB IPLUSB USB Priority Level
0 0 0 Lowest
0 1 1
1 0 2
1 1 3 Highest
118 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Endpoint X (X = 0..5)
TXCMP
UEPSTAX.0
RXOUTB0
UEPSTAX.1
RXOUTB1 EPXINT
UEPSTAX.6 UEPINT.X
RXSETUP EPXIE
UEPSTAX.2 UEPIEN.X
STLCRC
UEPSTAX.3
WUPCPU
USBINT.5 EUSB
IE1.6
EWUPCPU
USBIEN.5
EORINT
USBINT.4
EEORINT
USBIEN.4
SOFINT
USBINT.3
ESOFINT
USBIEN.3
SPINT
USBINT.0
ESPINT
USBIEN.0
119
7683CUSB11/07
21.11 USB Registers
Table 21-3. USBCON Register
USBCON (S:BCh)
USB Global Control Register
7 6 5 4 3 2 1 0
USB Enable
Set this bit to enable the USB controller.
7 USBE
Clear this bit to disable and reset the USB controller, to disable the USB
transceiver an to disable the USB controller clock inputs.
Detach Command
Set this bit to simulate a Detach on the USB line. The VREF pin is then in a floating
4 DETACH
state.
Clear this bit to maintain VREF at high level.
Configured
This bit will be set by the device firmware after a SET_CONFIGURATION request
with a non-zero value has been correctly processed.
1 CONFG It will be cleared by the device firmware when a SET_CONFIGURATION request
with a zero value is received. It is cleared by hardware on hardware reset or when
an USB reset is detected on the bus (SE0 state for at least 32 Full Speed bit times:
typically 2.7 s).
120 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
Reserved
7-6 -
The value read from these bits is always 0. Do not set these bits.
Reserved
2 -
The value read from this bit is always 0. Do not set this bit.
Reserved
1 -
The value read from this bit is always 0. Do not set this bit.
Suspend Interrupt
This bit is set by hardware when a USB Suspend (Idle bus for three frame periods: a J
state for 3 ms) is detected. This triggers a USB interrupt when ESPINT is set in see
0 SPINT
Table 21-5 on page 122.
This bit will be cleared by software BEFORE any other USB operation to re-activate the
macro.
121
7683CUSB11/07
Table 21-5. USBIEN Register
USBIEN (S:BEh)
USB Global Interrupt Enable Register
7 6 5 4 3 2 1 0
Reserved
7-6 -
The value read from these bits is always 0. Do not set these bits.
2 - Reserved
The value read from these bits is always 0. Do not set these bits.
1 -
122 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
Function Enable
7 FEN Set this bit to enable the address filtering function.
Cleared this bit to disable the function.
USB Address
This field contains the default address (0) after power-up or USB bus reset.
6-0 UADD[6:0]
It will be written with the value set by a SET_ADDRESS request received by the device
firmware.
7 6 5 4 3 2 1 0
Reserved
7-4 -
The value read from these bits is always 0. Do not set these bits.
Endpoint Number
Set this field with the number of the endpoint which will be accessed when reading
or writing to, UEPDATX Register UEPDATX (S:CFh) USB FIFO Data Endpoint X (X
= EPNUM set in UEPNUM Register UEPNUM (S:C7h) USB Endpoint Number),
UBYCTLX Register UBYCTLX (S:E2h) USB Byte Count Low Register X (X =
3-0 EPNUM[3:0]
EPNUM set in UEPNUM Register UEPNUM (S:C7h) USB Endpoint Number),
UBYCTHX Register UBYCTHX (S:E3h) USB Byte Count High Register X (X =
EPNUM set in UEPNUM Register UEPNUM (S:C7h) USB Endpoint Number) or
UEPCONX Register UEPCONX (S:D4h) USB Endpoint X Control Register. This
value can be 0, 1, 2, 3, 4, or 5.
123
7683CUSB11/07
Table 21-8. UEPCONX Register
UEPCONX (S:D4h)
USB Endpoint X Control Register
7 6 5 4 3 2 1 0
Endpoint Enable
Set this bit to enable the endpoint according to the device configuration. Endpoint 0 will
7 EPEN always be enabled after a hardware or USB bus reset and participate in the device
configuration.
Clear this bit to disable the endpoint according to the device configuration.
Reserved
6 -
The value read from this bit is always 0. Do not set this bit.
Reserved
5 -
The value read from this bit is always 0. Do not set this bit.
Reserved
4 -
The value read from this bit is always 0. Do not set this bit.
Endpoint Direction
Set this bit to configure IN direction for Bulk, Interrupt and Isochronous endpoints.
2 EPDIR
Clear this bit to configure OUT direction for Bulk, Interrupt and Isochronous endpoints.
This bit has no effect for Control endpoints.
Endpoint Type
Set this field according to the endpoint configuration (Endpoint 0 will always be
configured as control):
1-0 EPTYPE[1:0] 00Control endpoint
01Isochronous endpoint
10Bulk endpoint
11Interrupt endpoint
Note: 1. (X = EPNUM set in UEPNUM Register UEPNUM (S:C7h) USB Endpoint Number)
Reset Value = 80h when UEPNUM = 0 (default Control Endpoint)
Reset Value = 00h otherwise for all other endpoints
124 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
Bit
Bit Number Mnemonic Description
TX Packet Ready
Set this bit after a packet has been written into the endpoint FIFO for IN data transfers. Data will be written into the
endpoint FIFO only after this bit has been cleared. Set this bit without writing data to the endpoint FIFO to send a Zero
4 TXRDY Length Packet.
This bit is cleared by hardware, as soon as the packet has been sent for Isochronous endpoints, or after the host has
acknowledged the packet for Control, Bulk and Interrupt endpoints. When this bit is cleared, the endpoint interrupt is
triggered if enabled (seeUEPINT Register UEPINT (S:F8h read-only) USB Endpoint Interrupt Register on page 128).
Received SETUP
This bit is set by hardware when a valid SETUP packet has been received from the host. Then, all the other bits of the
2 RXSETUP register are cleared by hardware and the endpoint interrupt is triggered if enabled (seeUEPINT Register UEPINT (S:F8h
read-only) USB Endpoint Interrupt Register on page 128).
It will be cleared by the device firmware after reading the SETUP data from the endpoint FIFO.
Received OUT Data Bank 0 (see also RXOUTB1 bit for Ping-pong Endpoints)
This bit is set by hardware after a new packet has been stored in the endpoint FIFO data bank 0. Then, the endpoint
interrupt is triggered if enabled (seeUEPINT Register UEPINT (S:F8h read-only) USB Endpoint Interrupt Register on
1 RXOUTB0 page 128) and all the following OUT packets to the endpoint bank 0 are rejected (NAKed) until this bit has been cleared,
excepted for Isochronous Endpoints. However, for control endpoints, an early SETUP transaction may overwrite the
content of the endpoint FIFO, even if its Data packet is received while this bit is set.
This bit will be cleared by the device firmware after reading the OUT data from the endpoint FIFO.
125
7683CUSB11/07
Table 21-10. UEPDATX Register
UEPDATX (S:CFh)
USB FIFO Data Endpoint X (X = EPNUM set in UEPNUM Register UEPNUM (S:C7h) USB Endpoint Number)
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
- - - - - - BYCT9 BYCT8
Reserved
7-2 -
The value read from these bits is always 0. Do not set these bits.
126 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
Reserved
7 -
The value read from this bit is always 0. Do not set this bit.
Reserved
6 -
The value read from this bit is always 0. Do not set this bit.
127
7683CUSB11/07
Table 21-14. UEPINT Register
UEPINT (S:F8h read-only)
USB Endpoint Interrupt Register
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
Reserved
7 -
The value read from this bit is always 0. Do not set this bit.
Reserved
6 -
The value read from this bit is always 0. Do not set this bit.
Endpoint 5 Interrupt
This bit is set by hardware when an endpoint interrupt source has been detected on the
endpoint 5. The endpoint interrupt sources are in the UEPSTAX register and can be:
5 EP5INT
TXCMP, RXOUTB0, RXOUTB1, RXSETUP or STLCRC.
A USB interrupt is triggered when the EP5IE bit in the UEPIEN register is set.
This bit is cleared by hardware when all the endpoint interrupt sources are cleared
Endpoint 4 Interrupt
This bit is set by hardware when an endpoint interrupt source has been detected on the
4 EP4INT endpoint 4. The endpoint interrupt sources are in the UEPSTAX register and can be:
TXCMP, RXOUTB0, RXOUTB1, RXSETUP or STLCRC.
A USB interrupt is triggered when the EP4IE bit in the UEPIEN register is set.
This bit is cleared by hardware when all the endpoint interrupt sources are cleared
Endpoint 3 Interrupt
This bit is set by hardware when an endpoint interrupt source has been detected on the
3 EP3INT endpoint 3. The endpoint interrupt sources are in the UEPSTAX register and can be:
TXCMP, RXOUTB0, RXOUTB1, RXSETUP or STLCRC.
A USB interrupt is triggered when the EP3IE bit in the UEPIEN register is set.
This bit is cleared by hardware when all the endpoint interrupt sources are cleared
Endpoint 2 Interrupt
This bit is set by hardware when an endpoint interrupt source has been detected on the
endpoint 2. The endpoint interrupt sources are in the UEPSTAX register and can be:
2 EP2INT
TXCMP, RXOUTB0, RXOUTB1, RXSETUP or STLCRC.
A USB interrupt is triggered when the EP2IE bit in the UEPIEN register is set.
This bit is cleared by hardware when all the endpoint interrupt sources are cleared
Endpoint 1 Interrupt
This bit is set by hardware when an endpoint interrupt source has been detected on the
endpoint 1. The endpoint interrupt sources are in the UEPSTAX register and can be:
1 EP1INT
TXCMP, RXOUTB0, RXOUTB1, RXSETUP or STLCRC.
A USB interrupt is triggered when the EP1IE bit in the UEPIEN register is set.
This bit is cleared by hardware when all the endpoint interrupt sources are cleared
Endpoint 0 Interrupt
This bit is set by hardware when an endpoint interrupt source has been detected on the
endpoint 0. The endpoint interrupt sources are in the UEPSTAX register and can be:
0 EP0INT
TXCMP, RXOUTB0, RXOUTB1, RXSETUP or STLCRC.
A USB interrupt is triggered when the EP0IE bit in the UEPIEN register is set.
This bit is cleared by hardware when all the endpoint interrupt sources are cleared
128 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
Reserved
7 -
The value read from this bit is always 0. Do not set this bit.
Reserved
6 -
The value read from this bit is always 0. Do not set this bit.
129
7683CUSB11/07
Table 21-16. UFNUMH Register
UFNUMH (S:BBh, read-only)
USB Frame Number High Register
7 6 5 4 3 2 1 0
Bit
Number Bit Mnemonic Description
Reserved
3 -
The value read from this bit is always 0. Do not set this bit.
Frame Number
FNUM[10:8] are the upper 3 bits of the 11-bit Frame Number (see the UFNUML Register
UFNUML (S:BAh, read-only) USB Frame Number Low Register on page 130). It is
2-0 FNUM[10:8]
provided in the last received SOF packet (see SOFINT in the USBIEN Register USBIEN
(S:BEh) USB Global Interrupt Enable Register on page 122). FNUM is updated if a
corrupted SOF is received.
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
Frame Number
7-0 FNUM[7:0] FNUM[7:0] are the lower 8 bits of the 11-bit Frame Number (See UFNUMH Register
UFNUMH (S:BBh, read-only) USB Frame Number High Register on page 130.).
130 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
22. Reset
22.1 Introduction
The reset sources are: Power Management, Hardware Watchdog, PCA Watchdog and Reset
input.
Power
Monitor
PCA
Watchdog
RST
VCC
RST
+
RRST
131
7683CUSB11/07
Figure 22-3. Recommended Reset Output Schematic
VDD
RST
RST
1K AT89C5131A-M
VSS
+ To other
VSS on-board
circuitry
132 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
23.1 Description
In order to startup and maintain the microcontroller in correct operating mode, VCC has to be sta-
bilized in the VCC operating range and the oscillator has to be stabilized with a nominal amplitude
compatible with logic level VIH/VIL.
These parameters are controlled during the three phases: power-up, normal operation and
power going down. See Figure 23-1.
Regulated
Power On Reset Supply Memories
Power Fail Detect
Voltage Regulator
Peripherals
XTAL1 (1)
PCA Hardware
Watchdog Watchdog
Note: 1. Once XTAL1 High and low levels reach above and below VIH/VIL. a 1024 clock period delay
will extend the reset coming from the Power Fail Detect. If the power falls below the Power Fail
Detect threshold level, the Reset will be applied immediately.
The Voltage regulator generates a regulated internal supply for the CPU core the memories and
the peripherals. Spikes on the external Vcc are smoothed by the voltage regulator.
The Power fail detect monitor the supply generated by the voltage regulator and generate a
reset if this supply falls below a safety threshold as illustrated in the Figure 23-2 below.
133
7683CUSB11/07
Figure 23-2. Power Fail Detect
Vcc
Reset
Vcc
When the power is applied, the Power Monitor immediately asserts a reset. Once the internal
supply after the voltage regulator reach a safety level, the power monitor then looks at the XTAL
clock input. The internal reset will remain asserted until the Xtal1 levels are above and below
VIH and VIL. Further more. An internal counter will count 1024 clock periods before the reset is
de-asserted.
If the internal power supply falls below a safety level, a reset is immediately asserted.
.
134 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
135
7683CUSB11/07
Figure 24-1. Power-down Exit Waveform
INT0
INT1
XTAL
Exit from power-down by reset redefines all the SFRs, exit from power-down by external inter-
rupt does no affect the SFRs.
Exit from power-down by either reset or external interrupt does not affect the internal RAM
content.
Note: If idle mode is activated with power-down mode (IDL and PD bits set), the exit sequence is
unchanged, when execution is vectored to interrupt, PD and IDL bits are cleared and idle mode is
not entered.
This table shows the state of ports during idle and power-down modes.
Table 24-1. State of Ports
Program
Mode Memory ALE PSEN PORT0 PORT1 PORT2 PORT3 PORTI2
Port
Idle Internal 1 1 Port Data Port Data Port Data Port Data
Data(1)
Idle External 1 1 Floating Port Data Address Port Data Port Data
Port
Power-down Internal 0 0 Port Data Port Data Port Data Port Data
Data(1)
Power-down External 0 0 Floating Port Data Port Data Port Data Port Data
Note: 1. Port 0 can force a 0 level. A one will leave port floating.
136 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
24.3 Registers
Table 24-2. PCON Register
PCON (S:87h)
Power Control Register
7 6 5 4 3 2 1 0
Bit
Bit Number Mnemonic Description
Reserved
5 -
The value read from this bit is always 0. Do not set this bit.
Power-Off Flag
Set by hardware when VCC rises from 0 to its nominal voltage. Can also be set by
4 POF
software.
Clear to recognize next reset type.
General-purpose Flag 1
3 GF1 Set by software for general-purpose usage.
Cleared by software for general-purpose usage.
General-purpose Flag 0
2 GF0 Set by software for general-purpose usage.
Cleared by software for general-purpose usage.
137
7683CUSB11/07
25. Hardware Watchdog Timer
The WDT is intended as a recovery method in situations where the CPU may be subjected to
software upset. The WDT consists of a 14-bit counter and the WatchDog Timer ReSeT
(WDTRST) SFR. The WDT is by default disabled from exiting reset. To enable the WDT, user
must write 01EH and 0E1H in sequence to the WDTRST, SFR location 0A6H. When WDT is
enabled, it will increment every machine cycle while the oscillator is running and there is no way
to disable the WDT except through reset (either hardware reset or WDT overflow reset). When
WDT overflows, it will drive an output RESET LOW pulse at the RST-pin.
- - - - - - - -
Reset Value = XXXX XXXXb
Write only, this SFR is used to reset/enable the WDT by writing 01EH then 0E1H in sequence.
138 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
- - - - - S2 S1 S0
Bit Bit
Number Mnemonic Description
7 -
6 -
Reserved
5 -
The value read from this bit is undetermined. Do not try to set this bit.
4 -
3 -
S2 S1 S0 Selected Time-out
0 0 0 16384x2^(214 - 1) machine cycles, 16.3 ms at FOSC = 12 MHz
0 0 1 16384x2^(215 - 1) machine cycles, 32.7 ms at FOSC = 12 MHz
0 1 0 16384x2^(216 - 1) machine cycles, 65.5 ms at FOSC = 12 MHz
0 1 1 16384x2^(217 - 1) machine cycles, 131 ms at FOSC = 12 MHz
1 0 0 16384x2^(218 - 1) machine cycles, 262 ms at FOSC = 12 MHz
1 0 1 16384x2^(219 - 1) machine cycles, 542 ms at FOSC = 12 MHz
1 1 0 16384x2^(220 - 1) machine cycles, 1.05 s at FOSC = 12 MHz
1 1 1 16384x2^(221 - 1) machine cycles, 2.09 s at FOSC = 12 MHz
16384x2^S machine cycles
139
7683CUSB11/07
AT83C5134/35/36
7 6 5 4 3 2 1 0
Bit Bit
Number Mnemonic Description
Reserved
6 -
The value read from this bit is indeterminate. Do not set this bit.
Pulse length
Cleared to stretch MOVX control: the RD and the WR pulse length is 6 clock periods
5 M0
(default).
Set to stretch MOVX control: the RD and the WR pulse length is 30 clock periods.
Reserved
4 -
The value read from this bit is indeterminate. Do not set this bit.
EXTRAM bit
1 EXTRAM Cleared to access internal ERAM using MOVX at Ri at DPTR.
Set to access external memory.
141
7683BUSB03/07
27. Electrical Characteristics
27.2 DC Parameters
TA = -40C to +85C; VSS = 0V; VCC = 2.7 - 3.6V; F = 0 to 40 MHz
VIH Input High Voltage except XTAL1, RST 0.2 VCC + 0.9 VCC + 0.5 V
VIH1 Input High Voltage, XTAL1, RST 0.7 VCC VCC + 0.5 V
IOH = -10 A
VCC - 0.3 V
IOH = -30 A
VOH Output High Voltage, ports 1, 2, 3, 4 and 5 VCC - 0.7 V
IOH = -60 A
VCC - 1.5 V
VCC = 2.7 - 3.6V
IOH = -200 A
VCC - 0.3 V
IOH = -1.6 mA
VOH1 Output High Voltage, port 0, ALE, PSEN VCC - 0.7 V
IOH = -3.5 mA
VCC - 1.5 V
VCC = 2.7 - 3.6V
Fc = 1 MHz
CIO Capacitance of I/O Buffer 10 pF
TA = 25C
ICCOP = 0.33xF(MHz)+1.46
Power Supply Current
ICC ICCIDLE = 0.3xF(MHz)+1.46 VCC = 3.3V (1)(2)
ICCwrite = 0.8xF(MHz)+15
142 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
VCC
ICC
VCC VCC
P0
RST EA
(NC) XTAL2
CLOCK XTAL1
SIGNAL
VSS
143
7683CUSB11/07
Figure 27-2. ICC Test Condition, Idle Mode
VCC
ICC
VCC VCC
P0
VCC
RST EA
(NC) XTAL2
CLOCK XTAL1
SIGNAL
VSS
VCC
ICC
VCC VCC
P0
VCC
RST EA
(NC) XTAL2
XTAL1
VSS
Figure 27-4. Clock Signal Waveform for ICC Tests in Active and Idle Modes
VCC-0.5V 0.7VCC
0.45V 0.2VCC-0.1
TCHCL TCLCH
TCLCH = TCHCL = 5ns.
27.2.1 LEDs
Table 27-1. LED Outputs DC Parameters
Symbol Parameter Min Typ Max Unit Test Conditions
1 2 4 mA 2 mA configuration
IOL Output Low Current, P3.6 and P3.7 LED modes 2 4 8 mA 4 mA configuration
5 10 20 mA 10 mA configuration
144 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
1 - VBUS
2-D-
3-D+
4 - GND
R
VREF
3 2 D+
Rpad
D-
USB B Rpad
Receptacle
4 1
R = 1.5 k
Rpad = 27
27.4 AC Parameters
(Load Capacitance for port 0, ALE and PSEN = 60 pF; Load Capacitance for all other outputs =
60 pF.)
Table 27-3, Table 27-6 and Table 27-9 give the description of each AC symbols.
Table 27-4, Table 27-8 and Table 27-10 give for each range the AC parameter.
Table 27-5, Table 27-8 and Table 27-11 give the frequency derating formula of the AC parame-
ter for each speed range description. To calculate each AC symbols. take the x value and use
this value in the formula.
145
7683CUSB11/07
Example: TLLIV and 20 MHz, Standard clock.
x = 30 ns
T = 50 ns
TCCIV = 4T - x = 170 ns
T 25 ns
TLHLL 40 ns
TAVLL 10 ns
TLLAX 10 ns
TLLIV 70 ns
TLLPL 15 ns
TPLPH 55 ns
TPLIV 35 ns
TPXIX 0 ns
TPXIZ 18 ns
TAVIV 85 ns
TPLAZ 10 ns
146 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
TPXIX Min x x 0 ns
TPLAZ Max x x 10 ns
12 TCLCL
TLHLL TLLIV
ALE TLLPL
TPLPH
PSEN TPXAV
TLLAX TPXIZ
TPLIV
TAVLL TPLAZ TPXIX
PORT 0 INSTR IN A0-A7 INSTR IN A0-A7 INSTR IN
TAVIV
PORT 2 ADDRESS
OR SFR-P2 ADDRESS A8-A15 ADDRESS A8-A15
147
7683CUSB11/07
27.4.4 External Data Memory Characteristics
Table 27-5. Symbol Description
Symbol Parameter
TLLWL ALE to WR or RD
TAVWL Address to WR or RD
TRLRH 130 ns
TWLWH 130 ns
TRLDV 100 ns
TRHDX 0 ns
TRHDZ 30 ns
TLLDV 160 ns
TAVDV 165 ns
TLLWL 50 100 ns
TAVWL 75 ns
TQVWX 10 ns
TQVWH 160 ns
TWHQX 15 ns
TRLAZ 0 ns
TWHLH 10 40 ns
148 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
TRHDX Min x x 0 ns
TRLAZ Max x x 0 ns
TWHLH
ALE
PSEN
TLLWL TWLWH
WR
TQVWX
TLLAX TQVWH TWHQX
PORT 0 A0-A7 DATA OUT
TAVWL
PORT 2 ADDRESS
OR SFR-P2 ADDRESS A8-A15 OR SFR P2
149
7683CUSB11/07
27.4.6 External Data Memory Read Cycle
TWHLH
ALE TLLDV
PSEN
TLLWL TRLRH
RD TRHDZ
TAVDV
TLLAX TRHDX
PORT 0 A0-A7 DATA IN
TRLAZ
TAVWL
PORT 2 ADDRESS
OR SFR-P2 ADDRESS A8-A15 OR SFR P2
TXLXL 300 ns
TQVHX 200 ns
TXHQX 30 ns
TXHDX 0 ns
TXHDV 117 ns
TXLXL Min 12 T 6T ns
TXHDX Min x x 0 ns
150 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
ALE
TXLXL
CLOCK
TXHQX
TQVXH
OUTPUT DATA 0 1 2 3 4 5 6 7
TXHDX SET TI
WRITE to SBUF TXHDV
INPUT DATA VALID VALID VALID VALID VALID VALID VALID VALID
SET RI
CLEAR RI
0.45V 0.2VCC-0.1
TCHCX
TCHCL TCLCX TCLCH
TCLCL
For timing purposes as port pin is no longer floating when a 100 mV change from load voltage
occurs and begins to float when a 100 mV change from the loaded VOH/VOL level occurs. IOL/IOH
20 mA.
151
7683CUSB11/07
27.4.13 Clock Waveforms
Valid in normal clock mode. In X2 mode XTAL2 must be changed to XTAL2/2.
ALE
THESE SIGNALS ARE NOT ACTIVATED DURING THE
EXTERNAL PROGRAM MEMORY FETCH EXECUTION OF A MOVX INSTRUCTION
PSEN
READ CYCLE
RD
PCL OUT (IF PROGRAM
MEMORY IS EXTERNAL)
P0 DPL OR Rt OUT DATA
SAMPLED
FLOAT
P2 INDICATES DPH OR P2 SFR TO PCH TRANSITION
WRITE CYCLE
WR PCL OUT (EVEN IF PROGRAM
MEMORY IS INTERNAL)
P0 DPL OR Rt OUT
PORT OPERATION
MOV PORT SRC OLD DATA NEW DATA
P0 PINS SAMPLED P0 PINS SAMPLED
MOV DEST P0
MOV DEST PORT (P1. P2. P3) P1, P2, P3 PINS SAMPLED P1, P2, P3 PINS SAMPLED
(INCLUDES INTO. INT1. TO T1)
This diagram indicates when signals are clocked internally. The time it takes the signals to propagate to the pins, however,
ranges from 25 to 125 ns. This propagation delay is dependent on variables such as temperature and pin loading. Propa-
gation also varies from output to output and component. Typically though (TA = 25C fully loaded) RD and WR propagation
delays are approximately 50 ns. The other signals are typically 85 ns. Propagation delays are incorporated in the AC
specifications.
152 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
tR Rise Time 4 20 ns
tF Fall Time 4 20 ns
C Clock H High
I Data In L Low
X No Longer Valid
Z Floating
153
7683CUSB11/07
27.6.0.2 Timings
Test conditions: capacitive load on all pins= 50 pF.
Table 27-15. SPI Interface Master AC Timing
VDD = 2.7 to 5.5 V, TA = -40 to +85C
Slave Mode
Master Mode
Note: TPER is XTAL period when SPI interface operates in X2 mode or twice XTAL period when SPI
interface operates in X1 mode.
154 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
27.6.0.3 Waveforms
SS
(input)
TSLCH TCLSH
TSLCL TCHCH TCHSH TSHSL
TCLCH
SCK
(CPOL= 0)
(input) TCHCX TCLCX
TCHCL
SCK
(CPOL= 1)
(input)
TSLOV TCLOV TCLOX TSHOX
TCHOV TCHOX
MISO (1)
(output) SLAVE MSB OUT BIT 6 SLAVE LSB OUT
TIVCH TCHIX
TIVCL TCLIX
MOSI
(input) MSB IN BIT 6 LSB IN
Note: 1. Not Defined but generally the MSB of the character which has just been received.
SS
(input)
TSLCH TCLSH
TSLCL TCHCH TCHSH TSHSL
TCLCH
SCK
(CPOL= 0)
(input) TCHCX TCLCX
TCHCL
SCK
(CPOL= 1)
(input) TCHOV
TSLOV TCHOX TSHOX
TCLOV TCLOX
MISO
(1) SLAVE MSB OUT BIT 6 SLAVE LSB OUT
(output)
TIVCH TCHIX
TIVCL TCLIX
MOSI
MSB IN BIT 6 LSB IN
(input)
Note: 1. Not Defined but generally the LSB of the character which has just been received.
155
7683CUSB11/07
Figure 27-7. SPI Master Waveforms (SSCPHA= 0)
SS
(output)
TCHCH
TCLCH
SCK
(CPOL= 0)
(output) TCHCX TCLCX
TCHCL
SCK
(CPOL= 1)
(output) TIVCH TCHIX
TIVCL TCLIX
MOSI
(input) MSB IN BIT 6 LSB IN
TCLOV TCLOX
TCHOV TCHOX
MISO
(output) Port Data MSB OUT BIT 6 LSB OUT Port Data
SS(1)
(output)
TCHCH
TCLCH
SCK
(CPOL= 0)
(output) TCHCX TCLCX
TCHCL
SCK
(CPOL= 1)
(output) TIVCH TCHIX
TIVCL TCLIX
MOSI
(input) MSB IN BIT 6 LSB IN
TCLOV TCLOX
TCHOV TCHOX
MISO
Port Data MSB OUT BIT 6 LSB OUT Port Data
(output)
156 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
AT83C5136xxx-DDW 32KB 2.7 to 3.6V Industrial & Green Die Inked Wafer
157
7683CUSB11/07
29. Packaging Information
158 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
159
7683CUSB11/07
160 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
29.3 28-lead SO
161
7683CUSB11/07
29.4 QFN32
162 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
163
7683CUSB11/07
1 Features .................................................................................................... 1
2 Description ............................................................................................... 1
10 Stacked EEPROM................................................................................... 29
10.1 Overview.......................................................................................................... 29
10.2 Protocol ........................................................................................................... 29
12 Timer 2 .................................................................................................... 33
12.1 Auto-reload Mode ............................................................................................ 33
12.2 Programmable Clock Output ........................................................................... 34
164 AT83C5134/35/36
7683CUSB11/07
AT83C5134/35/36
18 Programmable LED................................................................................ 74
165
7683CUSB11/07
21.9 Detach Simulation ......................................................................................... 117
21.10 USB Interrupt System.................................................................................... 117
21.11 USB Registers ............................................................................................... 120
166 AT83C5134/35/36
7683CUSB11/07
Headquarters International
Product Contact
Literature Requests
www.atmel.com/literature
Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any
intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN ATMELS TERMS AND CONDI-
TIONS OF SALE LOCATED ON ATMELS WEB SITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY
WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDEN-
TAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT
OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no
representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications
and product descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically provided
otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmels products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life.
2007 Atmel Corporation. All rights reserved. Atmel , logo and combinations thereof, and others are registered trademarks or trademarks of
Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others.
7683CUSB11/07