- High Performance and Low Power RISC Architecture
89 Powerful Instructions - Most Single Clock Cycle Execution
1K bytes of In-System Reprogrammable Flash
– SPI Serial Interface for Program Downloading
– Endurance: 1,000 Write/Eras e Cycles
64 bytes EEPROM
– Endurance: 100,000 Write/Erase Cycles
32 x 8 General Purpose Working Registers
15 Programmable I/O Lines
VCC: 2.7 - 6.0V
Fully Static Operation
– 0 - 12 MHz, 4.0 - 6.0V
– 0 - 4 MHz, 2.7 - 6.0V
Up to 12 MIPS Throughput at 12 MHz
One 8-Bit Timer/Counter with Separate Prescaler
External and Internal Interrupt Sources
Programmable Watchdog Timer with On-Chip Oscillator
On-Chip Analog Comparator
Low Power Idle and Power Down Modes
Programming Lock for Software Security
20-Pin Device
Selectable On-Chip RC Oscillator for Zero External Components
Description
The AT90S1200 is a low-power CMOS 8-bit microcontroller based on the
enhanced RISC architecture . By exe cuting powe rful instruc tions in a single clock
cycle, the AT90S1200 achieves throughpu ts approaching 1 MIPS per MHz allowing
the system designer to optimize power consumption versus processing speed.
The AVR core combin es a rich instruc tion set with th e 32 general pur pose workin g
registers. All the 32 registers are directly connected to the Arithmetic Logic Unit (ALU),
allowing two indep endent r egisters to be acce ssed in one single instruc tion exe cuted
in one clock cycle. Th e resulting arc hitecture is mor e code efficie nt while achievin g
throughputs up to ten times faster than conventional CISC microcontrollers.
AVR
(continued)
8-Bit
Microcontr oller
with 1K bytes
In-System
Programmable
Flash
AT90S1200
Pin Configuration
Rev. 0838DS–07/98
Note: This is a summary document. For the complete 48 page
datasheet, please visit our web site at
literature@atmel.com
mail at
and request literature #0838D.
www.atmel.com
or e-
1
Page 2
Block Diagram
Figure 1.
The AT90S1200 Block Diagram
The architectu re suppor ts high level languages efficient ly
as well as extremely dense assembler code programs. The
AT90S1200 provides the following features: 1K bytes of InSystem Progra mmabl e Flash , 64 bytes EEPRO M, 15 ge neral purpose I/O lines, 32 general purpo se working re gisters, internal and external interrupts, programmable
Watchdog Timer with internal oscillator, an SPI serial port
for program downloading and two software selectabl e
power saving modes. The Idle Mode stops the CPU while
allowing the registers, timer/counter, watchdog and interrupt system to continue functioning. The power down mode
saves the register c ontents bu t freezes th e oscillator, disabling all other chip functio ns until the next external interrupt or hardware reset.
The device is manufac tured using Atmel’ s high density
non-volatile memory technology. The on-chip In-System
Programmable Flash allows the program memory to be
reprogrammed in-sys tem th ro ugh an S PI se rial i nterface or
2
AT90S1200
by a conventional n onvolatile memo ry programmer. By
combining an enhanced RISC 8-bit CPU wit h In-System
Programmable Flash on a monolithic chip, the Atmel
AT90S1200 is a powerful microcontroller that provides a
highly flexible and co st effect ive solution to many em bedded control applications.
The AT90S1200 AVR is supported with a full s uite of program and system development too ls including: macro
assemblers, program debugger/simulators, in-circuit emulators, and evaluation kits.
Page 3
AT90S1200
Pin Descriptions
VCC
Supply voltage pin.
GND
Ground pin.
Port B (PB7..PB0)
Port B is an 8-bit bi-directional I/O port. Port pins can provide internal pul l-up resist ors (se lected for ea ch bit). PB 0
and PB1 also se rve as the po sitive inpu t (AIN0) an d the
negative input ( AIN1), resp ectively , of the on-chi p analog
comparator. The Port B output buffe rs can sink 20 mA and
thus drive LED displays directly. When pins PB0 to PB7 are
used as inputs and are externally pulled low, they will
source current if the internal pull-up resistors are activated.
Port B also serves the fu nction s of vario us speci al feat ures
of the AT90S1200 as listed on page 20.
Port D (PD6..PD0)
Port D has seven bi-directional I/O pins with internal pull-up
resistors, PD6..PD0. The Port D o utput buffers can s ink 20
mA. As inputs, Port D pins that are externally pulled low will
source current if the pull-up resistors are activated.
Port D also serves th e fu nc tion s of v ario us sp ec ial fea tur es
of the AT90S1200 as listed on page 23.
RESET
Reset input. A low on th is pi n for two machi ne cy cles wh ile
the oscillator is running resets the device.
XTAL1
Input to the inverting os cillator amplifi er and input to th e
internal clock operating circuit.
XTAL2
Output from the inverting oscillator amplifier.
Crystal Oscillator
XTAL1 and XTAL2 are input and output, respectively, of an
inverting amplifier which can be configured for use as an
on-chip os cillator, as shown in Figure 2 . Either a quartz
crystal or a ceramic resonator may be used. To drive the
device from an external clock source, XTAL2 should be left
unconnected while XTAL1 is driven as shown in Figure 3.
Figure 2.
Figure 3.
Oscillator Connec tio ns
External Clock Drive Configuration
On-Chip RC Oscillator
An on-chip RC oscillator running at a fix ed frequency of 1
MHz can be selected as the MCU clock sourc e. If enable d,
the AT90S1200 can opera te wit h no exter nal comp onents .
A control bit - RCEN in the Flas h Memor y selects the onchip RC oscill ator as th e clock source when pr ogrammed
(‘0’). The AT90S1200 is normally shipped with this bit
unprogrammed (‘1’). Parts with this bit programmed can be
ordered as AT90S1200A. The RCEN-bit can be changed
by parallel programming only. When using the on-chip RC
oscillator for serial program downloading, the RCEN bit
must be programmed in paralle l pro gr amm ing mode fir st .
3
Page 4
AT90S1200 Architectural Overview
The fast-access register file concept contains 32 x 8-bit
general purpose worki ng regi ster s with a sin gle cl ock c ycle
access time. This means that during one single clock cycle,
one ALU (Arithmetic Logic Unit) operation is executed. Two
operands are output from the register file, the operation is
executed, and the result is stored back in the register file in one clock cycle.
Figure 4.
The AT90S1200
AVR
Enhanced RISC Architecture
The ALU supports arithmetic and logic functions between
registers or be tween a const ant and a r egist er. Si ngle re gister operations are also executed in the ALU. Figure 4
AVR
shows the AT90S1 200
ler architecture . The
cept - with separate memories and buses for program and
data memories . Th e progr am me mory i s acce ssed with a
two stage pipeline. While one instruction is being executed,
the next instruction is pre-fetched from the program memory. This concept enables instruc tions to be executed in
every clock cycle. The program memory is In-System Programmable Flash memory.
With the relative jump and relative call instructions, the
whole 512 address space is directly accessed. All
instructions have a sin gle 16 -bit wor d for mat, m eaning that
every program memory add ress contains a singl e 16-bit
instruction.
During interrupts a nd subr outine cal ls, the re turn addre ss
program counter (PC) is stored on the stack. The stack is a
3 level deep hardw are stac k de dicat ed for s ubrou tines an d
interrupts.
4
AVR
Enhanced RISC micro control-
uses a Harvard architecture con-
AVR
AT90S1200
The I/O memory space contains 64 addresse s for CPU
peripheral functions as Control Registers, Timer/Counters,
A/D-converters, an d other I/O functions. The memo ry
AVR
spaces in the
memory maps.
A flexible interrupt module has its control registers in the
I/O space with an additional global interrupt enable bit in
the status reg ister. All th e diffe rent int errupt s have a sepa rate interr upt vector i n the inter rupt vector table at the
beginning of the program memory. The different interrupts
have priority in accordance with their interrupt vector position. The lower the interrupt vector address, the higher the
priority.
ADDRd, RrAdd two RegistersRd
ADCRd, RrAdd with Carry two RegistersRd
SUBRd, RrSubtract two RegistersRd
SUBIRd, KSubtract Constant from Register Rd
SBCRd, RrSubtract with Carry two RegistersRd
SBCIRd, KSubtract with Carry Constant from Reg.Rd
ANDRd, RrLogical AND RegistersRd
ANDIRd, KLogical AND Register and ConstantRd
ORRd, RrLogical OR RegistersRd
ORIRd, KLogical OR Register and ConstantRd
EORRd, RrExclusive OR RegistersRd
COMRdOne’s ComplementRd
NEGRdTw o’s ComplementRd
SBRRd,KSet Bit(s) in RegisterRd
CBRRd,KClear Bit(s) in RegisterRd
INCRdIncrementRd
DECRdDecrem entRd
TSTRdTest for Zero or MinusRd
CLRRdClear RegisterRd
SERRdSet RegisterRd
BRANCH INSTRUCTIONS
RJMPkRelative JumpPC
RCALLkRelative Subroutine CallPC
RETSubroutine ReturnPC
RETIInterrupt ReturnPC
CPSERd,RrCompare, Skip if Equalif (Rd = Rr) PC
CPRd,RrCompareRd - RrZ, N,V,C,H1
CPCRd,RrCompare with CarryRd - Rr - CZ, N,V,C,H1
CPIRd,KCompare Register with ImmediateRd - KZ, N,V,C,H1
SBRCRr, bSkip if Bit in Register Clearedif (Rr(b)=0) PC
SBRSRr, bSkip if Bit in Register is Setif (Rr(b)=1) PC
SBICP, bSkip if Bit in I/O Register Clearedif (P(b)=0) PC
SBISP, bSkip if Bit in I/O Register is Seti f (P(b)=1) PC
BRBSs, kBranch if Status Flag Setif (SREG(s) = 1) then PC
BRBCs, kBranch if Status Flag Clearedif (SREG(s) = 0) then PC
BREQ kBranch if Equal if (Z = 1) then PC
BRNE kBranch if Not Equalif (Z = 0) then PC
BRCS kBranch if Carry Setif (C = 1) then PC
BRCC kBranch if Carry Clearedif (C = 0) then PC
BRSH kBranch if Same or Higher if (C = 0) then PC
BRLO kBranch if Lowerif (C = 1) then PC
BRMI kBranch if Minusif (N = 1) then PC
BRPL kBranch if Plus if (N = 0) then PC
BRGE kBranch if Greater or Equal, Signedif (N
BRLT kBranch if Less Than Zero, Signedif (N
BRHS kBranch if Half Carry Flag Setif (H = 1) then PC
BRHC kBranch if Half Carry Flag Clearedif (H = 0) then PC
BRTS kBranch if T Flag Setif (T = 1) then PC
BRTC kBranch if T Flag Clearedif (T = 0) then PC
BRVS kBranch if Overflow Flag is Setif (V = 1) then PC
BRVC kBranch if Overflow Flag is Clearedif (V = 0) then PC
BRIE kBranch if Interrupt Enabledif (I = 1) then PC
BRID kBranch if Interrupt Disabledif (I = 0) then PC
SBIP,bSet Bit in I/O RegisterI/O(P,b)
CBIP,bClear Bit in I/O RegisterI/O(P,b)
LSLRdLogical Shift LeftRd(n+1)
LSRRdLogical Shift RightRd(n)
ROLRdRotate Left Through CarryRd(0)
RORRdRotate Right Through CarryRd(7)
ASRRdArithmetic Shift RightRd(n)
SWAPRdSwap NibblesRd(3..0)
BSETsFlag SetSREG(s)
BCLRsFlag ClearSREG(s)
BSTRr, bBit Store from Register to TT
BLDRd, bBit load from T to RegisterRd(b)
SECSet CarryC
CLCClear Carr yC
SENSet Negative FlagN
CLNClear Negative FlagN
SEZSet Zero FlagZ
CLZClear Zero FlagZ
SEIGlobal Interrupt EnableI
CLIGlobal Interrupt DisableI
SESSet Signed Test FlagS
CLSClear Signed Test FlagS
SEVSet Twos Complement OverflowV
CLVClear Twos Complement OverflowV
SETSet T in SREGT
CLTClear T in SREGT
SEHSet Half Carry Flag in SREGH
CLHClear Half Carry Flag in SREGH
←
1None2
←
0None2
←
Rd(n), Rd(0) ← 0Z,C,N,V1
←
Rd(n+1), Rd(7) ← 0Z,C,N,V1
←
C,Rd(n+1)← Rd(n),C←Rd(7)Z,C,N,V1
←
C,Rd(n)← Rd(n+1),C←Rd(0)Z,C,N,V1
←
Rd(n+1), n=0..6Z,C,N,V1
←
Rd(7..4),Rd(7..4)←Rd(3..0)None1
←
1SREG(s)1
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
←
0 SREG(s)1
Rr(b)T1
←
TNone1
1C1
0 C1
1N1
0 N1
1Z1
0 Z1
1I1
0 I1
1S1
0 S1
1V1
0 V1
1T1
0 T1
1H1
0 H1
NOPNo OperationNone1
SLEEPSlee p(see specific descr. for Sleep None3
WDRWatch Dog Reset(see specific descr. for WDR/timer)None1
7
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.