アプリケーションノート

RL78/G10
ハンドソープ・オートディスペンサー

R01AN4871JJ0100
Rev.1.00
2019.9.30

要旨
本アプリケーションノートでは、RL78/G10 を使用してハンドソープ・オートディスペンサーを実現する方法を説明します。

動作確認デバイス
RL78/G10

本アプリケーションノートを他のマイコンへ適用する場合、そのマイコンの仕様にあわせて変更し、十分評価してください。

R01AN4871JJ0100
2019.9.30

Rev.1.00

Page 1 of 28

RL78/G10

ハンドソープ・オートディスペンサー

目次
1.

仕様 ..................................................................................................................................3

1.1

DC モータ ..................................................................................................................................... 3

1.2

人感センサ .................................................................................................................................... 3

2.

動作確認条件 ....................................................................................................................43.

ハードウェア説明.............................................................................................................5

3.1

ハードウェア構成 ......................................................................................................................... 53.2

使用端子一覧 ................................................................................................................................. 5

4.

ソフトウェア説明.............................................................................................................6

4.1

動作概要 ........................................................................................................................................ 64.2

オプション・バイトの設定一覧 .................................................................................................... 6

4.3

変数一覧 ........................................................................................................................................ 64.4関数(サブルーチン)一覧 ................................................................................................................ 74.5

関数仕様 ........................................................................................................................................ 8

4.6

フローチャート ........................................................................................................................... 11

4.6.1

初期設定関数......................................................................................................................... 11

4.6.2

システム関数......................................................................................................................... 12

4.6.3

入出力ポート設定 ................................................................................................................. 13

4.6.4

CPU クロック設定 ................................................................................................................ 14

4.6.5

タイマ・アレイ・ユニットの設定 ........................................................................................ 15

4.6.6

ブザー警報の設定 ................................................................................................................. 17

4.6.7

A/D コンバータの設定 .......................................................................................................... 18

4.6.8

12 ビット・インターバル・タイマの設定 ............................................................................ 19

4.6.9

メイン処理 ............................................................................................................................ 20

4.6.10 初期化関数 ............................................................................................................................ 21
4.6.11 12 ビットインターバル・タイマ開始設定フローチャート .................................................. 21
4.6.12 12 ビット・インターバル・タイマの割り込みのフローチャート........................................ 22
4.6.13 A/D コンバータ変換開始の設定 ............................................................................................ 23
4.6.14 電池電圧データを取得するフローチャート ......................................................................... 23
4.6.15 A/D コンバータ変換停止の設定 ............................................................................................ 24
4.6.16 タイマ・アレイ・ユニットチャネル 0 動作開始フローチャート ......................................... 24
4.6.17 タイマ・アレイ・ユニットチャネル 0 動作停止フローチャート ......................................... 25
4.6.18 タイマ・アレイ・ユニットチャネル 3 動作開始フローチャート ......................................... 25
4.6.19 タイマ・アレイ・ユニットチャネル 3 動作停止フローチャート ......................................... 26
4.6.20 ブザー警報開始のフローチャート ........................................................................................ 26
4.6.21 ブザー警報停止のフローチャート ........................................................................................ 27

R01AN4871JJ0100
2019.9.30

Rev.1.00

Page 2 of 28

RL78/G10
1.

ハンドソープ・オートディスペンサー

仕様

ハンドソープ・オートディスペンサーの電源を入れると、RL78/G10 は STOP モードになります。12
ビット・インターバル・タイマの割り込みで 50ms 毎に STOP モードを解除し、人感センサで手を検知します。手を検出すると電池電圧を確認します。電池電圧が 4.8V 未満 (モータ駆動電圧の下限) の場合、ブザーで 2 秒間警報して STOP モードに戻ります。電池電圧は 4.8V 以上の場合、LED を点滅させ、モータ駆動させて 2 秒間ハンドソープを吐出します。その後、STOP モードに戻ります。
図 1.1 にシステム構成概要を示します。

モータ

人感
センサ

ブザー

RL78/G10
マイクロコントローラ
LED

図 1.1

1.1

システム構成概要

DC モータ本アプリケーションノートでは、PWM 出力で DC モータの回転を制御します。DC モータ駆動には、電力損失を抑えるため、スイッチング速度が速く ON 抵抗が小さなパワーMOSFET を利用します。実際に回路を作成される場合は、電気的特性を満たすように適用する機種でご設計してください。

1.2

人感センサ

本アプリケーションノートでは、焦電型赤外線センサを搭載したモジュール (以下、人感センサ) を使用
しています。電源を入れて数秒後から、手などの 35℃程度の物体が動くと、ロー・レベル出力される仕様です。実際に回路を作成される場合は、電気的特性を満たすように設計してください。

R01AN4871JJ0100
2019.9.30

Rev.1.00

Page 3 of 28

RL78/G10
2.

ハンドソープ・オートディスペンサー

動作確認条件本アプリケーションノートは、下記の条件で動作を確認しています。
表 2.1

動作確認条件項目内容

使用マイコン

RL78/G10 (R5F10Y47ASP)

動作周波数



高速オンチップ・オシレータ (HOCO) クロック： 1.25MHz



CPU/周辺ハードウエア・クロック：1.25MHz

3.3V(2.7V～5.5V で動作可能)

動作電圧

SPOR 検出電圧：立ち上がり時 TYP. 2.90V (2.76V～3.02V)
立ち下がり時 TYP. 2.84V (2.70V～2.96V)
統合開発環境(CS+)

ルネサス エレクトロニクス製
CS+ for CC V6.01.00

C コンパイラ(CS+)

ルネサス エレクトロニクス製
CC-RL V1.06.00

統合開発環境(e2studio)

ルネサス エレクトロニクス製
e2studio V5.1.0.022

C コンパイラ(e2studio)

ルネサス エレクトロニクス製
CC-RL V1.06.00

注意

本アプリケーションノートのコードは、RL78/G10 (R5F10Y47ASP) のみに対応しています。

R01AN4871JJ0100
2019.9.30

Rev.1.00

Page 4 of 28

RL78/G10
3.

ハンドソープ・オートディスペンサー

ハードウェア説明

3.1

ハードウェア構成

図 3.1

ハードウェア構成に本アプリケーションノートで使用するハードウェア構成例を示します。

VDD

RL78/G10
オンチップ・デバッグ用

VDD
人感
センサ

P137

P02/PCLBUZ0

3.2

ブザー
制御回路

Vbat

Vbat

P01

電池

P03/ANI2

図 3.1

2

モータ
制御回路

P04/TO01

VDD
VSS

注意 1

LED

P05/TO02

P00

VDD

VDD

P07

RESET
P40/TOOL0(1.5V x4)

ハードウェア構成

この回路イメージは接続の概要を示す為に簡略化しています。実際に回路を作成される場合は、端子処理などを適切に行い、電気的特性を満たすように設計してください(入力専用ポートは個別に抵抗を介して VDD 又は VSS に接続して下さい)。
VDD は SPOR にて設定したリセット解除電圧(VSPOR)以上にしてください。

使用端子一覧

表 3.1 に使用端子と機能を示します。
表 3.1 使用端子と機能
端子名
P137
P07
P05/TO02
P04/TO01
P03/ANI2
P02/PCLBUZ0
P01
P00

R01AN4871JJ0100
2019.9.30

入出力
入力
入力
出力
出力
入力
出力
出力
出力

Rev.1.00

内容
人感センサから信号を入力
ハンドソープ吐出量の選択 (P07 = H : 多い、P07 = L : 少ない)
LED 制御モータ制御
電池電圧の計測
ブザー警報
電池電圧の計測回路制御
人感センサの電源制御

Page 5 of 28

RL78/G10

ハンドソープ・オートディスペンサー

4.

ソフトウェア説明

4.1

動作概要

ハンドソープ・オートディスペンサーの電源を入れると、RL78/G10 は STOP モードになります。12
ビット・インターバル・タイマの割り込みで 50ms 毎に STOP モードを解除し、人感センサで手を検知します。人感センサの出力レベル（P137 の入力電圧レベル）がロー・レベルのとき、手を検出したと判断します。
手を検出すると、A/D コンバータを使用して電池電圧を確認します。電池電圧が 4.8V 未満 (モータ駆動
電圧の下限) の場合、ブザーで 2 秒間警報して STOP モードに戻ります。電池電圧は 4.8V 以上の場合、
LED を点滅させ、モータ駆動させて 2 秒間ハンドソープを吐出します。その後、STOP モードに戻ります。

4.2

オプション・バイトの設定一覧

表 4.1 にオプション・バイトの設定を示します。
表 4.1

4.3

アドレス
000C0H

設定値
11101001B

000C1H
000C2H
000C3H

11110111B
11111101B
10000101B

オプション・バイト設定

内容
ウォッチドッグ・タイマ 動作停止
(リセット解除後、カウント停止)
SPOR 検出電圧：立ち上がり 2.90V、立ち下がり 2.84V
HOCO : 1.25MHz
オンチップ・デバッグ許可

変数一覧

表 4.2 にフローバル変数を示します。
表 4.2
型
uint8_tuint8_tuint16_t

変数名
g_count
g_edgeg_adc_ResultT

R01AN4871JJ0100
2019.9.30

Rev.1.00

グロバール変数内容
タイマーカウント
手検出フラグ
A/D 変換結果

使用関数
r_tau0_channel3_interrupt()main()
main()

Page 6 of 28

RL78/G10
4.4

ハンドソープ・オートディスペンサー

関数(サブルーチン)一覧

表 4.3 にサブルーチンの関数一覧を示します。
表 4.3

関数（サブルーチン）一覧

関数（サブルーチン）名概要
注
R_MAIN_UserInit
ユーザアプリケーション初期化処理
R_ADC_Start
A/D コンバータ開始
R_ADC_Get_Result()
A/D 変換結果を取得する関数
R_ADC_Stop()
A/D コンバータ停止
R_PCLBUZ0_Start()
ブザー警報を開始
R_PCLBUZ0_Stop()
ブザー警報を停止
R_TAU0_Channel0_Start()
PWM 出力開始と LED 点滅を開始
R_TAU0_Channel0_Stop()
PWM 出力停止と LED 点滅を停止
R_TAU0_Channel3_Start()
ブザー警報時間と吐出時間のカウントを開始
R_TAU0_Channel3_Stop()
ブザー警報時間と吐出時間のカウントを停止
注
統合開発環境で自動生成される関数です。

R01AN4871JJ0100
2019.9.30

Rev.1.00

Page 7 of 28

RL78/G10
4.5

ハンドソープ・オートディスペンサー

関数仕様

サンプルコードの関数仕様を示します。

[関数名] R_MAIN_UserInit
概要
ヘッダ

ユーザアプリケーション初期化関数
r_cg_macrodriver.hr_cg_userdefine.hvoid R_MAIN_UserInit(void)
アプリケーションの動作に必要な初期化処理を行います。
なし
なし
なし

宣言
説明
引数
リターン値
備考
[関数名] R_ADC_Start

A/D コンバータ変換許可
r_cg_macrodriver.hr_cg_adc.hr_cg_userdefine.hvoid R_ADC_Start(void)
A/D コンバータ変換許可。
なし
なし
なし

概要
ヘッダ

宣言
説明
引数
リターン値
備考

[関数名] R_ADC_Get_Result
概要
ヘッダ

電池電圧データの取得
r_cg_macrodriver.hr_cg_adc.hr_cg_userdefine.hvoid R_ADC_Get_Result (void)
A/D コンバータ変換結果
なし
なし
なし

宣言
説明
引数
リターン値
備考
[関数名] R_ADC_Stop
概要
ヘッダ

宣言
説明
引数
リターン値
備考

R01AN4871JJ0100
2019.9.30

A/D コンバータ変換停止
r_cg_macrodriver.hr_cg_adc.hr_cg_userdefine.hvoid R_ADC_Stop(void)
A/D コンバータ変換停止
なし
なし
なし

Rev.1.00

Page 8 of 28

RL78/G10

ハンドソープ・オートディスペンサー[関数名] R_PCLBUZ0_Start
概要
ヘッダ

宣言
説明
引数
リターン値
備考

ブザー警報を開始
r_cg_macrodriver.hr_cg_pclbuz.hr_cg_userdefine.hvoid R_PCLBUZ0_Start(void)
ブザー警報を開始なし
なし
なし[関数名] R_PCLBUZ0_Stop
概要
ヘッダ

宣言
説明
引数
リターン値
備考

ブザー警報を停止
r_cg_macrodriver.hr_cg_pclbuz.hr_cg_userdefine.h
R_PCLBUZ0_Stop(void)
ブザー警報を停止なし
なし
なし[関数名] R_TAU0_Channel0_Start
概要
ヘッダ

宣言
説明
引数
リターン値
備考

タイマ・アレイ・ユニットチャネル 0 を開始
r_cg_macrodriver.hr_cg_tau.hr_cg_userdefine.h
R_TAU0_Channel0_Start(void)
タイマ・アレイ・ユニットチャネル 0 を開始
なし
なし
なし

[関数名] R_TAU0_Channel0_Stop
概要
ヘッダ

宣言
説明
引数
リターン値
備考

R01AN4871JJ0100
2019.9.30

タイマ・アレイ・ユニットチャネル 0 を停止
r_cg_macrodriver.hr_cg_tau.hr_cg_userdefine.h
R_TAU0_Channel0_Stop(void)
タイマ・アレイ・ユニットチャネル 0 を停止
なし
なし
なし

Rev.1.00

Page 9 of 28

RL78/G10

ハンドソープ・オートディスペンサー[関数名] R_TAU0_Channel3_Start
概要
ヘッダ

宣言
説明
引数
リターン値
備考

タイマ・アレイ・ユニットチャネル 0 を開始
r_cg_macrodriver.hr_cg_adc.hr_cg_userdefine.h
R_TAU0_Channel3_Start(void)
タイマ・アレイ・ユニットチャネル 0 を開始
なし
なし
なし

[関数名] R_TAU0_Channel3_Stop
概要
ヘッダ

宣言
説明
引数
リターン値
備考

[関数名] main
概要
宣言
説明
引数
リターン値
備考

R01AN4871JJ0100
2019.9.30

タイマ・アレイ・ユニットチャネル 3 を停止
r_cg_macrodriver.hr_cg_adc.hr_cg_userdefine.h
R_TAU0_Channel3_Stop(void)
タイマ・アレイ・ユニットチャネル 3 を停止
なし
なし
なし

メイン関数
―
サンプルコードの main 処理関数です。
なし
なし
なし

Rev.1.00

Page 10 of 28

RL78/G10
4.6

ハンドソープ・オートディスペンサー

フローチャート

図 4.1 に本アプリケーションノートの全体フローを示します。

Start

初期設定関数
hdwinit()
メイン処理
main()

End

図 4.1

4.6.1

全体フロー

初期設定関数

図 4.2 に初期設定関数のフローチャートを示します。

hdwinit()

割り込み禁止DI ← 0システム関数
R_Systeminit()

内蔵周辺機能の初期設定

return
図 4.2

R01AN4871JJ0100
2019.9.30

Rev.1.00

初期設定関数

Page 11 of 28

RL78/G10
4.6.2

ハンドソープ・オートディスペンサー

システム関数

図 4.3 にシステム関数のフローチャートを示します。

R_Systeminit()

PIORレジスタ ← 0x00

周辺I/Oリダイレクション設定

ポート設定
R_PORT_Create()
CPUクロックの初期設定
R_CGC_Create()
タイマ・アレイ・
ユニットの設定
R_TAU0_Create()
ブザーの設定R_PCLBUZ0_Create()
ADCの設定R_ADC_Create()
12ビット・インターバ
ル・タイマーの設定
R_IT_Create()

return
図 4.3

R01AN4871JJ0100
2019.9.30

Rev.1.00

システム関数

Page 12 of 28

RL78/G10
4.6.3

ハンドソープ・オートディスペンサー

入出力ポート設定

図 4.4 に入出力ポート設定のフローチャートを示します。

R_PORT_Create()

ポート・レジスタの設定

P0.0 ← 0：P00 の出力ラッチに 0 を設定
P0.1 ← 0：P01 の出力ラッチに 0 を設定

ポート・モード・コントロー
ル・レジスタの設定

PMC0.0 ビット ← 0：デジタル入出力を設定
PMC0.1 ビット ← 0：デジタル入出力を設定

ポート・モードレジスタの設定

PM0.0 ビット ← 0：出力モードを設定
PM0.1 ビット← 0：出力モードを設定
PM0.7 ビット← 1：入力モードを設定

return

図 4.4

入出力ポート設定

注意 1

各種周辺機能の兼用機能としてポートを使用する場合のレジスタ設定方法は、RL78/G10 ユーザー
ズマニュアル ハードウェア編を参照してください。

2

未使用のポートは、端子処理などを適切に行い、電気的特性を満たすように設計してください。
また、未使用の入力専用ポートは個別に抵抗を介して VDD 又は VSS に接続して下さい。

R01AN4871JJ0100
2019.9.30

Rev.1.00

Page 13 of 28

RL78/G10
4.6.4

ハンドソープ・オートディスペンサー

CPU クロック設定

図 4.5 に CPU クロック設定のフローチャートを示します。

R_CGC_Create()

クロック動作モードの設定

CMCレジスタ ← 00H
X1, X2 : 入力ポート・モード

高速システム・クロックの設定

MSTOP ビット ← 1
X1 発振回路停止

メイン・システム・クロックの動作制御

MCM0ビット ← 0
fIH を選択

動作スピード・モードの設定

OSMCレジスタ ← 10H
fIL 供給高速オンチップ・オシレータ・クロックの動作の設定

HIOSTOPビット ← 0

return

図 4.5

R01AN4871JJ0100
2019.9.30

Rev.1.00

CPU クロックの設定

Page 14 of 28

RL78/G10
4.6.5

ハンドソープ・オートディスペンサー

タイマ・アレイ・ユニットの設定

図 4.6 と図 4.7 にタイマ・アレイ・ユニットの設定のフローチャートを示します。

R_TAU0_Create()

タイマ・アレイ・ユニットへ
クロック供給TAU0ENビット ← 1

TAUの動作クロックを設定

TPS0レジスタ ← 0x10

タイマ・アレイ・ユニットの全チャネルの動作を停止

TTH0レジスタ ← 0x0A
TT0レジスタ ← 0x0F

タイマ・アレイ・ユニットの割り込みを全て禁止

チャネル3の割り込み優先順位設定
チャネル0の初期設定
・動作クロック：CK00を設定
・動作モード：インターバル・タイマ・モード（PWM出力(マスタ)）・複数チャネル動作機能
・ソフトウェア・トリガ・スタート
・チャネル0の初期出力値”０”・チャネル0の出力禁止

チャネル1の初期設定
・動作クロック：CK00を設定
・動作モード：インターバル・タイマ・モード(PWM出力(スレーブ))
・複数チャネル動作機能
・ソフトウェア・トリガ・スタート
・チャネル1の初期出力値”０”・チャネル1の出力許可

TMMK00ビット ← 1
TMIF00ビット ← 0
TMMK01ビット ← 1
TMIF01ビット ← 0
TMMK01Hビット ← 1
TMIF01Hビット ← 0
TMMK02ビット ← 1
TMIF02ビット ← 0
TMMK03ビット ← 1
TMIF03ビット ← 0
TMMK03Hビット ← 1
TMIF03Hビット ← 0

TMPR103ビット ← 1
TMPR003ビット ← 1
TMR00Hレジスタ ← 0x00
TMR00Lレジスタ ← 0x01
TDR00Hレジスタ ←0x61
TDR00Lレジスタ ←0xA7
TO0レジスタ ←0x00
TOE0レジスタ ←0x00

TMR01Hレジスタ ← 0x04
TMR01Lレジスタ ← 0x09
TDR01Hレジスタ ←0x49
TDR01Lレジスタ ←0x3E
TOM0レジスタ ←0x02
TOL0レジスタ ←0x02
TO0レジスタ ←0x00
TOE0レジスタ ←0x00

A

図 4.6
R01AN4871JJ0100
2019.9.30

Rev.1.00

タイマ・アレイ・ユニットの設定(1/2)
Page 15 of 28

RL78/G10

ハンドソープ・オートディスペンサー

A

チャネル2の初期設定
・動作クロック：CK00を設定
・動作モード：インターバル・タイマ・モード(PWM出力(スレーブ))
・複数チャネル動作機能
・ソフトウェア・トリガ・スタート
・チャネル2の初期出力値”０”・チャネル2の出力許可

TMR02Hレジスタ ← 0x04
TMR02Lレジスタ ← 0x09
TDR02Hレジスタ ←0x30
TDR02Lレジスタ ←0xD4
TOM0レジスタ ←0x04
TOL0レジスタ ←0x04
TO0レジスタ ←0x00
TOE0レジスタ ←0x00

チャネル3の初期設定
・動作クロック：CK00を設定
・動作モード：インターバル・タイマ・モード(インターバル・タイマ)
・複数チャネル動作機能
・ソフトウェア・トリガ・スタート
・チャネル3の初期出力値”０”・チャネル3の出力許可

TMR03Hレジスタ ← 0x80
TMR03Lレジスタ ← 0x00
TDR03Hレジスタ ←0xF4
TDR03Lレジスタ ←0x23
TOM0レジスタ ←0x08
TOL0レジスタ ←0x08
TO0レジスタ ←0x00
TOE0レジスタ ←0x00

P04を出力ポートに設定

PMC0レジスタ ← 0xEF
P0レジスタ ← 0xEF
PM0レジスタ ←0xEF

P05を出力ポートに設定

PMC0レジスタ ← 0xDF
P0レジスタ ← 0xDF
PM0レジスタ ←0xDF

return

図 4.7

R01AN4871JJ0100
2019.9.30

Rev.1.00

タイマ・アレイ・ユニットの設定(2/2)

Page 16 of 28

RL78/G10
4.6.6

ハンドソープ・オートディスペンサー

ブザー警報の設定

図 4.8 にブザー警報の設定のフローチャートを示します。

R_PCLBUZ0_Create()

ブザー端子の出力禁止

PCLBUZ0ビット ← 0

ブザー端子の出力クロックの設定

CKS0レジスタ ← 02H

PMC0レジスタ ← FBH
P0レジスタ ← FBH
PM0レジスタ ← FBH

ブザー端子の出力の設定

return

図 4.8

R01AN4871JJ0100
2019.9.30

Rev.1.00

ブザー警報の設定

Page 17 of 28

RL78/G10
4.6.7

ハンドソープ・オートディスペンサー

A/D コンバータの設定

図 4.9 に A/D コンバータの設定のフローチャートを示します。

R_ADC_Create()

A/D コンバータへクロック供給

ADCEN ビット ← 1：入力クロック供給開始

A/D コンバータの初期設定
・変換時間を約 4.6μs に設定

ADM0 レジスタ ← 00H

INTAD 割り込み禁止
INTAD 割り込みフラグクリア

ADMK ビット← 1
ADIF ビット ← 0
ADPR1 ビット← 1

優先順位の設定

ADPR0 ビット ← 1

ANI2 チャネルのA/D コンバータ変換の設定
アナログ入力チャネル指定

A/D コンバータ変換動作許可(変換動作状態)

PMC0 レジスタ ← 0x08
PM0 レジスタ ← 0x08
ADM0 レジスタ ← 18H
ADM2 レジスタ ← 00H
ADS レジスタ ← 0x02

ADCE ビット ← 1

return

図 4.9

R01AN4871JJ0100
2019.9.30

Rev.1.00

A/D コンバータの設定

Page 18 of 28

RL78/G10
4.6.8

ハンドソープ・オートディスペンサー

12 ビット・インターバル・タイマの設定

図 4.10 に 12 ビット・インターバル・タイマの設定のフローチャートを示します。

R_IT_Create()

TMKAEN ← 1

入力クロック供給停止

インターバル・タイマ・コントロールの設定

割り込みマスク・フラグ許可

割り込み要求フラグをクリア

INTITの優先順位の設定

ITMCHレジスタ ←00H

ITMK ← 1

ITIF ← 0

ITPR1 ← 1
ITPR0 ← 1
ITMCH ← 0x02
ITMCL ← 0xED

return

図 4.10

R01AN4871JJ0100
2019.9.30

Rev.1.00

12 ビット・インターバル・タイマの設定

Page 19 of 28

RL78/G10
4.6.9

ハンドソープ・オートディスペンサー

メイン処理

図 4.11 にメイン処理のフローチャートを示します。

main()
初期化
12ビット・インターバル・タイマ割り込み(50ms毎)人感センサに電源を供給
NO

手を検出した?
YESNO

吐出量：少?
YES
吐出量：少

吐出量：多

電池電圧計測回路の動作開始
P0_bit.no1 = 1
A/D変換開始
R_ADC_Start()
HALT
INTAD
電池電圧データを取得する
R_ADC_Get_Result()
A/Dコンバータ停止
R_ADC_Stop()
電池電圧計測回路の動作停止
P0_bit.no1 = 0
電池電圧は4.8V未満?

NO

YES
ブザー警報
R_PCLBUZ0_Start()

吐出時間のカウントを初期化

吐出停止、LED消灯
R_TAU0_Channel0_Stop()

吐出時間のカウントを開始
R_TAU0_Channel3_Start()

ブザー警報のカウントを初期化
吐出時間が2秒を超えた?
2秒カウントを開始
R_TAU0_Channel3_Start()

NO

NO

YES
吐出停止、LED消灯
R_TAU0_Channel0_Stop()

吐出、LED点滅
R_TAU0_Channel0_Start()

警報時間が2秒を超過?
YES
2秒カウントを停止
R_TAU0_Channel3_Stop()

2秒カウントを停止
R_TAU0_Channel3_Stop()

ブザー警報のカウントをクリア

吐出時間のカウントをクリア

ブザー警報を停止
R_PCLBUZ0_Stop()

手検出フラグをクリア

人感センサの電源を遮断
STOP

図 4.11
R01AN4871JJ0100
2019.9.30

Rev.1.00

メイン処理のフローチャート
Page 20 of 28

RL78/G10
4.6.10

ハンドソープ・オートディスペンサー

初期化関数

図 4.12 に初期化表示設定のフローチャートを示します。

R_MAIN_UserInit()
R_IT_Start()

EI

return

図 4.124.6.11

初期化表示設定

12 ビットインターバル・タイマ開始設定フローチャート

図 4.13 に 12 ビットインターバル・タイマ開始設定フローチャートを示します。

R_IT_Start()

ITIF

割り込みフラグをクリア←

0

ITMK ← 0

割り込み許可12ビットインターバルタイマー動
作許可

ITMCH

←

0x80

return

図 4.13

R01AN4871JJ0100
2019.9.30

Rev.1.00

12 ビットインターバル・タイマ開始設定

Page 21 of 28

RL78/G10
4.6.12

ハンドソープ・オートディスペンサー

12 ビット・インターバル・タイマの割り込みのフローチャート

図 4.14 に 12 ビット・インターバル・タイマの割り込みの設定のフローチャートを示します。

12ビット・インターバル
割り込み

人感センサの電源供給
P0_bit.no0 = 1
人感センサのポート状態を左シフトして、取り込めるように準備する
g_port = ( g_port << 1 )手は未検出？
P13_bit.no7 == 1

NO

YES
変数に取り込み
g_port += 1

手を検出した？
( g_port & 0b00000011 )== 0b00000010

NO

YES
手検出フラグをセット
g_edge = 0x01

Return

図 4.14

R01AN4871JJ0100
2019.9.30

Rev.1.00

12 ビット・インターバル・タイマの割り込みの設定

Page 22 of 28

RL78/G10
4.6.13

ハンドソープ・オートディスペンサー

A/D コンバータ変換開始の設定

図 4.15 に A/D コンバータ動作開始のフローチャートを示します。

R_ADC_Start()

INTAD割り込みフラグクリア

ADIFビット←0

INTAD 割り込み許可

ADMK ビット←0

A/D 変換動作許可

ADCS ビット←1

return

図 4.154.6.14

A/D コンバータ動作開始設定

電池電圧データを取得するフローチャート

図 4.16 に電池電圧データを取得するフローチャートを示します。

R_ADC_Get_Result()

ADCRレジスタのデータをバッファに格納*buffer = (uint16_t) (ADCR >> 6U)

return

図 4.16

R01AN4871JJ0100
2019.9.30

Rev.1.00

電池電圧データを取得するフローチャート

Page 23 of 28

RL78/G10
4.6.15

ハンドソープ・オートディスペンサー

A/D コンバータ変換停止の設定

図 4.17 に A/D コンバータ動作停止のフローチャートを示します。

R_ADC_Stop()
A/D 変換動作禁止

ADCS ビット←0

INTAD 割り込み許可

ADMK ビット←1

INTAD割り込みフラグクリア

ADIFビット←0

return

図 4.174.6.16

A/D コンバータ動作停止の設定

タイマ・アレイ・ユニットチャネル 0 動作開始フローチャート

図 4.18 にタイマ・アレイ・ユニットチャネル 0 動作開始のフローチャートを示します。

R_TAU0_Channel0_Start()

チャネル出力許可

TOE0レジスタ ← 0x06

タイマ・アレイ・ユニットのチャネル0,1,2動作許可

TS0レジスタ ← 0x07

return

図 4.18R01AN4871JJ0100
2019.9.30

Rev.1.00

タイマ・アレイ・ユニットチャネル 0 動作開始の設定

Page 24 of 28

RL78/G10
4.6.17

ハンドソープ・オートディスペンサー

タイマ・アレイ・ユニットチャネル 0 動作停止フローチャート

図 4.19 にタイマ・アレイ・ユニットチャネル 0 動作停止のフローチャートを示します。

R_TAU0_Channel0_Stop()

タイマ・アレイ・ユニットの0,1,2チャネルの動作を停止

チャネル出力禁止

TT0レジスタ ← 0x07

TOE0レジスタ ← 0xF9

return

図 4.194.6.18

タイマ・アレイ・ユニットチャネル 0,1,2 動作停止

タイマ・アレイ・ユニットチャネル 3 動作開始フローチャート

図 4.20 にタイマ・アレイ・ユニットチャネル 3 動作開始のフローチャートを示します。

R_TAU0_Channel3_Start()
割り込みフラグをクリア
割り込み許可割り込み要求許可

動作許可

TMIF03 ← 0

TMMK03 ← 0

TS0レジスタ ← 0x08

return

図 4.20

R01AN4871JJ0100
2019.9.30

Rev.1.00

タイマ・アレイ・ユニットチャネル 3 動作開始

Page 25 of 28

RL78/G10
4.6.19

ハンドソープ・オートディスペンサー

タイマ・アレイ・ユニットチャネル 3 動作停止フローチャート

図 4.21 にタイマ・アレイ・ユニットチャネル 3 動作停止のフローチャートを示します。

R_TAU0_Channel3_Stop()

TT0レジスタ ← 0x08

動作禁止

割り込み禁止TMMK03 ← 1

割り込みフラグをクリア

TMIF03 ← 0

return

図 4.21

4.6.20

タイマ・アレイ・ユニットチャネル 3 動作停止の設定

ブザー警報開始のフローチャート

図 4.22 にブザー警報開始の設定のフローチャートを示します。

R_PCLBUZ0_Start()

ブザー出力開始

PCLOE0 ← 1

return

図 4.22

R01AN4871JJ0100
2019.9.30

Rev.1.00

ブザー警報開始の設定

Page 26 of 28

RL78/G10
4.6.21

ハンドソープ・オートディスペンサー

ブザー警報停止のフローチャート

図 4.23 にブザー警報停止の設定のフローチャートを示します。

R_PCLBUZ0_Stop()

ブザー出力停止PCLOE0 ← 0

return

図 4.23

R01AN4871JJ0100
2019.9.30

Rev.1.00

ブザー警報停止設定

Page 27 of 28

RL78/G10

ハンドソープ・オートディスペンサー

ルネサス エレクトロニクスホームページ
http://japan.renesas.com/
お問合せ先
http://japan.renesas.com/contact/

すべての商標および登録商標は，それぞれの所有者に帰属します。

R01AN4871JJ0100
2019.9.30

Rev.1.00

Page 28 of 28

改訂記録
Rev.
1.00

発行日
2019.9.30

ページ
-

改訂内容
ポイント
初版発行

製品ご使用上の注意事項
ここでは、マイコン製品全体に適用する「使用上の注意事項」について説明します。個別の使用上の注意事項については、本ドキュメントおよびテク
ニカルアップデートを参照してください。
1.

静電気対策
CMOS 製品の取り扱いの際は静電気防止を心がけてください。CMOS 製品は強い静電気によってゲート絶縁破壊を生じることがあります。運搬や保存の際には、当社が出荷梱包に使用している導電性のトレーやマガジンケース、導電性の緩衝材、金属ケースなどを利用し、組み立て工程にはアースを施してください。プラスチック板上に放置したり、端子を触ったりしないでください。また、CMOS 製品を実装したボードについても同様の扱いをしてください。

2.

電源投入時の処置
電源投入時は、製品の状態は不定です。電源投入時には、LSI の内部回路の状態は不確定であり、レジスタの設定や各端子の状態は不定です。外部
リセット端子でリセットする製品の場合、電源投入からリセットが有効になるまでの期間、端子の状態は保証できません。同様に、内蔵パワーオン
リセット機能を使用してリセットする製品の場合、電源投入からリセットのかかる一定電圧に達するまでの期間、端子の状態は保証できません。

3.

電源オフ時における入力信号
当該製品の電源がオフ状態のときに、入力信号や入出力プルアップ電源を入れないでください。入力信号や入出力プルアップ電源からの電流注入により、誤動作を引き起こしたり、異常電流が流れ内部素子を劣化させたりする場合があります。資料中に「電源オフ時における入力信号」についての記載のある製品は、その内容を守ってください。

4.

未使用端子の処理
未使用端子は、「未使用端子の処理」に従って処理してください。CMOS 製品の入力端子のインピーダンスは、一般に、ハイインピーダンスとなっています。未使用端子を開放状態で動作させると、誘導現象により、LSI 周辺のノイズが印加され、LSI 内部で貫通電流が流れたり、入力信号と認識されて誤動作を起こす恐れがあります。

5.

クロックについてリセット時は、クロックが安定した後、リセットを解除してください。プログラム実行中のクロック切り替え時は、切り替え先クロックが安定した
後に切り替えてください。リセット時、外部発振子（または外部発振回路）を用いたクロックで動作を開始するシステムでは、クロックが十分安定した後、リセットを解除してください。また、プログラムの途中で外部発振子（または外部発振回路）を用いたクロックに切り替える場合は、切り替え先のクロックが十分安定してから切り替えてください。

6.

入力端子の印加波形
入力ノイズや反射波による波形歪みは誤動作の原因になりますので注意してください。CMOS 製品の入力がノイズなどに起因して、VIL（Max.）から
VIH（Min.）までの領域にとどまるような場合は、誤動作を引き起こす恐れがあります。入力レベルが固定の場合はもちろん、VIL（Max.）から VIH（Min.）までの領域を通過する遷移期間中にチャタリングノイズなどが入らないように使用してください。

7.

リザーブアドレス（予約領域）のアクセス禁止
リザーブアドレス（予約領域）のアクセスを禁止します。アドレス領域には、将来の拡張機能用に割り付けられている リザーブアドレス（予約領域）があります。これらのアドレスをアクセスしたときの動作については、保証できませんので、アクセスしないようにしてください。

8.

製品間の相違について
型名の異なる製品に変更する場合は、製品型名ごとにシステム評価試験を実施してください。同じグループのマイコンでも型名が違うと、フラッ
シュメモリ、レイアウトパターンの相違などにより、電気的特性の範囲で、特性値、動作マージン、ノイズ耐量、ノイズ幅射量などが異なる場合があります。型名が違う製品に変更する場合は、個々の製品ごとにシステム評価試験を実施してください。

ご注意書き1.

本資料に記載された回路、ソフトウェアおよびこれらに関連する情報は、半導体製品の動作例、応用例を説明するものです。お客様の機器・システ
ムの設計において、回路、ソフトウェアおよびこれらに関連する情報を使用する場合には、お客様の責任において行ってください。これらの使用に起因して生じた損害（お客様または第三者いずれに生じた損害も含みます。以下同じです。）に関し、当社は、一切その責任を負いません。

2.

当社製品、本資料に記載された製品デ－タ、図、表、プログラム、アルゴリズム、応用回路例等の情報の使用に起因して発生した第三者の特許権、著作権その他の知的財産権に対する侵害またはこれらに関する紛争について、当社は、何らの保証を行うものではなく、また責任を負うものではあ
りません。

3.

当社は、本資料に基づき当社または第三者の特許権、著作権その他の知的財産権を何ら許諾するものではありません。

4.

当社製品を、全部または一部を問わず、改造、改変、複製、リバースエンジニアリング、その他、不適切に使用しないでください。かかる改造、改変、複製、リバースエンジニアリング等により生じた損害に関し、当社は、一切その責任を負いません。

5.

当社は、当社製品の品質水準を「標準水準」および「高品質水準」に分類しており、各品質水準は、以下に示す用途に製品が使用されることを意図しております。
標準水準：

コンピュータ、OA 機器、通信機器、計測機器、AV 機器、家電、工作機械、パーソナル機器、産業用ロボット等

高品質水準： 輸送機器（自動車、電車、船舶等）、交通制御（信号）、大規模通信機器、金融端末基幹システム、各種安全制御装置等
当社製品は、データシート等により高信頼性、Harsh environment 向け製品と定義しているものを除き、直接生命・身体に危害を及ぼす可能性のある機器・システム（生命維持装置、人体に埋め込み使用するもの等）、もしくは多大な物的損害を発生させるおそれのある機器・システム（宇宙機器と、海底中継器、原子力制御システム、航空機制御システム、プラント基幹システム、軍事機器等）に使用されることを意図しておらず、これらの用途に使用することは想定していません。たとえ、当社が想定していない用途に当社製品を使用したことにより損害が生じても、当社は一切その責任を負いません。
6.

当社製品をご使用の際は、最新の製品情報（データシート、ユーザーズマニュアル、アプリケーションノート、信頼性ハンドブックに記載の「半導体デバイスの使用上の一般的な注意事項」等）をご確認の上、当社が指定する最大定格、動作電源電圧範囲、放熱特性、実装条件その他指定条件の範囲内でご使用ください。指定条件の範囲を超えて当社製品をご使用された場合の故障、誤動作の不具合および事故につきましては、当社は、一切その責任を負いません。

7.

当社は、当社製品の品質および信頼性の向上に努めていますが、半導体製品はある確率で故障が発生したり、使用条件によっては誤動作したりする場合があります。また、当社製品は、データシート等において高信頼性、Harsh environment 向け製品と定義しているものを除き、耐放射線設計を行っておりません。仮に当社製品の故障または誤動作が生じた場合であっても、人身事故、火災事故その他社会的損害等を生じさせないよう、お客様の責任において、冗長設計、延焼対策設計、誤動作防止設計等の安全設計およびエージング処理等、お客様の機器・システムとしての出荷保証を行ってください。特に、マイコンソフトウェアは、単独での検証は困難なため、お客様の機器・システムとしての安全検証をお客様の責任で行って
ください。

8.

当社製品の環境適合性等の詳細につきましては、製品個別に必ず当社営業窓口までお問合せください。ご使用に際しては、特定の物質の含有・使用を規制する RoHS 指令等、適用される環境関連法令を十分調査のうえ、かかる法令に適合するようご使用ください。かかる法令を遵守しないことにより生じた損害に関して、当社は、一切その責任を負いません。

9.

当社製品および技術を国内外の法令および規則により製造・使用・販売を禁止されている機器・システムに使用することはできません。当社製品および技術を輸出、販売または移転等する場合は、「外国為替及び外国貿易法」その他日本国および適用される外国の輸出管理関連法規を遵守し、それらの定めるところに従い必要な手続きを行ってください。

10. お客様が当社製品を第三者に転売等される場合には、事前に当該第三者に対して、本ご注意書き記載の諸条件を通知する責任を負うものといたします。
11. 本資料の全部または一部を当社の文書による事前の承諾を得ることなく転載または複製することを禁じます。
12. 本資料に記載されている内容または当社製品についてご不明な点がございましたら、当社の営業担当者までお問合せください。
注 1. 本資料において使用されている「当社」とは、ルネサス エレクトロニクス株式会社およびルネサス エレクトロニクス株式会社が直接的、間接的に支配する会社をいいます。
注 2. 本資料において使用されている「当社製品」とは、注 1 において定義された当社の開発、製造製品をいいます。
(Rev.4.0-1 2017.11)

本社所在地

お問合せ窓口〒135-0061 東京都江東区豊洲 3-2-24（豊洲フォレシア）弊社の製品や技術、ドキュメントの最新情報、最寄の営業お問合せ窓

www.renesas.com

口に関する情報などは、弊社ウェブサイトをご覧ください。
www.renesas.com/contact/

商標についてルネサスおよびルネサスロゴはルネサス エレクトロニクス株式会社の商標です。すべての商標および登録商標は、それぞれの所有者に帰属します。