Analog Devices MicroConverter ADuC832 User Manual

Page 2

Advertising
background image

BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY

BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY BIG MEMORY

(not used)

(not used)

(not used)

(not used)

(not used)

(not used)

(not used)

(not used)

(not used)

(not used)

(not used)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

(reserved)

SPICON

F8h

04h

B

F0h

00h

I2CCON

E8h

00h

ACC

E0h

00h

ADCCON2

D8h

00h

PSW

D0h

00h

T2CON

C8h

00h

WDCON

C0h

10h

IP

B8h

00h

P3

B0h

FFh

IE

A8h

00h

P2

A0h

FFh

SCON

98h

00h

P1

90h

FFh

TCON

88h

00h

P0

80h

FFh

DAC0L

F9h

00h

ADCOFSL

F1h

*

00h

ADCDA

TA

L

D9h

00h

ECON

B9h

00h

IEIP2

A9h

A0h

SBUF

99h

00h

TMOD

89h

00h

SP

81h

07h

DAC0H

FA

h

00h

ADCOFSH

F2h

*

20h

ADCDA

TA

H

DAh

00h

DMAL

D2h

00h

RCAP2L

CAh

00h

TL0

8Ah

00h

DPL

82h

00h

DAC1L

FBh

00h

ADCGAINL

F3h

*

00h

DMAH

D3h

00h

RCAP2H

CBh

00h

TL1

8Bh

00h

DPH

83h

00h

DAC1H

FCh

00h

ADCGAINH

F4h

*

00h

DMAP

D4h

00h

TL2

CCh

00h

E

D

ATA

1

BCh

00h

TH0

8Ch

00h

DPP

84h

00h

DACCON

FDh

04h

ADCCON3

F5h

00h

TH2

CDh

00h

E

D

ATA

2

BDh

00h

TH1

8Dh

00h

EADRL

C6h

00h

E

D

ATA

3

BEh

00h

SPIDA

T

F7h

00h

ADCCON1

EFh

00h

PSMCON

DFh

DEh

E

D

ATA

4

BFh

00h

PCON

87h

00h

SPR0

F8h

0

F0h

0

I2CI

E8h

0

E0h

0

CS0

D8h

0

P

D0h

0

CAP2

C8h

0

WDWR

C0h

0

PX0

B8h

0

RXD

B0h

1

EX0

A8h

0

A0h

1

RI

98h

0

T2

90h

1

IT0

88h

0

80h

1

SPR1

F9h

0

F1h

0

I2CTX

E9h

0

E1h

0

CS1

D9h

0

F1

D1h

0

CNT2

C9h

0

WDE

C1h

0

PT0

B9h

0

TXD

B1h

1

ET0

A9h

0

A1h

1

TI

99h

0

T2EX

91h

1

IE0

89h

0

81h

1

CPHA

FA

h

1

F2h

0

I2CRS

EAh

0

E2h

0

CS2

DAh

0

OV

D2h

0

TR2

CAh

0

WDS

C2h

0

PX1

BAh

0

INT0

B2h

1

EX1

AAh

0

A2h

1

RB8

9Ah

0

92h

1

IT1

8Ah

0

82h

1

CPOL

FBh

0

F3h

0

I2CM

EBh

0

E3h

0

CS3

DBh

0

RS0

D3h

0

EXEN2

CBh

0

WDIR

C3h

0

PT1

BBh

0

INT1

B3h

1

ET1

ABh

0

A3h

1

TB8

9Bh

0

93h

1

IE1

8Bh

0

83h

1

SPIM

FCh

0

F4h

0

MDI

ECh

0

E4h

0

SCONV

DCh

0

RS1

D4h

0

TCLK

CCh

0

C4h

1

PS

BCh

0

T0

B4h

1

ES

ACh

0

A4h

1

REN

9Ch

0

94h

1

TR0

8Ch

0

84h

1

SPE

FDh

0

F5h

0

MCO

EDh

0

E5h

0

CCONV

DDh

0

F0

D5h

0

RCLK

CDh

0

PRE1

C5h

0

PT2

BDh

0

T1

B5h

1

ET2

ADh

0

A5h

1

SM2

9Dh

0

95h

1

TF0

8Dh

0

85h

1

WCOL

FEh

0

F6h

0

MDE

EEh

0

E6h

0

DMA

DEh

0

AC

D6h

0

EXF2

CEh

0

PRE2

C6h

0

PADC

BEh

0

WR

B6h

1

EADC

AEh

0

A6h

1

SM1

9Eh

0

96h

1

TR1

8Eh

0

86h

1

ISPI

FFh

0

F7h

0

MDO

EFh

0

E7h

0

ADCI

DFh

0

CY

D7h

0

TF2

CFh

0

PRE3

C7h

0

PSI

BFh

0

RD

B7h

1

EA

AFh

0

A7h

1

SM0

9Fh

0

97h

1

TF1

8Fh

0

87h

1

SPR0

F8h

0

SPICON

F8h

04h

SPR1

F9h

0

mnemonic
reset value
address

mnemonic

address

reset value

these bits

this byte

are contained in

*

calibration coefficients are preconfigured at power-up to factory calibrated values

7Fh
...
30h
2Fh
2Eh
2Dh
2Ch
2Bh
2Ah
29h
28h
27h
26h
25h
24h
23h
22h
21h
20h
1Fh

R7

1Eh

R6

1Dh

R5

1Ch

R4

1Bh

R3

1Ah

R2

19h

R1

18h

R0

17h

R7

16h

R6

15h

R5

14h

R4

13h

R3

12h

R2

11h

R1

10h

R0

0Fh

R7

0Eh

R6

0Dh

R5

0Ch

R4

0Bh

R3

0Ah

R2

09h

R1

08h

R0

07h

R7

06h

R6

05h

R5

04h

R4

03h

R3

02h

R2

01h

R1

00h

R0

General Purpose

Area

Bit Addressable

Area

Register Bank 3

7Fh

7Eh

7Dh

7Ch

7Bh

7Ah

79h

78h

77h

76h

75h

74h

73h

72h

71h

70h

6Fh

6Eh

6Dh

6Ch

6Bh

6Ah

69h

68h

67h

66h

65h

64h

63h

62h

61h

60h

5Fh

5Eh

5Dh

5Ch

5Bh

5Ah

59h

58h

57h

56h

55h

54h

53h

52h

51h

50h

4Fh

4Eh

4Dh

4Ch

4Bh

4Ah

49h

48h

47h

46h

45h

44h

43h

42h

41h

40h

3Fh

3Eh

3Dh

3Ch

3Bh

3Ah

39h

38h

37h

36h

35h

34h

33h

32h

31h

30h

2Fh

2Eh

2Dh

2Ch

2Bh

2Ah

29h

28h

27h

26h

25h

24h

23h

22g

21h

20h

1Fh

1Eh

1Dh

1Ch

1Bh

1Ah

19h

18h

17h

16h

15h

14h

13h

12h

11g

10h

0Fh

0Eh

0Dh

0Ch

0Bh

0Ah

09h

08h

07h

06h

05h

04h

03h

02h

01h

00h

127
...
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

decimal address

HEX address

(bit addresses)

4K bytes

(1K pages)

data

Flash/EE

(accessible

through

SFRs)

CFG832.0=0

external

data

memory

(16M bytes

addressable)

M

SB

addre

ss

LS

B

address

3FFh

000h

( page 0 )

( page 1023 )

Register Bank 2

Register Bank 1

Register Bank 0

CFG832.0=1

internal

data

memory

2K bytes

000h

FFFFFFh

7FFh

PLLCON

D7h

53h

CHIPID

C2h

2Xh

EADRH

C7h

00h

PWM0L

B1h

00h

PWM0H

B2h

00h

PWM1L

B3h

00h

PWM1H

B4h

00h

SPH

B7h

00h

CFG832

AFh

00h

PWMCON

AEh

00h

TIMECON

A1h

00h

HTHSEC

A2h

00h

SEC

A3h

00h

MIN

A4h

00h

HOUR

A5h

00h

INTV

AL

A6h

00h

DPCON

A7h

00h

T3FD

9Dh

00h

T3CON

9Eh

00h

PRE0

I2CDA

T

9Ah

00h

I2CADD

9Bh

55h

SFR MAP & RESET VALUES

SFR DESCRIPTIONS

DATA MEMORY: RAM, SFRs, user Flash/EE (all read/write)

MAP KEY

DATA MEMORY SPACE

(read/write area)

LOWER RAM

SFR details

DACCON.7

ModeSelect (0=12bit, 1=8bit)

DACCON.6

DAC1 RangeSelect (0=V

REF

, 1=V

DD

)

DACCON.5

DAC0 RangeSelect (0=V

REF

, 1=V

DD

)

DACCON.4

Clear DAC1 (0=0V, 1=normal operation)

DACCON.3

Clear DAC0 (0=0V, 1=normal operation)

DACCON.2

SynchronousUpdate (1=asynchronous)

DACCON.1

PowerDown DAC1 (0=off, 1=on)

DACCON.0

PowerDown DAC0 (0=off, 1=on)

ADCCON3.7

busy indicator flag (0=ADC not active)

ADCCON3.6

gain calibration disable (0=gain cal enabled)

ADCCON3.5

number of averages selection bits:

ADCCON3.4

[15,1,31,63]

ADCCON3.3

cal clock divide select (0=ADCclk, 1=ADCclk/2)

ADCCON3.2

cal mode select (0=device, 1=system)

ADCCON3.1

cal type select (0=offset, 1=gain)

ADCCON3.0

start calibration bit, cleared by hardware

DACCON

DAC Control register

DAC1H

,

DAC1L

DAC1 data registers

ADCCON3

ADC Control register #3

ADCGAINH

ADC Gain

calibration coefficients

ADCGAINL
ADCOFSH
ADCOFSL

ADC Offset

calibration coefficients

B

auxiliary math register

ACC

Accumulator

PSMCON

Power Supply Monitor control register

PSMCON.6

PSM status bit (1=normal / 0=fault)

PSMCON.5

PSM interrupt bit

PSMCON.4

trip point select bits

PSMCON.3

[4.37V, 3.08V, 2.93V, 2.63V]

PSMCON.2

(this bit must contain zero)

PSMCON.1

(reserved)

PSMCON.0

PSM powerdown control (1=on / 0=off)

ADCDATAH

ADC Data registers

ADCDATAL
DMAP

,

DMAH

,

DMAL

DMA address pointer

CY

carry flag

AC

auxiliary carry flag

F0

general purpose flag 0

RS1

register bank select control bits

RS0

active register bank = [0,1,2,3]

OV

overflow flag

F1

general purpose flag 1

P

parity of ACC

DAC0H

,

DAC0L

DAC0 data registers

PSW

Program Status Word

TH2,TL2

Timer2 register

RCAP2H,RCAP2L

Timer2 Reload/Capture

TF2

overflow flag

EXF2

external flag

RCLK

receive clock enable (0=Timer1 used for RxD clk)

TCLK

transmit clock enable (0=Timer1 used for TxD clk)

EXEN2

external enable (0=ignore T2EX, 1=cap/rld on T2EX)

TR2

run control (0=stop, 1=run)

CNT2

timer/counter select (0=timer, 1=counter)

CAP2

capture/reload select (0=reload, 1=capture)

T2CON

Timer2 Control register

PSI

priority of ISPI/I2CI (serial interface interrupt)

PADC

priority of ADCI (ADC interrupt)

PT2

priority of TF2/EXF2 (Timer2 overflow interrupt)

PS

priority of RI/TI (serial port interrupt)

PT1

priority of TF1 (Timer1 overflow interrupt)

PX1

priority of IE1 (external interrupt 1)

PT0

priority of TF0 (Timer0 overflow interrupt)

PX0

priority of IE0 (external interrupt 0)

IP

Interrupt Priority register

RD

external data memory read strobe

WR

external data memory write strobe

T1

timer/counter 1 external input

T0

timer/counter 0 external input

INT1

external interrupt 1

INT0

external interrupt 0

TxD

serial port transmit data line

RxD

serial port receive data line

P3

Port3 register

EA

enable inturrupts (0=all inturrupts disabled)

EADC

enable ADCI (ADC interrupt)

ET2

enable TF2/EXF2 (Timer2 overflow interrupt)

ES

enable RI/TI (serial port interrupt)

ET1

enable TF1 (Timer1 overflow interrupt)

EX1

enable IE1 (external interrupt 1)

ET0

enable TF0 (Timer0 overflow interrupt)

EX0

enable IE0 (external interrupt 0)

IE

Interrupt Enable register #1

P2

Port2 register

(also A8-A15 & A16-A23)

SBUF

Serial port Buffer register

SM0

UART mode control bits baud rate:

SM1

00 - 8bit shift register - F

OSC

/12

01 - 8bit UART

- variable

10 - 9bit UART

- F

OSC

/64(x2)

11 - 9bit UART

- variable

SM2

in modes 2&3, enables multiprocessor communication

REN

receive enable control bit

TB8

in modes 2&3, 9th bit transmitted

RB8

in modes 2&3, 9th bit received

TItransmit interrupt flag

RIreceive interrupt flag

SCON

Serial communications Control register

T2EX

timer/counter 2 capture/reload trigger

T2

timer/counter 2 external input

P1

Port1 register (analog & digital inputs)

TH0,TL0

Timer0 registers

TH1,TL1

Timer1 registers

TMOD.3/.7

gate control bit (0=ignore INTx)

TMOD.2/.6

counter/timer select bit (0=timer)

TMOD.1/.5

timer mode selecton bits

TMOD.0/.4

[13bitT, 16bitT/C, 8bitT/Creload, 2x8bitT]

(upper nibble = Timer1, lower nibble = Timer0)

TMOD

Timer Mode register

TF1

Timer1 overflow flag (auto cleared on vector to ISR)

TR1

Timer1 run control (0=off, 1=run)

TF0

Timer0 overflow flag (auto cleared on vector to ISR)

TR0

Timer0 run control (0=off, 1=run)

IE1

external INT1 flag (auto cleared on vector to ISR)

IT1

IE1 type (0=level trig, 1=edge trig)

IE0

external INT0 flag (auto cleared on vector to ISR)

IT0

IE0 type (0=level trig, 1=edge trig)

TCON

Timer Control register

PCON.7 double baud rate control

PCON.4 ALE disable (0=normal, 1=forces ALE high)

PCON.3 general purpose flag

PCON.2 general purpose flag

PCON.1 power-down control bit (recoverable with hard reset)

PCON.0 idle-mode control (recoverable with enabled interrupt)

PCON

Power Control register

DPP

Data Pointer Page

DPH,DPL (DPTR)

Data Pointer

SP

Stack Pointer

P0

Port0 register

(also A0-A7 & D0-D7)

ADCCON1.7

ADC mode (0=off, 1=on)

ADCCON1.6

external Vref select bit (0=on-chip Vref)

ADCCON1.5

conversion time = 16 / ADCclk

ADCCON1.4

ADCclk = 16,777,216Hz / [8,4,16,32]

ADCCON1.3

acquisition time select bits

ADCCON1.2

acq time = [1,2,3,4] / ADCclk

ADCCON1.1

Timer2 convert enable

ADCCON1.0

external CONVST enable

ADCCON1

ADC Control register #1

ADCCON2

ADC Control register #2

ADCI

ADC interrupt flag

DMA

DMA mode enable

CCONV

continuous conversion enable bit

SCONV

single conversion start bit

CS3

input channel select bits:

CS2

0 - 7 = ADC0 - ADC7

CS1

8 = temperature sensor

CS0

9=DAC0, A=DAC1, B=AGND

PLLCON.7

oscillator powerdown control bit (0=XTAL on)

PLLCON.6

PLL lock indicator flag (0=out of lock)

PLLCON.5

(this bit must contain zero)

PLLCON.4

(this bit must contain zero)

PLLCON.3

“fast interrupt” control bit (0=normal)

PLLCON.2

3-bit clock divider value, “CD” (default=3):

PLLCON.1

PLLCON.0

PLLCON

PLL Control register

f

CORE

= 16,777,216Hz / 2

CD

TIMECON.6 (this bit must contain 1)

TIMECON.5 INTVAL timebase select bits

TIMECON.4 [128th sec, seconds, minutes, hours]

TIMECON.3 single time interval control bit (0=reload&restart)

TIMECON.2 time interval interrupt bit, “TII”

TIMECON.1 time interval enable bit (0=disable&clear)

TIMECON.0 time clock enable bit (0=disable)

TIMECON

Time Interval Counter Control Register

HTHSEC

TIC Elapsed 128th Second Register

SEC

TIC Elapsed Seconds Register

MIN

TIC Elapsed Minutes Register

HOUR

TIC Elapsed Hours Register

INTVAL

TIC Interval Register

CFG832

ADuC832 Configuration Register

CFG832.7

extended stack-pointer enable (0=disable)

CFG832.6

PWM pins select (0=P2.6/P2.7,1=P3.4/P3.3)

CFG832.5

DAC output buffer bypass (0=buffer enabled)

CFG832.4

external clock select (0=internal clock)

CFG832.3

(this bit must contain 0)

CFG832.2

(this bit must contain 0)

CFG832.1

(this bit must contain 0)

CFG832.0

internal XRAM select (0=external XRAM)

EADRH

,

EADRL

Data Flash/EE address registers

EDATA1

,

EDATA2

,

EDATA3

,

EDATA4

Data Flash/EE data registers

01h READ page

02h PROGRAM page

04h VERIFY page

05h ERASE page

06h ERASE ALL

ECON

Data Flash/EE comand register

82h PROGRAM byte

0Fh EXIT ULOAD mode

F0h ENTER ULOAD mode

(all others reserved)

ISPI

SPI inturrupt (set at end of SPI transfer)

WCOL

write collision error flag

SPE

SPI enable (0=I2C enable, 1=SPI enable)

SPIM

master mode select (0=slave)

CPOL

clock polarity select (0=SCLK idles low)

CPHA

clock phase select (0=leading edge latch)

SPR1

SPI bitrate select bits

SPR0

bitrate = Fcore / [2,4,8,16] (slave: SPR0=SS)

SPICON

SPI Control register

SPIDAT

SPI Data register

PRE3

watchdog timeout selection bits

PRE2

0-7=[15.6,31.2,62.5,125,250,500,1000,2000]ms

PRE1

8=0ms (immediate reset)

PRE0

>8=reserved

WDIR

watchdog interrupt response bit

WDS

watchdog status flag (1 indicates watchdog timeout)

WDE

watchdog enable control (0=disabled)

WDWR

watchdog write enable bit (set to enable write)

WDCON

Watchdog Timer control register

IEIP2.6

priority of TII interrupt (time interval)

IEIP2.5

priority of PSMI interrupt (power supply monitor)

IEIP2.4

priority of ISPI interrupt (serial interface)

IEIP2.3

(this bit must contain zero)

IEIP2.2

enable TII interrupt (time interval)

IEIP2.1

enable PSMI (power supply monitor interrupt)

IEIP2.0

enable ISPI interrupt (serial interface)

IEIP2

Interrupt Enable/Priority register #2

CHIPID

Chip ID Register

(2X hex = ADuC832)

SPH

Stack Pointer High byte

PWMCON

PWM Control register

PWMCON.6 PWM mode bits [0=disabled, 1=single/var.res.,

PWMCON.5 2=twin/8bit, 3=twin/16bit, 4=dual/16bitNRZ,

PWMCON.4 5=dual/8bit, 6=dual/16bitRZ, 7=(reserved)]

PWMCON.3 PWM clock divide bits

PWMCON.2 PWM counter = clock / [1,4,16,64]

PWMCON.1 PWM clock source bits [1=F

XTAL

/15, 2=F

XTAL

,

PWMCON.0 3=T0 ext.int.rate, 4=F

VCO

(16.777MHz)]

PWM0H

,

PWM0L

PWM0 data registers

PWM1H

,

PWM1L

PWM1 data registers

DPCON

Data Pointer Control register

DPCON.6

data pointer auto-toggle enable (0=disable)

DPCON.5

shadow data pointer mode control bits

DPCON.4

[1=8052, 2=post-inc, 3=post-dec, 4=LSBtgl]

DPCON.3

main data pointer mode control bits

DPCON.2

[1=8052, 2=post-inc, 3=post-dec, 4=LSBtgl]

DPCON.1

(not implemented to allow INC DPCON toggling)

DPCON.0

data pointer select [0=main, 1=shadow]

T3CON

Timer 3 Control register

T3CON.7

Timer 3 baud rate enable (0=disable)

T3CON.2

binary divide factor (DIV)

T3CON.1

DIV = log[F

CORE

/(32·baudrate)] / log2

T3CON.0

(rounded down)

T3FD

Timer 3 Fractional Divider register

T3FD = (2·F

CORE

) / (baudrate·2

DIV

) - 64

MDO

master mode SDATA output bit

MDE

master mode SDATA output enable (0=disable)

MCO

master mode SCLK output bit

MDI

master mode SDATA input bit

I2CM

master mode select bit (0=slave mode)

I2CRS

serial port reset

I2CTX

transmission direction status (0=RX,1=TX)

I2CI

serial interface interrupt

I2CCON

I2C Control register

I2CADD

I2C Address register

I2CDAT

I2C Data register

lower RAM

details

SFRs

(direct

addressing

only)

128 bytes

upper RAM

(indirect

addressing

only)

128 bytes

lower RAM

(direct or

indirect

addressing)

00h

FFh

Advertising