SDL DCC Example

Introduction

This example demonstrates how to configure the DCC and use it to monitor clocks in the two supported modes (continuous and single-shot modes). It also demonstrates how to receive errors generated by DCC in the MCU and Main domain.

This example displays:

* Initializing the ESM to detect the DCC error event(s)
* Registration of application callback for notification of ESM error events for the MCU ESM instance
* Configuration of one MCU DCC instance to monitor a single clock in continuous mode
* Forcing of an error to create a DCC error event

The following methods can be used as a trigger for the DCC error event:

* Change ratio criterion for stable clocks
* Use Sciclient API to change clock dividers (with ratio criterion stable) to speed up clock
* Use Sciclient API to change clock dividers (with ratio criterion stable) to slow down clock
* Turn off power for the monitored input clock

Use Cases

Use Case

Reference Clock

Description

UC-1

HFOSC0

Configuration of MCU DCC instance in continuous mode and error event is forced

UC-2

HFOSC0

Configuration of MCU DCC instance in single-shot mode and completion with no errors

UC-3

HFOSC0

Configuration of MCU DCC instance in continuous mode and completion with no errors

UC-4

RC OSC

Configuration of MCU DCC instance in single-shot mode and completion with no errors

UC-5

RC OSC

Configuration of DCC instance in continuous mode and error event is forced

UC-6

RC OSC

Configuration of DCC instance in continuous mode and error event is forced

UC-7

HFOSC0

Configuration of DCC instance in continuous mode and error event is forced

UC-8

RC OSC

Configuration of DCC instance in continuous mode and completion with no errors

UC-9

HFOSC0

Configuration of DCC instance in single-shot mode and completion with no errors

UC-10

FICLK

Configuration of DCC instance in single-shot mode and completion with no errors

Supported Combinations

Parameter      | Value
---------------|-----------
CPU + OS       | mcu-r5fss0-0 nortos
Toolchain      | ti-arm-clang
Board          | {{ VAR_BOARD_NAME_LOWER }}
Example folder | examples/sdl/dcc/dcc_app/

Steps to Run the Example

See Also

DCC

Sample Output

Shown below is a sample output when the application is run,

 DCC Example Test Application

DCC_Test_init: Init WKUP ESM complete


USECASE: 0
Source clock: HFOSC0
Test clock: SYSCLK0

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: Enabling DCC and waiting for Error interrupt
SDL DCC EXAMPLE TEST: DCC Generated Error interrupt
SDL DCC EXAMPLE TEST: Indicating clock drift/change
UC-0 Completed Successfully

USECASE: 1
Source clock: HFOSC0
Test clock: SYSCLK0

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: DCC Generated completion interrupt
SDL DCC EXAMPLE TEST: No Clock Drift was observed
UC-1 Completed Successfully

USECASE: 2
Source clock: HFOSC0
Test clock: SYSCLK0

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: Enabling DCC and running for some time
UC-2 Completed Successfully

USECASE: 3
Source clock: RC OSC
Test clock: SYSCLK0

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: DCC Generated completion interrupt
SDL DCC EXAMPLE TEST: No Clock Drift was observed
UC-3 Completed Successfully

USECASE: 4
Source clock: RC OSC
Test clock: SYSCLK0

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: Enabling DCC and waiting for Error interrupt
SDL DCC EXAMPLE TEST: DCC Generated Error interrupt
SDL DCC EXAMPLE TEST: Indicating clock drift/change
UC-4 Completed Successfully

USECASE: 5
Source clock: RC OSC
Test clock: SYSCLK0

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: Enabling DCC and waiting for Error interrupt
SDL DCC EXAMPLE TEST: DCC Generated Error interrupt
SDL DCC EXAMPLE TEST: Indicating clock drift/change
UC-5 Completed Successfully

USECASE: 6
Source clock: RC OSC
Test clock: SYSCLK0

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: Enabling DCC and waiting for Error interrupt
SDL DCC EXAMPLE TEST: DCC Generated Error interrupt
SDL DCC EXAMPLE TEST: Indicating clock drift/change
UC-6 Completed Successfully

USECASE: 7
Source clock: HFOSC0
Test clock: MAIN_SYSCLK0

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: Enabling DCC and waiting for Error interrupt
SDL DCC EXAMPLE TEST: DCC Generated Error interrupt
SDL DCC EXAMPLE TEST: Indicating clock drift/change
UC-7 Completed Successfully

USECASE: 8
Source clock: RC OSC
Test clock: MAIN_SYSCLK0

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: Enabling DCC and running for some time
UC-8 Completed Successfully

USECASE: 9
Source clock: HFOSC0
Test clock: FICLK

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: DCC Generated completion interrupt
SDL DCC EXAMPLE TEST: No Clock Drift was observed
UC-9 Completed Successfully

USECASE: 10
Source clock: FICLK
Test clock: MAIN_SYSCLK0

SDL DCC EXAMPLE TEST: Seed values calculation done.
SDL DCC EXAMPLE TEST: DCC Generated completion interrupt
SDL DCC EXAMPLE TEST: No Clock Drift was observed
UC-10 Completed Successfully

 All tests have passed.