beautypg.com

in-system-programming (isp), introduction, Preliminary – Rainbow Electronics T89C51CC02 User Manual

Page 35: In-system-programming (isp)

background image

Rev.A - May 17, 2001

35

Preliminary

T89C51CC02

10. In-System-Programming (ISP)

10.1. Introduction

With the implementation of the User ROM and the Boot ROM in Flash technology the T89C51CC02 allows the
system engineer the development of applications with a very high level of flexibility. This flexibility is based on
the possibility to alter the customer programming on all stages of a product’s life:

During the final production phase, the 1st personalization of the product by parallel or serial charging of
the code in the User ROM and if wanted also a customized Boot loader in the Boot memory (Atmel will
provide also a standard Boot loader by default).

After assembling of the product in its final, embedded position by serial mode via the CAN bus.

This In-System-Programming (ISP) allows code modification over the total lifetime of the product.

Besides the default Boot loader Atmel will provide to the customer also all the needed Application-Programming-
Interfaces (API) which are needed for the ISP. The API will be located also in the Boot memory.

This will allow the customer to have a full use of the 16 Kbyte user memory.

Two blocks flash memories are implemented (see Figure 19):

Flash memory FM0:
containing 16 Kbytes of program memory organized in page of 128 bytes,

Flash memory FM1:
2 Kbytes for default boot loader and Application Programming Interfaces (API).

The FM0 supports both, hardware (parallel) and software programming whereas FM1 supports only hardware
programming.

The ISP functions are assumed by:

FCON register & bit ENBOOT in AUXR1 register,

Software Boot Vector (SBV), which can be read and modified by using an API or the parallel programming
mode (see Figure 22)
The SBV is stored in XROW.

The Fuse bit Boot Loader Jump Bit (BLJB) can be read and modified using an API or the parallel programming
mode.
The BLJB is located in the Hardware security byte (see Figure 24).

The Extra Byte (EB) and Boot Status Byte (BSB) can be modified only by using API (see Figure 24).
EB is stored in XROW

The bit ENBOOT in AUXR1 register allows to map FM1 between address F800h and FFFFh of FM0.

The FM0 can be programed by:

- The Atmel boot loader, located by default in FM1.

- The user boot loader located in FM0

- The user boot loader located in FM1 in place of Atmel boot loader.

API contained in FM1 can be called by the user boot loader located in FM0 at the address [SBV]00h.

The user program simply calls the common entry point with appropriate parameters in FM1 to accomplish the
desired operation (all these methods will describe in Application Notes on api-description).

Boot Flash operations include: erase block, program byte or page, verify byte or page, program security lock bit,
etc. Indeed, Atmel provides the binary code of the default Flash boot loader.