
Материалы / BAC_LETI / Симулятор_МК_ ADUC812 / ADUC / DOC / ADUC81~1
.PDF
ADuC812
many applications this autocalibration download function suffices. Alternatively, a device calibration can be easily initiated by user software to compensate for significant changes in operating conditions (CLK frequency, analog input range, reference voltage and supply voltages).
This in-circuit software calibration feature allows the user to remove various system and reference related errors (whether it be internal or external reference) and to make use of the full dynamic range of the ADC by adjusting the analog input range of the part for a specific system. Contact Analog Devices, Inc. for further details on the implementation of the software calibration routine in your applications.
ADC MODES OF OPERATION Typical Operation
Once configured via the ADCCON 1-3 SFRs (shown previously) the ADC will convert the analog input and provide an ADC 12-bit result word in the ADCDATAH/L SFRs. The top four bits of the ADCDATAH SFR will be written with the channel selection bits to identify the channel result. The format of the ADC 12-bit result word is shown in Figure 5.
ADCDATAH SFR
CH–ID |
HIGH 4 BITS OF |
TOP 4 BITS |
ADC RESULT WORD |
ADCDATAL SFR
LOW 8 BITS OF THE
ADC RESULT WORD
Figure 5. ADC Result Format
ADC DMA Mode
The on-chip ADC has been designed to run at a maximum speed of one sample every 5 s (i.e., 200 kHz sampling rate). Therefore, in an interrupt driven routine the user software is required to service the interrupt, read the ADC result and store the result for further post processing, all within 5 s otherwise the next ADC sample could be lost. In applications where the ADuC812 cannot sustain the interrupt rate, an ADC DMA Mode is provided.
The ADC DMA Mode is enabled via the DMA enable bit (ADCCON2.6), which allows the ADC to sample continuously as per configuration in ADCCON SFRs. Each sample result is written into an external Static RAM (mapped in the data memory space) without any interaction from the ADuC812 core. This mode ensures the ADuC812 can capture a contiguous sample stream even at full speed ADC update rates.
Before enabling ADC DMA mode the user must first configure the external SRAM to which the ADC samples will be written. This consists of writing the required ADC DMA channels into the channel ID bits (the top four bits) in the external SRAM. A typical preconfiguration of external memory is shown in Figure 6.
Once the external data memory has been preconfigured, the DMA address pointer (DMAP, DMAH and DMAL) SFRs are written. These SFRs should be written with the DMA start address in external memory. In Figure 6, for example, the DMA start address is 000000H. The 3-byte start address should be written in the following order: DMAL, DMAH and DMAP. The end of a DMA table is signified by writing “1111” into the channel selection bits field.
|
|
|
|
|
|
STOP COMMAND |
00000AH |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
REPEAT LAST CHANNEL |
|
0 |
0 |
1 |
1 |
|
FOR A VALID STOP |
|
|
|
|
|
|
CONDITION |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
1 |
|
CONVERT ADC CH#3 |
|
|
|
|
|
|
|
|
1 |
0 |
0 |
0 |
|
CONVERT TEMP SENSOR |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
0 |
1 |
|
CONVERT ADC CH#5 |
|
|
|
|
|
|
|
000000H |
0 |
0 |
1 |
0 |
|
CONVERT ADC CH#2 |
|
|
|
|
|
|
|
Figure 6. Typical DMA External Memory Preconfiguration
The DMA Enable bit (ADCCON2.6, DMA) can now be set to initiate the DMA conversion and transfer of the results sequentially into external memory. Remember that the DMA mode will only progress if the user has preconfigured the ADC conversion time and trigger modes via the ADCCON1 and 2 SFRs. The end of DMA conversion is signified by the ADC interrupt bit ADCCON2.7.
At the end of ADC DMA Mode, the external data memory contains the new ADC conversion results as shown in Figure 7. It should be noted that the channel selection bits are still present in the result words to identify the individual conversion results.
00000AH |
1 |
1 |
1 |
1 |
|
0 |
0 |
1 |
1 |
|
0 |
0 |
1 |
1 |
|
1 |
0 |
0 |
0 |
|
0 |
1 |
0 |
1 |
000000H |
0 |
0 |
1 |
0 |
STOP COMMAND
NO CONVERSION RESULT WRITTEN HERE
CONVERSION RESULT FOR ADC CH#3
CONVERSION RESULT FOR TEMP SENSOR
CONVERSION RESULT FOR ADC CH#5
CONVERSION RESULT FOR ADC CH#2
Figure 7. Typical External Memory Configuration Post
ADC DMA Operation
Micro Operation during ADC DMA Mode
During ADC DMA mode the MicroConverter core is free to continue code execution, including general housekeeping and communication tasks. However, it should be noted that MCU core accesses to Ports 0 and 2 (which, of course, are being used by the DMA controller) are gated “OFF” during ADC DMA mode of operation. This means that even though the instruction that accesses the external Ports 0 or 2 will appear to execute, no data will be seen at these external port pins as a result.
The MicroConverter core is interrupted once the requested block of DMA data has been captured and written to external memory allowing the service routine for this interrupt to postprocess the data without any real time, timing constraints.
SFR Interface to the DAC Block
The ADuC812 incorporates two 12-bit DACs on-chip. DAC operation is controlled via a single control special function register and four data special function registers, namely:
DAC0L/DAC1L – Contains the lower 8-bit DAC byte. DAC0H/DAC1H – Contains the high 4-bit DAC byte. DACCON – Contains general purpose control bits
required for DAC0 and DAC1 operation.
REV. 0 |
–11– |

ADuC812
In normal mode of operation each DAC is updated when the |
NONVOLATILE FLASH MEMORY |
|
||||||||||
low DAC nibble (DACxL) SFR is written. Both DACs can be |
Flash Memory Overview |
|
||||||||||
updated simultaneously using the SYNC bit in the DACCON |
The ADuC812 incorporates Flash memory technology on-chip |
|||||||||||
SFR. |
|
|
|
|
|
|
|
|
to provide the user with a nonvolatile, in-circuit reprogram- |
|||
In 8-bit mode of operation, the 8-bit byte written to the DACxL |
mable, code and data memory space. |
|
||||||||||
registers is automatically routed to the top 8 bits of each 12-bit |
Flash memory is the newest type of nonvolatile memory |
|||||||||||
DAC. The bit designations of the DACCON SFR are shown |
technology and is based on a single transistor cell architecture. |
|||||||||||
below in Table IV. |
|
|
|
|
|
This technology is basically an outgrowth of EPROM |
||||||
SFR Address: |
|
|
|
|
FDH |
technology and was developed through the late 1980s. |
||||||
SFR Power On Default Value: |
04H |
Flash memory takes the flexible in-circuit reprogrammable |
||||||||||
Bit Addressable: |
|
NO |
features of EEPROM and combines them with the space |
|||||||||
|
|
|
|
|
|
|
|
|
|
efficient/density features of EPROM (see Figure 8). |
||
MODE |
RNG1 |
RNG0 |
CLR1 |
CLR0 |
SYNC |
PD1 |
PD0 |
|||||
Because Flash technology is based on a single transistor cell |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||
|
Table IV. DACCON SFR Bit Designations |
architecture, a Flash memory array, like EPROM can be |
||||||||||
|
implemented to achieve the space efficiencies or memory |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
densities required by a given design. |
|
|
Bit |
Bit |
|
|
|
|
|
|
|||||
|
|
|
|
|
Like EEPROM, Flash memory can be programmed in-system at |
|||||||
Location |
Mnemonic |
Description |
||||||||||
|
|
|
|
|
|
|
|
|
|
a byte level, although it must be erased first; the erase being |
||
DACCON.7 |
MODE |
The DAC MODE bit sets the |
||||||||||
performed in sector blocks. Thus, Flash memory is often and |
||||||||||||
|
|
|
|
|
overriding operating mode for |
more correctly referred to as Flash/EE memory. |
||||||
|
|
|
|
|
both DACs. |
|
|
|||||
|
|
|
|
|
Set to “1” = 8-bit mode (Write 8 |
EPROM |
EEPROM |
|||||
|
|
|
|
|
bits to DACxL SFR. |
|||||||
|
|
|
|
|
TECHNOLOGY |
TECHNOLOGY |
||||||
|
|
|
|
|
Set to “0” = 12-bit mode. |
|
|
|||||
DACCON.6 |
RNG1 |
DAC1 range select bit. |
SPACE EFFICIENT/ |
IN-CIRCUIT |
||||||||
|
|
|
|
|
Set to “1” = DAC1 range 0–VDD. |
DENSITY |
REPROGRAMMABLE |
|||||
|
|
|
|
|
|
|
||||||
|
|
|
|
|
Set to “0” = DAC1 range 0–VREF. |
FLASH/EE MEMORY |
||||||
DACCON.5 |
RNG0 |
DAC0 range select bit. |
TECHNOLOGY |
|
||||||||
|
|
|||||||||||
|
|
|
|
|
Set to “1” = DAC0 range 0–VDD. |
Figure 8. Flash Memory Development |
||||||
|
|
|
|
|
Set to “0” = DAC0 range 0–VREF. |
Overall, Flash/EE memory represents a step closer towards |
||||||
|
|
|
|
|
|
|
|
|
|
|||
DACCON.4 |
CLR1 |
DAC1 clear bit. |
the ideal memory device that includes nonvolatility, in-circuit |
|||||||||
|
|
|
|
|
Set to “0” = DAC1 output forced |
programmability, high density and low cost. Incorporated in |
||||||
|
|
|
|
|
to 0 V. |
the ADuC812, Flash/EE memory technology allows the user to |
||||||
|
|
|
|
|
Set to “1” = DAC1 output |
update program code space in-circuit without the need to |
||||||
|
|
|
|
|
normal. |
replace one-time programmable (OTP) devices at remote |
||||||
DACCON.3 |
CLR0 |
DAC0 clear bit. |
operating nodes. |
|
||||||||
|
|
|||||||||||
|
|
|
|
|
Set to “0” = DAC0 output forced |
Flash/EE Memory and the ADuC812 |
|
|||||
|
|
|
|
|
to 0 V. |
The ADuC812 provides two arrays of Flash/EE memory for |
||||||
|
|
|
|
|
Set to “1” = DAC0 output normal. |
user applications. |
|
|||||
DACCON.2 |
SYNC |
DAC0/1 update synchronization |
8K bytes of Flash/EE Program space are provided on-chip to |
|||||||||
|
|
|
|
|
bit. |
|
|
|
|
facilitate code execution without any external discrete ROM |
||
|
|
|
|
|
When set to “1” the DAC outputs |
device requirements. The program memory can be programmed |
||||||
|
|
|
|
|
using conventional third party memory programmers. This array |
|||||||
|
|
|
|
|
update as soon as the DACxL |
|||||||
|
|
|
|
|
can also be programmed in-circuit, using the serial download |
|||||||
|
|
|
|
|
SFRs are written. |
|||||||
|
|
|
|
|
mode provided. |
|
||||||
|
|
|
|
|
The user can simultaneously up- |
|
||||||
|
|
|
|
|
A 640-Byte Flash/EE Data Memory space is also provided on- |
|||||||
|
|
|
|
|
date both DACs by first updating |
|||||||
|
|
|
|
|
chip. This may be used by the user as a general purpose non- |
|||||||
|
|
|
|
|
the DACxL/H SFRs while SYNC |
|||||||
|
|
|
|
|
volatile scratchpad area. User access to this area is via a group of |
|||||||
|
|
|
|
|
is “0.” |
|||||||
|
|
|
|
|
six SFRs. This space can be programmed at a byte level, al- |
|||||||
|
|
|
|
|
Both DACs will then update |
|||||||
|
|
|
|
|
though it must first be erased in 4-byte sectors. |
|||||||
|
|
|
|
|
simultaneously when the SYNC |
|||||||
|
|
|
|
|
Using the Flash/EE Program Memory |
|||||||
|
|
|
|
|
bit is set to “1.” |
|||||||
|
|
|
|
|
This 8K Byte Flash/EE Program Memory array is mapped |
|||||||
DACCON.1 |
PD1 |
DAC1 Power-Down Bit. |
||||||||||
into the lower 8K bytes of the 64K bytes program space ad- |
||||||||||||
|
|
|
|
|
Set to “1” = Power-On DAC1. |
|||||||
|
|
|
|
|
dressable by the ADuC812 and will be used to hold user code |
|||||||
|
|
|
|
|
Set to “0” = Power-Off DAC1. |
|||||||
|
|
|
|
|
in typical applications. |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
||
DACCON.0 |
PD0 |
DAC0 Power-Down Bit. |
|
|
||||||||
|
|
|
|
|
Set to “1” = Power-On DAC0. |
|
|
|||||
|
|
|
|
|
Set to “0” = Power-Off DAC0. |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
REV. 0 |
|
|
|
|
|
|
|
|
|
|
–12– |

ADuC812
The program memory array can be programmed in one of two modes, namely:
Serial Downloading (In-Circuit Programming)
As part of its factory boot code, the ADuC812 facilitates serial code download via the standard UART serial port. Serial download mode is automatically entered on power-up if the external pin, PSEN, is pulled low through an external resistor as shown in Figure 9. Once in this mode, the user can download code to the program memory array while the device is sited in its target application hardware. A PC serial download executable is provided as part of the ADuC812 QuickStart development system.
The Serial Download protocol is detailed in a MicroConverter Applications Note available from ADI.
PULL PSEN LOW DURING RESET TO
CONFIGURE THE ADuC812
FOR SERIAL DOWNLOAD MODE
ADuC812
PSEN
1k
Figure 9. Flash/EE Memory Serial Download Mode
Programming
Parallel Programming
The parallel programming mode is fully compatible with conventional third party Flash or EEPROM device programmers. A block diagram of the external pin configuration required to support parallel programming is shown in Figure 10. In this mode Ports P0, P1 and P2 operate as the external data and address bus interface, ALE operates as the Write Enable strobe and Port P3 is used as a general configuration port that configures the device for various program and erase operations during parallel programming. The high voltage (12 V) supply required for Flash programming is generated using on-chip charge pumps to supply the high voltage program lines.
|
+5V |
|
|
|
VDD |
P0 |
|
|
GND |
||
|
|
||
PROGRAM MODE |
ADuC812 |
|
|
P3 |
P1 |
||
(SEE TABLE V) |
|||
|
|
||
GND |
PSEN |
|
|
VDD |
RST |
P2 |
|
|
|||
|
XTAL1 |
|
|
|
|
ALE |
|
|
XTAL2 |
|
PROGRAM DATA (D0–D7)
PROGRAM ADDRESS (A0–A13)
(P2.0 = A0)
(P1.7 = A13)
WRITE ENABLE STROBE
Figure 10. Flash/EE Memory Parallel Programming
Table V shows the normal parallel programming modes that can be configured using Port 3 bits.
Table V. Flash Memory Parallel Programing Modes
Port Pins |
(P3.0–P3.7) |
|
|
|
||||
.7 |
.6 |
.5 |
.4 |
.3 |
.2 |
.1 |
.0 |
Programming Mode |
|
|
|
|
|
|
|
|
|
1 |
X |
X |
X |
0 |
0 |
0 |
1 |
Erase Flash Program |
|
|
|
|
|
|
|
|
Erase Flash User |
1 |
X |
X |
X |
0 |
0 |
1 |
1 |
Read Manufacture and |
|
|
|
|
|
|
|
|
Chip ID |
1 |
X |
X |
X |
0 |
1 |
0 |
1 |
Program Byte |
1 |
X |
X |
X |
0 |
1 |
1 |
1 |
Read Byte |
1 |
X |
X |
X |
1 |
0 |
0 |
1 |
Reserved |
1 |
X |
X |
X |
1 |
0 |
1 |
1 |
Reserved |
Any Other Code |
|
|
|
|
Redundant |
|||
|
|
|
|
|
|
|
|
|
Using the Flash/EE Data Memory
The user Flash/EE data memory array consists of 640 bytes that are configured into 160 (00H to 9FH), 4-byte pages as shown in Figure 11.
|
|
|
|
|
9FH BYTE 1 |
BYTE 2 |
BYTE 3 |
BYTE 4 |
|
|
|
|
|
|
|
|
|
|
|
00H BYTE 1 |
BYTE 2 |
BYTE 3 |
BYTE 4 |
|
|
|
|
|
|
Figure 11. User Flash/EE Memory Configuration
As with other user peripherals the interface to this memory space is via a group of registers mapped in the SFR space. A group of four data registers (EDATA1-4) are used to hold the 4-byte page data just accessed. EADRL is used to hold the 8-bit address of the page to be accessed. Finally, ECON is an 8-bit control register that may be written with one of five Flash/EE memory access commands to enable various read, write, erase and verify modes.
REV. 0 |
–13– |

ADuC812
A block diagram of the SFR registered interface to the User Flash/EE Memory array is shown in Figure 12.
FUNCTION: |
|
|
FUNCTION: |
HOLDS THE 8-BIT PAGE |
|
HOLDS THE 4-BYTE |
|
ADDRESS POINTER |
|
|
PAGE WORD |
9FH |
BYTE 1 BYTE 2 BYTE 3 BYTE 4 |
||
EADRL |
|
|
EDATA1 (BYTE 1) |
|
|
|
EDATA2 (BYTE 2) |
|
|
|
EDATA3 (BYTE 3) |
|
|
|
EDATA4 (BYTE 4) |
00H |
BYTE 1 BYTE 2 BYTE 3 BYTE 4 |
||
|
|
ECON COMMAND |
|
|
|
INTERPRETER LOGIC |
|
FUNCTION: |
|
ECON |
FUNCTION: |
|
INTERPRETS THE FLASH |
||
HOLDS COMMAND WORD |
|
||
|
COMMAND WORD |
||
|
|
|
Figure 12. User Flash/EE Memory Control and
Configuration
ECON—Flash/EE Memory Control SFR
This SFR acts as a command interpreter and may be written with one of five command modes to enable various read, program and erase cycles as detailed in Table VI:
Table VI. ECON–Flash/EE Memory Control Register
Command Modes
Command Byte |
Command Mode |
|
|
01H |
READ COMMAND |
|
Results in four bytes being read into |
|
EDATA 1–4 from memory page location |
|
contained in EADRL . |
02H |
WRITE COMMAND |
|
Results in four bytes (EDATA 1–4) being |
|
written to memory page location in EADRL. |
|
This write command assumes the de- |
|
signated “write” page has been pre-erased. |
03H |
RESERVED COMMAND |
|
“DO NOT USE” |
04H |
VERIFY COMMAND |
|
Allows the user to verify if data in EDATA |
|
1–4 is contained in page location designated |
|
by EADRL. A subsequent read of the |
|
ECON SFR will result in a “zero” being |
|
read if the verification is valid, a nonzero |
|
value will be read to indicate an invalid |
|
verification. |
05H |
ERASE COMMAND |
|
Results in an erase of the 4-byte page |
|
designated in EADRL. |
06H |
ERASE-ALL COMMAND |
|
Results in erase of the full user memory |
|
160-page (640 bytes) array. |
07H to FFH |
RESERVED COMMANDS |
|
Commands reserved for future use. |
|
|
Flash/EE Memory Write and Erase Times
The typical program/erase times for the User Flash/EE Memory are:
Erase Full Array (640 Bytes) |
– 20 ms |
|
Erase Single Page (4 Bytes) |
– 20 ms |
|
Program Page (4 Bytes) |
– |
250 s |
Read Page (4 Bytes) |
– |
Within Single Instruction Cycle |
Using the Flash/EE Memory Interface
As with all Flash/EE memory architectures, the array can be programmed in system at a byte level, although it must be erased first; the erasure being performed in page blocks (4-byte pages in this case).
A typical access to the Flash/EE array will involve setting up the page address to be accessed in the EADRL SFR, configuring the EDATA1-4 with data to be programmed to the array (the EDATA SFRs will not be written for read accesses) and finally writing the ECON command word which initiates one of the five modes shown in Table VI.
It should be noted that a given mode of operation is initiated as soon as the command word is written to the ECON SFR. At this time the core microcontroller operation on the ADuC812 is idled until the requested Program/Read or Erase mode is completed.
In practice, this means that even though the Flash/EE memory mode of operation is typically initiated with a 2 machine cycle MOV instruction (to write to the ECON SFR), the next instruction will not be executed until the Flash/EE operation is complete (250 s or 20 ms later). This means that the core will not respond to Interrupt requests until the Flash/EE operation is complete, although the core peripheral functions like Counter/Timers will continue to count and time as configured throughout this pseudo-idle period.
ERASE-ALL
Although the 640-byte User Flash/EE array is shipped from the factory pre-erased, i.e., Byte locations set to FFH, it is nonetheless good programming practice to include an erase-all routine as part of any configuration/setup code running on the ADuC812.
An “ERASE-ALL” command consists of writing “06H” to the ECON SFR, which initiates an erase of all 640 byte locations in the Flash/EE array. This command coded in 8051 assembly would appear as:
MOV ECON, #06H |
; Erase all Command |
|
; 20 ms Duration |
PROGRAM A BYTE
In general terms, a byte in the Flash/EE array can only be programmed if it has previously been erased. To be more specific, a byte can only be programmed if it already holds the value FFH. Because of the Flash/EE architecture this erasure must happen at a page level, therefore a minimum of four bytes (1 page) will be erased when an erase command is initiated.
A more specific example of the Program-Byte process is shown graphically in Figure 13. In this example the user will write F3H into the second byte on Page 03H of the User Flash/EE Memory space.
However, Page 03H already contains four bytes of valid data, and as the user is only required to modify one of these bytes, the full page must be first read so that this page can then be erased without the existing data being lost.
–14– |
REV. 0 |

ADuC812
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
06H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
|
|
05H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
READ PAGE 03H |
|
04H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MOV EADRL, #03H ;SET P PAGE |
||||||
03H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
||
02H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
|
POINTER |
|
|
|
|
|
EDATA4 |
|
|
MOV ECON, #01H |
;INITIATE READ |
||||||
01H |
A5H |
32H |
05H |
0DH |
|
|
0DH |
|
|
|
MODE |
||||
|
|
05H |
EDATA3 |
|
|
|
|||||||||
00H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
32H |
EDATA2 |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
A5H |
EDATA1 |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
EDATA4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
0DH |
|
|
|
|
||||
|
|
|
|
|
|
|
05H |
EDATA3 |
|
|
|
|
|||
|
|
|
|
|
|
|
F3H |
EDATA2 |
|
|
|
WRITE NEW BYTE |
|
||
|
|
|
|
|
|
|
A5H |
EDATA1 |
|
|
|
||||
|
|
|
|
|
|
|
|
|
TO EDATA2 |
|
|||||
06H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
MOV EDATA2, #0F3H ;WRITE NEW |
|
05H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
BYTE |
|||||
04H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
ERASE |
|
|
|
|
|
03H |
FFH |
FFH |
FFH |
FFH |
|
|
|
|
|
|
|
ERASE PAGE 03H |
|
||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
||||||||
02H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
AND WRITE NEW DATA |
|
|
|
|
|
|
|
|
0DH |
EDATA4 |
|
|
|
TO PAGE 03H |
|
||
01H |
A5H |
32H |
05H |
0DH |
|
||||||||||
|
|
|
|
|
|
|
05H |
EDATA3 |
|
|
|
MOV ECON, #05 |
;ERASE PAGE |
||
00H |
A5H |
32H |
05H |
0DH |
|
|
|
||||||||
|
|
|
|
|
MOV ECON, #02H |
;PROGRAM |
|||||||||
|
|
|
|
|
|
|
F3H |
EDATA2 |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
PAGE |
||||
06H |
A5H |
32H |
05H |
0DH |
|
|
A5H |
EDATA1 |
|
|
|
|
|
||
05H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
WRITE |
|
|
|
|
|
04H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|||||
03H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
|
|
02H |
A5H |
F3H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
01H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
|
|
00H |
A5H |
32H |
05H |
0DH |
|
|
|
|
|
|
|
|
|
|
|
Figure 13. User Flash/EE Memory Program Byte Example
The new byte is then written to the EDATA2 SFR, followed by an ERASE cycle that will ensure this page is erased before the new page data EDATA1-4 is written back into memory.
If the user attempts to initiate a PROGRAM cycle (ECON set to 02H) without an ERASE cycle (ECON set to 05H), then only bit locations set to a “1” would be modified, i.e., the Flash/EE memory byte location must be pre-erased to allow a valid write access to the array. It should also be noted that the time durations for an ERASE-ALL command (640 bytes) and that for an ERASE page command (four bytes) are identical, i.e., 20 ms.
This example coded in 8051 assembly would appear as :
MOV |
EADRL, #03H |
; Set Page Pointer |
|
MOV |
ECON, #01H |
; Read Page Command |
|
MOV |
EDATA2, #0F3H |
; Write New Byte |
|
MOV |
ECON, |
#02H |
; Erase Page Command |
MOV |
ECON, |
#05H |
; Program Page Command |
INTERRUPT SYSTEM
The ADuC812 provides nine interrupt sources with two priority levels. Interrupt priority within a given level is shown in descending order of priority in Figure 14, which gives a general overview of the interrupt sources and illustrates the request and control flags. The interrupt vector addresses for corresponding interrupts are also included in Table VII.
POWER SUPPLY |
|
PSMI |
|
HIGH PRIORITY |
MONITOR |
|
|
|
|
|
PSCON.5 |
|
|
|
|
|
EPSM |
|
|
|
|
|
IE2.1 |
LOW PRIORITY |
EXTERNAL INT0 |
|
|
|
|
P3.2 |
|
IE0 |
|
|
|
ITO |
TCON.1 |
EX0 |
PX0 |
|
|
|||
|
TCON.0 |
|
IE1.0 |
|
|
|
IP.0 |
||
|
|
|
|
|
END OF ADC |
|
ADCI |
|
|
OR ADC DMA |
|
|
|
|
MODE CONVERSION |
|
AC2.7 |
EADC |
PADC |
|
|
|||
|
|
|
IE1.6 |
|
|
|
|
IP.6 |
|
|
|
|
|
|
TIMER 0 |
|
TF0 |
|
|
OVERFLOW |
|
|
|
|
|
TCON.5 |
|
|
|
|
|
ET0 |
PT0 |
|
|
|
|
IE1.1 |
|
|
|
|
IP.1 |
|
EXTERNAL INT1 |
|
IE1 |
|
|
P3.3 |
|
|
|
|
|
IT1 |
TCON.3 |
EX1 |
PX1 |
|
TCON.2 |
|
IE1.2 |
IP.2 |
TIMER 1 |
|
TF1 |
|
|
OVERFLOW |
|
TCON.7 |
ET1 |
|
|
|
PT1 |
||
|
I2CCON.0 |
|
IE1.3 |
IP.3 |
SPI/I2C |
I2CI |
=1 |
|
|
|
|
|
||
PORT |
ISPI |
|
ESI |
|
|
SPICON.7 |
|
PSI |
|
|
|
IE2.0 |
||
|
|
IP.7 |
||
|
SCON.0 |
|
||
|
|
|
||
|
RI |
|
|
|
UART |
TI |
=1 |
|
|
|
|
ES |
PS |
|
|
SCON.1 |
|
||
|
|
IE1.4 |
IP.4 |
|
TIMER 2 |
T2CON.7 |
TF2 |
||
|
|
|
||
OVERFLOW |
|
|
|
|
|
=1 |
|
|
|
|
|
|
|
|
P1.1/T2EX |
|
EXF2 |
ET2 |
PT2 |
|
|
T2CON.6 |
||
|
EXEN.2 |
IE1.5 |
||
|
IP.5 |
|||
|
T2CON.3 |
|
|
|
|
|
|
|
Figure 14. Interrupt Request Sources
REV. 0 |
–15– |
ADuC812
Table VII. Interrupt Vector Addresses
|
|
Interrupt |
Priority |
|
|
Vector |
Within |
Interrupt |
Interrupt Name |
Address |
Level |
|
|
|
|
PSMI |
Power Supply Monitor |
43H |
1 |
IE0 |
External INT0 |
03H |
2 |
ADCI |
End of ADC Conversion |
33H |
3 |
TF0 |
Timer 0 Overflow |
0BH |
4 |
IE1 |
External INT1 |
13H |
5 |
TF1 |
Timer 1 Overflow |
1BH |
6 |
I2CI/ISPI |
Serial Interrupt |
3BH |
7 |
RI/TI |
UART Interrupt |
23H |
8 |
TF2/EXF2 |
Timer 2 Interrupt |
2BH |
9 |
|
|
|
|
Use of Interrupts
To use any of the interrupts on the ADuC812, the following three steps must be taken.
1.Locate the interrupt service routine at the corresponding Vector Address of that interrupt. See Table VII above.
2.Set the EA (enable all) bit in the IE SFR to “1.”
3.Set the corresponding individual interrupt bit in the IE or IE2 SFR to “1.”
Three SFRs are used to enable and set priority for the various interrupts. The bit designations of these SFRs are shown in Tables VIII, IX and X. It should be noted that while IE and IP SFRs are bit addressable, IE2 is byte addressable only.
IE – (Interrupt Enable SFR)
The IE register enables the interrupt system and seven interrupt sources.
SFR Address: |
|
|
A8H |
|||||||
SFR Power On Default Value: |
00H |
|||||||||
Bit Addressable: |
|
|
YES |
|||||||
|
|
|
|
|
|
|
|
|
|
|
EA |
EADC |
ET2 |
|
ES |
ET1 |
EX1 |
ET0 |
EX0 |
||
|
|
|
|
|
|
|
|
|
|
|
Table VIII. Interrupt Enable (IE) SFR Bit Designations |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
Bit |
|
Bit |
|
|
|
|
|
|
||
Location |
Mnemonic |
|
Description |
|||||||
|
|
|
|
|
|
|
|
|
|
|
IE.7 |
|
EA |
|
The Global Interrupt Enable bit |
||||||
|
|
|
|
|
|
(EA) must be set to “1” before any |
||||
|
|
|
|
|
|
interrupt source will be recognized |
||||
|
|
|
|
|
|
by the core. EA is set to “0” to dis- |
||||
|
|
|
|
|
|
able all interrupts. |
||||
IE.6 |
|
EADC |
|
The ADC Interrupt Enable bit |
||||||
|
|
|
|
|
|
(EADC) is set to “1” to enable the |
||||
|
|
|
|
|
|
ADC interrupt. |
||||
IE.5 |
|
ET2 |
|
The Timer 2 Overflow Interrupt |
||||||
|
|
|
|
|
|
Enable bit (ET2) is set to “1” to |
||||
|
|
|
|
|
|
enable the Timer 2 interrupt. |
||||
IE.4 |
|
ES |
|
The UART Serial Port Interrupt |
||||||
|
|
|
|
|
|
Enable bit (ES) is set to “1” to en- |
||||
|
|
|
|
|
|
able the UART Serial Port Interrupt. |
||||
IE.3 |
|
ET1 |
|
The Timer 1 Overflow Interrupt |
||||||
|
|
|
|
|
|
Enable bit (ET1) is set to “1” to |
||||
|
|
|
|
|
|
enable the Timer 1 interrupt. |
||||
IE.2 |
|
EX1 |
|
The INT1 Interrupt Enable bit |
||||||
|
|
|
|
|
|
(EX1) is set to “1” to enable the |
||||
|
|
|
|
|
|
external INT1 interrupt. |
||||
|
|
|
|
|
|
|
|
|
|
|
Bit |
Bit |
|
Location |
Mnemonic |
Description |
|
|
|
IE.1 |
ET0 |
The Timer 0 Overflow Interrupt |
|
|
Enable bit (ET0) is set to “1” to |
|
|
enable the Timer 0 interrupt. |
IE.0 |
EX0 |
The INT0 Interrupt Enable bit |
|
|
(EX0) is set to “1” to enable the |
|
|
external INT0 interrupt |
|
|
|
IE2 – (Interrupt Enable 2 SFR )
The IE2 register enables two additional interrupt sources.
SFR Address: |
|
|
|
|
A9H |
||||
SFR Power On Default Value: 00H |
|||||||||
Bit Addressable: |
|
NO |
|||||||
|
|
|
|
|
|
|
|
|
|
NU |
NU |
NU |
NU |
|
NU |
NU |
EPSM ESI |
||
|
|
|
|
|
|
|
|
|
|
Table IX. Interrupt Enable 2 (IE2) SFR Bit Designations |
|||||||||
|
|
|
|
|
|
|
|
|
|
Bit |
|
Bit |
|
|
|
|
|
||
Location |
|
Mnemonic |
|
Description |
|||||
|
|
|
|
|
|
|
|
|
|
IE2.7 |
|
NU |
|
Not Used |
|||||
IE2.6 |
|
NU |
|
Not Used |
|||||
IE2.5 |
|
NU |
|
Not Used |
|||||
IE2.4 |
|
NU |
|
Not Used |
|||||
IE2.3 |
|
NU |
|
Not Used |
|||||
IE2.2 |
|
NU |
|
Not Used |
|||||
IE2.1 |
|
EPSM |
|
The Power Supply Monitor |
|||||
|
|
|
|
|
|
Interrupt enable bit is set to “1” |
|||
|
|
|
|
|
|
to enable the PSM Interrupt. |
|||
IE2.0 |
|
ESI |
|
The SPI/I2C Interrupt Enable bit |
|||||
|
|
|
|
|
|
(ESI) is set to “1” to enable the |
|||
|
|
|
|
|
|
SPI or I2C interrupt. |
IP – (Interrupt Priority SFR )
The IP register sets one of two main priority levels for the various interrupt sources. Set the corresponding bit to “1” to configure interrupt as high priority and to “0” to configure interrupt as low priority.
SFR Address: |
|
|
|
|
|
B8H |
||||
SFR Power On Default Value: |
00H |
|||||||||
Bit Addressable: |
|
|
YES |
|||||||
|
|
|
|
|
|
|
|
|
|
|
PS1 |
PADC |
|
PT2 |
|
PS |
PT1 |
PX1 |
PT0 PX0 |
||
|
|
|
|
|
|
|
|
|
||
Table X. Interrupt Priority (IP) SFR Bit Designations |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
Bit |
|
Bit |
|
|
|
|
|
|||
Location |
|
Mnemonic |
|
Description |
||||||
|
|
|
|
|
|
|
|
|
|
|
IP.7 |
|
PSI |
|
Sets SPI/I2C Interrupt Priority |
||||||
IP.6 |
|
PADC |
|
Sets ADC Interrupt Priority |
||||||
IP.5 |
|
PT2 |
|
Sets Timer 2 Interrupt Priority |
||||||
IP.4 |
|
PS |
|
Sets UART Serial Port Interrupt |
||||||
|
|
|
|
|
|
|
Priority |
|||
IP.3 |
|
PT1 |
|
Sets Timer 1 Interrupt Priority |
||||||
IP.2 |
|
PX1 |
|
Sets External INT1 Interrupt |
||||||
|
|
|
|
|
|
|
Priority |
|||
IP.1 |
|
PT0 |
|
Sets Timer 0 Interrupt Priority |
||||||
IP.0 |
|
PX0 |
|
Sets External INT0 Interrupt |
||||||
|
|
|
|
|
|
|
Priority |
–16– |
REV. 0 |

ADuC812
ON-CHIP PERIPHERALS
The following sections give a brief overview of the various secondary peripherals also available on-chip. A quick reference to the various SFR configuration registers used to control these peripheral functions is given on the following pages.
PARALLEL I/O PORTS 0–3
The ADuC812 uses four general purpose data ports to exchange data with external devices. In addition to performing general purpose I/O, some ports are capable of external memory operations; others are multiplexed with an alternate function for the peripheral features on the device. In general, when a peripheral sharing a port pin is enabled, that pin may not be used as a general purpose I/O pin.
Ports 0, 2 and 3 are bidirectional while Port 1 is an input only port. All ports contain an output latch and input buffer, the I/O Ports will also contain an output driver. Read and Write accesses to Port 0–3 pins are performed via their corresponding special function registers.
Port pins on Ports 0, 2 and 3 can be independently configured as digital inputs or digital outputs via the corresponding port SFR bits. Port 1 pins however, can be configured as digital inputs or analog inputs only, Port 1 digital output capability is not supported on this device.
SERIAL I/O PORTS UART Interface
The serial port is full duplex, meaning it can simultaneously transmit and receive. It is also receive-buffered, meaning it can commence reception of a second byte before a previously received byte has been read from the receive register. However, if the first byte still hasn't been read by the time reception of the second byte is complete, one of the bytes will be lost.
The physical interface to the serial data network is via Pins RxD(P3.0) and TxD(P3.1) and the serial port can be configured into one of four modes of operation.
Serial Peripheral Interface (SPI)
The Serial Peripheral Interface (SPI) is an industry standard synchronous serial interface that allows eight bits of data to be synchronously transmitted and received simultaneously. The system can be configured for Master or Slave operation.
I2C-Compatible Serial Interface
The ADuC812 supports a 2-wire serial interface mode that is I2C-compatible. This interface can be configured to be a Software Master or Hardware Slave and is multiplexed with the SPI serial interface port.
TIMERS/COUNTERS
The ADuC812 has three 16-bit Timer/Counters, namely: Timer 0, Timer 1 and Timer 2. The Timer/Counter hardware has been included on-chip to relieve the processor core of the overhead inherent in implementing timer/counter functionality in software. Each Timer/Counter consists of two 8-bit registers THx and TLx (x = 0, 1 and 2). All three can be configured to operate either as timers or event counters.
In “Timer” function, the TLx register is incremented every machine cycle. Thus one can think of it as counting machine cycles. Since a machine cycle consists of 12 oscillator periods, the maximum count rate is 1/12 of the oscillator frequency.
In “Counter” function, the TLx register is incremented by a 1-to-0 transition at its corresponding external input pin, T0, T1 or T2.
ON-CHIP MONITORS
The ADuC812 integrates two on-chip monitor functions to minimize code or data corruption during catastrophic programming or other external system faults. Again, both monitor functions are fully configurable via the SFR space.
WATCHDOG TIMER
The purpose of the watchdog timer is to generate a device reset within a reasonable amount of time if the ADuC812 enters an erroneous state, possibly due to a programming error, electrical noise or RFI. The Watchdog function can be permanently disabled by clearing WDE (Watchdog Enable) bit in the Watchdog Control (WDCON) SFR. When enabled, the watchdog circuit will generate a system reset if the user program fails to refresh the watchdog within a predetermined amount of time. The watchdog reset interval can be adjusted via the SFR prescale bits from 16 to 204 ms.
POWER SUPPLY MONITOR
The Power Supply Monitor generates an interrupt when the analog (AVDD) or digital (DVDD) power supplies to the ADuC812 drop below one of five user-selectable voltage trip
points from 2.6 V to 4.6 V The interrupt bit will not be cleared until the power supply has returned above the trip point for at least 256 ms.
This monitor function ensures that the user can save working registers to avoid possible data corruption due to the low supply condition, and that code execution will not resume until a “safe” supply level has been well established. The supply monitor is also protected against spurious glitches triggering the interrupt circuit.
QuickStart DEVELOPMENT SYSTEM
The QuickStart Development System is a full featured, low cost development tool suite supporting the ADuC812. The system consists of the following PC-based (Win95-compatible) hardware and software development tools.
Code Development: Full Assembler and C Compiler (2K Code Limited)
Code Functionality: ADSIM812, Windows Code Simulator Code Download: FLASH/EE UART-Serial Downloader Code Debug: Serial Port Debugger
Misc: System includes CD-ROM documentation, power supply and serial port cable.
Figure 15. Typical QuickStart System Configuration
REV. 0 |
–17– |

ADuC812
SPECIAL FUNCTION REGISTERS
All registers except the program counter and the four general purpose register banks, reside in the special function register (SFR) area. The SFR registers include control, configuration and data registers that provide an interface between the CPU and other onchip peripherals.
Figure 16 shows a full SFR memory map and SFR contents on Reset; NOT USED indicates unoccupied SFR locations. Unoccupied locations in the SFR address space are not implemented; i.e., no register exists at this location. If an unoccupied location is read, an unspecified value is returned. SFR locations reserved for on-chip testing are shaded (RESERVED) and should not be accessed by user software.
ISPI |
|
WCOL |
SPE |
|
SP1M |
CPOL |
CPHA |
SPR1 |
SPR0 |
BITS |
|||||||
FFH |
0 |
FEH |
0 |
FDH |
0 |
FCH |
0 |
FBH |
0 |
FAH |
0 |
F9H |
0 |
F8H |
0 |
||
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F7H |
0 |
F6H |
0 |
F5H |
0 |
F4H |
0 |
F3H |
0 |
F2H |
|
F1H |
0 |
F0H |
0 |
BITS |
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
MDO |
|
MDE |
|
MCO |
|
MDI |
|
I2CM |
|
I2CRS |
I2CTX |
I2CI |
|
BITS |
|||
EFH |
0 |
EEH |
0 |
EDH |
0 |
ECH |
0 |
EBH |
0 |
EAH |
|
E9H |
0 |
E8H |
0 |
||
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E7H |
0 |
E6H |
0 |
E5H |
0 |
E4H |
0 |
E3H |
0 |
E2H |
|
E1H |
0 |
E0H |
0 |
BITS |
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
ADCI |
|
DMA |
|
CCONV |
SCONV |
CS3 |
|
CS2 |
|
CS1 |
|
CS0 |
|
BITS |
|||
DFH |
0 |
DEH |
0 |
DDH |
0 |
DCH |
0 |
DBH |
0 |
DAH |
|
D9H |
0 |
D8H |
0 |
||
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CY |
|
AC |
|
F0 |
|
RSI |
|
RS0 |
|
OV |
|
FI |
|
P |
|
BITS |
|
D7H |
0 |
D6H |
0 |
D5H |
0 |
D4H |
0 |
D3H |
0 |
D2H |
|
D1H |
0 |
D0H |
0 |
||
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
TF2 |
|
EXF2 |
|
RCLK |
TCLK |
XEN |
|
TR2 |
|
CNT2 |
CAP2 |
BITS |
|||||
CFH |
0 |
CEH |
0 |
CDH |
0 |
CCH |
0 |
CBH |
0 |
CAH |
|
C9H |
0 |
C8H |
0 |
||
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
PRE2 |
PRE1 |
PRE0 |
NOT |
|
WDR1 |
WDR2 |
WDS |
|
WDE |
|
BITS |
||||||
|
|
|
|
|
|
USED |
|
|
|
|
|
|
|
|
|||
C7H |
0 |
C6H |
0 |
C5H |
0 |
C4H |
0 |
C3H |
0 |
C2H |
|
C1H |
0 |
C0H |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
PS1 |
|
PADC |
PT2 |
|
PS |
|
PT1 |
|
PX1 |
|
PT0 |
|
PX0 |
|
BITS |
||
BFH |
0 |
BEH |
0 |
BDH |
0 |
BCH |
0 |
BBH |
0 |
BAH |
|
B9H |
0 |
B8H |
0 |
||
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RD |
|
WR |
|
T1 |
|
T0 |
|
INT1 |
|
INT0 |
|
TxD |
|
RxD |
|
BITS |
|
B7H |
1 |
B6H |
1 |
B5H |
1 |
B4H |
1 |
B3H |
1 |
B2H |
1 |
B1H |
1 |
B0H |
1 |
||
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
EA |
|
EADC |
ET2 |
|
ES |
|
ET1 |
|
EX1 |
|
ET0 |
|
EX0 |
|
BITS |
||
AFH |
|
AEH |
|
ADH |
|
ACH |
0 |
ABH |
0 |
AAH |
|
A9H |
0 |
A8H |
0 |
||
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A7H |
|
A6H |
|
A5H |
1 |
A4H |
1 |
A3H |
1 |
A2H |
1 |
A1H |
1 |
A0H |
1 |
BITS |
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SM0 |
|
SM1 |
|
SM2 |
|
REN |
|
TB8 |
|
RB8 |
|
T1 |
|
R1 |
|
BITS |
|
9FH |
0 |
9EH |
0 |
9DH |
0 |
9CH |
0 |
9BH |
0 |
9AH |
0 |
99H |
0 |
98H |
0 |
||
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SS/ |
|
|
|
|
|
|
|
T2EX |
|
T2 |
|
BITS |
|
97H |
0 |
96H |
0 |
95H |
0 |
94H |
0 |
93H |
0 |
92H |
0 |
91H |
0 |
90H |
0 |
||
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TF1 |
|
TR1 |
|
TF0 |
|
TR0 |
|
IE1 |
|
IT1 |
|
IE0 |
|
IT0 |
|
BITS |
|
8FH |
0 |
8EH |
0 |
8DH |
0 |
8CH |
0 |
8BH |
0 |
8AH |
0 |
89H |
0 |
88H |
0 |
||
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87H |
1 |
86H |
1 |
85H |
1 |
84H |
1 |
83H |
1 |
82H |
1 |
81H |
1 |
80H |
1 |
BITS |
|
|
SPICON1 DAC0L |
DAC0H |
DAC1L |
DAC1H DACCON |
RESERVED NOT USED
F8H |
00H |
F9H |
00H |
FAH |
00H |
FBH |
00H |
FCH |
00H |
FDH |
04H |
|
|
|
|
B1 |
ADCOFSL3 ADCOFSH3 ADCGAINL3 ADCGAINH3 ADCCON3 |
RESERVED |
SPIDAT |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
F0H 00H F1H 00H F2H 20H |
F3H |
00H |
F4H |
00H |
F5H |
00H |
|
|
F7H |
00H |
|||||
I2CCON1 |
RESERVED |
RESERVED |
RESERVED |
RESERVED |
RESERVED |
RESERVED |
ADCCON1 |
||||||||
|
|
|
|
||||||||||||
E8H |
00H |
|
|
|
|
|
|
|
|
|
|
|
|
EFH |
20H |
ACC1 |
RESERVED |
RESERVED |
RESERVED |
RESERVED |
RESERVED |
RESERVED |
RESERVED |
||||||||
|
|
||||||||||||||
E0H |
00H |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ADCCON21 ADCDATAL ADCDATAH |
RESERVED |
RESERVED |
RESERVED |
RESERVED |
PSMCON |
||||||||||
|
|
|
|
|
|
|
|
||||||||
D8H |
00H |
D9H |
00H |
DAH |
00H |
|
|
|
|
|
|
|
|
DFH |
DCH |
PSW1 |
RESERVED |
DMAL |
DMAH |
DMAP |
RESERVED |
RESERVED |
RESERVED |
||||||||
|
|
|
|
|
|
|
|
||||||||
D0H |
00H |
|
|
D2H |
00H |
D3H |
00H |
D4H |
00H |
|
|
|
|
|
|
T2CON1 |
RESERVED |
RCAP2L |
RCAP2H |
TL2 |
TH2 |
RESERVED |
RESERVED |
||||||||
|
|
|
|
|
|
|
|
|
|
||||||
C8H |
00H |
|
|
CAH |
00H |
CBH |
00H |
CCH |
00H |
CDH |
00H |
|
|
|
|
WDCON1 |
NOT USED |
NOT USED |
NOT USED |
ETIM3 |
RESERVED |
EDARL |
RESERVED |
||||||||
|
|
|
|
|
|
||||||||||
C0H |
00H |
|
|
|
|
|
|
C4H |
C9H |
|
|
C6H |
00H |
|
|
IP1 |
ECON |
ETIM1 |
ETIM2 |
EDATA1 |
EDATA2 |
EDATA3 |
EDATA4 |
||||||||
B8H |
00H |
B9H |
00H |
BAH |
52H |
BBH |
04H |
BCH |
00H |
BDH |
00H |
BEH |
00H |
BFH |
00H |
P31 |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
||||||||
|
|
||||||||||||||
B0H |
FFH |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IE1 |
IE2 |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
||||||||
|
|
|
|
||||||||||||
A8H |
00H |
A9H |
00H |
|
|
|
|
|
|
|
|
|
|
|
|
P21 |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
NOT USED |
||||||||
|
|
||||||||||||||
A0H |
FFH |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SCON1 |
SBUF |
I2CDAT |
|
I2CADD |
NOT USED |
NOT USED |
NOT USED |
|
NOT USED |
|||||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
98H |
00H |
99H |
00H |
9AH |
00H |
|
9BH |
00H |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P11, 2 |
NOT USED |
NOT USED |
|
NOT USED |
NOT USED |
NOT USED |
NOT USED |
|
NOT USED |
|||||
|
|
|
|
|
|||||||||||
|
90H |
FFH |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
TCON1 |
TMOD |
TL0 |
|
TL1 |
TH0 |
TH1 |
NOT USED |
|
NOT USED |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
88H |
00H |
89H |
00H |
8AH |
00H |
|
8BH |
00H |
8CH |
00H |
8DH 04H |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
P01 |
SP |
DPL |
|
DPH |
DPP |
RESERVED |
RESERVED |
|
PCON |
|||||
|
80H |
FFH |
81H |
07H |
82H |
00H |
|
83H |
00H |
84H |
00H |
|
|
|
87H 00H |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SFR MAP KEY: |
THESE BITS ARE CONTAINED IN THIS BYTE. |
|
||||||||||
|
|
|
|
|
|
|
|
TCON |
|
|
MNEMONIC |
|
MNEMONIC |
|
|
|
|
|
IE0 |
IT0 |
|||||
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
DEFAULT VALUE |
|||
SFR ADDRESS |
|
|
|
89H 0 |
88H 0 |
88H 00H |
|
|
||||
|
|
|
|
|||||||||
DEFAULT VALUE |
|
|
|
|
|
SFR ADDRESS |
SFR NOTES:
1SFRs WHOSE ADDRESS ENDS IN 0H OR 8H ARE BIT ADDRESSABLE.
2THE PRIMARY FUNCTION OF PORT1 IS AS AN ANALOG INPUT PORT, THEREFORE, TO ENABLE THE DIGITAL SECONDARY FUNCTIONS ON THESE PORT PINS, WRITE A '0' TO THE CORRESPONDING PORT 1 SFR BIT.
3CALIBRATION COEFFICIENTS ARE PRECONFIGURED ON POWER-UP TO FACTORY CALIBRATED VALUES.
Figure 16. Special Function Register Locations and Reset Values
–18– |
REV. 0 |

ADuC812
ADCCON1 ADC CONTROL REGISTER #1
ADCCON1.7 |
ADC POWER CONTROL BITS |
|
ADCCON1.6 |
[SHTDN, NORM, AUTOSHTDN, |
|
|
|
AUTOSTBY] |
ADCCON1.5 |
CONVERSION TIME = 16/ADCCLK |
|
ADCCON1.4 |
ADCCLK = MCLK/[1, 2, 4, 8] |
|
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 |
|
|
|
|
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 |
0000–0111 = ADC0–ADC7 |
|
CS1 |
1XXX = TEMPERATURE SENSOR |
|
CS0 |
1111 = "HALT" COMMAND |
|
|
(IN DMA MODE ONLY) |
ADCCON3 ADC CONTROL REGISTER #3
ADCCON3.7 BUSY INDICATOR FLAG (0 = ADC NOT ACTIVE)
ADCCON3.6 THIS BIT MUST CONTAIN ZERO ADCCON3.5 THIS BIT MUST CONTAIN ZERO ADCCON3.4 THIS BIT MUST CONTAIN ZERO ADCCON3.3 THIS BIT MUST CONTAIN ZERO ADCCON3.2 THIS BIT MUST CONTAIN ZERO ADCCON3.1 THIS BIT MUST CONTAIN ZERO ADCCON3.0 THIS BIT MUST CONTAIN ZERO
ADCDATAH
ADCDATAL ADC DATA REGISTERS
DMAP, DMAH, DMAL DMA ADDRESS POINTER
ADCGAINH |
ADC GAIN |
ADCGAINL |
CALIBRATION COEFFICIENTS |
|
|
ADCOFSH |
ADC OFFSET |
ADCOFSL |
CALIBRATION COEFFICIENTS |
DACCON |
DAC CONTROL REGISTER |
DACCON.7 |
MODESELECT (0 = 12 BIT, 1 = 8 BIT) |
DACCON.6 |
DAC1 RANGE SELECT (0 = VREF, 1 = VDD) |
DACCON.5 |
DAC0 RANGE SELECT (0 = VREF, 1 = VDD) |
DACCON.4 |
CLEAR DAC1 |
|
(0 = 0V, 1 = NORMAL OPERATION) |
DACCON.3 |
CLEAR DAC0 |
|
(0 = 0V, 1 = NORMAL OPERATION) |
DACCON.2 |
SYNCHRONOUS UPDATE |
|
(1 = ASYNCHRONOUS) |
DACCON.1 |
POWERDOWN DAC1 (0 = OFF, 1 = ON) |
DACCON.0 |
POWERDOWN DAC0 (0 = OFF, 1 = ON) |
DAC1H, DAC1L DAC1 DATA REGISTERS
DAC0H, DAC0L DAC0 DATA REGISTERS
Figure 17. ADC and DAC—Control and Configuration SFRs
P0 |
PORT0 REGISTER (ALSO A0–A7 & D0–D7) |
|
P1 |
PORT1 REGISTER (ANALOG & DIGITAL INPUTS) |
|
T2EX |
TIMER/COUNTER 2 CAPTURE/RELOAD TRIGGER |
|
T2 |
TIMER/COUNTER 2 EXTERNAL INPUT |
|
P2 |
PORT2 REGISTER (ALSO A8–A15 & A16–A23) |
|
|
|
|
P3 |
PORT3 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 |
SCON SERIAL COMMUNICATIONS CONTROL REGISTER
SM0 |
UART MODE CONTROL BITS BAUD RATE: |
|
SM1 |
00 - 8 BIT SHIFT REGISTER |
FOSC/12 |
|
01 - 8 BIT UART |
TIMER OVERFLOW |
|
|
RATE/32 ( 2) |
|
10 - 9 BIT UART |
FOSC/64 ( 2) |
|
11 - 9 BIT UART |
TIMER OVERFLOW |
SM2 |
|
RATE/32 ( 2) |
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 |
|
TI |
TRANSMIT INTERRUPT FLAG |
|
RI |
RECEIVE INTERRUPT FLAG |
|
SBUFSERIAL PORT BUFFER REGISTER
PCON POWER 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 |
PCON.0 |
(RECOVERABLE WITH HARD RESET) |
IDLE-MODE CONTROL |
|
|
(RECOVERABLE WITH ENABLED |
|
INTERRUPT) |
|
|
PSW |
PROGRAM STATUS WORD |
CY |
CARRY FLAG |
AC |
AUXILIARY CARRY FLAG |
F0 |
GENERAL PURPOSE FLAG 0 |
RS1 |
REGISTER BANK SELECT |
RS0 |
CONTROL BITS |
ACTIVE REGISTER BANK = [0, 1, 2, 3] |
|
OV |
OVERFLOW FLAG |
F1 |
GENERAL PURPOSE FLAG 1 |
P |
PARITY OF ACC |
DPP |
DATA POINTER PAGE |
DPH, DPL (DPTR) DATA POINTER
ACC ACCUMULATOR
B
SP STACK POINTER
WDCON WATCHDOG TIME
|
CONTROL REGISTER |
PRE2 |
WATCHDOG TIMEOUT SELECTION BITS |
PRE1 |
TIMEOUT = [16, 32, 64, 128, 256, 512, 1024, |
PRE0 |
2048] ms |
WDR1 |
WATCHDOG TIMER REFRESH BITS |
WDR2 |
SET SEQUENTIALLY TO REFRESH |
|
WATCHDOG |
WDS |
WATCHDOG STATUS FLAG |
WDE |
WATCHDOG ENABLE |
PSMCON POWER SUPPLY MONITOR CONTROL REGISTER
PSMCON.7 (NOT USED) PSMCON.6 PSM STATUS BIT
(1 = NORMAL/0 = FAULT) PSMCON.5 PSM INTERRUPT BIT PSMCON.4 TRIP POINT SELECT BITS
PSMCON.3 [4.63V, 4.37V, 3.08V, 2.93V, 2.63V] PSMCON.2
PSMCON.1 AVDD/DVDD FAULT INDICATOR
(1 = ADD/0 = DVDD)
PSMCON.0 PSM POWERDOWN CONTROL
(1 = ON/0 = OFF)
ECON DATA FLASH MEMORY
COMMAND REGISTER
01h |
READ |
04h |
VERIFY |
02h |
WRITE |
05h |
ERASE |
03h |
(RESERVED) |
06h |
ERASE ALL |
EADRL DATA FLASH MEMORY
ADDRESS REGISTER
EDATA1, EDATA2, EDATA3, EDATA4
DATA FLASH DATA REGISTERS
ETIM1, ETIM2, ETIM3
FLASH TIMING REGISTERS
Figure 18. 8051 Core, On-Chip Monitors and Flash/EE Data Memory SFRs
REV. 0 |
–19– |

ADuC812
IE |
|
INTERRUPT ENABLE REGISTER #1 |
EA |
ENABLE INTURRUPTS |
|
|
(0 = ALL INTERRUPTS 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 TFO (TIMER0 OVERFLOW INTERRUPT) |
|
EX0 |
ENABLE IE0 (EXTERNAL INTERRUPT 0) |
|
|
|
|
IE2 |
|
INTERRUPT ENABLE REGISTER #2 |
IE2.1 |
ENABLE PSMI |
|
|
(POWER SUPPLY MONITOR INTERRUPT) |
|
IE2.0 |
ENABLE ISPI/I2CI |
|
|
(SERIAL INTERFACE INTERRUPT) |
|
|
|
|
IP |
|
INTERRUPT PRIORITY REGISTER |
PSI |
PRIORITY OF ISI/ISPI |
|
|
(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 INT1) |
|
PT0 |
PRIORITY OF TF0 |
|
|
(TIMER0 OVERFLOW INTERRUPT) |
|
PX0 |
PRIORITY OF IE0 (EXTERNAL INT0) |
|
|
|
|
TMOD |
|
TIMER MODE REGISTER |
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 |
[13 BIT T, 16 BIT T/C, 8 BIT T/C RELOAD, |
|
|
|
2 8 BIT T] |
(UPPER NIBBLE = TIMER1, LOWER NIBBLE = TIMER2)
TCON |
|
TIMER CONTROL 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) |
|
|
|
|
TH0, TL0 |
TIMER0 REGISTERS |
|
|
|
|
TH1, TL1 |
TIMER1 REGISTERS |
|
|
|
|
T2CON |
|
TIMER2 CONTROL REGISTER |
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/RL) |
|
TR2 |
RUN CONTROL (0 = STOP, 1 = RUN) |
|
CNT2 |
TIMER/COUNTER SELECT |
|
|
(0 = TIMER, 1 = COUNTER) |
|
CAP2 |
CAPTURE/RELOAD SELECT |
|
|
(0 = RELOAD, 1 = CAPTURE) |
|
|
|
|
TH2, TL2 |
TIMER2 REGISTER |
RCAP2H, RCAP2L TIMER2 CAPTURE/RELOAD
SPICON |
SPI CONTROL REGISTER |
|
ISPI |
SPI INTERRUPT |
|
|
(SET AT END OF SPI TRANSFER) |
|
WCOL |
WRITE COLLISION ERROR FLAG |
|
SPE |
SPI ENABLE |
|
|
(0 = DISABLE, ALSO ENABLES SPI) |
|
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 = FOSC / [4, 8, 32, 64] |
|
SPIDAT |
SPI DATA REGISTER |
|
|
||
I2CCON I2C CONTROL REGISTER |
||
MDO |
MASTER MODE SDATA OUTPUT BIT |
|
MDE |
MASTER MODE SDATA OUTPUT |
|
|
ENABLE |
|
MCO |
MASTER MODE SCLK BIT |
|
MDI |
MASTER MODE SDATA INPUT BIT |
|
I2CM |
MASTER MODE SELECT |
|
I2CRS |
SERIAL PORT RESET |
|
I2CTX |
TRANSMISSION DIRECTION STATUS |
|
I2CI |
SERIAL INTERFACE INTERRUPT |
|
I2CADD |
I2C ADDRESS REGISTER |
|
I2CDAT |
I2C DATA REGISTER |
Figure 19. Interrupt, Timer, SPI and I2C Control SFRs
–20– |
REV. 0 |