Datasheet

18-20 MCF5407 User’s Manual
Bus Arbitration
Figure 18-23. Interrupt-Acknowledge Cycle Flowchart
18.8 Bus Arbitration
The MCF5407 bus protocol gives either the MCF5407 or an external device access to the
external bus. If more than one external device uses the bus, an external arbiter can prioritize
requests and determine which device is bus master. When the MCF5407 is bus master, it
uses the bus to fetch instructions and transfer data to and from external memory. When an
external device is bus master, the MCF5407 can monitor the external master’s transfers and
interact through its chip-select, DRAM control, and transfer termination signals. See
Section 10.4.1.3, “Chip-Select Control Registers (CSCR0–CSCR7),” and Chapter 11,
“Synchronous/Asynchronous DRAM Controller Module.
Two-wire bus arbitration is used where the MCF5407 shares the bus with a single external
device. This mode uses BG
and BD. The external device can ignore BR. Three-wire mode
is used where the MCF5407 shares the bus with multiple external devices. This requires an
external bus arbiter and uses BG
, BD, and BR. In either mode, the MCF5407 bus arbiter
operates synchronously and transitions between states on the rising edge of CLKIN.
Table 18-6 shows the four arbitration states the MCF5407 can be in during bus operation.
Table 18-6. MCF5407 Arbitration Protocol States
State Master Bus BD Description
Reset None Not
driven
Negated The MCF5407 enters reset state from any other state when RSTI
or
software watchdog reset is asserted. If both are negated, the MCF5407
enters implicit or external device mastership state, depending on BG
.
Implicit
master
MCF5407 Not
driven
Negated The MCF5407 is bus master (BG
input is asserted) but is not ready to
begin a bus cycle. It continues to three-state the bus until an internal bus
request.
SYSTEM
1. Decode address and select the appropriate slave
device.
2. Drive data on D[31:24]
3. Assert TA
for one CLKIN cycle
1. Read and store data (D[31:24])
2. Recognize the transfer is done
1. Negate TS
2. Drive TM[2:0] to indicate interrupt
acknowledge (TM[2:0] = interrupt level)
1. Drive 0x7FFFFF on A[31:5]
2. Drive 0x0 on A[1:0]
3. Drive interrupt level on A[4:2]
4. Drive R/W
to read (R/W = 1)
5. Drive SIZ[1:0] to indicate byte (SIZ[1:0] = 01)
6. Drive TT[1:0] and TM[2:0] to indicate interrupt
acknowledge (TT[1:0] = 11; TM[2:0] = interrupt
level)
7. Assert TS
for one CLKIN cycle
MCF5407