Clock stop in functional mode with
wakeup request disabled (WUREQEN =0)
- When CLKCTL.STOPREQ bit is set
the clock stop request is asserted at DCAN core input.
- DCAN module completes any ongoing
communication and asserts clock stop ack signal at its output.
- The clock stop logic in the
DCANSS can use the clock stop ack signal to gate off both HCLK and CCLK to DCAN.
DCAN core sets CCCR.INIT bit to 1 while asserting clock stop ack signal.
- Clock stop ack signal when high
sets CLKSTA.STPACKSTA bit to 1.
- In this state, DCAN module is
fully clock gated and will not be able to receive any data from RXD pin when
SSCTL.WUREQEN bit is 0.
- Software has to clear
CLKCTL.STOPREQ bit when needed which will de-assert clock stop request upon
which both HCLK and CCLK are ungated to DCAN core.
- Then DCAN core de-asserts clock
stop ack signal which is used to clear CLKSTA.STPACKSTA bit.
- Software can clear CCCR.INIT to 0 when necessary and put the DCAN module back in
operation.
Clock stop in functional mode with
wakeup request enabled (WUREQEN = 1, AUTOWU = 0)
- When CLKCTL.STOPREQ is set by
software with SSCTL.WUREQEN = 1 and SSCTL.AUTOWU = 0 then the clock stop request
is asserted.
- DCAN sets CCCR.INIT = 1 once it
becomes idle and then provides clock stop ack signal for gating the HCLK and
CCLK.
- Clock stop ack signal when high
sets CLKSTA.STPACKSTA bit to 1.
- Now when there is any 1 to 0
transition detected on RXD pin (which is filtered if glitch filter is enabled)
while clocks are gated, DCAN asserts clock stop wake request to DCANSS.
- This signal when high clears
CLKCTL.STOPREQ bit and sets CLKSTA.STPREQHWOV bit. The purpose is to let
software know that stop request was cleared due to hardware override mechanism.
- When clock stop request is
de-asserted, HCLK and CCLK are ungated to DCANSS. CLKSTA.STPACKSTA bit is
cleared once clock stop ack signal is de-asserted from DCANSS.
- CLKSTA.STPREQHWOV bit will be
cleared by hardware when software sets CLKCTL.STOPREQ bit next time for module
low power state.
- Clock stop wake request can be
used to trigger an interrupt when CLKCTL.WUINTEN bit is set.
- Software can clear CCCR.INIT to 0
and put the DCAN module back in operation.
Clock stop in functional mode with
auto wakeup feature enabled (WUREQEN = 1, AUTOWU = 1)
The wakeup scenarios discussed here
are related to device active or idle modes only and not related to standby mode. In
active or idle modes the HCLK and CCLK are available at the input of DCAN and gated
off inside the module during sleep. When the wakeup condition is received, these
clocks are ungated to resume module operation.
In the case of standby scenario, we
need to take an interrupt from an IOC/GPIO based on Rx falling edge to wake up the
SoC from standby and then reenable clock source like AFOSC and then reconfigure the
DCAN registers before the module is put back in operation. This guideline is same as
how any other serial communication module is handled for standby exit scenario.
Note:
There is no retention of DCAN
registers so all register configuration data is lost upon standby entry. DCAN
registers have to be reinitialized after wake from standby before the module is
put back in operation.