Motorola M68CPU32BUG Manual de usuario Pagina 50

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 56
  • Tabla de contenidos
  • SOLUCIÓN DE PROBLEMAS
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 49
MOTOROLA MC68332TUT/D
50
B. Compare the base address register values to see if any overlap. In addition to checking the actual
values in the registers, check the block sizes and thus the number of address lines compared.
Since the MCU does not look at all 24 address lines when it compares for a match, two chip-select
circuits can respond to the same base address, even though the base address registers contain
different values.
In Table 8 the addresses for CS0 and CS10 conflict. Both will respond to the address $40000. CS0 is pro-
grammed to start at $50000; however, it is programmed incorrectly. It does not lie on an even boundary of
128 Kbytes (remember that 1 Kbyte = 1024 bytes). As shown in Table 9, only address lines 23 through 17
are compared for a block size of 128 Kbytes. The address decoding process works as follows.
CSBAR0: $0504 = base address of $50000 and block size of 128K.
For a 128 Kbyte block size, address lines 16 - 0 are decoded as zero. As a result, bits 19-16 are read as a
4 instead of a 5, and CS0
responds to the address space starting at location $40000. However, CS10 is
also programmed to respond to the address space starting at location $40000. It is acceptable for two chip-
select circuits to respond to the same address space; however, in this case, the option registers are pro-
grammed for a different number of wait states. As a result, the first termination signal seen will be from CS0
after 3 wait states on any read or write access, possibly before the external device is ready to respond, es-
pecially if it was meant to have CS10 terminate the cycle after 12 wait states.
To correct the problem, the values in CSBAR0 and/or CSBAR10 must be changed. If the value in CSBAR0
is changed to $0404, and the value in CSBAR10 is changed to a base address that does not overlap, such
as $0300, then $40000 is an acceptable base address for CS0, since it is an exact multiple of 128Kbytes.
That is:
1K = $400
128K = $20000
$40000/$20000 = 2 = an integer
Therefore, $40000 is on a 128 Kbyte boundary
Table 8 Sample Chip-select Values
CS CSBARx CSORx BLKSZ
CSBOOT $0003 $68B0 64K
CS0 $0504 $58FE 128K
CS1 $1002 $5830 16K
.
.
.
.
.
.
.
.
.
.
.
.
CS10 $0400 $4F3E 2K
Table 9 Block Size Encodings for Chip-selects
BLKSZ[2:0] Block Size Address Lines Compared
000 2 Kbyte ADDR[23:11]
001 8 Kbyte ADDR[23:13]
010 16 Kbyte ADDR[23:14]
011 64 Kbyte ADDR[23:16]
100 128 Kbyte ADDR[23:17]
101 256 Kbyte ADDR[23:18]
110 512 Kbyte ADDR[23:19]
111 1 Mbyte ADDR[23:20]
23 20 19 16 15 12 11 8 7 4 3 0
$5000 = 0000 0101 0000 0000 0000 0000
Vista de pagina 49
1 2 ... 45 46 47 48 49 50 51 52 53 54 55 56

Comentarios a estos manuales

Sin comentarios