EQ_Products_Doc2 (Page 1) - Equinox Technologies UK Ltd.

EQ_Products_Doc2 (Page 1) - Equinox Technologies UK Ltd.
F
ollowing on from the success of the Atmel ATmega103(L) and ATmega163(L) microcontrollers, Atmel have recently
introduced four new members to the ATmega AVR™ FLASH Microcontroller Family: ATmega8, ATmega161,
ATmega323 & ATmega128. All four devices feature the powerful ‘MegaAVR’ core plus on-chip FLASH memory, EEPROM
data memory, programmable UART(S)/USART(S), hardware multiplier, programmable brownout detector and 10bit A/D
convertor. The ATmega8/161/163/323/128 feature 8K/16K/16K/32K/128K of on-chip ‘Self-programmable’ FLASH
memory respectively.
JTAG-ICE
ATmega128
The flagship device of the family is the ATmega128 with
its 128K FLASH, 4K EEPROM, 4K RAM, 53 I/O pins,
2 x USARTS plus configurable 1/2/4/8 MHz on-chip RC
oscillator. This device is designed to be a drop-in
replacement for the ATmega103 microcontroller,
allowing existing users to take advantage of the myriad
of new features which this device offers. A low-cost
JTAG In-Circuit Emulator (JTAG ICE) is now available which
supports On-Chip Debugging (OCD) of code on the actual target
device. This interfaces to the new ‘STK501 - Adaptor/Development
Board (STK501) for the ATmega128/103’ via a 10-pin JTAG ISP
header.
STK500
STK501
A typical ATmega128
Development System:
The STK501 is plugged into
the STK500 board and the
JTAG-ICE connects to the
JTAG Port on the STK501
ATmega8
The ATmega8 is the natural upgrade for the existing AT90S4433
microcontroller bringing the power of the MegaAVR family to a
28-pin DIP or 32-pin TQFP or 5mm x 5mm MLF package device.
If you need a compact powerful microcontroller with A/D and
the ability to re-program itself in-situ, then look no further!
AVR™ Development
Tools
A
B
C
D
STK500
JTAG-ICE
AVRISP
EPSILON5
ATmega161
The ATmega161 is a drop-in
replacement for the existing
AT90S8515 microcontroller, doubling
the Code memory capacity from 8K
to 16K bytes and supporting the
ability to ‘Self-Program’ the firmware/
EEPROM. The addition of a second serial
UART makes this device ideal for many
communications applications
e.g. protocol convertor.
JTAG
debug/ISP
Port on the
STK501
E STK501
- AVR™ FLASH Microcontroller Starter System
- In-circuit JTAG debugger for ATmega128/323
- Low-cost AVR™ ISP Programmer
- Universal In-System Programming (ISP) Tool for
Atmel, Atmel Wireless (Temic) & Philips FLASH
Microcontrollers
- Adaptor/Development Board for the ATmega128/103
B
A
C
E
ATmega323
The ATmega323 is an upgrade path for the existing
ATmega163 and AT90S8535 devices. It features more FLASH
memory (32K bytes), self-programming capability and a
JTAG interface for debugging/programming. The peripherals
are the same as on the existing AT90S AVR™ devices.
D
Please note: AVR™ is a trademark of the Atmel Corporation
The source code for a sample ‘Boot Loader’ is freely available from Atmel
allowing the developer to write custom loaders which could theoretically
work over any communications medium e.g. SPI, UART, USB etc. More
advanced boot loaders could provide encryption protection for product
firmware/EEPROM data updates, thereby protecting the code and data
against software piracy. The ‘Boot Loader’ section is configurable in size
allowing for different complexities of Boot Loaders and also features separate
‘Security Lock Bits’ to the ‘Application FLASH Section’ for maximum security
protection during firmware updates. The ‘Boot Block’ can not be erased or reprogrammed by the ‘Application FLASH Code’, so the Boot Loader firmware
should be able to recover from any error during re-programming of the
‘Application Code’ without losing the whole device. If no Boot Loader
capability is needed, the entire FLASH area is available for application code.
JTAG On-chip Debug (OCD)
support using the JTAG-ICE
JTAG ISP Header
RST
TMS
Vsupply
TDI
ATmegaXXX
Microcontroller
ATmegaXXX
Microcontroller
JTAG PORT
TTL
Level
Boot Loader
Section
(Probably Not Used)
User Target System
FLASH Memory
Map
Figure 4: Typical development environment
Using the actual device as the ‘Emulation Device’ has the following
advantages:
• Code is running on actual target device so the exact electrical and timing
characteristics of the ‘real’ device are adhered to
• Operation of I/O, timers, A/D etc. is exactly as per the ‘real’ device
• No need for expensive and delicate surface mount emulator adaptors
• Final hardware can be emulated without having to revert back to a
prototype with emulator adaptor
• The cost of the JTAG-ICE is significantly lower than a dedicated emulator
RS-232 Port
RS-232
Level
PC
TTL
Level
EPSILON5
Programmer
User Target System
Application
Firmware
Under
Development
Boot Loader
Section
(Configured)
FLASH Memory
Map
Figure 5: Typical production environment
AT-JTAGICE
The ATmega128 has the following additional features to the
ATmega103:
TCK
TCK
TD0 JTAG
TMS Port
TDI
Vcc
GND
JTAG-ICE
PC
Application
Firmware
Under
Development
The ATmega128 microcontroller is designed to be a drop-in replacement for
the already established ATmega103 microcontroller. The ATmega128 has a
special ‘ATmega103 Compatibility Mode’ which disables all the new features
of the ATmega128 allowing the device to run the original ATmega103
firmware without re-compilation. This mode is enabled by default when the
device leaves the factory.
TDO
TCK 1
TD0 3
TMS 5
TDI 9
Vcc 4
GND 2/10
Vsupply 7
nRST 6
nTRST 8
RS-232
Level
ATmega128 is a drop-in replacement for the
ATmega103
The ATmega323/128 microcontrollers feature
powerful on-chip debug (OCD) hardware which
allows an external emulator to debug code which
is running on the actual device. A fast JTAG
(IEEE1149.1 compliant) interface is used to
pass data between the emulator and the OCD
hardware and can also be used as a fast method
of in-system programming the device in a
production environment.
LOAD
RS-232 Port
ATmegaXXX
Microcontroller
No Read While
Write Section
Read While Write
Section
The new ATmega microcontrollers have the ability to self-program both the
FLASH and EEPROM areas of the device using an optional ‘Boot Loader’
which can be stored in the ‘Boot Loader’ section of the FLASH memory area.
This effectively means that a product can update its own firmware without
the need for an external programmer. This powerful feature opens up many
possibilities for remote/field
Program Memory
firmware updates without
BOOTSZ = '11'
requiring any additional
$0000
external hardware. The
required ‘Boot Loader’ must be
Application
programmed into the device
Flash Section
using either the SPI or JTAG
ISP port before the target
system leaves the production
End RWW
facility. Typical applications of
Start NRWW
this technology could include
Application
remote firmware updating of
Flash Section
vending machines, portable
End Application
Boot Loader Flash Section Start Boot Loader
instruments, telephone
Flashend
routers, distributed intelligent
Figure 1: Memory Sections
sensors etc.
by combining up to 3 break-point registers. It is also possible to set ‘Software
Breakpoints’, but these involve re-writing a page of FLASH memory every
time they are updated.
JTAG PORT
Self-Programming of FLASH/EEPROM
1
2
3
4
5
6
7
8
9
10
GND
VTref
nSRST
(nTRST)
GND
Figure 3: JTAG ISP Port Header
10-way IDC
Figure 2: JTAG Port connections to an
ATmegaxxx Microcontroller
Atmel have recently launched the ‘JTAG ICE’ which is designed to support incircuit debugging of any current or future ATmega microcontroller which
features the JTAG port. The ICE works by initially programming the user
firmware/data into the FLASH/EEPROM memory of the actual target ATmega
device and then controls the execution/debug of this code via the OCD
hardware. The JTAG ICE supports reading/writing of the Program Counter
(PC), FLASH, EEPROM, General Purpose Registers and SRAM contents to/from
the PC control software suite, ‘AVR™ Studio’. A limited number of ‘Hardware
Breakpoints’ are supported with the ability to generate valid break conditions
• Maximum clock frequency: 16MHz (compared to a maximum 6MHz with
the ATmega103)
• On-chip calibrated RC Oscillator which can be configured to run at 1, 2, 4
or 8MHz
• 52 fully configurable I/O pins (ATmega103 has 32 I/O pins plus 8 x Input
Only and 8 x Output Only)
• 2 x programmable serial USARTs
• JTAG On-Chip Debug (OCD) and fast JTAG ISP port
• User-configurable ‘Boot Block’ supporting ‘Self-Programming Mode’
• Byte-orientated 2-wire Serial Interface
Please observe the following points when upgrading from the
ATmega103 to ATmega128:
i The ATmega128 programming algorithm must be used.
ii The ATmega128 is shipped with a 1MHz (nominal) Internal RC oscillator
enabled by default. It is necessary to re-program the ‘Clock Selection
Fuses CKSEL 0..3’ to enable the device to work from an external crystal.
iii The ATmega128 is shipped with the ‘JTAG Interface’ enabled. This must
be disabled by un-programming the ‘JTAGEN’ fuse.
STK500 - Professional AVR™
Starter System
STK501 - Adaptor/Development Board for the
ATmega128/103
The Atmel STK500 is a
comprehensive Starter
System for the Atmel AVR™
FLASH Microcontroller Family.
The system comprises of a single
board module which features IC
STK500 Board
sockets for all the popular
dual-in-line AVR™ devices. It possible
to in-system program (ISP) and ‘Parallel’
program AVR™ devices on the STK500 and also to use the board to ISP a
device on a separate Target System. The STK500 can be used as an
evaluation board by connecting up the various on-board peripherals including
LED’s, push buttons and Serial Dataflash.
The STK501 is a new plug-in module
designed to add ATmega128/103
support to the existing Atmel STK500
development board. The module
plugs into the two expansion
STK501 Adaptor Board
headers on the STK500 board
thereby routing power and most of the I/O ports to the relevant ports on the
STK500 board. The STK501 features a 64-pin TQFP Zero Insertion Force (ZIF)
socket which will accept manual placement of either the ATmega128 or
ATmega103 surface mount devices. All the new features of the ATmega128
device are supported including extra I/O ports, JTAG port and additional serial
USART. The STK501 can be controlled from the STK500 via ‘AVR™ Studio’ or
the ‘JTAG ICE’ can be plugged into the JTAG port and then used to program/
debug the target ATmega128 device.
Features:
•
•
•
•
•
•
•
•
•
•
•
•
•
AVR™ Studio Software Interface
RS-232 Interface to PC for Programming and Configuration
Second RS-232 port for user application
External power supply required (9V - 12V DC)
Sockets for 8, 20, 28 and 40 pin AVR™ devices
Serial In-System Programming (ISP) of AVR™ devices
In-System Programmer for programming AVR™ device in an External
Target System
Parallel and Serial High-voltage programming of AVR™ devices
8 x Push buttons and 8 x LED’s for general use
All AVR™ I/O ports easily accessible through pin header connectors
Expansion connectors for plug-in modules (e.g. STK501) and prototyping
area
On-board 2 Megabit Serial Dataflash for non-volatile data storage
Flexible clocking, voltage and reset system
Device Support:
• ISP (on-board) - AT90S, ATtiny, ATmega (ATmega103/128 - requires
STK501) devices
• Parallel (on-board) - AT90S, ATmega (ATmega103/128 - requires STK501)
devices
• ISP (off-board) - AT90S, ATtiny, ATmega
AT-STK500
AVRISP - Low-cost In-System Programmer for
Atmel AVR™ FLASH Microcontroller Family
The ‘AVRISP’ is a low-cost in-system programmer (ISP)
supporting the Atmel AVR™ FLASH Microcontroller Family.
The programmer plugs into the user Target System via a 6
or 10-pin ISP header and draws its power from the
target. The Atmel ‘AVR™ Studio’ application is used to
control the programmer via a spare PC COM (serial) port.
Features:
• ISP programming of all in-system
programmable AVR™ devices
• Programs FLASH, EEPROM, FUSE and Security
bits
• Supports programming of the RC Oscillator
Calibration Byte
• Powers from Target System (2.7-5.5V - no external power supply required)
• Adjustable SPI speed. Supports all Target Boards running at > 8KHz
• ‘AVR™ Studio’ PC Interface Software
• DOS Command Line Interface also available
• Connects to spare PC COM (serial) port
• Supplied with both Atmel 6-way and 10-way ISP cables
AT-AVRISP
Features:
•
•
•
•
•
•
•
•
•
STK500 Starter System compatible.
AVR™ Studio compatible
JTAG ICE compatible
Supports ATmega128 and ATmega103 devices in TQFP package without
soldering
TQFP footprint to allow emulator (ICE) adaptor to be soldered to the
module
Supports all new features of the ATmega128 including extra I/O ports,
JTAG port and additional serial USART
Adds external SRAM support to the STK500 board
On-board 32kHz clock oscillator for easy implementation of Real Time
Clock (RTC)
Supports programming of Atmega128 device via SPI, JTAG (using ‘JTAG
ICE’ or ‘Epsilon5’) and high-voltage parallel mode
AT-STK501
Epsilon5 MKII - ISP Programmer
The Epsilon5 ISP programmer is an all-in-one
development/field/production programmer
supporting most in-system programmable
microcontrollers from Atmel, Atmel Wireless
(Temic) and Philips. The programmer can be
controlled from the PC or used in Standalone
Mode.
Device support:
• Atmel - LV SPI ISP: AT90S, ATtiny and ATmega AVR™ microcontrollers
• Atmel - JTAG ISP: ATmega323/128 (license upgrade)
• Atmel - HV (+12V Vpp) ISP: ATtiny11/12/15L
• Atmel - AT89(L)S51/52/53/8252 8051 microcontrollers
• Atmel Wireless (Temic) - Boot Loader: T89C51Rx2, T89C51CC01
• Philips - Boot Loader: P89C51Rx2, P89C66x
Features:
• Controlled/configured by Equinox EQTools Software
• Powerful ‘project-based’ environment with full version control
• Standalone Mode - programmer can used without a PC
• Supports programming of FLASH, EEPROM, FUSE bits, Security bits and
RC Oscillator Calibration bytes
• Ideal for development, field or small-scale production use
• Single Key Auto-Program
• Status LED’s - Busy/Pass/Fail
• 4 x ISP Headers - Atmel 6-way/10-way/JTAG, Equinox 10-way
• 2Mbits of on-board non-volatile FLASH memory for user project storage
• Can be powered directly from the Target System (3.0V to 5.0V)
• JTAG Port - FAST ISP using JTAG algorithm (license upgrade)
• Upgrades include JTAG ISP support, Labview control, Visual Basic control
EQ-EPSILON5-A1
* Max speed depends on Vcc voltage. Frequencies and Currents
listed are for Vcc = 5.0V & T = 25ºC
Please verify correct part codes for low voltage parts before
ordering.
Key
SRAM - Static RAM
ISP
- In-System Programmable
BL
- Boot Loader
JTAG
- JTAG ISP/Debug Port
I/O
- Input/Output
ADC
- Analogue to Digital Convertor
SPI
- Serial Peripheral Interface
PWM - Pulse Width Modulation
PAR
- Parallel programming mode
FLASH - Reprogrammable Code Memory
EEPROM - Reprogrammable Data Memory
YES1
- Nominal Frequency 1MHz
YES2
- Nominal Frequency 1.6MHz
YES3
- Nominal Frequency 1/2/4/8MHz
LVISP - Low Voltage ISP (On target PCB)
HVISP - High Voltage ISP
L
- Low Voltage (device)
N/A
- Not Available
TBA
- To Be Announced
ICCAVR - AVR™ C Compiler - Full (302-2274)
ATmega128
(L)
ATmega103
(L)
ON-CHIP MEMORY
FLASH (Bytes)
8K
16K
32K
16K
128K
EEPROM (Bytes)
512
512
1K
512
4K
SRAM (Bytes)
1K
1K
2K
1K
4K
In-System Programmable (ISP)
YES+BL
YES+BL
YES+BL+JTAG
YES+BL
YES
HARDWARE FEATURES
I/O Pins
23
32
32
35
32I/O, 8O, 8I
On-chip RC Oscillator
YES3
YES1
YES
NO
NO
Real Time Clock (RTC)
YES
YES
YES
YES
YES
SPI Port
YES
YES
YES
YES
YES
Full Duplex Serial UART
1 x (USART)
1
1 x (USART)
2
1
Watchdog Timer
YES
YES
YES
YES
YES
Timer/Counters
3
2
3
3
3 + RTC
PWM Channels (10-bit)
3
4
4
2
2
Analogue Comparator
YES
YES
YES
YES
NO
A/D Channel (10-bit)
6/8
8
8
8
IDLE and Power Down modes
YES
YES
YES
YES
YES
Interrupts
TBA
17
19
20
24
MISCELLANEOUS
AVR™ Instructions
130
130
130
130
121
ATmegaxxxL (Low Voltage)
0-8MHz
0-4MHz
0-4MHz
0-4MHz
0-4MHz
Frequency/Voltage Range
2.7-5.5V
2.7-5.5V
2.7-5.5V
2.7-5.5V
2.7-3.6V
ATmegaxxx
0-16MHz
0-8MHz
0-8MHz
0-8MHz
0-6Mhz
Frequency/Voltage Range
4.5-5.5V
4.0-5.5V
4.0-5.5V
4.5-5.5V
4.0-5.5V
EQUINOX SUPPORT TOOLS
Epsilon 5
LVISP/JTAG
LVISP
LVISP
LVISP
LVISP
FS2000A
LVISP
LVISP
LVISP
LVISP
LVISP
PRO101
LVISP
LVISP
LVISP
LVISP
LVISP
AVRISP
LVISP
LVISP
LVISP
LVISP
LVISP
STK500
LVISP/PAR LVISP/PAR LVISP/PAR LVISP/PAR
LVISP
STK500 C+
LVISP
LVISP/PAR
LVISP
LVISP
LVISP
STK501
LVISP/PAR
Imagecraft C Compiler
ICCAVR
ICCAVR
ICCAVR
ICCAVR
ICCAVR
PACKAGE TYPES
28P3
44A
40P6
40P6
64A
32A
40P6
44A
44A
128K
4K
4K
YES+BL+JTAG
53
YES3
YES
YES
2 x (USART)
YES
4 + RTC
6 (16-bit)
YES
17
YES
24+
Package Descriptions
8S2
- 8-Lead, 0.200” Wide, Plastic Gull-Wing Small
Outline Package (EIAJ SOIC)
32A
- 32-Lead, Thin (1.0mm) Plastic Gull-Wing Quad
Flat Package (TQFP)
8P3
- 8-Lead, 0.300” Wide, Plastic Dual In-line Package
(PDIP)
40P6
- 40-Lead, Thin (1.0mm) Plastic Dual In-line Package
(PDIP)
20S
- 20-Lead, 0.300” Wide, Plastic Gull-Wing Small
Outline (SOIC)
44A
- 44-Lead, Thin (1.0mm) Plastic Gull-Wing Quad
Flat Package (TQFP)
20P3
- 20-Lead, 0.300” Wide, Plastic Dual In-line Package
(PDIP)
44J
- 44-Lead, Plastic J-Leaded Chip Carrier (PLCC)
28P3
- 28-Lead, 0.300” Wide, Plastic Dual In-line Package
(PDIP)
64A
- 64-Lead, Thin (1.0mm) Plastic Gull-Wing Quad
Flat Package (TQFP)
133
0-8MHz
2.7-5.5V
0-16MHz
4.5-5.5V
LVISP
LVISP
LVISP
LVISP
LVISP
LVISP
LVISP/PAR
ICCAVR
64A
Atmel AVR™ FLASH Microcontroller Pinouts
NC* = DO NOT CONNECT
(May be used in future devices)
40-pin PDIP
(MOSI) PB5
(MISO) PB6
(SCK) PB7
RESET
VCC
GND
XTAL2
XTAL1
(RXD) PD0
(TXD) PD1
(INT0) PD2
1
2
3
4
5
6
7
8
9
10
11
44-pin TQFP
24
23
22
21
20
19
18
17
AVCC
GND
AREF
PF0 (ADC0)
PF1 (ADC1)
PF2 (ADC2)
PF3 (ADC3)
PF4 (ADC4/TCK)
PF5 (ADC5/TMS)
PF6 (ADC6TDO)
PF7 (ADC7/TDI)
GND
VCC
PA0 (AD0)
PA1 (AD1)
PA2 (AD2)
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
PC1 (ADC1)
PC0 (ADC0)
ADC7
AGND
AREF
ADC6
AVCC
PB5 (SCK)
33
32
31
30
29
28
27
26
25
24
23
PA4 (ADC4)
PA5 (ADC5)
PA6 (ADC6)
PA7 (ADC7)
AREF
AGND
AVCC
PC7 (TOSC2)
PC6 (TOSC1)
PC5
PC4
40-pin PDIP
(OC2/OC1C) PB7
TOSC2/PG3
TOSC1/1PG4
RESET
VCC
GND
XTAL2
XTAL1
(SCL/INT0) PD0
(SDA/INT1) PD1
(RXD1/INT2) PD2
(TXD1/INT3) PD3
(IC1) PD4
(XCK1) PD5
(T1) PD6
(T2) PD7
PA3 (AD3)
PA4 (AD4)
PA5 (AD5)
PA6 (AD6)
PA7 (AD7)
PG2 (ALE)
PC7 (A15)
PC6 (A14)
PC5 (A13)
PC4 (A12)
PC3 (A11)
PC2 (A10)
PC1 (A9)
PC0 (A8)
PG1(RD)
PG0(WR)
64-pin TQFP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
PA0 (ADC0)
PA1 (ADC1)
PA2 (ADC2)
PA3 (ADC3)
PA4 (ADC4)
PA5 (ADC5)
PA6 (ADC6)
PA7 (ADC7)
AREF
AGND
AVCC
PC7 (TOSC2)
PC6 (TOSC1)
PC5 (TDI)
PC4 (TD0)
PC3 (TMS)
PC2 (TCK)
PC1 (SDA)
PC0 (SCL)
PD7 (OC2)
PB4 (SS)
PB3 (AIN1/OC0)
PB2 (AIN0/INT2)
PB1 (T1)
PB0 (XCK/T0)
GND
VCC
PA0 (ADC0)
PA1 (ADC1)
PA2 (ADC2)
PA4 (ADC3)
(XCK/T0) PB0
(T1) PB1
(INT2/AIN0) PB2
(OC0/AIN1) PB3
(SS) PB4
(MOSI) PB5
(MISO) PB6
(SCK) PB7
RESET
VCC
GND
XTAL2
XTAL1
(RXD) PD0
(TXD) PD1
(INT0) PD2
(INT1) PD3
(OC1B) PD4
(OC1A) PD5
(ICP) PD6
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
ATmega128(L)
ATmega323(L)
PB4 (SS)
PB3 (AIN1)
PB2 (AIN0)
PB1 (T1)
PB0 (T0)
GND
VCC
PA0 (ADC0)
PA1 (ADC1)
PA2 (ADC2)
PA4 (ADC3)
PA0 (ADC0)
PA1 (ADC1)
PA2 (ADC2)
PA3 (ADC3)
PA4 (ADC4)
PA5 (ADC5)
PA6 (ADC6)
PA7 (ADC7)
AREF
AGND
AVCC
PC7 (TOSC2)
PC6 (TOSC1)
PC5
PC4
PC3
PC2
PC1 (SDA)
PC0 (SCL)
PD7 (OC2)
44
43
42
41
40
39
38
37
36
35
34
PA4 (AD4)
PA5 (AD5)
PA6 (AD6)
PA7 (AD7)
PE0 (ICP/INT2)
NC*
PE1 (ALE)
PE2 (OC1B)
PC7 (A15)
PC6 (A14)
PC5 (A13)
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
1
2
3
4
5
6
7
8
32-pin MLF
(INT1) PD3
(OC1B) PD4
(OC1A) PD5
(ICP) PD6
(OC2) PD7
VCC
GND
(SCL) PC0
(SDA) PC1
PC2
PC3
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
12
13
14
15
16
17
18
19
20
21
22
1
2
3
4
5
6
7
8
9
10
11
(WR) PD6
(RD) PD7
XTAL2
XTAL1
GND
NC*
(A8) PC0
(A9) PC1
(A10) PC2
(A11) PC3
(A12) PC4
(MOSI) PB5
(MISO) PB6
(SCK) PB7
RESET
(RXD0) PD0
NC*
(TXD0) PD1
(INT0) PD2
(INT1) PD3
(TOSC1) PD4
(OC1A/TOSC2) PD5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(INT1) PD3
(XCK/T0) PD4
GND
VCC
GND
VCC
(XTAL1/TOSC1) PB6
(XTAL2/TOSC2) PB7
32-pin TQFP
ATmega163(L)
(T0) PB0
(T1) PB1
(AIN0) PB2
(AIN1) PB3
(SS) PB4
(MOSI) PB5
(MISO) PB6
(SCK) PB7
RESET
VCC
GND
XTAL2
XTAL1
(RXD) PD0
(TXD) PD1
(INT0) PD2
(INT1) PD3
(OC1B) PD4
(OC1A) PD5
(ICP) PD6
PC1 (ADC1)
PC0 (ADC0)
ADC7
AGND
AREF
ADC6
AVCC
PB5 (SCK)
12
13
14
15
16
17
18
19
20
21
22
PB4 (SS)
PB3 (TXD1/AIN1)
PB2 (RXD1/AIN0)
PB1 (OC2/T1)
PB0 (OC0/T0)
NC*
VCC
PA0 (AD0)
PA1 (AD1)
PA2 (AD2)
PA3 (AD3)
28-pin PDIP
24
23
22
21
20
19
18
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
44
43
42
41
40
39
38
37
36
35
34
1
2
3
4
5
6
7
8
PEN
RXD0/(PDI) PE0
(TXD0/PD0) PE1
(XCK0/AIN0) PE2
(OC3A/AIN1) PE3
(OC3B/INT4) PE4
(OC3C/INT5) PE5
(T3/INT6) PE6
(IC3/INT7) PE7
(SS) PB0
(SCK) PB1
(MOSI) PB2
(MISO) PB3
(OC0) PB4
(OC1A) PB5
(OC1B) PB6
(MOSI) PB5
(MISO) PB6
(SCK) PB7
RESET
VCC
GND
XTAL2
XTAL1
(RXD) PD0
(TXD) PD1
(INT0) PD2
1
2
3
4
5
6
7
8
9
10
11
33
32
31
30
29
28
27
26
25
24
23
(INT1) PD3
(OC1B) PD4
(OC1A) PD5
(ICP) PD6
(OC2) PD7
VCC
GND
(SCL) PC0
(SDA) PC1
(TCK) PC2
(TMS) PC3
(INT1) PD3
(XCK/T0) PD4
GND
VCC
GND
VCC
(XTAL1/TOSC1) PB6
(XTAL2/TOSC2) PB7
40-pin PDIP
44-pin TQFP
PD2 (INT0)
PD1 (TXD)
PD0 (RXD)
PC6 (RESET)
PC5 (ADC5/SCL)
PC4 (ADC4/SDA)
PC3 (ADC3)
PC2 (ADC2)
PC5 (ADC5/SCL)
PC4 (ADC4/SDA)
PC3 (ADC3)
PC2 (ADC2)
PC1 (ADC1)
PC0 (ADC0)
AGND
AREF
AVCC
PB5 (SCK)
PB4 (MISO)
PB3 (MOSI/OC2)
PB2 (SS/OC1B)
PB1 (OC1A)
32
31
30
29
28
27
26
25
28
27
26
25
24
23
22
21
20
19
18
17
16
15
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(T1) PD5
(AIN0) PD6
(AIN1) PD7
(ICP) PB0
(OC1A) PB1
(SS/OC1B) PB2
(MOSI/OC2) PB3
(MISO) PB4
(RESET) PC6
(RXD) PD0
(TXD) PD1
(INT0) PD2
(INT1) PD3
(XCK/T0) PD4
VCC
GND
(XTAL1/TOSC1) PB6
(XTAL2/TOSC2) PB7
(T1) PD5
(AIN0) PD6
(AIN1) PD7
(ICP) PB0
PD2 (INT0)
PD1 (TXD)
PD0 (RXD)
PC6 (RESET)
PC5 (ADC5/SCL)
PC4 (ADC4/SDA)
PC3 (ADC3)
PC2 (ADC2)
VCC
PA0 (AD0)
PA1 (AD1)
PA2 (AD2)
PA3 (AD3)
PA4 (AD4)
PA5 (AD5)
PA6 (AD6)
PA7 (AD7)
PE0 (ICP/INT2)
PE1 (ALE)
PE2 (OC1B)
PC7 (A15)
PC6 (A14)
PC5 (A13)
PC4 (A12)
PC3 (A11)
PC2 (A10)
PC1 (A9)
PC0 (A8)
32
31
30
29
28
27
26
25
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(T1) PD5
(AIN0) PD6
(AIN1) PD7
(ICP) PB0
(OC1A) PB1
(SS/OC1B) PB2
(MOSI/OC2) PB3
(MISO) PB4
(OC0/T0) PB0
(OC2/T1) PB1
(RXD1/AIN0) PB2
(TXD1/AIN1) PB3
(SS) PB4
(MOSI) PB5
(MISO) PB6
(SCK) PB7
RESET
(RXD0) PD0
(TXD0) PD1
(INT0) PD2
(INT1) PD3
(TOSC1) PD4
(OC1A/TOSC2) PD5
(WR) PD6
(RD) PD7
XTAL2
XTAL1
GND
ATmega8(L)
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
ATmega161(L)
ATmega128(L)
12
13
14
15
16
17
18
19
20
21
22
ATmega161
(L)
ATmega323
(L)
ATmega163
(L)
ATmega8
(L)
Atmel AVR™ FLASH Microcontroller Family - Product Selection Guide
44-pin TQFP
PA4 (ADC4)
PA5 (ADC5)
PA6 (ADC6)
PA7 (ADC7)
AREF
AGND
AVCC
PC7 (TOSC2)
PC6 (TOSC1)
PC5 (TDI)
PC4 (TD0)
he Atmel ‘AVR™ FLASH Microcontroller Family’ brings low-cost, high-performance re-programmable microcontrollers within the
reach of every embedded design engineer. These devices are supported by optimising high-level language compilers for ANSI C
and Pascal so you can write portable non chip-specific code with no need to learn a new instruction set. A low-cost In-Circuit
Emulator (ICE200) supports low and high-level language in-circuit emulation of most of the popular AT90S and ATtiny devices and
nearly all devices can by programmed in-situ on your target board using a suitable ISP programmer.
T
AT90S AVR™ Family (AT90S1200/2313/4433/8515/8535)
3-WIRE IN/OUT
SERIAL
PERIPHERAL
INTERFACE
FLASH
SRAM
EEPROM
PROGRAM
COUNTER
UART
32 GENERAL
PURPOSE
REGISTERS
ADC
INSTRUCTION
REGISTER
I/O MEM
ANALOG
COMPARATORS
ALU
CPU
WATCHDOG
TIMER
I/O
PORTS
INTERRUPTS
TIMER
COUNTERS
AVR™ Features:
• Advanced RISC Architecture for high-performance and
low-power
• In-System Programmable FLASH CODE Memory (1,000+
Write/Erase cycles)
• In System Programmable EEPROM DATA Memory (100K+
Write/Erase cycles)
• Some devices support ‘Self Programming’ of the
FLASH/EEPROM using a custom Boot Loader
• On-chip Internal SRAM - 128 to 4K bytes
• Throughput of up to 16 MIPS on higher-end devices
• Device Pin counts from 8 to 64 pins
• Configurable I/O pin architecture with Sink/Source capability
• Support In-System Programming (ISP) via simple 3-wire SPI
Interface + control of RESET pin
• Wide voltage supply range (2.7 to 5.5V - choose ‘L’ device
for <4V operation)
• Many AVR™ devices feature on-chip RC Oscillator (1/4/8 MHz)
• Programmable Watchdog Timer
• On-chip brownout circuit to guard against power supply
drop-out conditions
• Multiple ‘Sleep Modes’ - ideal for low-power applications
Please note: AVR™ is a trademark of the Atmel Corporation
These devices offer a whole host of powerful features at a low cost. The
1200 and 2313 are both 20-pin devices with 15 I/O pins and are capable of
speeds of up to 12 MIPS (1200). The 2313 has 2K FLASH CODE memory, 128
bytes of EEPROM and an on-chip UART making it ideal for many low-cost
serial communications/control applications. At the top-end of the family, the
8535 features 8K FLASH CODE memory, 512 bytes of EEPROM and an on-chip
8-channel 10-bit A/D convertor. All devices are fully supported by the
STK500(C+) Starter/Development Systems and the ICE200 In-Circuit Emulator.
ATtiny AVR™ Family (ATtiny11/12/15)
These low-cost ‘Tiny’ 8-pin microcontrollers feature a slightly reduced version
of the standard AVR™ core with no on-chip SRAM. The ATtiny12 and
ATtiny15 have on-chip EEPROM and have an internal RC oscillator so no
external clock is required. The ATtiny15 even has a 4-channel 10-bit A/D.
These devices are therefore ideal for high-volume applications where low
cost and small physical size are required.
(RESET) PB5
(XTAL1) PB3
(XTAL2) PB4
GND
1
2
3
4
8
7
6
5
ATtiny12
VCC
PB2 (SCK/T0)
PB1 (MISO/INT0/AIN1)
PB0 (MOSI/AIN0)
Pinout
ATmega AVR™ Family (ATmega8/323/161/163/103)
The first five members of the megaAVR family are highly integrated devices
and have from 8K to 128K Bytes of Flash program Memory, EEPROM, a
programmable UART, hardware multiplier, programmable brownout detector
and 10 bit A/D converter. They are housed in the industry standard 32, 44 or
64 pin TQFP or 28 and 40 pin PDIP packages. With the exception of the
ATmega103, all members of this family feature an optional ‘Boot Code’
section with can be used to store a custom Boot Loader allowing the
FLASH/EEPROM to be re-programmed via any customer-specified interface.
The Atmega128 and ATmega161 both feature two Serial Ports making them
ideal for many control/communications applications.
ICCAVR V6 (Full) - Low Cost ANSI-C Compiler
IDE: Powerful IDE including Editor, Project Manager, C Compiler and assembler
ANSI-C Compiler
• Modern fast C Compiler with full support for the ANSI C language
• Optimised ‘switch’ handling, algebraic simplifications, advanced register
allocation, peephole optimization
• Supports 32-bit longs & 32-bit IEEE single precision floating point
• Full support for interrupt handlers in C
• Supports in-line assembly
• Supports automatic generation of bit I/O instructions
• Strings can be placed in either RAM or FLASH
• Subset of ANSI C library is provided which includes printf, memory
allocation, strings and maths functions
IM-AVRC-1
STK500 C+
FS2000A
AVR™™ Professional FLASH Microcontroller Development System
Portable Development/Field/Production ISP
Programmer for Atmel AVR™ and AT89S
Microcontrollers
The Atmel STK500 C+ AVR™™ development system contains everything you need to
develop projects for the Atmel AVR™ FLASH Microcontroller Family. The system
includes an integrated AVR™ programming/evaluation/prototyping board, a fully
functional C compiler (4K bytes code limit) and sample AVR™ microcontrollers. The
STK500 module supports both parallel programming and off-board In-System
Programming (ISP) of a user target system (not supplied). The software supplied
includes the ‘ ICCAVR Integrated Development Environment (IDE)’ which is fully
integrated with the Atmel ‘AVR™ Studio 3.0 Interface’ and supports compile, program
to target device and run from a single menu
selection.
The STK500 starter kit includes the following:
Software
• AVR™ Studio 3.0 Interface software
• Imagecraft ICCAVR ANSI C compiler and
IDE for Atmel AVR™ (4K bytes code limit)
Hardware
• STK500 programming/evaluation/
prototyping board
• Sample AVR™ FLASH microcontrollers
• 9-way PC Serial Cable
• Power cable (external PSU not supplied)
• 10-way IDC cable (for off-board ISP)
STK500 module features:
• RS232 Interface to PC for Programming and Control
• Power Supply Input: 10-15V DC regulated
• Sockets for 8, 20, 28 and 40-pin AVR™ Microcontroller Devices
• Serial In-System Programming (ISP) of AVR™ Devices
• In-System Programmer (ISP) for Programming AVR™ Devices in External Target
System
• Parallel and Serial High-voltage Programming of most AVR™ Microcontroller
Devices
• Software Upgradable from AVR™ Studio to Support Future AVR™ Devices
• All AVR™ I/O Ports Easily Accessible through Pin Header Connectors
• RS232 Port for General Use
• Expansion Connectors for Plug-in Modules and Prototype Area
• On-board 2-megabit DataFlash™ for Nonvolatile Data Storage
• 8 Push Buttons and 8 LED’s for General Use
• Flexible Clocking, Voltage and Reset System
STK500 C+
EPSILON5 MKII
Universal In-System Programming (ISP) Tool for
Atmel & Philips FLASH Microcontrollers
The Epsilon5 ISP programmer is an all-in-one development/
field/production programmer supporting most in-system
programmable microcontrollers from Atmel, Atmel
Wireless (Temic) and Philips. The programmer can be
controlled from the PC or used in Standalone Mode.
Device support:
• Atmel - LV SPI ISP: AT90S, ATtiny and ATmega AVR™ microcontrollers
• Atmel - JTAG ISP: ATmega323/128 (license upgrade)
• Atmel - HV (+12V Vpp) ISP: ATtiny11/12/15L
• Atmel - AT89(L)S51/52/53/8252 8051 microcontrollers
• Atmel Wireless (Temic) - Boot Loader: T89C51Rx2, T89C51CC01
• Philips - Boot Loader: P89C51Rx2, P89C66x
Features:
• Controlled/configured by Equinox EQTools Software
• Powerful ‘project-based’ environment with full version control
• Standalone Mode - programmer can used without a PC
• Supports programming of FLASH, EEPROM, FUSE bits, Security bits and
RC Oscillator Calibration bytes
• Ideal for development, field or small-scale production use
• Single Key Auto-Program
• Status LED’s - Busy/Pass/Fail
• 4 x ISP Headers - Atmel 6-way/10-way/JTAG, Equinox 10-way
• 2Mbits of on-board non-volatile FLASH memory for user project storage
• Can be powered directly from the Target System (3.0V to 5.0V)
• JTAG Port - FAST ISP using JTAG algorithm (license upgrade)
• Upgrades include JTAG ISP support, Labview control, Visual Basic control
EPSILON5-A1
The FS2000A is an all-in-one Development/Field/
Production Programmer supporting high-speed
in-system programming (ISP) of Atmel AVR™ and
AT89S(8051) FLASH microcontrollers. The
programmer can be controlled from a PC
during the development phase and can also
be used standalone for field and production
applications. Any one of up to 64 independent
‘Programming Projects’ can be recalled from on-board
non-volatile memory and then programmed into a Target
Device by pressing a single key.
Hardware features:
• Very fast programming speeds suitable for high-throughput production
environments
• Portable programmer design - ideal for development, production or field use
• Supports ‘Standalone’ operation i.e. no PC required after programmer has been
configured
• On-board 4Mbits FLASH Memory Store capable of storing up to 64 independent
programming projects
• Simple selection of project using LCD and keypad
• Operator can not inadvertently change the programming data or settings
• Single key auto-program mode
• Can be powered from the target system (+5V only) or externally powered using
PSU included
• Robust SPI I/O stage
• Supports both Atmel and Equinox 10-way target ISP header connections
• Programmable frequency generator output on SCK2 pin supports external
clocking of ATmega163, ATtiny12, AT90S2333/4433 AVR™ microcontrollers to
speed up programming
• Programmer firmware is field upgradable to cater for future algorithms
System contents:
• FS2000A Portable ISP Programmer
• 10-way ISP Ribbon Cable
• 9W PC Serial cable + 9-25W adaptor
• User manual
• EQTools software on CD-ROM
FS2000A Ordering Information:
The FS2000A is available with the following mains power supply types:
FS2000A(UK) UK 3-pin 240V @ 50Hz
FS2000A(EU) Euro 2-pin 230V @ 50Hz
FS2000A(US) US 2-pin 110V @ 60Hz
FS2000A(AS) ASIA 3-pin 240V @ 50Hz
AVR™ ICE200
In-Circuit Emulator
The ICE200 is a true Real-Time In-Circuit
Emulator for the Atmel AVR™ Microcontroller
Family. The system offers full speed emulation
of most AT90S and ATtiny AVR™ derivatives
including emulation of memory, I/O and on-chip
peripherals. Full symbolic debugging in ‘C’ or
assembler is supported using the powerful ‘AVR™ Studio’ IDE from Atmel. The ICE200
comes complete with target pods for 8-pin, 20-pin, 28-pin
ATAVRSMD
and 40-pin (standard and A/D) derivatives.
Hardware Features:
• Non-intrusive single-chip emulation of processor core,
I/O, peripherals and EEPROM memory using dedicated
AVR™ emulator chip from Atmel
• Supports most AT90S derivatives plus ATtiny11/ATtiny12
derivatives (ATmega not supported)
Surface Mount Adaptor Kit
• Full support for devices featuring A/D converters
• Emulation pods for 8-pin, 20-pin, 28-pin and 40-pin DIL devices included as standard
• Wide target voltage range (+2.7V to +5.5V) with automatic voltage sensing
AVR™ ICE200
ATAVRSMD
120
8MHz
4.0-6.0V
118
8MHz
4.0-6.0V
32
NO
NO
YES
1
YES
2
2
NO
NO
YES
13
120
8MHz
4.0-6.0V
32
NO
NO
YES
1
YES
2
3
NO
8
YES
17
8K
512
512
YES
-
20S
690934 (C)
SOIC
Farnell Part Code
20S
111466 (C)
-
20P3
111454 (C)
-
8S2
111442 (C)
-
44A
TBA
-
32A
3617956 (I)
-
8P3
28P3
111430 (C) 3617944 (I)
-
128K
4
4
YES+BL+JTAG
-
-
-
64A
TBA
-
LVISP
LVISP
LVISP
LVISP
ICCAVR
133
16MHz
4.5-5.5V
-
LVISP
LVISP
LVISP
LVISP
ICCAVR
121
6MHz
4.0-6.0V
32I/O, 8O, 8I
53
NO
YES3
YES
YES
YES
YES
2 x (USART)
1
YES
YES
3+RTC
4+RTC
2
6 (16-BIT)
NO
YES
8
17
YES
YES
24
24+
128K
4K
4K
YES
ATmega103
44A
64A
3617968 (I) 3618031 (I)
120972 (C)
-
40P6
40P6
111491 (C) 120960 (C)
44J
44J
111508 (C) 120959 (C)
118
10MHz
4.0-6.0V
20
NO
NO
YES
1
YES
1
1
YES
6
YES
14
8K
512
512
YES
20P3
690752 (C)
-
118
10MHz
4.0-6.0V
89
12MHz
4.0-6.0V
5
YES1
NO
NO
YES
2
NO
NO
YES
3
AT90S4433
4K
256
128
YES
AT90S8515
LVISP+PAR LVISP+PAR
LVISP
LVISP
LVISP
LVISP
LVISP
LVISP
ZIF-ISP
YES
YES
ICCAVR
ICCAVR
15
NO
NO
NO
1
YES
2
1
YES
NO
YES
11
15
YES1
NO
NO
YES
1
YES
NO
YES
4
AT90S2343
2K
128
128
YES
AT90S8535
LVISP+PAR LVISP+PAR LVISP+PAR LVISP+PAR
LVISP
LVISP
LVISP
LVISP
LVISP
LVISP
LVISP
LVISP
LVISP
LVISP
LVISP
LVISP
PAR only
PAR only
YES
YES
YES
YES
ICCtiny
ICCAVR
ICCAVR
ICCAVR
2K
128
128
YES
AT90S2313
1K
64
0
YES
AT90S1200
TQFP
Farnell Part Code
ON-CHIP MEMORY
FLASH (Bytes)
EEPROM (Bytes)
SRAM (Bytes)
In-System Programmable (ISP)
HARDWARE FEATURES
I/O Pins
On-chip RC Oscillator
Real Time Clock (RTC)
SPI Port
Full Duplex Serial UART
Watchdog Timer
Timer/Counters
PWM Channels (10-bit)
Analogue Comparator
A/D Channel (10-bit)
IDLE and Power Down modes
Interrupts
MISCELLANEOUS
AVR™ Instructions
Max External Clock Frequency
Vcc Voltage Range (V)
EQUINOX SUPPORT TOOLS
STK500 C+
Epsilon 5
FS2000A
PRO101
Micro-Pro Device Programmer
AVR™ ICE200 Emulator
Imagecraft C Compiler
PACKAGE TYPES
PDIP
Farnell Part Code
PLCC
Farnell Part Code
NEW NEW
ATmega128
NEW NEW
Atmel AVR™ FLASH Microcontroller Family - Product Selection Guide
ATmega163
ATtiny11
PAR
HVISP
YES
ICCtiny
90
6MHz
4.0-5.5V
5xO + 1I
NO
NO
NO
YES
1
YES
NO
YES
4
1K
0
0
NO
9
N/A
4.0-5.5V
5xO + 1I
YES2
NO
NO
YES
2
1
YES
4
YES
8
1K
64
0
YES
LVISP+PAR LVISP+PAR
LV/HVISP
LV/HVISP
LVISP
LVISP
LVISP
LVISP
YES
YES
ICCtiny
ICCtiny
90
8MHz
4.0-5.5V
5xO + 1I
YES1
NO
NO
YES
1
YES
NO
YES
5
1K
64
0
YES
ATtiny12
-
44A
3618055 (I)
-
-
8S2
8S2
8S2
3617970 (I) 3617993 (I) 3618018 (I)
-
40P6
8P3
8P3
8P3
3618043 (I) 3617981 (I) 3618006 (I) 3618020 (I)
-
LVISP+PAR
LVISP
LVISP
LVISP
ICCAVR
130
8MHz
4.0-5.5V
32
YES1
YES
YES
1
YES
2
4
YES
8
YES
17
16K
512
1K
YES
ATtiny15
Static RAM
In-System Programmable
Boot Loader
JTAG ISP/Debug Port
Input/Output
Analogue to Digital Convertor
Serial Peripheral Interface
Pulse Width Modulation
Parallel programming mode
Reprogrammable Code Memory
Reprogrammable Data Memory
Nominal Frequency 1MHz
Nominal Frequency 1.6MHz
Nominal Frequency 1/2/4/8MHz
Low Voltage ISP
High Voltage ISP
Not Available
To Be Announced
AVR™ C Compiler - Full (302-2274)
ATtiny C Compiler (TBA)
Package Descriptions
8S2
- 8-Lead, 0.200” Wide, Plastic Gull-Wing Small
Outline Package (EIAJ SOIC)
32A
- 32-Lead, Thin (1.0mm) Plastic Gull-Wing Quad
Flat Package (TQFP)
8P3
- 8-Lead, 0.300” Wide, Plastic Dual Inline
Package (PDIP)
40P6
- 40-Lead, Thin (1.0mm) Plastic Dual Inline
Package (PDIP)
20S
- 20-Lead, 0.300” Wide, Plastic Gull-Wing Small
Outline (SOIC)
44A
- 44-Lead, Thin (1.0mm) Plastic Gull-Wing Quad
Flat Package (TQFP)
20P3
- 20-Lead, 0.300” Wide, Plastic Dual Inline
Package (PDIP)
44J
- 44-Lead, Plastic J-Ledded Chip Carrier (PLCC)
28P3
- 28-Lead, 0.300” Wide, Plastic Dual Inline
Package (PDIP)
64A
- 64-Lead, Thin (1.0mm) Plastic Gull-Wing Quad
Flat Package (TQFP)
Operating Temperature Ranges
(C)
- Commercial Operating Range (OºC to 70ºC)
(I)
- Industrial Operating Range (-40ºC to 85ºC)
Key
SRAM ISP
BL
JTAG
I/O
ADC
SPI
PWM PAR
FLASH EEPROM YES1
YES2
YES3
LVISP HVISP N/A
TBA
ICCAVR ICCtiny -
* Max speed depends on Vcc voltage. Frequencies and
Currents listed are for Vcc = 5.0V & T = 25ºC
Please verify correct part codes for low voltage parts
before ordering.
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement