68
00000-A Rev. 0.00 ルネサス エレクトロニクス株式会社 ルネサス半導体トレーニングセンター © 2013 Renesas Electronics Corporation. All rights reserved. 2013/08/02 RL78/G13 周辺機能紹介 SAU シリアル・アレイ・ユニット

RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

  • Upload
    vothuan

  • View
    264

  • Download
    1

Embed Size (px)

Citation preview

Page 1: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

00000-A

Rev. 0.00

ルネサス エレクトロニクス株式会社

ルネサス半導体トレーニングセンター

© 2013 Renesas Electronics Corporation. All rights reserved.

2013/08/02

RL78/G13 周辺機能紹介 SAU シリアル・アレイ・ユニット

Page 2: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 2

コンテンツ

SAUの概要

UART通信機能のプログラム・サンプル紹介

Page 3: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 3

SAUの概要

Page 4: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 4

SAUの機能

クロック同期式 調歩同期式 マスタ動作のみ

チャネル0:送信 チャネル1:受信

Page 5: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 5

UART通信機能のプログラム・サンプル紹介

Page 6: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 6

仕様(1/2)

■ UART通信機能のプログラム例 対向機器から受信を行い、受信キャラクタまたは受信エラーの種別に応じたメッセージを送信します。受信と送信の対応は以下の通りです。

受信キャラクタ 応答メッセージ

’T’ ”OK¥r¥n”

’t’ ”ok¥r¥n”

上記以外 ”UC¥r¥n”

受信エラー 応答メッセージ

パリティ・エラー ”PE¥r¥n”

フレーミング・エラー ”OE¥r¥n”

オーバーラン・エラー ”FE¥r¥n”

Page 7: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 7

仕様(2/2)

<設定条件> •高速オンチップオシレータのクロックは32MHzで動作します。 •CPU/周辺ハードウェア・クロックは32MHzで動作します。 •SAU0チャネル0、1をUARTとして使用します。 •データ出力はP12/TxD0端子、データ入力はP11/RxD0端子を使用します。 •データ長は8ビットを使用します。 •データ転送方向設定はLSBファーストを使用します。 •パリティ設定は偶数パリティを使用します。 •受信データ・レベル設定は標準を使用します。 •転送レートは9600bps を使用します。 •受信完了割り込み(INTSR0)、送信完了割り込み(INTST0)、エラー割り込み (INTSRE0)を使用します。 •INTSR0、INTST0、INTSRE0 の割り込み優先順位は低優先を使用します。

Page 8: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 8

初期設定のフロー

Page 9: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 9

シリアル・アレイ・ユニットの設定フロー

fCLKの4クロック以上間隔をあける

Page 10: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 10

シリアル・アレイ・ユニットへのクロック供給開始

周辺イネーブル・レジスタ0(PER0) 各周辺ハードウエアへのクロック供給許可/禁止の設定

シリアル・アレイ・ユニットへのクロック供給開始

Page 11: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

SAUの動作クロックと転送クロック

11

シリアル・アレイ・ユニット0

fCLK 32MHz

セレクタ

セレクタ

チャネル0

外部クロック

外部クロック

0

セレクタ クロック0

クロック1

セレクタ

fMCK

プリスケーラ

レジスタ

16

16

クロック 制御

fTCLK

チャネル1

0

セレクタ

セレクタ

fMCK

クロック 制御

fTCLK

ユニット0共通の 2種類のクロック

2種類のクロックと 外部クロックから

選択 分周

転送クロック

Page 12: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

クロック周波数の設定

シリアル・クロック選択レジスタ0(SPS0) CK00、CK01動作クロックの設定

CK01 CK00

12

0 1 0 0 0 1 0 0

サンプルの 周辺ハードウエア・クロック

クロック周波数の設定

Page 13: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

シリアル・アレイ・ユニットの設定関数

13

fCLKの4クロック以上間隔をあける

void R_SAU0_Create(void) { SAU0EN = 1; NOP(); NOP(); NOP(); NOP(); SPS0 = 0x0044; R_UART0_Create(); }

Page 14: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

UART0の設定フロー(1/4)

14

R_UART0_Create()

チャネルの動作停止

割り込みの禁止

チャネル0の設定 ・動作モードの設定 ・通信動作の設定

・転送クロックの設定

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

割り込み優先度の設定

1

RxD端子のノイズ・フィルタの設定

エラー・フラグのクリア

入出力端子の設定

チャネル1の設定 ・動作モードの設定 ・通信動作の設定

・転送クロックの設定

チャネル0の出力の設定

1

return

Page 15: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

チャネルの動作停止

15

シリアル・チャネル停止レジスタ0(ST0) チャネルの動作停止

チャネル0 チャネル1

Page 16: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

割り込みの禁止

割り込みマスク・フラグ・レジスタ(MK0H) 対応するマスカブル割り込み処理の許可/禁止を設定

受信完了割り込み SRMK0ビット

送信完了割り込み STMK0ビット

エラー割り込み SREMK0ビット

16

Page 17: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

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

割り込み要求フラグ・レジスタ(IF0H) 対応する割り込み要求の発生または命令の実行によりセット リセット信号発生時または命令の実行によりクリア 割り込みが受け付けられた場合は自動的にクリア

受信完了割り込み SRIF0ビット

送信完了割り込み STIF0ビット

エラー割り込み SREIF0ビット

17

Page 18: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

割り込み優先順位レベルの設定

優先順位指定フラグ・レジスタ(PR00H, PR10H) PR00HレジスタとPR10Hレジスタを組み合わせて,対応するマスカブル割り込み

の優先順位レベルを設定

受信完了割り込み SRPR00、10ビット

送信完了割り込み STPR00、10ビット

エラー割り込み SREPR00、10ビット

18

Page 19: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

UART0の設定関数(1/4)

19

NFEN0 |= 0x01; SIR01 = 0x0007; SMR01 = 0x0122; SCR01 = 0x4697; SDR01 = 0xce00; SO0 |= 0x0001; SOL0 |= 0x0000; SOE0 |= 0x0001; PM1 |= 0x02; P1 |= 0x04; PM1 &= 0xfb; }

R_UART0_Create()

チャネルの動作停止

割り込みの禁止

チャネル0の設定 ・動作モードの設定 ・通信動作の設定

・転送クロックの設定

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

割り込み優先順位レベルの設定

1

void R_UART0_Create(void) { ST0 |= 0x0003; STMK0 = 1; STIF0 = 0; SRMK0 = 1; SRIF0 = 0; SREMK0 = 1; SREIF0 = 0; STPR10 = 1; STPR00 = 1; SRPR10 = 1; SRPR00 = 1; SREPR10 = 1; SREPR00 = 1; SMR00 = 0x0022; SCR00 = 0x8297; SDR00 = 0xce00;

Page 20: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

UART0の設定フロー(2/4)

20

R_UART0_Create()

チャネルの動作停止

割り込みの禁止

チャネル0の設定 ・動作モードの設定 ・通信動作の設定

・転送クロックの設定

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

割り込み優先順位レベルの設定

1

送信

Page 21: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの動作モードの設定(1/4)

シリアル・モード・レジスタ00(SMR00) 動作クロックの選択

21

クロック0=2MHz

クロック1=2MHz

UART通信モードでは設定固定

クロック0=2MHz

Page 22: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの動作モードの設定(2/4)

シリアル・モード・レジスタ00(SMR00) スタート・トリガ要因の選択

22

UART送信モードでは設定固定

Page 23: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの動作モードの設定(3/4)

シリアル・モード・レジスタ00(SMR00) 動作モードの設定

23

UART通信モードでは設定固定

Page 24: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの動作モードの設定(4/4)

シリアル・モード・レジスタ00(SMR00) 割り込み要因の選択

24

Page 25: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの通信動作の設定(1/7)

シリアル通信動作設定レジスタ00(SCR00) 動作モードの設定

25

UART送信モードでは設定固定

Page 26: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの通信動作の設定(2/7)

シリアル通信動作設定レジスタ00(SCR00) データとクロックの位相選択

26

UART通信モードでは設定固定

Page 27: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの通信動作の設定(3/7)

シリアル通信動作設定レジスタ00(SCR00) エラー割り込み信号のマスク可否の選択

UART送信モードでは設定固定

27

Page 28: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの通信動作の設定(4/7)

シリアル通信動作設定レジスタ00(SCR00) パリティ・ビットの設定

28

Page 29: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの通信動作の設定(5/7)

シリアル通信動作設定レジスタ00(SCR00) データ転送順序の選択

29

Page 30: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの通信動作の設定(6/7)

シリアル通信動作設定レジスタ00(SCR00) ストップ・ビットの設定

30

Page 31: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの通信動作の設定(7/7)

シリアル通信動作設定レジスタ00(SCR00) データ長の設定

31

Page 32: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの転送クロックの設定

シリアル・データ・レジスタ00(SDR00) 動作クロックの分周設定

32

1 1 0 0 1 1 1 fMCK/208

fMCK = 2MHz

2MHz/208 ≒ 9600Hz

Page 33: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 33

UART0の設定関数(2/4)

R_UART0_Create()

チャネルの動作停止

割り込みの禁止

チャネル0の設定 ・動作モードの設定 ・通信動作の設定

・転送クロックの設定

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

割り込み優先順位レベルの設定

1

NFEN0 |= 0x01; SIR01 = 0x0007; SMR01 = 0x0122; SCR01 = 0x4697; SDR01 = 0xce00; SO0 |= 0x0001; SOL0 |= 0x0000; SOE0 |= 0x0001; PM1 |= 0x02; P1 |= 0x04; PM1 &= 0xfb; }

void R_UART0_Create(void) { ST0 |= 0x0003; STMK0 = 1; STIF0 = 0; SRMK0 = 1; SRIF0 = 0; SREMK0 = 1; SREIF0 = 0; STPR10 = 1; STPR00 = 1; SRPR10 = 1; SRPR00 = 1; SREPR10 = 1; SREPR00 = 1; SMR00 = 0x0022; SCR00 = 0x8297; SDR00 = 0xce00;

Page 34: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

UART0の設定フロー(3/4)

34

RxD端子のノイズ・フィルタの設定

エラー・フラグのクリア

入出力端子の設定

チャネル1の設定 ・動作モードの設定 ・通信動作の設定

・転送クロックの設定

チャネル0の出力の設定

1

return

受信

Page 35: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

受信チャネルの動作モードの設定(1/4)

シリアル・モード・レジスタ01(SMR01) 動作クロックの選択

35

UART通信モードでは設定固定

クロック0=2MHz

クロック1=2MHz

クロック0=2MHz

Page 36: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

受信チャネルの動作モードの設定(2/4)

シリアル・モード・レジスタ01(SMR01) スタート・トリガ要因の選択

36

UART受信モードでは設定固定

Page 37: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

受信チャネルの動作モードの設定(3/4)

シリアル・モード・レジスタ01(SMR01) 受信データのレベル反転の設定

37

Page 38: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

受信チャネルの動作モードの設定(4/4)

シリアル・モード・レジスタ01(SMR01) 割り込み要因の選択

38

UART受信モードでは設定固定

Page 39: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

受信チャネルの通信動作の設定(1/3)

シリアル通信動作設定レジスタ01(SCR01) 動作モードの設定

39

UART受信モードでは設定固定

Page 40: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

受信チャネルの通信動作の設定(2/3)

シリアル通信動作設定レジスタ01(SCR01) エラー割り込み信号のマスク可否の選択

40

Page 41: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

受信チャネルの通信動作の設定(3/3)

シリアル通信動作設定レジスタ01(SCR01) パリティ・ビットの設定 データ転送順序の選択 ストップ・ビットの設定 データ長の設定

41

偶数パリティ LSBファースト ストップビット = 1ビット データ長 = 8ビット

Page 42: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

受信チャネルの転送クロックの設定

シリアル・データ・レジスタ01(SDR01) 動作クロックの分周設定

42

1 1 0 0 1 1 1 fMCK/208

fMCK = 2MHz

2MHz/208 ≒ 9600Hz

Page 43: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 43

UART0の設定関数(3/4)

RxD端子のノイズ・フィルタの設定

エラー・フラグのクリア

入出力端子の設定

チャネル1の設定 ・動作モードの設定 ・通信動作の設定

・転送クロックの設定

チャネル0の出力の設定

1

return

NFEN0 |= 0x01; SIR01 = 0x0007; SMR01 = 0x0122; SCR01 = 0x4697; SDR01 = 0xce00; SO0 |= 0x0001; SOL0 |= 0x0000; SOE0 |= 0x0001; PM1 |= 0x02; P1 |= 0x04; PM1 &= 0xfb; }

void R_UART0_Create(void) { ST0 |= 0x0003; STMK0 = 1; STIF0 = 0; SRMK0 = 1; SRIF0 = 0; SREMK0 = 1; SREIF0 = 0; STPR10 = 1; STPR00 = 1; SRPR10 = 1; SRPR00 = 1; SREPR10 = 1; SREPR00 = 1; SMR00 = 0x0022; SCR00 = 0x8297; SDR00 = 0xce00;

Page 44: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

UART0の設定フロー(4/4)

44

R_UART0_Create()

チャネルの動作停止

割り込みの禁止

チャネル0の設定 ・動作モードの設定 ・通信動作の設定

・転送クロックの設定

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

割り込み優先度の設定

1

RxD端子のノイズ・フィルタの設定

エラー・フラグのクリア

入出力端子の設定

チャネル1の設定 ・動作モードの設定 ・通信動作の設定

・転送クロックの設定

チャネル0の出力の設定

1

return

Page 45: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

RxD端子のノイズ・フィルタの設定

45

ノイズ・フィルタ許可レジスタ0(NFEN0) ノイズ・フィルタの使用可否

RxD0端子

UART受信モードでは設定固定

Page 46: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

エラー・フラグのクリア

46

シリアル・フラグ・クリア・トリガ・レジスタ01(SIR01) チャネルの各エラー・フラグのクリア

受信チャネル (チャネル1)

Page 47: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

チャネル0の出力の設定(1/2)

シリアル出力許可レジスタ0(SOE0) シリアル通信動作の出力許可/停止を設定

47

シリアル出力レジスタ0(SO0) シリアル出力のバッファ・レジスタ

ユニット0のチャネル0

SOE00=1のときの書き換えは無視

Page 48: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

チャネル0の出力の設定(2/2)

48

シリアル出力許可レジスタ0(SOE0) シリアル通信動作の出力許可/停止を設定

ユニット0のチャネル0

シリアル出力レベル・レジスタ0(SOL0) データ出力レベルの反転を設定する

Page 49: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

入出力端子の設定

ポート・レジスタ(P1) ポートの出力ラッチの値を設定

ポート・モード・レジスタ(PM1) ポートの入出力モードの選択

TxD端子

TxD端子 RxD端子

49

Page 50: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 50

UART0の設定関数(4/4)

RxD端子のノイズ・フィルタの設定

エラー・フラグのクリア

入出力端子の設定

チャネル1の設定 ・動作モードの設定 ・通信動作の設定

・転送クロックの設定

チャネル0の出力の設定

1

return

void R_UART0_Create(void) { ST0 |= 0x0003; STMK0 = 1; STIF0 = 0; SRMK0 = 1; SRIF0 = 0; SREMK0 = 1; SREIF0 = 0; STPR10 = 1; STPR00 = 1; SRPR10 = 1; SRPR00 = 1; SREPR10 = 1; SREPR00 = 1; SMR00 = 0x0022; SCR00 = 0x8297; SDR00 = 0xce00;

NFEN0 |= 0x01; SIR01 = 0x0007; SMR01 = 0x0122; SCR01 = 0x4697; SDR01 = 0xce00; SO0 |= 0x0001; SOL0 |= 0x0000; SOE0 |= 0x0001; PM1 |= 0x02; P1 |= 0x04; PM1 &= 0xfb; }

Page 51: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 51

UART0の設定関数のコード生成(1/3)

Page 52: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 52

UART0の設定関数のコード生成(2/3)

転送完了割り込み バッファ空き割り込み

Page 53: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved. 53

UART0の設定関数のコード生成(3/3)

Page 54: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

mainのフロー

54

main

R_UART0_Receive

R_UART0_Start

HALTモードへ移行

受信割り込み禁止

受信エラー検出?

受信エラーを判定し、 対応したデータの送信

Yes

No

受信データを判定し、 対応したデータの送信

受信割り込み許可

R_UART0_Receive

オーバラン・エラー?

Page 55: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

UART0 動作開始関数

55

void R_UART0_Start(void) { STIF0 = 0; STMK0 = 0; SRIF0 = 0; SRMK0 = 0; SREIF0 = 0; SREMK0 = 0; SO0 |= 0x0001; SOE0 |= 0x0001; SS0 |= 0x0003; }

Page 56: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

UART動作の許可

56

送信 受信

シリアル・チャネル開始レジスタ0(SS0) 通信/カウント開始の許可

Page 57: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

正常受信のシーケンス

57

割り込み メイン

R_UART0_Send() 格納先アドレスと受信回数(1回)を通知

HALT() 受信待ち

R_UART0_Interrupt_Receive() 通知アドレスに受信データを格納

R_UART0_Callback_ReceiveEnd() 正常終了を通知

Page 58: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

エラー受信のシーケンス

58

割り込み メイン

HALT() 受信待ち

R_UART0_Interrupt_Error() エラーの判定

R_UART0_Callback_Error() エラー情報を通知

R_UART0_Receive() 格納先アドレスと受信回数(1回)を通知

Page 59: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

受信完了割り込み処理

59

__interrupt void R_UART0_Interrupt_Receive(void) { uint8_t rx_data; rx_data = RXD0; if (g_Uart0RxLen > g_Uart0RxCnt) { *gp_Uart0RxAddress = rx_data; gp_Uart0RxAddress++; g_Uart0RxCnt++; if (g_Uart0RxLen == g_Uart0RxCnt) { R_UART0_Callback_ReceiveEnd(); } } } void R_UART0_Callback_ReceiveEnd(void) { g_Uart0RxErr = 0U; /* Clear error flag */ }

Page 60: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

受信データの読み出し

シリアル・データ・レジスタ01(SDR01) 下位8ビットは受信バッファ・レジスタ

60

RXD0 動作クロックの分周設定

Page 61: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

エラー割り込み処理

61

__interrupt void R_UART0_Interrupt_Error(void) { uint8_t err_type; *gp_Uart0RxAddress = RXD0; err_type = (uint8_t)(SSR01 & 0x0007U); SIR01 = (uint16_t)err_type; R_UART0_Callback_Error(err_type); } void R_UART0_Callback_Error(uint8_t err_type) { g_Uart0RxErr = err_type; /* Get error type */ }

Page 62: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

エラー・フラグの読み出し

62

シリアル・ステータス・レジスタ01(SSR01) 通信ステータス,エラー発生状況を表示するレジスタ

Page 63: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

トリガによるエラー・フラグのクリア

63

シリアル・フラグ・クリア・トリガ・レジスタ01(SIR 01) エラー・フラグをクリアするためのトリガ・レジスタ

1 1 1

フレーミング パリティ オーバラン

1 1 1 0 0 0

エラーフラグをクリア

Page 64: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信のシーケンス

64

割り込み メイン

R_UART0_Receive() 1バイトデータの送信後、残りの送信回数と 送信メッセージのアドレスを通知

R_UART0_Interrupt_Send() 1バイトデータの送信

R_UART0_Callback_ReceiveEnd() 送信終了を通知

R_UART0_Interrupt_Send() 1バイトデータの送信

3回

Page 65: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

UART0 データ送信関数

65

MD_STATUS R_UART0_Send(uint8_t* txbuf, uint16_t txnum) { MD_STATUS status = MD_OK; if (txnum < 1U) { status = MD_ARGERROR; } else { gp_Uart0TxAddress = txbuf; g_Uart0TxCnt = txnum; STMK0 = 1U; /* disable INTST0 interrupt */ TXD0 = *gp_Uart0TxAddress; gp_Uart0TxAddress++; g_Uart0TxCnt--; STMK0 = 0U; /* enable INTST0 interrupt */ } return (status); }

Page 66: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信チャネルの転送クロックの設定

シリアル・データ・レジスタ00(SDR00) 下位8ビットは送信バッファ・レジスタ

66

TXD0 動作クロックの分周設定

Page 67: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

© 2013 Renesas Electronics Corporation. All rights reserved.

送信完了割り込み処理

67

__interrupt void R_UART0_Interrupt_Send(void) { if (g_Uart0TxCnt > 0U) { TXD0 = *gp_Uart0TxAddress; gp_Uart0TxAddress++; g_Uart0TxCnt--; } else { R_UART0_Callback_SendEnd(); } } void R_UART0_Callback_SendEnd(void) { g_Uart0TxEnd = 1U; /* Set transmission end flag */ }

Page 68: RL78/G13 周辺機能紹介 SAU - Renesas e-Learning 動作クロックと転送クロック 11 シリアル・アレイ・ユニット0 f CLK 32MHz セレクタ セレクタ チャネル0

ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics Corporation. All rights reserved.

END