Data Sheet
June 2001
DSP16410B Digital Signal Processor
176
Agere Systems—Proprietary
Use pursuant to Company instructions
Agere Systems Inc.
4 Hardware Architecture
(continued)
4.16 Serial Interface Unit (SIU)
(continued)
4.16.13 Channel Mode—Up to 128 Channels in a
Maximum of Eight Subframes
(continued)
For example, the following steps are performed by soft-
ware running in CORE0 to use SIU0 to process input
channels 2, 3, 18, 20, 36, 55, 78, 100, and 111 as part
of a 128-channel input frame. It is assumed that the
DMAU SWT0 and SWT1 channels are used to transfer
the input data to memory.
1. Initialize the SWT0 and SWT1 channels (see
Section 4.13.5 on page 86
).
2. Configure the channel size (4, 8, 12 or 16 bits) by
writing the ISIZE[1:0] field (
SCON0
[4:3]—
Table 101
on page 182
). Select LSB-first or MSB-first by pro-
gramming the IMSB field (
SCON0
[2]). Configure the
data format by programming the IFORMAT[1:0] field
(
SCON0
[1:0]).
3. Configure SIU0 for a 128-channel input frame struc-
ture by programming the IFLIM[6:0] field
(
SCON1
[6:0]—
Table 102 on page 183
) to 127.
Enable channel mode with two active subframes by
clearing the IFRAME field (
SCON1
[7]) and setting
the ISFIDV_E and ISFIDV_O fields
(
SCON3
[2,5]—
Table 104 on page 185
). Program
input interrupts to occur at every subframe boundary
by programming the IINTSEL[1:0] field
(
SCON10
[12:11]—
Table 111 on page 188
) to 0x1.
4. Program SIU0 with the active channels for the first
even (channels 2 and 3) and odd (18 and 20)
subframes. This is accomplished by writing the first
subframe IDs (0 and 1) to the ISFID_E[1:0] and
ISFID_O[1:0] fields (
SCON3
—see
Table 104 on
page 185
) and enabling the channels within these
subframes via the ISFVEC_E[15:0] field
(
SCON4
—see
Table 105 on page 186
) and
ISFVEC_O[15:0] field (
SCON5
—see
Table 106 on
page 186
). In summary, ISFID_E[1:0] = 0,
ISFID_O[1:0] = 0, ISVEC_E[15:0] = 0xC, and
ISVEC_O[15:0] = 0x14.
5. Program the input channel index registers to assign
each channel to either SWT0 or SWT1. The SWT
channel chosen determines the destination of the
data. In this example, channels 2 and 18 are
assigned to SWT0, and channels 3 and 20 are
assigned to SWT1. Therefore,
ICIX0
= 0x8 and
ICIX1
= 0x10.
6. Enable the SIINT interrupt (see
Section 4.4.6 on
page 31
) and the SWT0 and SWT1 channels of the
DMAU by setting the DRUN[1:0] fields
(
DMCON0
[5:4]—
Table 31 on page 70
). Create a
software-managed subframe counter and initialize
the counter to zero. Clear the IRESET field
(
SCON1
[10]—see
Table 102 on page 183
) to begin
input data processing by SIU0. CORE0 can con-
tinue to process the user’s application.
7. When the SIINT interrupt occurs, CORE0’s ISR
immediately reads the software-managed subframe
counter to determine the current subframe in
progress and increments the counter by one. The
ISR then reprograms the SIU to process the next
even subframe. In this example, the next even sub-
frame is 2, so ISFID_E[1:0] is programmed to 0x1.
The active channel for this subframe is 36, so
ISVEC_E[15:0] is written with 0x10.
ICIX0
also must
be reprogrammed to assign channel 36 to either
SWT0 or SWT1. If SWT1 is selected, then
ICIX0
= 0x10. This active channel setting takes
place at the next subframe boundary. This ISR is
now complete and CORE0 returns to the previous
activity.
8. When the next SIINT interrupt occurs, CORE0’s ISR
again reads the subframe counter to determine the
current subframe in progress. If the counter value is
7, it is reset to zero; otherwise, the value is incre-
mented by one. The ISR then reprograms SIU0 to
process the next odd subframe. In this example, the
next odd subframe is 3, so ISFID_O[1:0] is pro-
grammed to 0x1. The desired active channel for this
subframe is 55, so ISVEC_O[15:0] is written with
0x80.
ICIX1
must also be reprogrammed to assign
channel 55 to either SWT0 or SWT1. If SWT1 is
selected, then
ICIX1
= 0x80. This active channel
setting takes place at the next subframe boundary.
This ISR is now complete, and CORE0 returns to the
previous activity.
9. Steps 7 and 8 are repeated indefinitely, processing
all eight subframes and then beginning again with
subframe 0 of the next frame.