SVX日記
2004-08-12(Thu) PWM制御下調べ
今日は夕方に食事に行って呑んでたりしてた。よって、作業も少しだけ。先日購入したアナログメータを利用するためのPWM制御方法について勉強してみた。PWM制御というのは、簡単にいうとスイッチのON/OFFを高速で繰り返すことによって、ONとOFFの中間の出力を取り出す方法のこと。チョッパ制御ともいうらしい。また、PCのスイッチング電源の「スイッチング」もスイッチのON/OFFのことを指していて、PWM制御している電源のことである(たぶん)。
PWM制御は単純にスイッチのON/OFFをするだけなので、PIC上のプログラムで直接ON/OFFを制御してもいい(実際、以前にPIC12F629を用いて作ったUSB扇風機用1/fゆらぎアドオン基板はそうした)のだが、アナログメータを動かす場合は他にもいろんな処理をしたいので、プログラムがPWM制御するのにかかりっきりになるのはよろしくない。そこで、PIC16F819またはPIC16F648Aあたりに最初から備わっているPWM機能を利用して実現するという寸法である。そのための方法を勉強するのである。
まずは、Webで検索してPICFANのページ内に記述を発見。ざざっと読んで、次はMicrochipTechnologyのPIC16F819のオフィシャル英文マニュアルを読む。このマニュアルだけだとちょっとキツイんだよな。もうすこし実際のコード例が多いと助かるのだが。
9.3.3 PWM制御の設定
CCPモジュールをPWM制御に設定する場合、以下のステップが推奨される。
1.PWM周期をPR2レジスタに書き込む
2.PWMのON割合をCCPR1LとCCP1CON<5:4>に書き込む
3.TRISBをクリアし、CCP1を出力に設定
4.TMR2プリスケーラを設定し、T2CONに書き込んでTimer2を有効にする
5.CCP1CONをPWMモードに設定する(CCP1モジュールをPWMモードに設定する)
Note: TRISBの2か3かは、コンフィギュレーションビットの12ビット目(CCPMX)による