Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микроконтроллер Motorola 68HC11.pdf
Скачиваний:
37
Добавлен:
26.05.2014
Размер:
985.62 Кб
Скачать

4.4 EEPROM

Some E-series devices contain 512 bytes of on-chip EEPROM. The MC68HC811E2 contains 2048 bytes of EEPROM with selectable base address.

4.4.1 EEPROM Programming

 

The erased state of an EEPROM bit is one. During a read operation, bit lines are pre-

 

charged to one. The floating gate devices of programmed bits conduct and pull the bit

 

lines to zero. Unprogrammed bits remain at the precharged level and are read as

 

ones. Programming a bit to one causes no change. Programming a bit to zero changes

 

the bit so that subsequent reads return zero.

 

When appropriate bits in the BPROT register are cleared, the PPROG register con-

 

trols programming and erasing the EEPROM. The PPROG register can be read or

 

written at any time, but logic enforces defined programming and erasing sequences to

 

prevent unintentional changes to EEPROM data. When the EELAT bit in the PPROG

4

register is cleared, the EEPROM can be read as if it were a ROM.

The on-chip charge pump that generates the EEPROM programming voltage from

VDD uses MOS capacitors, which are relatively small in value. The efficiency of this

charge pump and its drive capability are affected by the level of VDD and the frequency

of the driving clock. The load depends on the number of bits being programmed or erased and capacitances in the EEPROM array.

The clock source driving the charge pump is software selectable. When the clock select (CSEL) bit in the OPTION register is zero, the E clock is used; when CSEL is one, an on-chip resistor-capacitor (RC) oscillator is used.

The EEPROM programming voltage power supply voltage to the EEPROM array is not enabled until there has been a write to PPROG with EELAT set and PGM cleared. This must be followed by a write to a valid EEPROM location or to the CONFIG address, and then a write to PPROG with both the EELAT and EPGM bits set. Any attempt to set both EELAT and EPGM during the same write operation results in neither bit being set.

4.4.1.1 BPROT Register

This register prevents inadvertent writes to both the CONFIG register and EEPROM.

The active bits in this register are initialized to one out of reset and can only be cleared during the first 64 E-clock cycles after reset in the normal modes. When these bits are cleared, the associated EEPROM section and the CONFIG register can be programmed or erased. EEPROM is only visible if the EEON bit in the CONFIG register is set. The bits in the BPROT register can be written to one at any time to protect EEPROM and the CONFIG register. In test or bootstrap modes, write protection is inhibited and BPROT can be written repeatedly. Address ranges for protected areas of

EEPROM differ significantly for the MC68HC811E2. Refer to the following description.

MOTOROLA

OPERATING MODES AND ON-CHIP MEMORY

M68HC11 E SERIES

4-20

 

TECHNICAL DATA

BPROT — Block Protect

 

 

 

 

 

 

 

 

 

 

$1035

 

Bit 7

6

5

4

3

2

1

 

Bit 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PTCON

 

BPRT3

 

BPRT2

 

BPRT1

 

BPRT0

 

RESET:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

0

 

1

 

1

 

1

 

1

 

1

 

Bits [7:5] — Not implemented

Always read zero

PTCON — Protect CONFIG Register

0 = CONFIG register can be programmed or erased normally

1 = CONFIG register cannot be programmed or erased

BPRT[3:0] — Block Protect Bits for EEPROM

When set, these bits protect a block of EEPROM from being programmed or electron-

 

ically erased. Ultraviolet light, however, can erase the entire EEPROM contents re-

 

gardless of BPRT[3:0] (windowed packages only). Refer to Table 4-7 and Table 4-8.

4

When cleared, BPRT[3:0] allow programming and erasure of the associated block.

 

Table 4-7 EEPROM Block Protect

 

 

 

 

 

 

 

 

 

Bit Name

Block Protected

Block Size

 

 

 

 

 

 

 

 

 

BPRT0

$B600 – $B61F

32 Bytes

 

 

 

 

 

 

 

 

 

BPRT1

$B620 – $B65F

64 Bytes

 

 

 

 

 

 

 

 

 

BPRT2

$B660 – $B6DF

128 Bytes

 

 

 

 

 

 

 

 

 

BPRT3

$B6E0 – $B7FF

288 Bytes

 

 

 

 

 

 

 

 

Table 4-8 EEPROM Block Protect (MC68HC811E2)

 

 

 

 

 

 

 

Bit Name

Block Protected

Block Size

 

 

 

 

 

 

 

 

 

BPRT0

$x800 – $x9FF*

512 Bytes

 

 

 

 

 

 

 

 

 

BPRT1

$xA00 – $xBFF*

512 Bytes

 

 

 

 

 

 

 

 

 

BPRT2

$xC00 – $xDFF*

512 Bytes

 

 

 

 

 

 

 

 

 

BPRT3

$xE00 – $xFFF*

512 Bytes

 

 

 

 

 

 

 

 

*x is determined by the value of EE[3:0] in CONFIG. Refer to the CONFIG register description for MC68HC811E2.

4.4.1.2 PPROG Register

The PPROG register selects and controls the EEPROM programming function. Bits in PPROG enable the programming voltage, control the latching of data to be programmed, and select the method of erasure (byte, row, etc.).

PPROG — EPROM and EEPROM Programming Control

 

 

$103B

 

Bit 7

6

5

4

3

2

1

Bit 0

 

 

 

 

 

 

 

 

 

 

 

ODD

EVEN

ELAT1

BYTE

ROW

ERASE

EELAT

EPGM

 

RESET:

 

 

 

 

 

 

 

 

 

0

0

0

0

0

0

0

0

 

NOTES:

 

 

 

 

 

 

 

 

 

1. MC68HC711E9 only.

 

 

 

 

 

 

 

M68HC11 E SERIES

OPERATING MODES AND ON-CHIP MEMORY

 

MOTOROLA

TECHNICAL DATA

 

 

 

 

 

 

4-21

ODD — Program Odd Rows in Half of EEPROM (Test)

EVEN — Program Even Rows in Half of EEPROM (Test)

ELAT — EPROM/OTPROM Latch Control

For the MC68HC711E9, EPGM enables the high voltage necessary for both EPROM/

OTPROM and EEPROM programming. For MC68HC711E9, ELAT and EELAT are mutually exclusive and cannot both equal one.

0 = EPROM address and data bus configured for normal reads

1 = EPROM address and data bus configured for programming

Byte — Byte/Other EEPROM Erase Mode

This bit overrides the ROW bit. 0 = Row or bulk erase

1 = Erase only one byte

ROW — Row/All EEPROM Erase Mode

If BYTE is one, ROW has no meaning. 4 0 = Bulk erase

1 = Row erase

Table 4-9 EEPROM Erase

BYTE

ROW

Action

 

 

 

0

0

Bulk Erase (Entire array)

 

 

 

0

1

Row Erase (16 Bytes)

 

 

 

1

0

Byte Erase

 

 

 

1

1

Byte Erase

 

 

 

ERASE — Erase Mode Select

0 = Normal read or program mode

1 = Erase mode

EELAT — EEPROM Latch Control

0 = EEPROM address and data bus configured for normal reads and cannot be programmed

1 = EEPROM address and data bus configured for programming or erasing and cannot be read

EPGM — EPROM/OTPROM/EEPROM Programming Voltage Enable 0 = Programming voltage to EEPROM array switched off

1 = Programming voltage to EEPROM array switched on

During EEPROM programming, the ROW and BYTE bits of PPROG are not used. If the frequency of the E clock is 1 MHz or less, set the CSEL bit in the OPTION register.

Recall that zeros must be erased by a separate erase operation before programming. The following examples of how to program an EEPROM byte assume that the appropriate bits in BPROT are cleared.

MOTOROLA

OPERATING MODES AND ON-CHIP MEMORY

M68HC11 E SERIES

4-22

 

TECHNICAL DATA

PROG

LDAB

#$02

EELAT = 1

 

STAB

$103B

Set EELAT bit

 

STAA

$XXXX

Store data to EEPROM address (for valid EEPROM

 

 

 

address see memory map for each device)

 

LDAB

#$03

EELAT = 1, EPGM = 1

 

STAB

$103B

Turn on programming voltage

 

JSR

DLY10

Delay 10 ms

 

CLR

$103B

Turn off high voltage and set to READ mode

4.4.1.3 EEPROM Bulk Erase

The following is an example of how to bulk erase the entire EEPROM. The CONFIG register is not affected in this example.

BULKE

LDAB

#$06

EELAT = 1

 

STAB

$103B

Set EELAT bit

 

STAA

$XXXX

Store data to any EEPROM address (for valid EEPROM

 

 

 

address see memory map for each device)

 

LDAB

#$07

EELAT = 1, EPGM = 1

 

STAB

$103B

Turn on programming voltage

 

JSR

DLY10

Delay 10 ms

 

CLR

$103B

Turn off high voltage and set to READ mode

4.4.1.4 EEPROM Row Erase

 

4

The following example shows how to perform a fast erase of large sections of EE-

PROM.

 

 

 

 

ROWE

LDAB

#$0E

ROW = 1, ERASE = 1, EELAT = 1

 

 

STAB

$103B

Set to ROW erase mode

 

 

STAB

0,X

Write any data to any address in ROW

 

 

LDAB

#$0F

ROW = 1, ERASE = 1, EELAT = 1, EPGM = 1

 

 

STAB

$103B

Turn on high voltage

 

 

JSR

DLY10

Delay 10 ms

 

 

CLR

$103B

Turn off high voltage and set to READ mode

 

4.4.1.5 EEPROM Byte Erase

The following is an example of how to erase a single byte of EEPROM.

BYTEE

LDAB

#$16

BYTE = 1, ERASE = 1, EELAT = 1

 

STAB

$103B

Set to BYTE erase mode

 

STAB

0,X

Write any data to address to be erased

 

LDAB

#$17

BYTE = 1, ERASE = 1, EELAT = 1, EPGM = 1

 

STAB

$103B

Turn on high voltage

 

JSR

DLY10

Delay 10 ms

 

CLR

$103B

Turn off high voltage and set to READ mode

4.4.1.6 CONFIG Register Programming

Because the CONFIG register is implemented with EEPROM cells, use EEPROM procedures to erase and program this register. The procedure for programming is the same as for programming a byte in the EEPROM array, except that the CONFIG register address is used. CONFIG can be programmed or erased (including byte erase) while the MCU is operating in any mode, provided that PTCON in BPROT is clear. To change the value in the CONFIG register, complete the following procedure. Do not initiate a reset until the procedure is complete.

M68HC11 E SERIES

OPERATING MODES AND ON-CHIP MEMORY

MOTOROLA

TECHNICAL DATA

 

4-23

Соседние файлы в предмете Радиоприемные устройства