The DCAN module implements debug
suspend feature. The module operation will suspend when the CPU is halted for
debug with SSCTL.DBGSF = 0.
When CPU halt signal is asserted
to DCAN and if SSCTL.DBGSF bit is set to 0, the clock stop request is asserted
to DCANSS.
DCAN completes pending operations
and sets CCCR.INIT = 1 once the CAN bus becomes idle and subsequently asserts
clock stop ack signal.
This clock stop ack status is
captured in the CCCR.CSA bit but it is not captured in the CLKSTA.STPACKSTA bit
within the DCANSS.
The clock stop ack status in the
DCANSS status register is masked based on the clock stop request bit in the
CLKCTL register.
Both HCLK and CCLK continue to run and they are not gated under this condition.
This allows debugger accesses to message RAM and CAN registers when the module
is stopped.
When the CPU comes out of debug
halt, the clock stop request is de-asserted to DCAN core. CAN core de-asserts
clock stop ack signal once the clock stop request is de-asserted.
At this stage, if SSCTL.AUTOWU =
1 then the read-modify-write mechanism in the DCANSS will automatically make
CCCR.INIT = 0 and re-enables DCAN operation.
If SSCTL.AUTOWU = 0 when clock
stop ack signal is de-asserted due to CPU coming out of debug halt, then DCAN
operation should be re-enabled by software by clearing the CCCR.INIT bit.
If there is any activity on RXD
pin while DCAN is stopped due to CPU debug halt and if the SSCTL.WUREQEN = 1
then clock stop wake signal will be asserted by DCAN core.
But this will not take any effect on clock stop request as that is controlled
based on debug halt. Clock stop request is de-asserted only when CPU comes out
of debug halt.
Clock stop wake interrupt will
not be generated even if CLKCTL.WUINTEN = 1 in this scenario as clock stop wake
output from Bosch CAN controller is masked based on the clock stop request bit
in the CLKCTL register.
When CPU halt signal is asserted
to DCAN and if SSCTL.DBGSF bit is set to 1, the clock stop request is not
asserted and DCAN continues to remain in operational state. The reset value of
SSCTL.DBGSF bit is 1 which keeps DCAN operational when CPU halt is asserted.
During suspend mode the auto-clear feature is disabled. The following register
fields have an auto-clear feature: