rx62n 周辺機能紹介 cmt - renesas e-learning...

26
00000-A ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics Corporation. All rights reserved. 2013/08/02 RX62N 周辺機能紹介 CMT コンペアマッチタイマ

Upload: vandan

Post on 20-Apr-2018

225 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

00000-A

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

Rev. 1.00

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

© 2013 Renesas Electronics Corporation. All rights reserved.

2013/08/02

RX62N 周辺機能紹介 CMT コンペアマッチタイマ

Page 2: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 2

コンテンツ

CMTの概要

プログラムサンプル プログラムサンプルのカスタマイズ

Page 3: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 3

CMTの概要

Page 4: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 4

CMTの仕様

CMT CMT0

CMT1

ユニット 0

CMT2

CMT3

ユニット 1

16ビットタイマ

チャネル

Page 5: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 5

CMTの動作概要

設定

比較

Page 6: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 6

プログラムサンプル

Page 7: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 7

サンプル・プログラム仕様

■CMTのプログラム例

CMT0を用い500ms毎にLEDを点滅する。

仕様

・チャネル チャネル0を使用 ・クロックソース PCLK[48MHz] ・割り込み コンペアマッチ割り込み

Page 8: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 8

プログラム・フローチャート

init_CMT0 CMT0 初期化

wait(組み込み関数) 割り込み要求待ち、低消費電

力モードへ遷移

※CPU内部レジスタ、クロックレート、およびメモリ内の静的変数領域はスタートアップ・ルーチン内で初期化されます。

start_CMT0 CMT0 カウントスタート

init_PORT LEDの初期化

LED点滅

リセット・スタート

スタートアップルーチン

main

RTE

CMT0割り込み関数 (Excep_CMTU0_CMT0)

setpsw_i(組み込み関数) 割り込み許可

割り込み要求(H/W)

初期化

カウント開始

Page 9: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 9

コンペアマッチカウントモードの初期化フロー

内部クロックの設定

コンスタントレジスタの設定

初期化開始

モジュールストップ解除

割り込みコントローラの割り込み許可

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

割り込み許可

初期化終了

割り込み要求の許可

Page 10: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 10

モジュールストップコントロールレジスタA(MSTPCRA)

ユニット0使用可

Page 11: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 11

ビット  値=コンスタントレジスタ 161M241]ms[500]MHz[48 >−=−×

ビット  = 161-468751512

]ms[500]MHz[48<=−

×

カウント値の設定

Page 12: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 12

コンペアマッチタイマコントロールレジスタ(CMCR)(1)

Page 13: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 13

コンペアマッチタイマコンスタントレジスタ(CMCOR)

(カウント値 - 1)を設定

カウント値 = 46875

46874

Page 14: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 14

コンペアマッチカウントモードの初期化関数(1)

void init_CMT0(void) { // Wakeup unit 0 MSTP(CMT0) = 0; // Clock select is PCLK/512 CMT0.CMCR.WORD = 0x0083; // Counts for 500ms(48000kHz(48MHz) *500ms/512) CMT0.CMCOR = 48000*500/512-1; // CMI0 interrupt is enabled CMT0.CMCR.WORD |= 0x0080 | 0x0040; // CMI0 interrupt request is enabled IEN(CMT0,CMI0) = 1; // CMI0 interrupt priority level is 1 IPR(CMT0,CMI0) = 1; }

内部クロックの設定

コンスタントレジスタの設定

初期化開始

モジュールストップ解除

割り込みコントローラの割り込み許可

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

割り込み許可

初期化終了

Page 15: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 15

コンペアマッチタイマコントロールレジスタ(CMCR) (2)

Page 16: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 16

割り込みコントローラの設定

割り込みコントローラ CPUへ

IPR(優先レベル)

IER(許可)

Page 17: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 17

割り込み要求許可レジスタm(IERm)(m = 02h ~ 1Fh)

IER03

Page 18: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 18

割り込み要因プライオリティレジスタm(IPRm)(m= 00h~8Fh)

コンペアマッチ割り込み:IPR04

Page 19: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 19

コンペアマッチカウントモードの初期化関数(2)

void init_CMT0(void) { // Wakeup unit 0 MSTP(CMT0) = 0; // Clock select is PCLK/512 CMT0.CMCR.WORD = 0x0083; // Counts for 500ms(48000kHz(48MHz) *500ms/512) CMT0.CMCOR = 48000*500/512-1; // CMI0 interrupt is enabled CMT0.CMCR.WORD |= 0x0080 | 0x0040; // CMI0 interrupt request is enabled IEN(CMT0,CMI0) = 1; // CMI0 interrupt priority level is 1 IPR(CMT0,CMI0) = 1; }

内部クロックの設定

コンスタントレジスタの設定

初期化開始

モジュールストップ解除

割り込みコントローラの割り込み許可

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

割り込み許可

初期化終了

Page 20: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 20

割り込み関数の作成とベクタテーブルの登録

LED点滅

RTE

CMT0割り込み関数 (Excep_CMTU0_CMT0)

// CMTU0_CMT0 #pragma interrupt (Excep_CMTU0_CMT0(vect=28)) void Excep_CMTU0_CMT0(void) { // Invert P47(LED1) PORT4.DR.BIT.B7 ^= 1; }

Page 21: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 21

コンペアマッチカウントモードのカウント開始関数

void start_CMT0(void) { // Start CMT0 CMT.CMSTR0.BIT.STR0 = 1; }

init_CMT0 CMT0 初期化

wait(組み込み関数) 割り込み要求待ち、低消費電

力モードへ遷移

start_CMT0 CMT0 カウントスタート

init_PORT LEDの初期化

main

setpsw_i(組み込み関数) 割り込み許可

Page 22: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 22

コンペアマッチタイマスタートレジスタ0(CMSTR0)

Page 23: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 23

コンペアマッチカウントモードのメイン関数

void main(void) { // LED Initialization init_PORT(); // CMT0 Initialization init_CMT0(); // CMT0 count start start_CMT0(); // Interrupt enable (CPU) setpsw_i(); while(1){ // CPU sleep wait(); } }

メイン関数

init_CMT0 CMT0 初期化

wait(組み込み関数) 割り込み要求待ち、低消費電

力モードへ遷移

start_CMT0 CMT0 カウントスタート

init_PORT LEDの初期化

main

setpsw_i(組み込み関数) 割り込み許可

Page 24: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 24

プログラムサンプルのカスタマイズ

Page 25: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

© 2013 Renesas Electronics Corporation. All rights reserved. 25

周期の変更

void init_CMT0(void) { // Wakeup unit 0 MSTP(CMT0) = 0; // Clock select is PCLK/512 CMT0.CMCR.WORD = 0x0083; // Counts for 500ms(48000KHz(48MHz)*500/512) CMT0.CMCOR = 48000*500/512-1;

void init_CMT0(void) { // Wakeup unit 0 MSTP(CMT0) = 0; // Clock select is PCLK/512 CMT0.CMCR.WORD = 0x0083; // Counts for 100ms(48000KHz(48MHz)*100/512) CMT0.CMCOR = 48000*100/512-1;

500ms周期

100ms周期

Page 26: RX62N 周辺機能紹介 CMT - Renesas e-Learning ルネサス半導体トレーニングセンター Rev. 1.00 ルネサス エレクトロニクス株式会社 © 2013 Renesas Electronics

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

END