2022.12.4
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第119回]



●PICUSBIO−03(68)Timer2(17)フルブリッジPWMモード(3)方向の切換え

前回はフォワードモードとリバースモードを別々に試しました。
フォワードモードのみを使うことが多いかもしれません。
しかしフォワード(前進)、リバース(後退)という名称からも推察できます通りフォワードとリバースを組み合わせて使う用途もそれなりに多いと思います。
フルブリッジPWMモードではフォワードモードとリバースモードは同じ回路に対して向きを切り換えることができるモードです。

下はフルブリッジモードでの向きの切換えについての説明です。

[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

フルブリッジモードではCCP1CONレジスタのP1M1ビット(bit7−6)はフォーワード(前進)/リバース(後退)の切換えに使います。
ユーザーアプリケーションプログラムがこのビットを書き換えたとき、PWMモジュールは次のPWMサイクルで向きを切り換えます。
向きの切換えはCCP1CONレジスタのP1M1ビットをソフトウェアで変更することで開始されます。
現在進行中のPWM期間の終わりに次の順序で進行します。
●PWM出力(P1BおよびP1D)が非アクティブレベルになります。
●PWM出力ではない出力(P1AおよびP1C)は反対の向き(反対の電圧レベル)に切り換わります。
●PWM出力が次のPWM期間の先頭に行なわれます。
FIGURE14−10は上記のシーケンスの参考図です。
図の中にNOTEがあります。
NOTE1:CCP1CONレジスタのP1M1ビットの書き換えはPWMサイクルのどの時点でも可能です。
NOTE2:向きの切換えが行なわれるとき、P1AとP1Cの出力レベルは現在のPWMサイクルが終る前に反対のレベルに切り換わります。この期間(2)はP1BとP1Dは非アクティブです。
この期間(2)の長さは(1/Fosc)*TMR2のプリスケール値です。

最後の上記の文なのですがちょっと疑問に思います。
TMR2のプリスケール値は周期、パルス幅の設定にも使いますから(2)の時間を任意に設定することはできません。
さらにプリスケール値は最大で1:16ですからFosc=48MHzの場合(2)の時間は最大でも16/48=1/3μsecです。
そんな値でよいのでしょうかね。
上記説明文の右側でフルブリッジPWMモードには通常はDead−Bandは不要であると書いてあります。
なぜなら常に片方(P1AとP1D、P1BとP1C)しかアクティブにならないから、というのがその理由のようですが。
P1AがOFFになるのとP1BがONになるのが同時ならやっぱりまずいのでは、と思ってしまいます。
同説明文では問題になるのは出力パルスのデューティが100%に近いときだということでそれについて説明しています。
それはそうだとは思いますけれど。
私としてはちょっとここのところは引っかかります。
ま、ここはこれ以上追求しないことにします。

プログラムを作りました。

70行でフォワードモードを設定し80行でリバースモードを設定します。
90行で70行と80行を繰り返します。
30行と70行の設定がダブリますので30行は削除しました(そうしなければならないことはありませんが)。

プログラムを実行しました。

命令が実行されるタイミングとは関係なく周期の終わりのところでフォワードモードとリバースモードが切り換わっています。

今回でPWMモードについては終わりです。
Timer2には今まで説明してきた機能のほかにも別の使われ方がありますがそれについては次回以降でまた説明をしていくことになると思います。

PIC−USBIO using BASIC[第119回]
2022.12.4upload

前へ
次へ
ホームページトップへ戻る