MC68HC16R1/916R1
USER’S MANUAL
MASKED ROM MODULE
MOTOROLA
7-1
SECTION 7
MASKED ROM MODULE
The masked ROM module (MRM) consists of a fixed-location control register block
and a 48-Kbyte mask-programmed read-only memory array that can be mapped to
any 48-Kbyte boundary in the system memory map. It is used only in the
MC68HC16R1.The MRM can be programmed to insert wait states to accommodate
migration from slow external development memory. Access time depends upon the
number of wait states specified, but can be as fast as two clock cycles. The MRM can
be used for program accesses only, or for program and data accesses. Data can be
read in bytes, words or long words. The MRM can be configured to support system
bootstrap during reset.
7.1 MRM Register Block
There are three MRM control registers: the masked ROM module configuration regis-
ter (MRMCR), and the ROM array base address registers (ROMBAH and ROMBAL).
In addition, the MRM register block contains signature registers (SIGHI and SIGLO),
and ROM bootstrap words (ROMBS[0:3]).
The module mapping bit (MM) in the SCIMCR defines the most significant bit
(ADDR23) of the IMB address for each MC68HC16R1/916R1 module. Because the
CPU16 drives only ADDR[19:0] and ADDR[23:20] follow the logic state of ADDR19,
MM must equal one.
5.2.1 Module Mapping
contains information about how the state
of MM affects the system.
The MRM control register block consists of 32 bytes, but not all locations are imple-
mented. Unimplemented register addresses are read as zeros, and writes have no ef-
fect. Refer to
D.4 Masked ROM Module
for register block address map and register
bit/field definitions.
7.2 MRM Array Address Mapping
Base address registers ROMBAH and ROMBAL are used to specify the ROM array
base address in the memory map. Although the base address contained in ROMBAH
and ROMBAL is mask-programmed, these registers can be written after reset to
change the default array address if the base address lock bit (LOCK in MRMCR) is not
masked to a value of one.
The MRM array can be mapped to any 48-Kbyte boundary in the memory map, but
must not overlap other module control registers (overlap makes the registers inacces-
sible). If the array overlaps the MRM register block, addresses in the block are access-
ed instead of the corresponding array addresses.
ROMBAH and ROMBAL can only be written while the ROM is in low-power stop mode
(MRMCR STOP = 1) and the base address lock (MRMCR LOCK = 0) is disabled.