SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

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のページ内に記述を発見。ざざっと読んで、次はMicrochipTechnologyPIC16F819のオフィシャル英文マニュアルを読む。このマニュアルだけだとちょっとキツイんだよな。もうすこし実際のコード例が多いと助かるのだが。

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)による

  とーとつだが、一部を訳してみた。では、また明日。