6.3.1 RTC Configuration
The application demonstration is explained as follows. This application demonstrates only three modes of tamper detection in SAM L22 Xplained Pro. The procedure for testing active layer protection is explained in section Active Layer Protection.
Before entering into the application demonstration, the basic condition in which the device SAM L22 is configured is explained as follows. If the user needs variations in the basic configuration files, which are to be changed, this is explained as follows.
- The RTC is configured in Clock/calendar mode (mode 2) operating at 32.768kHz external oscillator. This mode is selected to keep track of the time and get the timestamp value easily.
- The application allows user to set
time; this includes date also. The application has current time and date set as
12:59:50 and 31/12/2012. The user can configure current time by changing the
following macros in the header file example.h
#define YEAR 2012 #define MONTH 12 #define DAY 31 #define HOUR 11 #define MINUTE 59 #define SECOND 50 #define TIME_PM false
Note: time.pm is not applicable if the RTC is configured for 24-hours clock mode - This application is configured in
12-hours clock mode. In order to configure for 24-hours clock mode, assign ‘true’ to
the variable ‘config_rtc_calendar.clock_24h’ as shown below.
config_rtc_calendar.clock_24h = true;
Note: For 24-hours clock mode, the macro TIME_PM available in the header file example.h doesn't need to be defined and all the code statements related to the AM/PM settings can be removed. - The SAM L22 has five dedicated pins
RTC/IN [0, 1…4] for tamper detection. User Switch SW0 available in the Xplained Pro
board, connected to RTC/IN [4] pin, is used to provide tamper input. The
tamper input pin can be changed as per user’s board requirements. The following
macro should be changed corresponding to the tamper input pin:
#define TAMPER_INPUT_PIN 4
While configuring some other tamper input pin, ensure that the pull is enabled and the pin is configured as input.
This application is configured in such a way that the tamper is detected if there occurs a rising edge on the pin RTC/IN [4]. In order to configure for falling edge, change the level as shown below in both the functions,
configure_tamper_wake()
andconfigure_tamper_capture()
.config_rtc_tamper.in_cfg[4].level = RTC_TAMPER_LEVEL_FALLING;
- As mentioned earlier, when the tamper
is enabled in capture mode, the RTC takes the timestamp of the clock register. The
clock register value is converted into time value and it is available in the global
structure
struct tamper_time
.