ML610Q400 Series Sample Program AP Notes Watch Application

SQ003116E006
ML610Q400 Series
Sample Program AP Notes
For
Watch Application
2nd Edition
Issue Date: April 16, 2010
NOTICE
No copying or reproduction of this document, in part or in whole, is permitted without the consent of LAPIS
Semiconductor Co., Ltd.
The content specified herein is subject to change for improvement without notice.
The content specified herein is for the purpose of introducing LAPIS Semiconductor's products (hereinafter
"Products"). If you wish to use any such Product, please be sure to refer to the specifications, which can be obtained
from LAPIS Semiconductor upon request.
Examples of application circuits, circuit constants and any other information contained herein illustrate the standard
usage and operations of the Products. The peripheral conditions must be taken into account when designing circuits
for mass production.
Great care was taken in ensuring the accuracy of the information specified in this document. However, should you
incur any damage arising from any inaccuracy or misprint of such information, LAPIS Semiconductor shall bear no
responsibility for such damage.
The technical information specified herein is intended only to show the typical functions of and examples of
application circuits for the Products. LAPIS Semiconductor does not grant you, explicitly or implicitly, any license
to use or exercise intellectual property or other rights held by LAPIS Semiconductor and other parties. LAPIS
Semiconductor shall bear no responsibility whatsoever for any dispute arising from the use of such technical
information.
The Products specified in this document are intended to be used with general-use electronic equipment or devices
(such as audio visual equipment, office-automation equipment, communication devices, electronic appliances and
amusement devices).
The Products specified in this document are not designed to be radiation tolerant.
While LAPIS Semiconductor always makes efforts to enhance the quality and reliability of its Products, a Product
may fail or malfunction for a variety of reasons.
Please be sure to implement in your equipment using the Products safety measures to guard against the possibility of
physical injury, fire or any other damage caused in the event of the failure of any Product, such as derating,
redundancy, fire control and fail-safe designs. LAPIS Semiconductor shall bear no responsibility whatsoever for
your use of any Product outside of the prescribed scope or not in accordance with the instruction manual.
The Products are not designed or manufactured to be used with any equipment, device or system which requires an
extremely high level of reliability the failure or malfunction of which may result in a direct threat to human life or
create a risk of human injury (such as a medical instrument, transportation equipment, aerospace machinery,
nuclear-reactor controller, fuel-controller or other safety device). LAPIS Semiconductor shall bear no responsibility
in any way for use of any of the Products for the above special purposes. If a Product is intended to be used for any
such special purpose, please contact a ROHM sales representative before purchasing.
If you intend to export or ship overseas any Product or technology specified herein that may be controlled under the
Foreign Exchange and the Foreign Trade Law, you will be required to obtain a license or permit under the Law.
Copyright 2009 - 2011 LAPIS Semiconductor Co., Ltd.
Table of Contents
1.
OVERVIEW ............................................................................................................................................................. 1
2.
SYSTEM CONFIGURATION ................................................................................................................................ 2
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
3.
DESCRIPTION OF FUNCTIONAL MODULES ............................................................................................... 10
3.1.
4.
HARDWARE CONFIGURATION .............................................................................................................................. 2
PERIPHERAL CIRCUIT DIAGRAM ......................................................................................................................... 3
LCD PANEL SPECIFICATIONS .............................................................................................................................. 4
SOFTWARE CONFIGURATION ............................................................................................................................... 5
LIST OF FOLDERS AND FILES ............................................................................................................................... 6
BUILD PROCEDURE ............................................................................................................................................. 7
RESTRICTIONS .................................................................................................................................................... 8
RTC MODULE ................................................................................................................................................... 10
DESCRIPTION OF THE SAMPLE PROGRAM ............................................................................................... 20
4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.
FUNCTIONS OF SAMPLE PROGRAM ................................................................................................................. 20
COMMON SPECIFICATIONS .............................................................................................................................. 20
CONFIGURATION OF THE LCD PANEL ............................................................................................................... 21
KEY EVENT ....................................................................................................................................................... 22
STATE TRANSITION DIAGRAM ........................................................................................................................... 23
STATE TRANSITION TABLE ................................................................................................................................ 23
DESCRIPTION OF MODE ..................................................................................................................................... 24
i
1.
Overview
This document describes the application programming notes (hereafter called the AP notes) arranged to help customers
develop software that performs time measurements and a setting on the ML610Q400 Series MCU (hereafter called the
MCU).
APIs are provided for each function module. The AP notes describe the functions and operating conditions of each API
and samples of use of those APIs.
In connection with the AP notes, a sample program is provided that actually operates using APIs on ML610Q400 Series
Demo Kit.
Related Documents
The following are the related documents. Read them as required.
ML610Q400 Series Sample Program AP Notes For Sensor/Mesurement Application
ML610Q400 Series Sample Program API Manual
ML610Q431/ML610Q432 User’s Manual
ML610Q411/ML610Q412/ML610Q415 User’s Manual
ML610Q421/ML610Q422 User’s Manual
ML610Q435/ML610Q436 User’s Manual
ML610Q400 Series Demo kit Hardware User’s Manual
nX-U8/100 Core Instruction Manual
MACU8 Assembler Package User’s Manual
CCU8 User’s Manual
CCU8 Programming Guide
CCU8 Language Reference
DTU8 User’s Manual
IDEU8 User’s Manual
uEASE User’s Manual
uEASE Connection Manual ML610Qxxx
FWuEASE Flash Writer Host Program User’s Manual
LCD Image Tool User’s Manual
1
2.
System Configuration
2.1.
Hardware Configuration
The following figure shows the hardware configuration on which the sample software runs.
LCD
Power Supply
PWR
SW
Internal
lithium coin
battery
External
power
supply input
terminal
Internal /
External
Select SW
ML610Q4xx
reference board
RS232C
Thermistor
IF
Humidity sensor
BUZZER
SSIO
IF
1st/2nd/3rd
function
Select SW
I2C
EEPROM
RS232C
IF
Control switch
P0/NMI/RESET
ML610Q400 Series Demo Board
Figure 2-1
Hardware Configuration
In the above hardware configuration, the peripheral parts which are necessary for running the sample software are
shown below.
Peripheral parts
Control switch
The number of
peripheral parts
4
LCD panel
1
Descriptions
The switch S1, S2, S3 and S4 are used to change mode or control the
application.
It displays the mode and a display of time of operation.
2
2.2.
Peripheral Circuit Diagram
LCD
Coin Cell
NMI
VDD
COM0~3 (*)
SEG0~63 (*)
NMI
S1
S2
P00/CAP0
EXVDDV
P01/CAP1
EXGND
P02
S3
P03
S4
RESET_N
ML610Q4xx
P30/IN0
P31/CS0
CX
Cd
Cc
Cb
Ca
VDDX
P32/RS0
VL4
P33/RT0
VL3
P34/RCT0
VL2
P35/RCM
VL1
P44/IN1
C4
P45/CS1
C34
P46/RS1
C3
C2
1/4 Bias
P47/RT1
CS0
CVR0
RS0
RT0
CS1
CVR1
RS1
RT1
C12
C1
XT0
CGL
AVDD
AVref
XL
CDL
AVSS
XT1
32.768KHz
Xtal
P22
/MD0
P20 P41 P40
P42 P43
/RXD /TXD
AIN0
(Output) /SCL /SDA
Buzzer
ICL2332
GND R1In T1Out
4
3
V+
2
GND TXD RXD
V-
WP SCL SDA
9-pin D-SUB
A0 A1
CV
:1uF
:1uF
CL0
CL1
:0.1uF
:1uF
C1
CX
:0.1uF
Ca,Cb,Cc,Cd
:1uF
:1uF
C12,C34
: No ( 0 pF )
CGL
CDL
: No ( 0 pF )
Vcc
2
I C EEPROM
A2
Vss
RS0
CS0
CVR0
RT0
: 10 Kohm
: 560 pF
: 820 pF
: 103AT (Semitec) thermister
RS1
CS1
CVR1
RT1
: 150 Kohm
: 680 pF
: 820 pF
: C10-M53R (Shinyei) humidity sensor
(*) The number of COM/SEG pin that can be connected to LCD panel depends on the type of the LCD driver built into
the MCU. Please see the chapter “LCD Driver” of the User’s Manual for your target MCU.
For more detail about the peripheral curcuit, please see the “ML610Q400 Series Demo Kit Hardware User’s Manual”.
3
2.3.
LCD Panel Specifications
16-segment characters:
7-segment characters:
8-segment characters:
Marks for hand-held calculator:
Other marks:
Figure 2-2
The 4 digits on the upper part of the panel
The 6 digits on the upper part of the panel
The 12 digits on the lower part of the panel
7
32
Layout of the LCD Panel
Table 2-1 Pin Assignments (COM/SEG)
Specifications of Operation
Clock for bias generation circuit voltage multiplication:
Bias of the bias generation circuit:
Duty:
Frame frequency:
4
1/16 LSCLK (2 kHz)
1/4
1/4 duty
73 Hz
2.4.
Software Configuration
Figure 1-1 shows the software configuration.
Figure 2-3
Software Configuration
5
2.5.
List of Folders and Files
The folders and the files are as listed below.
[watch]
├ [_output]
│ ├ [_hex]
│ ├ [_lst]
│ ├ [_obj]
│ └ [_prn]
├ [clock]
│ ├ clock.c
│ ├ clock.h
│ ├ clock_sysFunc.c
│ └ clock_sysFunc.h
├ [irq]
│ ├ irq.c
│ └ irq.h
├ [key]
│ ├ key.c
│ ├ key.h
├ [lcd]
│ ├ LCD.c
│ ├ LCD.h
│ ├ U8_Sample.tac
│ └ U8_Sample.tbc
├ [main]
│ ├ mcu_large
│ │ └ mcu.h
│ ├ mcu_small
│ │ └ mcu.h
│ ├ eepromMap.h
│ ├ main.BAK
│ ├ main.c
│ ├ main.h
│ ├ S610431SW.asm
│ └ S610435LW.asm
├ [rtc]
│ ├ rtc.c
│ └ rtc.h
├ [t1k]
│ ├ t1k.c
│ └ t1k.h
├ [tbc]
│ ├ tbc.c
│ └ tbc.h
├ [timer]
│ ├ timer.c
│ └ timer.h
├ readme.txt
├ U8_watch_Sample_Large.PID
└ U8_watch_Sample_Small.PID
… Build result output folder
… Clock control module folder
… Interrupt control module folder
… Key input control module folder
… LCD display control module folder
… Sample program main folder
…Real time clock module folder
… 1 kHz timer control module folder
… Time base counter control module folder
… Timer control module folder
… Description of compile options
… Project file for large model MCU
… Project file for samll model MCU
6
2.6.
Build Procedure
1 Start IDEU8, select the menu “Open” and open the project file (PID file). In the case that MCU memory model is
small model, the project file is “U8_watch_Sample_Small.PID”. In the case of large model, the project file is
“U8_watch_Sample_Large.PID”. Correspondence of MCU and PID file is shown below.
Table 2-2 Correspondence of MCU and PID file
Supported MCU
U8_watch_Sample_Small.PID
ML610Q431/432
ML610Q421/422
ML610Q411/412/415
U8_watch_Sample_Large.PID
ML610Q435/436
2 In the default setting, ML610Q431 is set as the target MCU.
If your target MCU is different, follow the procedure below to change the setting.
(1) Select the menu “Project” -> “Options” -> “Compiler/assembler”.
(2) In the displayed window, select the target MCU from the “Target microcontroller” list in the “General”
tab.
(3) Remove the startup file “S610431SW.asm“ registered in the file tree of IDEU8. Instead of that, register
your target MCU’s startup file. (In the case of ML610Q432, it is S610432SW.asm.)
(4) Define the macro that represents the target MCU.
Select the menu “Project” -> “Options” -> “Compiler/assembler” -> ”Macro”tab. In the displayed
window, define the macro like following name.
_ML610Q4XX
About the “XX” part, replace with the type number of MCU
For example, if ML610Q432 is used, define the following macro.
_ML610Q432
In the case that the macro other than the type number in the above Table 2-2 is defined, the case that
macro such as above is not defined, or the case that the memory model that is supported by PID file is
different from the memory model of MCU that is defined by the above macro, the compiler issues the
following error at the beginning of the output messages.
Error : E2000 : #error : “Unknown target MCU”
(5) If necessary, modify other macro definitions.
About the available macro definitions, see the “readme.txt” in the sample program folder.
- For ML610Q43X series MCU
LCD_TYPE = 1
_RTC_TYPE or _SOFTWARE_RTC
- For ML610Q42X series MCU
LCD_TYPE = 1
_SOFTWARE_RTC
- For ML610Q41X series MCU
LCD_TYPE = 0
_SOFTWARE_RTC
3 Select the menu “Project” -> “Rebuild”. Then the build procssing for the sample program starts.
4 When the build processing is completed, .abs file is generated in the project folder and .hex file is generated in
_output¥_hex folder.
7
2.7.
Restrictions
2.7.1.
About Available Functional Modules
In the functional modules that compose this sample program, the available functional modules are different by target
MCU, due to the difference of MCU peripherals. In the case that these functional modules are applied to user
application, available functional modules on each MCU are shown below.
Table 2-3 List of available functional modules
Supported MCU
LCD Display Control Module *2
Key Input Control Module *2
Functional
modules
RTC Control
Module
Hardware RTC
Software RTC
Timer Control Module *2
Clock Control Module *2
1 kHz Timer Control Module *2
Time Base Counter Control Module *2
ML610Q43X ML610Q42X ML610Q41X ML610Q48X
○
○ *1
○ *1
×
○
○
○
○
○
×
×
×
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
×
○
○
○
○
○ : Available
× : Not available
*1: All display area of LCD panel can not be available, because the number of SEG pin that is connected to LCD panel
is not enough.
*2: For the details of these modules, please see the “ML610Q400 Series Sample Program AP Notes For
Sensor/Mesurement Application”.
2.7.2.
About Functions of Sample Program
This sample program is available on only ML610Q43X, ML610Q42X and ML610Q41X series MCU.
Note: This sample program is not available on ML610Q48X series MCU, because it does not have LCD driver, which
are required for operating the application.
8
2.7.3.
About Display Area of LCD panel
The display area of LCD panel is different by each MCU as follows, because of the specification difference of LCD
driver.
* It is requred for displaying all areas of LCD panel that LCD driver supports 64seg×4com pins at least. The number of
COM/SEG pin that LCD driver in each MCU supports is listed in parenthesis.
ML610Q43X: All area can be displayed.
(ML610Q431: 64seg×16com, ML610Q432: 64seg×24com)
ML610Q42X: Only the area of 1, 2 and 4 can be displayed.
(ML610Q421: 50seg×8com, ML610Q422: 50seg×16com)
ML610Q41X: Only the area of 1 and 2 can be displayed.
(ML610Q411: 36seg×4com, ML610Q412: 44seg×4com, ML610Q415: 36seg×4com)
ML610Q48X: All area can not be displayed, because ML610Q48X does not have LCD driver.
9
3.
Description of Functional Modules
3.1.
RTC Module
This sample program provides two methods to realize the real time clock (RTC). One method is the hardware RTC and
another is the software RTC. The hardware RTC is enabled by default. The software RTC is enabled when the macro
“_SOFTWARE_RTC” is defined. The software RTC can realize the RTC function even if MCU doesn’t have the RTC
function.
About MCU that has the real time clock (RTC) function
The following shows the configuration of the RTC in MCU.
Data bus
Control circuit
RTCCON
Alarm 0/1
Control circuit
RTCINT
(Periodic interrupt)
Periodic interrupt control
0.5 sec
T2HZ
T1HZ
Operation
control
1 sec
AL0INT, AL1INT
(Alarm interrupt)
1 min.
Day counter
WEEK,
DAY, MON, YAER
Time counter
SEC, MIN, HOUR
Data bus
RTCCON: Real time clock control register
* For details, refer to the chapter “Real Time Clock” of the User’s Manual for your target MCU.
10
About MCU that does not have the real time clock (RTC) function
The RTC function is realized by the software RTC. The following shows the functional block diagram of the software
RTC.
About the detail of each function, please see the secton “3.1.1 Function Overview”.
Application
Set time
rtc_setTime function
Current time data
Get time
rtc_getTime function
Set Alarm 0/Alarm 1
rtc_setAlarm0/rtc_setAlarm
1 function
Alarm 0/Alarm 1 setting
data
Get the setting of
Alarm 0/Alarm 1
rtc_getAlarm0/rtc_getAlarm
1 function
Update time
rtc_updateTime function
Count date and time
Alarm control
Alarm 0 callback
Alarm 1 callback
Alarm 0
Application processing
Alarm 1
Application processing
11
3.1.1.
Function Overview
The RTC module mainly sets the settings for the counting functions of the real time clock of the MCU.
Table 3-20 lists the RTC module APIs that the sample program uses.
Table 3-1 List of APIs
Function name
rtc_setTime function
rtc_getTime function
rtc_start function
rtc_stop function
rtc_setRegularInt function
rtc_setAlarm0 function
rtc_setAlarm1 function
rtc_getAlarm0 function
rtc_getAlarm1 function
rtc_updateTime function
rtc_calcWeekday function
Hardware
RTC
Description
Sets date (year, month, day, day of the
week) and clock time (hour, minute,
second).
Obtains date (year, month, day, day of the
week) and clock time (hour, minute,
second).
Starts RTC operation.
Stops RTC operation.
(*2)
(*2)
Selects the interval between periodic
interrupts.
Sets Alarm 0(day of the week, hour,
minute).
Sets Alarm 1(month, day, hour, minute).
Obtains the setting of Alarm 0(day of the
week, hour, minute).
Obtains the setting of Alarm 1(month, day,
hour, minute).
Updates date (year, month, day, day of the
week) and clock time (hour, minute,
second).
Calculates day of the week.
Software
RTC
(*2)
(*1)
(*1) Not available for the hardware RTC.
(*2) No need to use for the software RTC. These functions do not execute any processing in the software RTC.
12
3.1.2.
Operating Conditions
This section describes the operating conditions and valid range of this module. It also describes the restrictions on this
module.
The RTC is stopped immediately after an MCU reset.
Year values settable with the date counting function
Month values settable with the date counting function
Day values settable with the date counting function
Day of the week values settable with the date counting function
Hour values settable with the clock time counting function
Minute values settable with the clock time counting function
Second values settable with the clock time counting function
Year range in which day of the week can be calculated
00–99
01–12
01–31
1–7
00–23
00–59
00–59
2000–2099
Note:
The parameters used in each of the APIs above must be specified by binary-code decimal (BCD) values, except for
day of the week.
Day of the week, which is calculated by rtc_calcWeekday function, is represented by the following values.
day of the week
value
Sunday
1
Monday
2
Tuesday
3
Wednesday
4
Thursday
5
Friday
6
Saturday
7
The timing that the alarm occurs is different between the hardware RTC and the software RTC.
¾ Hardware RTC:
Alarm interrupt (AL0INT、AL1INT)
¾ Software RTC:
Main routine (rtc_updateTime function call)
13
3.1.3.
Sample of Use
The subsection below describes the procedure for setting date and clock time using RTC module.
3.1.3.1. Date and Clock Time Setting Procedure (Hardware RTC)
The figure below shows the procedure for setting date (year, month, day, day of the week) and clock time (hour, minute,
second) using the hardware RTC function in RTC module.
Main Routine
1)
Stop RTC operation
rtc_stop function
2)
Set date and clock time in RTC
rtc_setTime function
3)
Start RTC operation
rtc_start function
4)
Obtain date and clock time of RTC
rtc_getTime function
Figure 3-1
Date and Clock Time Setting Procedure (Hardware RTC)
14
[Main Routine]
1) Stop RTC operation (because date and clock time have to be set with the RTC stopped)
2) Set date and clock time
¾ Stop RTC operation using the rtc_stop function.
¾ Set date and clock time using the rtc_setTime function.
1 Second data (0–59)
2 Minute data (0–59)
3 Hour data (0–23)
4 Day-of-the-week data (1–7)
5 Day data (1–31)
6 Month data (1–12)
7 Year data (0–99)
*By resetting the low-speed time base counter, clear the internal counter used to count for less than one second.
3) Start RTC operation
¾ Start RTC operation using the rtc_start function.
4) Obtain the date and clock time of RTC
¾ Obtain the current date (year, month, day, day of the week) and clock time (hour, minute, second) using the
rtc_getTime function.
15
3.1.3.2. Date and Clock Time Setting Procedure (Software RTC)
The figure below shows the procedure for setting date (year, month, day, day of the week) and clock time (hour, minute,
second) using the software RTC function in RTC module.
Main Routine
Figure 3-2
1)
Calculate day of the week
rtc_calcWeekday function
2)
Set date and clock time
rtc_setTime function
3)
Update date and clock time
rtc_updateTime function
4)
Obtain date and clock time of RTC
rtc_getTime function
Date and Clock Time Setting Procedure (Software RTC)
16
[Main Routine]
1) Calculate day of the week
¾ Calculate day of the week using the rtc_calcWeekday function.
2) Set date and clock time
¾ Set date and clock time using the rtc_setTime function.
1 Second data (0–59)
2 Minute data (0–59)
3 Hour data (0–23)
4 Day-of-the-week data (caluculated value by rtc_calcWeekday function)
5 Day data (1–31)
6 Month data (1–12)
7 Year data (0–99)
3) Update date and clock time
¾ Update the current date (year, month, day, day of the week) and clock time (hour, minute, second) by calling
rtc_updateTime function at regular intervals (every second).
4) Obtain the date and clock time of RTC
¾ Obtain the current date (year, month, day, day of the week) and clock time (hour, minute, second) using the
rtc_getTime function.
17
3.1.3.3. Alarm 0 Setting Procedure (Software RTC)
The figure below shows the procedure for setting alarm 0 using the software RTC function in RTC module.
Main Routine
1)
Set alarm 0
rtc_setAlarm0 function
Update date and clock time
rtc_updateTime function
2)
When the current time reaches
the time of alarm 0,
callback function is executed
3)
Obtain the alarm 0 setting
rtc_getAlarm0 function
Figure 3-3
Alarm 0 callback processing
(callback function)
Alarm 0 Setting Procedure (Software RTC)
[Main Routine]
1) Set alarm 0
¾ Set date and clock time using the rtc_setAlarm0 function.
1 Minute data (0–59)
2 Hour data (0–23)
3 Day-of-the-week data (1–7)
4 Address of callback function
¾ If you do not use the day-of-the-week data as comparison data of alarm 0, set “0x00” as its data. For example, in
the case of setting 8:30 in the morning to alarm 0, set “0x00” to the day-of-the-week data, then set “8(hour)” and
“30(minute)” to the hour and minute data respectively.
2) Update date and clock time
¾ Update the current date and clock time by calling rtc_updateTime function.
¾ If the current time reaches the time that is set to alarm 0 (day of the week, hour, minute) when the second of
current time overflows (from 59 to 00) and the minute is raised up, the callback function specified in above “Set
alarm 0 (rtc_setAlarm0 function)” is executed.
3) Obtain the alarm 0 setting
¾ Obtain the current alarm 0 setting data (day of the week, hour, minute, address of callback function) using the
rtc_getAlarm0 function.
18
3.1.3.4. Alarm 1 Setting Procedure (Software RTC)
The figure below shows the procedure for setting alarm 1 using the software RTC function in RTC module.
Main Routine
1)
Set alarm 1
rtc_setAlarm1 function
Update date and clock time
rtc_updateTime function
2)
When the current time reaches
the time of alarm 1,
callback function is executed
3)
Obtain the alarm 1 setting
rtc_getAlarm1 function
Figure 3-4
Alarm 1 callback processing
(callback function)
Alarm 1 Setting Procedure (Software RTC)
[Main Routine]
1) Set alarm 1
¾ Set date and clock time using the rtc_setAlarm1 function.
1 Minute data (0–59)
2 Hour data (0–23)
3 Month data (1–12)
4 Day data (1–31)
5 Address of callback function
¾ If you do not use the month and day data as comparison data of alarm 1, set “0x00” as its data. For example, in
the case of setting 8:30 in the morning to alarm 1, set “0x00” to the month and day data, then set “8(hour)” and
“30(minute)” to the hour and minute data respectively.
2) Update date and clock time
¾ Update the current date and clock time by calling rtc_updateTime function.
¾ If the current time reaches the time that is set to alarm 1 (month, day, hour, minute) when the second of current
time overflows (from 59 to 00) and the minute is raised up, the callback function specified in above “Set alarm 1
(rtc_setAlarm1 function)” is executed.
3) Obtain the alarm 1 setting
¾ Obtain the current alarm 1 setting data (month, day, hour, minute, address of callback function) using the
rtc_getAlarm1 function.
19
4.
Description of the Sample Program
The following shows the functional specification of the sample program.
4.1.
Functions of Sample Program
The sample program offers three functions shown below.
Function
Time display
Calendar setup
Time setup
4.2.
Function outline
The present time (hour, minute and second) and a calendar (date and day of the week) are
displayed.
Operation duty and contrast are adjusted by key operation.
Date is set up by key operation.
Calendar (year, month and day) is set up by key operation.
The place during setup blinks.
Also during a calendar setup, time is updated and the newest time is displayed on LCD.
Time is set up by key operation.
Set up time (hour and minute) by key operation.
The place during setup blinks.
Also during a time setup, time is updated and the newest time is displayed on LCD.
Common Specifications
1) System clock
• SYSCLK=LSCLK (32 kHz)
2) Timer
• Base time (1s) creation
Software RTC: 1 kHz timer, operating clock LSCLK, 1Hz mode
Hardware RTC: RTC 1 second interrupts.
•
Operation duty creation
Timer0, 1(16bit mode), operating clock LSCLK, overflow interval: It is dependent on a setup of duty of
operation (refer the table below).
* It is not used when the operation duty is set to 100%
3) LCD driver
• Bias voltage multiplying clock: 2 kHz, bias : 1/4 bias, 1/4 duty
• Frame frequency: 73 Hz
4) MCU operation duty
• 10~100%, in units of 10%.
Duty ratio(%)
Opereation time(ms)
HALT time(ms)
10
100
900
20
200
800
30
300
700
40
400
600
50
500
500
60
600
400
70
700
300
80
800
200
90
900
100
100
const
-
20
4.3.
Configuration of the LCD Panel
The following subsections describe the LCD panel configuration and types of display.
The LCD panel has two types of display patterns depending on the type of the LCD driver built into the MCU: one with
the display allocation function and the other without it.This sample explains as the display allocation function.
4.3.1.
LCD Display Image with Display Allocation Function
The display allocation function is available if DSPMOD1’s DASN (bit 2) can be set to “1”.
The display image in this case is shown below.
Day of the week
Operation
duty
3
T H U
Clock time
2 3
2 0 0 9
Day of the week
Clock time
Year
Month and day
5 9
:
5 9
1 2 3 1
Year
Name
Operation duty
:
Month and day
Content to be displayed
The mark of "1" - "10" on either side shows the sample program operation duty.
Duty ratio 10% : “1”
Duty ratio 20% : “2”
:
Duty ratio 100% : “10”
The day of the week applicable to the present date is displayed in left justified format.
Sunday: SUN
Monday: MON
Tuesday: TUE
Wednesday: WED
Thursday: THU
Friday: FRI
Saturday: SAT
Displays the current time in 24 hour format.
Displays current year. Upper place of year is fixed to “20”.
Displays current month and day.
21
4.4.
Key Event
The key event that the sample program handles is only a short-press release.
Short-press release: Polling is performed at 128-Hz intervals from the time a key was pressed, and a short-press release
is confirmed if a match occurs four times but the key is released in less than 2 seconds.
Priority:
Key S1 > Key S2 > Key S3 > Key S4
22
4.5.
State Transition Diagram
Power-on
Reset by RESET_N pin
or
reset by WDT overflow
Initialization
Short S1 press
Short S1 press
Short S2 press
Short S2 press
Calendar setup mode
Short S4 press
Time display mode
Short S3 press
Short S3 press
Short S4 press
Short S2 press
Time setup mode
Short S4 press
Short S3 press
Short S1 press
Figure 4-1
4.6.
State transition diagram(Whole)
State Transition Table
Mode
S1
State
Short S1 press
Time
display
Calendar
setup
Time setup
Key
S2
Short S2
press
S3
Short S3
press
Normal
[State change]
Shifts to Duty adjustment state
-
-
Duty
adjustment
[State change]
Shifts to Contrast adjustment
state
Parameter
UP
Parameter
Down
Contrast
adjustment
[State change]
Shifts to Normal state
Parameter
UP
Parameter
Down
[Setting (blink) place change]
Shifts to place of “Month”
[Setting (blink) place change]
Shifts to place of “Day”
[Setting (blink) place change]
Shifts to place of “Year”
[Setting (blink) place change]
Shifts to place of “Minute”
[Setting (blink) place change]
Shifts to place of “Second”
[Setting (blink) place change]
Shifts to place of “Hour”
Parameter
UP
Parameter
UP
Parameter
UP
Parameter
UP
Parameter
UP
Parameter
UP
Parameter
Down
Parameter
Down
Parameter
Down
Parameter
Down
Parameter
Down
Parameter
Down
Setting place
“Year”
Setting place
“Month”
Setting place
“Day”
Setting place
“Hour”
Setting place
“Minute”
Setting place
“Second”
:
:
:
:
:
:
23
S4
Short S4 press
[Mode change]
Shifts to Calendar setup
mode
[Mode change]
Shifts to Time setup
mode
[Mode change]
Shifts to Time display
mode
4.7.
Description of mode
Mode
Time display mode
Calendar setup mode
Time setup mode
Description
Renewal of time is performed for every second using RTC (software/hardware) function, and
the present time and a date are displayed.
Moreover, duty of operation or LCD contrast of MCU is changed by key operation.
Calendar (year, month, day) is set up by key operation.
* Day of the week is calculated by the sample software side.
Time (hour, minute, second reset) is set up by key operation.
24
4.7.1.
Time display mode
Change of a display of time, duty of operation, and LCD contrast is performed.
4.7.1.1.
¾
¾
¾
¾
¾
¾
Description of operation
Date, Time and the mark of the operation duty are displayed after clearing LCD display.
The operation duty of MCU and contrast are changed by the key input.
The initial value of calendar time is 0:0 0 second on January 1, 2000.
The initial value of the operation duty is 100%.
The initial value of the contrast of LCD is 8.
LCD is switched off when key operation is not performed during 1 minute. (Normal state only)
4.7.1.2. Description of screen
There are three kinds of states, a time display, duty adjustment, and contrast adjustment, in the time display mode.
And there is a screen corresponding to each state (state is changed by short S1 press).
1.
Time display mode (usually) screen
Day of the week
Operation
duty
3
T H U
Clock time
2 3
2 0 0 9
Name
Operation duty
Day of the week
Clock time display
Year
Month and day
5 9
:
5 9
1 2 3 1
Year
Figure 4-2
:
Month and day
Time display mode (usually)
Content to be displayed
Mark of "1" - "10" on either side shows the sample program operation duty.
Duty ratio 10% : “1”
Duty ratio 20% : “2”
:
Duty ratio 100% : “10”
The day-of-the-week applicable to the present date is displayed in left justified format..
Sunday: SUN
Monday: MON
Tuesday: TUE
Wednesday: WED
Thursday: THU
Friday: FRI
Saturday: SAT
Displays the current time in 24 hour format.
Displays current year. Upper place of year is fixed to “20”.
Displays current month and day.
25
2. Time display mode (duty adjustment) screen
Operation
duty
Mode display
Clock time
D U T Y
2 3
:
5 9
:
5 9
4
Figure 4-3
Name
Operation duty
Time display mode (duty adjustment)
Content to be displayed
The mark of "1" - "10" on either side shows the sample program operation duty.
Duty ratio 10% : “1”
Duty ratio 20% : “2”
:
Duty ratio 100% : “10”
Mode
Clock time
"DUTY" is displayed.
Displays the current time in 24 hour format.
3. Time display mode (contrast adiustment) screen
Operation
duty
Mode display
C O N T
Clock time
2 3
:
5 9
:
5 9
4
1 F
Contrast display
Figure 4-4
Name
Operation duty
Time display mode (contrast adjustment)
Content to be displayed
The mark of "1" - "10" on either side shows the sample program operation duty.
Duty ratio 10%
Duty ratio 20%
:
Duty ratio 100%
Mode display
Clock time display
Contrast display
: “1”
: “2”
: “10”
"CONT" is displayed.
Displays the current time in 24 hour format.
The contrast (value of a contrast register) of LCD is displayed.
26
4.7.1.3. Description of key operation
Key event uses only short press. Long press of key is no effect.
1. Time display mode (usually) screen
When one of keys is pushed during LCD putting out lights, LCD lighting is performed but operation of a key is not
performed.
Key
Operation
S1
Short press
Shifts to duty adjustment state.
S2
Short press
No effect.
S3
Short press
No effect.
S4
Short press
Shifts to calendar setup mode.
2. Time display mode (duty adiustment) screen
Key
Operation
S1
Short press
Shifts to contrast adjustment state.
The operation duty of MCU is adjusted.
S2
Short press
Whenever it pushes once, duty ratio is added 10%.
When duty ratio is 100%, it sets up to 10%.
The operation duty of MCU is adjusted.
S3
Short press
Whenever it pushes once, duty ratio is subtracted 10%.
When duty ratio is 10%, it sets up to 100%.
S4
Short press
Shifts to calendar setup mode.
3. Time display mode (Contrast adiustment) screen
Key
Operation
S1
Short press
Shifts to normal state.
Contrast of LCD is adjusted.
S2
Short press
Whenever it pushes once, contrast is added 1.
When contrast is maximum (*), it is set as 0. * Maximum value varies in MCU.
Contrast of LCD is adjusted.
S3
Short press
Whenever it pushes once, contrast is subtracted 1.
When contrast is maximum (*), it is set as 0. * Maximum value varies in MCU.
S4
Short press
Shifts to calendar setup mode.
27
4.7.2.
Calendar setup mode
Calendar (year, month, day) is set up.
4.7.2.1. Description of operation
¾ Date is displayed after clearing LCD display.
¾ Renewal of time is performed also during edit.
But renewal of the date place by the carry from the time place is not performed.
(edit: 2009/12/31 23:59:59 ´ 2009/12/31 00:00:00)
¾ The blinking place is moved in the order of the year -> month -> day -> year … by the key input.
(Blink cycle: 1 Hz)
¾ The present date is edited.
4.7.2.2.
Description of screen
2 0 0 9
1 2 3 1
Year display
Figure 4-5
Month and day
Calendar setup mode
Name
Content to be displayed
Year display
Displays current year. Upper place of year is fixed to “20”.
Month and day
Displays current month and day.
* The place during setup blinks.
4.7.2.3.
Description of key operation
Key
Short
press
Operation
The place of date which is set up (blinking place) is changed (in the order of year -> month -> day).
S1
If it goes around, it will return to the place of year.
The count rise of the place during setup is carried out.
In the case of maximum value, it returns to the minimum value.
Short
The range of a count rise:
S2
press
Year
00~99
Month 01~12
Day
01~31
The countdown of the place during setup is carried out.
In the case of the minimum value, it returns to maximum value.
Short
The range of a countdown:
S3
press
Year
00~99
Month 01~12
Day
01~31
It shifts to the time setup mode after calendar decision.
Short
*When date setting value is unexpected date (when February 30 is set up etc), date is reset to 1st
S4
press
date of the next month.
*A day of the week is calculated using date that has been set.
*Long press of key is no effect.
28
4.7.2.4. Validation of date input
In this sample software, the validity of user input value is judged in the following procedure, and unexpected input
value is corrected.
1) Setup of a date
¾ Date (year, month, date) is set up using S1, S2, and S3 key.
2) S4 key input
¾ When S4 key is inputted, the day-of-the-week set up with the rtc_calcWeekday function is calculated.
3) Success or failure of a day-of-the-week calculation result
¾ When the setting value of day is more than the final day (28~31) of month, it judges as an unexpected input
with an rtc_calcWeekday function. (A leap year is also taken into consideration.)
¾ When it succeeds in day-of-the-week calculation with an rtc_calcuWeekday function, the setting value of date
is accepted.
¾ When it fails in day-of-the-week calculation with an rtc_calcuWeekday function, it judges with an error and
the following date compensation is performed.
1 Advance the place of the "month" for one month.
2 The place of a "day" will be set up on "the 1st."
3 Perform day-of-the-week calculation again.
[Example]
¾
Though it is not a leap year, date is set up to February 29.
1 Date Input by User.
2 0 0 9
0 2 2 9
Month and day
Year
2
S4 key input (to time setup mode).
Day of the week
Clock time
S U N
:
2 0 0 9
0 0
:
0 0
3
Year
Month and day
29
1
¾
When a date is set up on November 31.
1 Date input by User.
2 0 0 9
1 1 3 1
Year
2
Month and day
S4 key input (to time setup mode).
Day of the week
Clock time
T U E
:
0 0
:
0 0
2 0 0 9
1 2
Year
Month and day
30
1
4.7.3.
Time setup mode
Time (hour and minute) is set up.
4.7.3.1. Description of operation
¾ Date is displayed after clearing LCD display.
¾ Renewal of time is performed also during edit.
But renewal of the date place by the carry from a time place is not performed.
(edit: 2009/12/31 23:59:59 ´ 2009/12/31 00:00:00)
¾ The blinking place is moved in the order of hour -> minute -> second -> hour by the key input.
(Blink cycle: 1 Hz)
¾ The present time (hour, minute, second) is edited. The edited contents are immediately set to RTC.
¾ When S2/S3 key is short-pressed during the place of "second" is selected, a second is set as 00.
4.7.3.2.
Description of screen
Day of the week
Clock time
T H U
2 3
5 9
:
2 0 0 9
Name
Day of the week
5 9
1 2 3 1
Year
Figure 4-6
:
Month and day
Time setup mode
Content to be displayed
The day of the week applicable to the present date is displayed in left justified format.
Sunday: SUN
Monday: MON
Tuesday: TUE
Wednesday: WED
Thursday: THU
Friday: FRI
Saturday: SAT
Clock time
Year
Month and day
Displays the current time in 24 hour format.
*The place during setup blinks and is displayed.
Displays current year. Upper place of year is fixed to “20”.
Displays current month and day.
31
4.7.3.3.
Description of key operation
Key
S1
Short
press
S2
Short
press
S3
Short
press
Operation
The place of time which is sets up (blinking place) is changed (in the order of hour -> minute ->
second).
If it goes around, it will return to hour.
The count rise of the place during setup is carried out.
In the case of maximum value, it returns to the minimum value.
The range of a count rise:
Hour
00~23
Minute 00~59
Second 00fix
The countdown of the place during setup is carried out.
In the case of the minimum value, it returns to maximum value.
The range of a countdown:
Hour
00~23
Minute 00~59
Second 00fix
Short
It shifts to the time display mode.
press
*Long press of key is no effect.
S4
32
4.7.4.
Cautions when Using Hardware RTC (About time setting timing)
The time which RTC holds is updated for every count for 1 second by the low-speed time base counter. Moreover, the
event of S2 or S3 key performs processing which updates the time of RTC in this sample program. If the timing by
which the value of RTC is updated overlaps during processing of a time setup by this program, the old time (1 second
before) which the program holds may be set to RTC.In this case, a display of clock time will be delayed for 1 second.
In this sample program, as the measure for the clock time delay at RTC setup, key events are suspended on the
following condition and it is made not to perform RTC setup. The suspended key event is re-set when it returns to the
calendar edit mode or the time edit mode. The key event holds the key event that is occurred latest.
Condition: LTBR (the low-speed time base counter) is more than 0xF0. (RTC interrupt occurs within 62.5ms.)
Usually, although the processing time of a time setup is about 10ms, since key interrupt will occur several
times also during a time setup if a key is hit repeatedly, it takes about 60ms by the maximum. A time setup and
RTC interruption are made not to overlap by preparing the prohibition time of a time setup.
Figure 4-7
Time setup outline flow
33
Revision History
34
Revision History
Page
Edition
Date
2
2010.4.16
Previous
Edition
Current
Edition
–
–
Description
Initial Edition
35