コンパレータB



 R8C/M12Aには独立して動作する2個のコンパレータ機能があります。ルネサスアプロケーションノートのアプリケーション集の中にソースコードと解説が載っています。

 コンパレータは、コンパレータB1とコンパレータB3の2個です。それぞれの端子構成は以下のようになっています。基準入力電圧とアナログ入力電圧を比較してVCOUTiから出力(1か0)します。
端子名 割り当てる端子 入出力 機能
  IVCMP1  P1_7  入力  コンパレータB1のアナログ電圧入力
  IVREF1  P1_6  入力  コンパレータB1の基準電圧入力
  VCOUT1  P1_5 または P4_6  出力  コンパレータB1の比較結果出力
  IVCMP3  P3_3  入力  コンパレータB3のアナログ電圧入力
  IVREF3  P3_4  入力  コンパレータB3の基準電圧入力
  VCOUT3  P3_5  出力  コンパレータB3の比較結果出力
 コンパレータ機能に関係するレジスタは、コンパレータB制御レジスタ(WCMPR)、コンパレータB1割り込み制御レジスタ(WCB1INTR)、コンパレータB3割り込み制御レジスタ(WCB3INTR)の3つです。


(1)コンパレータB制御レジスタ(WCMPR)

ビット シンボル ビット名 機能
  7  WCB3OUT  コンパレータB3モニタフラグ  0:IVCMP3<IVREF3
 1:IVCMP3>IVREF3 
  6    
  5        
  4  WCB3M0   コンパレータB3動作許可ビット  0:動作禁止
 1:動作許可 
  3  WCB1OUT  コンパレータB1モニタフラグ  0:IVCMP1<IVREF1
 1:IVCMP1>IVREF1
  2    
  1       
  0  WCB1M0   コンパレータB1動作許可ビット  0:動作禁止
 1:動作許可

(2)コンパレータB1割り込み制御レジスタ(WCB1INTR)

ビット シンボル ビット名 機能
  7  WCB1F  コンパレータB1割り込み要求フラグ  0:割り込み要求なし
 1:割り込み要求あり 
  6  WCB1INTEN   コンパレータB1割り込み許可信号ビット  0:割り込み禁止
 1:割り込み許可 
  5  WCB1S1     コンパレータB1割り込みエッジ選択ビット  00:アナログ入力電圧が基準入力電圧より低いとき
 01:アナログ入力電圧が基準入力電圧より高いとき
 10:設定禁止
 11:アナログ入力電圧が基準入力電圧より低いおよび        高いとき   
  4  WCB1S0 
  3      
  2    
  1  WCB1F1   コンパレータB1フィルタ選択ビット  00:フィルタなし
 01:フィルタあり、f1でサンプリング
 10:フィルタあり、f8でサンプリング
 11:フィルタあり、f32でサンプリング 
 
  0  WCB1F0 

(3)コンパレータB3割り込み制御レジスタ(WCB3INTR)

ビット シンボル ビット名 機能
  7  WCB3F  コンパレータB3割り込み要求フラグ  0:割り込み要求なし
 1:割り込み要求あり 
  6  WCB3INTEN   コンパレータB3割り込み許可信号ビット  0:割り込み禁止
 1:割り込み許可 
  5  WCB3S1     コンパレータB3割り込みエッジ選択ビット  00:アナログ入力電圧が基準入力電圧より低いとき
 01:アナログ入力電圧が基準入力電圧より高いとき
 10:設定禁止
 11:アナログ入力電圧が基準入力電圧より低いおよび        高いとき   
  4  WCB3S0 
  3      
  2    
  1  WCB3F1   コンパレータB3フィルタ選択ビット  00:フィルタなし
 01:フィルタあり、f1でサンプリング
 10:フィルタあり、f8でサンプリング
 11:フィルタあり、f32でサンプリング 
 
  0  WCB3F0 

(4)コンパレータBiの設定手順

1)ポート機能マッピングレジスタで機能選択

 コンパレータB1に関しては、

    P1_7をコンパレータB1のアナログ電圧入力(IVCMP1)に設定する場合、
      p17sel0 = 0;
      p17sel1 = 0;

    P1_6をコンパレータB1の基準電圧入力(IVREF1)に設定する場合、
      p16sel0 = 0;
      p16sel1 = 0;

    P1_5をコンパレータB1の比較結果出力(VCOUT1)に設定する場合、
      p15sel0 = 0;
      p15sel1 = 0;
      p15sel2 = 0;

    P4_6をコンパレータB1の比較結果出力(VCOUT1)に設定する場合、
      p46sel0 = 0;
      p46sel1 = 0;
      p46sel2 = 1;


 コンパレータB3に関しては、

    P3_3をコンパレータB3のアナログ電圧入力(IVCMP3)に設定する場合、
      p33sel0 = 0;
      p33sel1 = 0;

    P3_4をコンパレータB3の基準電圧入力(IVREF3)に設定する場合、
      p34sel0 = 0;
      p34sel1 = 0;

    P3_5をコンパレータB3の比較結果出力(VCOUT3)に設定する場合、
      p35sel0 = 1;
      p35sel1 = 1;

2)コンパレータBi割り込み制御レジスタ(WCBiINTR)のコンパレータBiフィルタ選択ビット

 ディジタルフィルタの有効、無効の切り替え。サンプリング周波数を決めます。

 コンパレータB1に関しては、フィルタあり、f1でサンプリングする場合、
      wcb1f0 = 1;
      wcb1f1 = 0;

 コンパレータB3に関しては、フィルタあり、f1でサンプリングする場合、
      wcb3f0 = 1;
      wcb3f1 = 0;

3)コンパレータB制御レジスタ(WCMPR)

 コンパレータ動作許可ビット(wcbim1)を許可に設定する。

 コンパレータB1に関しては、
      wcb1m1 = 1;

 コンパレータB3に関しては、
      wcb3m1 = 1;


4)コンパレータ機能が安定するまで100μs待ち

 wait_us(100);


5)割り込みを使用する場合の優先レベル設定

 コンパレータB1に関しては、
      ilvl20 = 0;
      ilvl21 = 1; ・・・レベル2に設定

 コンパレータB3に関しては、
      ilvl24 = 1;
      ilvl25 = 0; ・・・レベル1に設定

6)コンパレータBi割り込み制御レジスタ(WCBiINTR)の入力極性選択

 コンパレータB1に関しては、
      wcb1s0 = 1;
      wcb1s1 = 1; ・・・ アナログ入力電圧が基準電圧入力より高いか低いとき

 コンパレータB3に関しては、
      wcb3s0 = 1;
       wcb3s1 = 1; ・・・ アナログ入力電圧が基準電圧入力より高いか低いとき


7)コンパレータBi割り込み制御レジスタ(WCBiINTR)の割り込み要求フラグのクリア

 コンパレータB1に関しては、
      wcb1f = 0;

 コンパレータB3に関しては、
      wcb3f = 0;


8)コンパレータBi割り込み制御レジスタ(WCBiINTR)の割り込み許可信号ビット許可

 コンパレータB1に関しては、
      wcb1nten = 1;

 コンパレータB3に関しては、
      wcb3nten = 1;








プロジェクトファイルのダウンロード



メニューに戻る