拡張CCPの使い方


【拡張CCP(ECCP)】

拡張CCP(ECCP)は、PIC18F4x20シリーズだけに実装されているモジュールで、
CCP1モジュールに、PWM機能を拡張したCCP1モジュールです。
そして、通常のCapture,Compare,PWMモードで使う分には、これまでのCCP1
モジュールと全く同じです。
ことなるのは、唯一拡張PWM機能のみです。
この拡張PWMでは、下記点で従来から拡張されています。
  ・2または4出力ができる
  ・出力極性が選択できる
  ・切り替わり時に、デッドバンドが自動挿入される
  ・自動シャットダウン、リスタート機能がある

【拡張CCPモジュールの構成】

CCP1モジュールを拡張モードで使うときの内部構成は、下図のようになって
います。
これで判るように、従来のCCP1モジュールの出力に制御機能が追加され、
4ピンの出力ピンが制御されている構成です。
この4ピンの出力が、フルブリッジやハーフブリッジを構成するようになっています。







【CCP1CONレジスタ】

拡張CCPの機能を設定するためのレジスタは「CCP1CONレジスタ」で、従来の
CCP1CONに比較して上位2ビットが追加されています。
この2ビットで拡張PWM機能の出力モードを設定します。さらにモード選択の
VVP1M3:CCP1M0の値の11xxの場合が区別され、P1A,P1B,P1C,P1Dの4出力
の初期値が変えられるようになっています。





拡張PWMモードに設定したときの、P1M1:P1M0の値により、4出力ピンは、
下表のように設定されます。

ECCPモード CCP1CON RC2 RD5 RD6 RD7
従来CCPモード 00xx11xx CCP1 RD5 RD6 RD7
ハーフブリッジ 10xx11xx P1A(PWM) P1B(^PWM) RD6 RD7
フルブリッジ 01xx11xx P1A P1B P1C P1D(PWM)
11xx11xx P1A P1B(PWM) P1C P1D


【ハーフブリッジ動作】

ハーフブリッジを指定したときのP1AとP1Bの出力は、下図のように両方とも
PWMとなり互いに逆位相のパルスとなります。またCCP1CONレジスタの設定
変更で、HighとLowを逆にすることもできます。




この信号で何をするかというと、下図のようにモータとMOS FETトランジスタを
接続して速度可変のブリッジを構成します。
上側がハーフブリッジ構成で、下側がフルブリッジ構成です。
こうするといずれの場合にも、可逆回転ができ、かつ可変速度のモータ制御が
できます。
デッドバンドディレイは、下図のような構成としたとき、切替える瞬間に
両方のトランジスタがオンになると、電源をショートしてしまい、大電流が流れ
トランジスタが壊れることもあるので、そういう状態にならないように、一旦
両方ともオフにしてから、切替えるようにするためです。



【フルブリッジ動作】

フルブリッジ動作モードを指定した場合には、4つの出力が下図のように
制御され出力されます。下図は回転方向を切替えるときのタイミング図です。
正転、逆転モードでP1DかP1BがPWM出力となり、それに対応するP1A、P1C
のHigh、Lowが切り替わっています。




この出力では、下図のようなフルブリッジで接続で使うことを前提にしています。
これで可逆回転、可変速度のフルブリッジが簡単に構成できます。






【PWM設定手順】

実際にCCPをPWMモードで動かす時には、下記ステップで設定します。

(1) PR2レジスタに設定する値でPWM周期を設定する。

(2) 必要なデューティとなる値をCCPRxLレジスタとCCPxCONレジスタの
  2ビットに設定する。
(3) CCPxの出力を可能にするため、ポートのTRISレジスタで出力モード
  にする。
(4) タイマー2のTMR2レジスタに初期値を、T2CONレジスタに動作モードを
  設定する。
(5) CCPxCONレジスタでPWMモードに設定する。


【CCP用C言語ライブラリ】

CCS社のPCHコンパイラに用意されているCCPモジュール用の組込み関数では
まだ拡張CCP機能はサポートされていません。




  トップページへ