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