スライド 1

Similar documents
スライド 1

RL78/G10 シリアル・アレイ・ユニット (UART通信)(C言語編) CC-RL

RL78/I1D 中速オンチップ・オシレータでのUART 通信の実現 CC-RL

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の )

スライド 1

スライド 1

スライド 1

このページは読み飛ばして構いません 1は通常はあまり意識しない ( マイコンの端子ではほぼ決まっている ) のですが,PC やその他の機器と接続する場合に問題になります 前述の RS-232-C は ±12V で駆動するインタフェースで, 通常は論理が反転してマイコンに接続されます 最も古くからある

スライド 1

スライド 1

スライド 1

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

内容 1. APX-3302 の特長 APX-3312 から APX-3302 へ変更するためには 差分詳細 ハードウェア ハードウェア性能および仕様 ソフトウェア仕様および制限 Ini ファイルの設

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

スライド 1

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

RL78/G10 簡易I2C 機能によるEEPROM 制御 CC-RL

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

スライド 1

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

Smart Analog IC101 サンプルコードマイコン置き換え手順書

アナログ・接点変換器

SP-1221 LIN I/F 基板 ユーザーズマニュアル 作成日 :2017 年 10 月 17 日

スライド 1

データ収集用 NIM/CAMAC モジュールマニュアル 2006/5/23 目次 クレート コントローラ CC/ NIM ADC 1821 (Seiko EG&G)...3 ADC インターフェイス U デッドタイム

Microsoft PowerPoint - LogicCircuits09note.ppt [互換モード]

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

Microsoft Word - FCTT_CS_Mod( )Jver1.doc

RX210、RX21A、RX220グループ アプリケーションノート SCIを用いた調歩同期式通信

ETCB Manual

RX210 グループ MTU2 を用いた相補 PWM モードの波形出力 要旨 本サンプルコードでは MTU2 を用いて相補 PWM モードの波形を出力する方法について説 明します 対象デバイス RX210 1 / 41

PowerPoint プレゼンテーション

変更履歴 Revision 日付 内容 /10/10 初版 /10/24 車載関連説明文削除 /10/06 会社所在地を本社に修正 2

ソフトウェア基礎技術研修

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

PLCシリアル通信 MODBUS通信 データ送信/受信プログラム例

Microsoft PowerPoint - 3.3タイミング制御.pptx

GR-SAKURA-SAのサンプルソフト説明

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

// USB_CNC_Machine リモート PIO 端末プログラムのメイン関数およびユーザアプリ部 // 編集作成 by Takehiko Inoue /*********** メイン関数 ***************************/ #pragma code

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

M4Gグループ(1)_CEC-A

Rev.1.1 S1V50300 サンプルプログラムマニュアル

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

< 動作マトリクス > 停止 REQ 固定位置 REQ 往復 REQ 停止 () 現在位置と同じなら無視異なれば停止パルス中へ 停止パルス中へ 停止 ( 固定位置 ) 現在位置と同じなら無視異なれば停止パルス中へ 停止パルス中へ 停止パルス中 ( 停止パルス終了後 ) ( 停止パルス終了後動作 )

Microsoft Word - dg_sataahciip_refdesign_jp.doc

RX ファミリ、M16C ファミリ アプリケーションノート M16CからRXへの置き換えガイド 調歩同期式シリアル通信(UART)編

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

作成 承認 簡単取扱説明書 (S&DL 水位計 ) 応用計測サービス株式会社 (1.1)

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

<4D F736F F D D182F12D504C4390DA91B B D834F F F2E646F63>

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

Microsoft PowerPoint - RX62N動画マニュアルDMAC.ppt [互換モード]

Microsoft PowerPoint - kougi7.ppt

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

IrDA型赤外線タグ仕様

ターゲット項目の設定について

<91E63589F161>

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

Time Server Pro. TS-2910 リリースノート お客様各位 2019/09/13 セイコーソリューションズ株式会社 Time Server Pro.(TS-2910/TS-2912) システムソフトウェアリリースノート Ver2.1.1 V2.2 変更点 Version 2.2 (

/* モジュールストップ解除 */ SYSTEM.MSTPCRA.BIT.MSTPA24 = 0; /* MSTPA24(S12ADA 制御部 ) クロック供給開始 */ SYSTEM.MSTPCRA.BIT.MSTPA17 = 0; /* MSTPA17(S12ADA0) クロック供給開始 */

HW-Slides-05.ppt

6

CubeSuite+版RXシリアルデバッガ取扱説明書

ソフトウェア基礎技術研修

DUSx200 シリーズコントローラ I2C インターフェース仕様書

スライド 1

< D A0>

形B5Z 画像型人感センサ(HVC-F) コマンド仕様書

NCB564個別00版

PowerPoint プレゼンテーション

Microsoft PowerPoint - LogicCircuits11note.ppt [互換モード]

Microsoft Word - プログラムをRAM.doc

Microsoft Word - 実験4_FPGA実験2_2015

USB モジュール

1. LCD LS027B4DH01 について LS027B4DH01 は 400dot x 240dot のグラフィック LCD です 秋月電子通商で購入できます 外形サイズ : 62.8 x x 1.53mm LCD のフレキシブルケーブルの根元の部分はちょっと力を加えただけで表示が

PIC24F Family Reference Manual Section 9 WDT

Microsoft PowerPoint - フェリカ通信仕様書_

RL78/G13 制限事項について

TD-UARTip 設計仕様書

Microsoft PowerPoint - OS04.pptx

目次 1 本アプリケーションノートの目的 送信手順 基本的な送信方法 キャリアセンスなし送信 キャリアセンスあり送信 ACK 期待送信 フレームメモリへのデータの設定 INFO

1. SMDLR2 SYSMACCCVM1 CVCQM1 PLC NestBus PLC PLC 2. PLC CPU PLC DCS PLC PLC SMDL PLC1 1 SMDL DiDo 512 AiAo 32 PLC PLC SMDLR2 K V AC L170

iCLR

CS-3000/5000 用 LabView ドライバ 取扱説明書 第 1 版 2014/7/28 岩通計測株式会社 1. 使用条件 a. 装置 : 岩通計測製 CS-3000/CS-5000 シリーズ b. 動作確認 PC/OS:IBM PC/AT 互換機 マイクロソフト Windows7 c.p

Microsoft PowerPoint LC_15.ppt

Transcription:

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

コンテンツ SAU の概要 UART 通信機能のプログラム サンプル紹介 2

SAU の概要 3

SAU の機能 クロック同期式調歩同期式マスタ動作のみ チャネル 0: 送信チャネル 1: 受信 4

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

仕様 (1/2) UART 通信機能のプログラム例対向機器から受信を行い 受信キャラクタまたは受信エラーの種別に応じたメッセージを送信します 受信と送信の対応は以下の通りです 受信キャラクタ T t 上記以外受信エラーパリティ エラーフレーミング エラーオーバーラン エラー 応答メッセージ OK r n ok r n UC r n 応答メッセージ PE r n OE r n FE r n 6

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

初期設定のフロー 8

シリアル アレイ ユニットの設定フロー fclk の 4 クロック以上間隔をあける 9

シリアル アレイ ユニットへのクロック供給開始 周辺イネーブル レジスタ 0(PER0) 各周辺ハードウエアへのクロック供給許可 / 禁止の設定 10

SAU の動作クロックと転送クロック シリアル アレイ ユニット0 チャネル0 レジスタ 0 f CLK 32MHz プリスケーラ 16 セレクタ クロック 0 2 種類のクロックと外部クロックから f MCK セレクタ選択セレクタ 分周 クロック制御 f TCLK ユニット 0 共通の 2 種類のクロック 外部クロック チャネル 1 転送クロック 0 16 セレクタ クロック 1 セレクタ f MCK セレクタ クロック制御 f TCLK 外部クロック 11

クロック周波数の設定 シリアル クロック選択レジスタ 0(SPS0) CK00 CK01 動作クロックの設定 CK01 CK00 0 1 0 0 0 1 0 0 サンプルの周辺ハードウエア クロック 12

シリアル アレイ ユニットの設定関数 void R_SAU0_Create(void) { SAU0EN = 1; NOP(); NOP(); NOP(); NOP(); SPS0 = 0x0044; R_UART0_Create(); } fclk の 4 クロック以上間隔をあける 13

UART0 の設定フロー (1/4) R_UART0_Create() 1 チャネルの動作停止 RxD 端子のノイズ フィルタの設定 割り込みの禁止 エラー フラグのクリア 割り込み要求フラグのクリア 割り込み優先度の設定 チャネル 1 の設定 動作モードの設定 通信動作の設定 転送クロックの設定 チャネル 0 の設定 動作モードの設定 通信動作の設定 転送クロックの設定 チャネル 0 の出力の設定 入出力端子の設定 1 return 14

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

割り込みの禁止 割り込みマスク フラグ レジスタ (MK0H) 対応するマスカブル割り込み処理の許可 / 禁止を設定 エラー割り込み SREMK0 ビット 受信完了割り込み SRMK0 ビット 送信完了割り込み STMK0 ビット 16

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

割り込み優先順位レベルの設定 優先順位指定フラグ レジスタ (PR00H, PR10H) PR00H レジスタと PR10H レジスタを組み合わせて, 対応するマスカブル割り込みの優先順位レベルを設定 エラー割り込み SREPR00 10 ビット 受信完了割り込み SRPR00 10 ビット 送信完了割り込み STPR00 10 ビット 18

UART0 の設定関数 (1/4) 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; R_UART0_Create() チャネルの動作停止 割り込みの禁止 割り込み要求フラグのクリア 割り込み優先順位レベルの設定 チャネル 0 の設定 動作モードの設定 通信動作の設定 転送クロックの設定 1 19

UART0 の設定フロー (2/4) R_UART0_Create() チャネルの動作停止 割り込みの禁止 割り込み要求フラグのクリア 割り込み優先順位レベルの設定 チャネル 0 の設定 動作モードの設定 通信動作の設定 転送クロックの設定 送信 1 20

送信チャネルの動作モードの設定 (1/4) シリアル モード レジスタ 00(SMR00) 動作クロックの選択 クロック 0=2MHz クロック 1=2MHz クロック 0=2MHz UART 通信モードでは設定固定 21

送信チャネルの動作モードの設定 (2/4) シリアル モード レジスタ 00(SMR00) スタート トリガ要因の選択 UART 送信モードでは設定固定 22

送信チャネルの動作モードの設定 (3/4) シリアル モード レジスタ 00(SMR00) 動作モードの設定 UART 通信モードでは設定固定 23

送信チャネルの動作モードの設定 (4/4) シリアル モード レジスタ 00(SMR00) 割り込み要因の選択 24

送信チャネルの通信動作の設定 (1/7) シリアル通信動作設定レジスタ 00(SCR00) 動作モードの設定 UART 送信モードでは設定固定 25

送信チャネルの通信動作の設定 (2/7) シリアル通信動作設定レジスタ 00(SCR00) データとクロックの位相選択 UART 通信モードでは設定固定 26

送信チャネルの通信動作の設定 (3/7) シリアル通信動作設定レジスタ 00(SCR00) エラー割り込み信号のマスク可否の選択 UART 送信モードでは設定固定 27

送信チャネルの通信動作の設定 (4/7) シリアル通信動作設定レジスタ 00(SCR00) パリティ ビットの設定 28

送信チャネルの通信動作の設定 (5/7) シリアル通信動作設定レジスタ 00(SCR00) データ転送順序の選択 29

送信チャネルの通信動作の設定 (6/7) シリアル通信動作設定レジスタ 00(SCR00) ストップ ビットの設定 30

送信チャネルの通信動作の設定 (7/7) シリアル通信動作設定レジスタ 00(SCR00) データ長の設定 31

送信チャネルの転送クロックの設定 シリアル データ レジスタ 00(SDR00) 動作クロックの分周設定 fmck = 2MHz 1 1 0 0 1 1 1 fmck/208 2MHz/208 9600Hz 32

UART0 の設定関数 (2/4) 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; R_UART0_Create() チャネルの動作停止 割り込みの禁止 割り込み要求フラグのクリア 割り込み優先順位レベルの設定 チャネル 0 の設定 動作モードの設定 通信動作の設定 転送クロックの設定 1 33

UART0 の設定フロー (3/4) 1 RxD 端子のノイズ フィルタの設定 エラー フラグのクリア チャネル 1 の設定 動作モードの設定 通信動作の設定 転送クロックの設定 受信 チャネル 0 の出力の設定 入出力端子の設定 return 34

受信チャネルの動作モードの設定 (1/4) シリアル モード レジスタ 01(SMR01) 動作クロックの選択 クロック 0=2MHz クロック 1=2MHz クロック 0=2MHz UART 通信モードでは設定固定 35

受信チャネルの動作モードの設定 (2/4) シリアル モード レジスタ 01(SMR01) スタート トリガ要因の選択 UART 受信モードでは設定固定 36

受信チャネルの動作モードの設定 (3/4) シリアル モード レジスタ 01(SMR01) 受信データのレベル反転の設定 37

受信チャネルの動作モードの設定 (4/4) シリアル モード レジスタ 01(SMR01) 割り込み要因の選択 UART 受信モードでは設定固定 38

受信チャネルの通信動作の設定 (1/3) シリアル通信動作設定レジスタ 01(SCR01) 動作モードの設定 UART 受信モードでは設定固定 39

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

受信チャネルの通信動作の設定 (3/3) シリアル通信動作設定レジスタ 01(SCR01) パリティ ビットの設定 データ転送順序の選択 ストップ ビットの設定 データ長の設定 偶数パリティ LSBファーストストップビット = 1ビットデータ長 = 8ビット 41

受信チャネルの転送クロックの設定 シリアル データ レジスタ 01(SDR01) 動作クロックの分周設定 fmck = 2MHz 1 1 0 0 1 1 1 fmck/208 2MHz/208 9600Hz 42

UART0 の設定関数 (3/4) 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; 1 RxD 端子のノイズ フィルタの設定 エラー フラグのクリア チャネル 1 の設定 動作モードの設定 通信動作の設定 転送クロックの設定 チャネル 0 の出力の設定 入出力端子の設定 return 43

UART0 の設定フロー (4/4) R_UART0_Create() 1 チャネルの動作停止 RxD 端子のノイズ フィルタの設定 割り込みの禁止 エラー フラグのクリア 割り込み要求フラグのクリア 割り込み優先度の設定 チャネル 1 の設定 動作モードの設定 通信動作の設定 転送クロックの設定 チャネル 0 の設定 動作モードの設定 通信動作の設定 転送クロックの設定 チャネル 0 の出力の設定 入出力端子の設定 1 return 44

RxD 端子のノイズ フィルタの設定 ノイズ フィルタ許可レジスタ 0(NFEN0) ノイズ フィルタの使用可否 RxD0 端子 UART 受信モードでは設定固定 45

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

チャネル 0 の出力の設定 (1/2) シリアル出力レジスタ 0(SO0) シリアル出力のバッファ レジスタ ユニット 0 のチャネル 0 SOE00=1 のときの書き換えは無視 シリアル出力許可レジスタ 0(SOE0) シリアル通信動作の出力許可 / 停止を設定 47

チャネル 0 の出力の設定 (2/2) シリアル出力許可レジスタ 0(SOE0) シリアル通信動作の出力許可 / 停止を設定 ユニット 0 のチャネル 0 シリアル出力レベル レジスタ 0(SOL0) データ出力レベルの反転を設定する 48

入出力端子の設定 ポート レジスタ (P1) ポートの出力ラッチの値を設定 TxD 端子 ポート モード レジスタ (PM1) ポートの入出力モードの選択 TxD 端子 RxD 端子 49

UART0 の設定関数 (4/4) 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; 1 RxD 端子のノイズ フィルタの設定 エラー フラグのクリア チャネル 1 の設定 動作モードの設定 通信動作の設定 転送クロックの設定 チャネル 0 の出力の設定 入出力端子の設定 return 50

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

UART0 の設定関数のコード生成 (2/3) 転送完了割り込み バッファ空き割り込み 52

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

main のフロー main R_UART0_Receive R_UART0_Start オーバラン エラー? HALT モードへ移行 受信割り込み禁止 受信エラー検出? Yes 受信エラーを判定し 対応したデータの送信 No 受信データを判定し 対応したデータの送信 R_UART0_Receive 受信割り込み許可 54

UART0 動作開始関数 void R_UART0_Start(void) { STIF0 = 0; STMK0 = 0; SRIF0 = 0; SRMK0 = 0; SREIF0 = 0; SREMK0 = 0; SO0 = 0x0001; SOE0 = 0x0001; SS0 = 0x0003; } 55

UART 動作の許可 シリアル チャネル開始レジスタ 0(SS0) 通信 / カウント開始の許可 受信 送信 56

正常受信のシーケンス メイン 割り込み HALT() 受信待ち R_UART0_Send() 格納先アドレスと受信回数 (1 回 ) を通知 R_UART0_Interrupt_Receive() 通知アドレスに受信データを格納 R_UART0_Callback_ReceiveEnd() 正常終了を通知 57

エラー受信のシーケンス メイン 割り込み HALT() 受信待ち R_UART0_Receive() 格納先アドレスと受信回数 (1 回 ) を通知 R_UART0_Interrupt_Error() エラーの判定 R_UART0_Callback_Error() エラー情報を通知 58

受信完了割り込み処理 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 */ } 59

受信データの読み出し シリアル データ レジスタ 01(SDR01) 下位 8 ビットは受信バッファ レジスタ 動作クロックの分周設定 RXD0 60

エラー割り込み処理 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 */ } 61

エラー フラグの読み出し シリアル ステータス レジスタ 01(SSR01) 通信ステータス, エラー発生状況を表示するレジスタ 62

トリガによるエラー フラグのクリア シリアル フラグ クリア トリガ レジスタ 01(SIR 01) エラー フラグをクリアするためのトリガ レジスタ エラーフラグをクリア 1 1 1 10 10 10 フレーミングパリティオーバラン 63

送信のシーケンス メイン 割り込み R_UART0_Receive() 1 バイトデータの送信後 残りの送信回数と送信メッセージのアドレスを通知 R_UART0_Interrupt_Send() 1 バイトデータの送信 3 回 R_UART0_Callback_ReceiveEnd() 送信終了を通知 R_UART0_Interrupt_Send() 1 バイトデータの送信 64

UART0 データ送信関数 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); 65

送信チャネルの転送クロックの設定 シリアル データ レジスタ 00(SDR00) 下位 8 ビットは送信バッファ レジスタ 動作クロックの分周設定 TXD0 66

送信完了割り込み処理 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 */ } 67

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