View detail for Programming T89C51xx and AT89C51xx with Device Programmers

Programming T89C51xx and AT89C51xx with
Device Programmers
Overview
Most of the new T89C51xx and AT89C51xx from Atmel have one, two, or three memory areas and configuration bytes while device programmers usually provide a single
programming buffer.
This application note explains how to program Atmel T89C51xx and AT89C51xx
microcontrollers with device programmers that use this type of single buffer.
C51 Flash
Microcontrollers
Application
Note
Abbreviations
•
T89C51xx : T89C51RD2, T89C51RB2/RC2, T89C51IC2, T89C51CC01,
T89C51CC02, T89C51AC2, T89C5115.
•
AT89C51xx : AT89C5130A, AT89C5131A, AT89C5131, AT89C5132,
AT89C51RB2/RC2, AT89C51IC2, AT89C51RD2, AT89C51ED2,
AT89C51SND1C, AT89C51SND2C and AT89C51CC03.
•
ISP: In System Programming
•
Bootloader: Atmel dedicated program located on chip to do In System
Programming.
•
XAF: EXtra Row Area: where dedicated bytes for ISP are located
•
HSB: Hardware Security byte
•
BSB: Boot Status Byte (XAF configuration byte used for starting ISP mode)
•
SBV: Software Boot Vector: Bootloader starting address (an XAF configuration
byte)
•
SSB: Software Security Byte: Security information for ISP (an XAF configuration
byte)
•
EB: Extra Byte (an XAF configuration byte for general purpose use)
References
•
8051 products : T89C51RD2, T89C51RB2/RC2, T89C51IC2, T89C51AC2,
AT89C51AC3, T89C5115, AT89C51RB2/RC2, AT89C51IC2, AT89C51RD2,
AT89C51ED2 datasheets
•
CAN Products : AT89C51CC03, T89C51CC01, T89C51CC02 datasheets
•
MP3 Product : AT89C51SND1C, AT89C51SND2C datasheets
•
USB Products : AT89C5130A, AT89C5131A, AT89C5131, AT89C5132
datasheets
•
UART T89C51RD2, T89C51RB2/RC2,,T89C51IC2, T89C51CC01,
T89C51CC02, T89C51AC2, AT89C51SND1C, AT89C51SND2C, T89C5115,
AT89C5130A, AT89C5131A, AT89C5131, AT89C5132, AT89C51RB2/RC2,
AT89C51IC2, AT89C51RD2, AT89C51ED2 bootloader datasheets
Rev. 4218D–8051–06/05
(A)T89C51xx Security
Levels
•
CAN T89C51CC01, T89C51CC02, AT89C51CC03 bootloader datasheets
•
USB AT89C51SND1, AT89C5130A, AT89C5131A, AT89C5131, AT89C5132
bootloader datasheets
Ready to be programmed using In-System Programming, Atmel (A)T89C51xx microcontrollers are distributed with the highest level of security that can be secured from any
parallel reading access.
To program an Atmel (A)T89C51xx with a device programmer, a full chip erase operation must be achieved to remove all security levels.
For devices with bootloader program in Flash memory (T89C51RD2, T89C51CC01,
T89C51CC02, AT89C51CC03, T89C51AC2, AT89C51AC3, AT89C51SND1C,
AT89C51SND2C, T89C5115, AT89C5130A, AT89C5131A, AT89C5131, AT89C5132),
this operation will remove the bootloader program and set configuration bytes to
default values.
For devices with bootloader program in ROM memory (T89C51RB2/RC2, T89C51IC2,
AT89C51RB2/RC2, AT89C51IC2, AT89C51RD2, AT89C51ED2), only configuration
bytes will be set to default values when full chip erase will be performed.
(A)T89C51xx Memory Mapping
T89C51RD2
T89C51RD2 has the following memory areas:
•
User memory area 64 KB size where the upper 1 KB is used for bootloader
program.
•
A hardware security byte for configuration information and security levels.
•
XAF area for ISP:
–
Boot Status Byte (BSB)
–
Software Boot Vector (SBV)
–
Software Security Byte (SSB)
Note:
Refer to T89C51RD2 datasheet and bootloader datasheet for HSB and XAF description.
2
4218D–8051–06/05
Figure 1. T89C51RD2 Memory Mapping
HSB
(1 byte)
FFFFh
FC00h
XAF (few bytes)
Bootloader
(Flash)
User
Application
1 KB Flash
63 KB User Flash
0000h
3
4218D–8051–06/05
T89C51RC2/T89C51RB2/ These products have the following memory areas:
T89C51IC2/AT89C51RB2/ • User memory area 16 - 32 KB size
AT89C51RC2
• ROM bootloader memory 2 KB size
•
Hardware security byte for configuration information and security levels.
•
XAF area for ISP:
–
Boot Status Byte (BSB)
–
Software Boot Vector (SBV)
–
Software Security Byte (SSB)
Notes:
1. Refer to (A)T89C51RC2/RB2 or (A)T89C51IC2 datasheets and bootloader
datasheets for HSB and XAF description
2. As bootloader is in ROM memory, no erase or write action is possible on this area.
Figure 2. (A)T89C51RC2/RB2/IC2 Memory Mapping
HSB
(1 byte)
XAF (few bytes)
FFFFh
Bootloader
F800h
2 KB ROM
(Rom)
7FFFh
3FFFh
User
Application
16/32 KB User Flash
0000h
4
4218D–8051–06/05
AT89C51RD2/
AT89C51ED2
These products have the following memory areas:
•
User memory area 64 KB size
•
ROM bootloader memory 2 KB size
•
Data memory 2 KB size.
•
Hardware security byte for configuration information and security levels.
•
XAF area for ISP:
–
Boot Status Byte (BSB),
–
Software Boot Vector (SBV)
–
Notes:
Software Security Byte (SSB)
1. Refer to AT89C51RD2/ED2 datasheets and bootloader datasheets for HSB and XAF
description
2. As bootloader is in ROM memory, no erase or write action is possible on this area.
Figure 3. AT89C51RD2, AT89C51ED2 Memory Mapping
HSB
(1 byte)
XAF (few bytes)
FFFFh
FFFFh
Bootloader
F800h
F7FFh
User
Application
64 KB User Flash
F000h
2 KB ROM
(Rom)
EEPROM
Data
2 KB EEPROM
0000h
5
4218D–8051–06/05
T89C51CC01/
T89C51CC02/T89C51AC2
/T89C5115/AT89C51CC03
/AT89C51AC3
T89C51CC01/T89C51CC02/T89C51AC2/T89C5115 have the following memory areas:
•
User memory area 16-32-64 KB size
•
Bootloader memory 2 KB size
•
EEPROM data memory 2 KB size
•
A hardware security byte for configuration information and security levels.
•
XAF area for ISP:
–
Boot Status Byte (BSB)
–
Software Boot Vector (SBV)
–
Software Security Byte (SSB)
–
Extra Byte (EB)
–
Additional ISP bytes (Pn_F) (for T89C51CC02 and T89C5115 only)
Note:
Refer to AT89C51CC03, T89C51CC01, T89C51CC02, T89C51AC2 or T89C5115
datasheets and bootloader datasheets for HSB and XAF description
Figure 4. T89C51AC2/CC01/CC02/15 and AT89C51CC03 Memory Mapping
HSB
(1 byte)
FFFFh
XAF (few bytes)
FFFFh
Bootloader
F800h
F7FFh
F000h
3/7FFFh
User
Application
2 KB Flash
(Flash)
EEPROM
Data
2 KB EEPROM
16/32/64 KB User Flash
0000h
6
4218D–8051–06/05
AT89C51SND1C/
AT89C51SND2C/
AT89C5132
AT89C51SND1 and AT89C5132 have the following memory areas:
•
User memory area 64 KB size
•
Bootloader memory 4 KB size
•
Hardware security byte for configuration information and security levels.
•
XAF area for ISP:
–
Software Boot Vector (SBV)
–
Software Security Byte (SSB)
Note:
Refer to (A)T89C51SND1 and AT89C5132 datasheets and bootloader datasheets for
HSB and XAF description
Figure 5. AT89C51SND1 and AT89C5132 Memory Mapping
HSB
(1 byte)
XAF (few bytes)
FFFFh
FFFFh
Bootloader
4 KB Flash
(Flash)
User
Application
64 KB
User Flash
F000h
0000h
7
4218D–8051–06/05
AT89C5130A/
AT89C5131A/
AT89C5131/
AT89C5130A, AT89C5131A, AT89C5131 have the following memory areas:
•
User memory area 16/32 KB size
•
Bootloader memory 3 KB size
•
EEPROM data memory 1 KB size
•
Hardware security byte for configuration information and security levels.
•
XAF area for ISP:
–
Software Boot Vector (SBV)
–
Software Security Byte (SSB)
Note:
Refer to AT89C5131 datasheet and bootloader datasheets for HSB and XAF description
Figure 6. AT89C5130/AT89C5131 Memory Mapping
HSB
(1 byte)
XAF (few bytes)
FFFFh
Bootloader
F400h
F3FFh
F000h
3/7FFFh
User
Application
3 KB Flash
(Flash)
EEPROM
Data
1 KB EEPROM
16/32 KB User Flash
0000h
8
4218D–8051–06/05
Bootloader Programs
Bootloader programs are provided by Atmel. They are dedicated to a (A)T89C51xx,
however they can differ for the same product depending on the communication interface
for ISP.
•
T89C51RD2: RS232 communication protocol
•
(A)T89C51RC2/RB2/IC2: RS232 communication protocol
•
AT89C51RD2/ED2: RS232 communication protocol
•
T89C51CC01/CC02 and AT89C51CC03 : RS232 or CAN communication protocol
•
T89C51AC2 and AT89C51AC3: RS232 communication protocol
•
T89C5115: RS232 communication protocol
•
AT89C51SND1C, AT89C51SND2C: USB communication protocol
•
AT89C5130A, AT89C5131A, AT89C5131: USB communication protocol
•
AT89C5132: USB communication protocol
Start address of bootloader program will be the upper address of the 64K address space
when taking in account its size.
1 KB size: Start address: FC00h
2 KB size: Start address: F800h
4 KB size: Start address: F000h
etc.
The last updated release of bootloader program for each device is available on Atmel
website : www.atmel.com.
9
4218D–8051–06/05
Device Programmers
State of the Art
Due to historical reasons, most device programmers use a single buffer memory to load
a file to program into the device.
Some have moved to separate buffers to adapt to these new (A)T89C51xx.
The usage of a single buffer to program or to read an Atmel (A)T89C51xx has major
drawbacks:
•
Since user memory and bootloader memory share the same address space, the
bootloader program must be placed at a different address than the regular
bootloader address.
A copy of the bootloader from the regular start address has to be placed in the proper
bootloader start address in the buffer.
•
When read, all areas are read.
•
When program, all areas are programmed even if the user does not want to modify
the bootloader program.
•
When erase, all areas are erased, Bootloader must be reprogrammed for ISP
purposes. Users have to download the bootloader program from Atmel website.
Even using a single buffer, some device programmers ask for the dedicated memory
area which the user wants to access. In any case, whatever the buffer type and access
to these memory areas, users have to be careful when using a device programmer to
program Atmel (A)T89C51xx.
10
4218D–8051–06/05
Programming Procedure
The procedure to program in the Atmel (A)T89C51xx for a dedicated user code and the
bootloader program is the following:
1. First download from the Atmel website (www.atmel.com), the latest software
release of bootloader program for the dedicated Atmel (A)T89C51xx.
2. On the device programmer, select the microcontroller to program.
3. Check on device programmer, the location of the different memory areas: User
memory, Bootloader memory, EEPROM data memory and Extra Row Area
(XAF).
4. Load the bootloader program in INTEL hex file format. This file will be placed in
the buffer area at the start address of bootloader program (e.g: FC00h, F800h,
F000h,...).
5. Move this buffer area from the start address to the regular address given by the
programmer device.
6. Load the user program ensuring that the previous buffer is not cleared by a
default value such as FFh or 00h.
7. The whole code: user application code + Bootloader program is now ready to be
programmed. Select the program operation.
8. Remember to program XAF configuration bytes according to the configuration
setup. This can be done either automatically or separately.
9. Program HSB: Hardware configuration information and product security levels.
CAUTION: To prevent the user code from parallel or ISP access, the user has to lock
the device on the two following steps:
•
The lock bits in HSB for parallel access
•
The lock bits in SSB for ISP access
Programming EEPROM data memory will meet the same considerations as user or
bootloader memory areas. This will prevent a the same non-correct programming place
or non-desired memory erased.
11
4218D–8051–06/05
Example
Purpose: Program a user code in a Atmel T89C51xx and the last bootloader program.
Prepare the programming buffer properly before program operations.
A bootloader program which will start at F000h to FFFFh should be located above the
64 KB in the buffer area at 10000h.
Sequence:
1. Load the bootloader program, check that the program starts at F000h.
2. Move or copy the buffer area between F000h and FFFFh to the destination
address: 10000h.
3. Fill memory area from F000h to FFFFh with default value FFh.
4. Load the user program and be careful not to prefill buffer with a specific value.
10FFFh
10000h
FFFFh
Bootloader program
2
1
Bootloader program
copied to the appropriate address
for device programmer
downloaded into the buffer
from file
F000h
user program
loaded from file can
3
4
Fill buffer from address 0000h
to FFFFh with default value FFh
override F000h to FFFFh
area
0000h
Device programmer
Buffer
12
4218D–8051–06/05
Atmel Corporation
2325 Orchard Parkway
San Jose, CA 95131, USA
Tel: 1(408) 441-0311
Fax: 1(408) 487-2600
Regional Headquarters
Europe
Atmel Sarl
Route des Arsenaux 41
Case Postale 80
CH-1705 Fribourg
Switzerland
Tel: (41) 26-426-5555
Fax: (41) 26-426-5500
Asia
Room 1219
Chinachem Golden Plaza
77 Mody Road Tsimshatsui
East Kowloon
Hong Kong
Tel: (852) 2721-9778
Fax: (852) 2722-1369
Japan
9F, Tonetsu Shinkawa Bldg.
1-24-8 Shinkawa
Chuo-ku, Tokyo 104-0033
Japan
Tel: (81) 3-3523-3551
Fax: (81) 3-3523-7581
Atmel Operations
Memory
2325 Orchard Parkway
San Jose, CA 95131, USA
Tel: 1(408) 441-0311
Fax: 1(408) 436-4314
Microcontrollers
2325 Orchard Parkway
San Jose, CA 95131, USA
Tel: 1(408) 441-0311
Fax: 1(408) 436-4314
La Chantrerie
BP 70602
44306 Nantes Cedex 3, France
Tel: (33) 2-40-18-18-18
Fax: (33) 2-40-18-19-60
ASIC/ASSP/Smart Cards
Zone Industrielle
13106 Rousset Cedex, France
Tel: (33) 4-42-53-60-00
Fax: (33) 4-42-53-60-01
RF/Automotive
Theresienstrasse 2
Postfach 3535
74025 Heilbronn, Germany
Tel: (49) 71-31-67-0
Fax: (49) 71-31-67-2340
1150 East Cheyenne Mtn. Blvd.
Colorado Springs, CO 80906, USA
Tel: 1(719) 576-3300
Fax: 1(719) 540-1759
Biometrics/Imaging/Hi-Rel MPU/
High Speed Converters/RF Datacom
Avenue de Rochepleine
BP 123
38521 Saint-Egreve Cedex, France
Tel: (33) 4-76-58-30-00
Fax: (33) 4-76-58-34-80
1150 East Cheyenne Mtn. Blvd.
Colorado Springs, CO 80906, USA
Tel: 1(719) 576-3300
Fax: 1(719) 540-1759
Scottish Enterprise Technology Park
Maxwell Building
East Kilbride G75 0QR, Scotland
Tel: (44) 1355-803-000
Fax: (44) 1355-242-743
Literature Requests
www.atmel.com/literature
Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any
intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN ATMEL’S TERMS AND CONDITIONS OF SALE LOCATED ON ATMEL’S WEB SITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY
WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT
OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no
representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications
and product descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Atmel’s products are not
intended, authorized, or warranted for use as components in applications intended to support or sustain life.
© Atmel Corporation 2005. All rights reserved. Atmel®, logo and combinations thereof, are registered trademarks, and Everywhere You Are ®
are the trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others.
Printed on recycled paper.
4218D–8051–06/05