Preliminary Data Sheet
February 1997
DSP1628 Digital Signal Processor
Lucent Technologies Inc.
43
4 Hardware Architecture
(continued)
Software Stop.
In this case, all internal clocking is disabled. INT0, INT1, or RSTB may be used to reenable the
clocks. The power management must be done in correct sequence.
powerc
= 0x4000
2*nop
powerc
= 0xD000
inc
= NOINT0
sopor:
powerc
= 0xF000
/* SLOWCKI asserted */
/* Wait for it to take effect */
/* XTLOFF asserted if applicable and INT0EN asserted */
/* Disable the INT0 interrupt */
/* NOCK asserted, all clocks stop */
/* Minimum switching power consumed here */
/* Some nops will be needed */
/* INT0 pin clears the NOCK field, clocking resumes */
/* INT0EN cleared and XTLOFF cleared, if applicable*/
/* Wait for the small-signal to */
/* stabilize, if applicable*/
/* Clear SLOWCKI field, back to high speed */
/* Wait for it to take effect */
/* Clear the INT0 status bit */
3*nop
cont:
powerc
= 0x4000
call waitxtl
powerc
= 0x0
2*nop
ins
= 0x0010
In this case also, the wake-up latency is dominated by the small-signal start-up period.
The previous examples do not provide an exhaustive list of options available to the user. Many different clocking
possibilities exist for which the target device may be programmed, depending on:
I
The clock source to the processor.
Whether the user chooses to power down the peripheral units.
The operational state of the small-signal clock input, powered or unpowered.
Whether the internal processor clock is disabled through hardware or software.
The combination of power management modes the user chooses.
Whether or not the PLL is enabled.
I
I
I
I
I
An example subroutine for xtlwait follows:
xtlwait:
timer0 = 0x2710
timerc = 0x0010
inc = 0x0000
loop1:
a0 = ins
a0 = a0 & 0x0100
if eq goto loop1
ins = 0x0100
return
/* Load a count of 10,000 into the timer
/* Start the timer with a PRESCALE of two */
/* Disable the interrupts
/* Poll the ins register
/* Check bit 8 (TIME) of the ins register */
/* Loop if the bit is not set
/* Clear the TIME interrupt bit
/* Return to the main program
*/
*/
*/
*/
*/
*/