Page 20
Epson Research and Development
Vancouver Design Center
S1D13504
Interfacing to the Motorola MPC821 Microprocessor
X19A-G-010-06
Issue Date: 01/10/26
4.6 Test Software
The test software used to exercise this interface is very simple. It carries out the following
functions:
1. Configures chip select 4 on the MPC821 to map the S1D13504 to an unused 4M byte
block of address space.
2. Loads the appropriate values into the option register for CS4.
3. Enables the S1D13504 host bus interface by writing the value 0 to REG[1Bh].
At that point the software runs in a tight loop which reads the S1D13504 Revision Code
Register REG[00h]. This allows monitoring of the bus timing on a logic analyzer.
This source code for the following test routine was entered into the memory of the
MPC821ADS using the line-by-line assembler in MPC8BUG (the debugger provided with
the ADS board). It was run on the ADS and a logic analyzer was used to verify operation
of the interface hardware.
4.6.1 Source Code
BR4
equ
$120
; CS4 base register
OR4
equ
$124
; CS4 option register
MemStart
equ
$40
; upper word of S1D13504 start address
DisableReg
equ
$1b
; address of S1D13504 Disable Register
RevCodeReg
equ
0
; address of Revision Code Register
Start
mfspr
r1,IMMR
; get base address of internal registers
andis.
r1,r1,$ffff
; clear lower 16 bits to 0
andis.
r2,r0,0
; clear r2
oris
r2,r2,MemStart
; write base address
ori
r2,r2,$0801
; port size 16 bits; select GPCM; enable
stw
r2,BR4(r1)
; write value to base register
andis.
r2,r0,0
; clear r2
oris
r2,r2,$ffc0
; address mask – use upper 10 bits
ori
r2,r2,$0708
; normal CS negation; delay CS ½ clock;
; inhibit burst
stw
r2,OR4(r1)
; write to option register
andis.
r1,r0,0
; clear r1
oris
r1,r1,MemStart
; point r1 to start of S1D13504 mem space
stb
r1,DisableReg(r1) ; write 0 to disable register
Loop
lbz
r0,RevCodeReg(r1) ; read revision code into r1
b
Loop
; branch forever
end