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


PIC−USBIO using BASIC

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

[第115回]



●PICUSBIO−03(64)Timer2(13)ハーフブリッジPWMモード(2)DEAD−BAND

今回はハーフブリッジPWMモードのテストプログラムを作って試してみます。
実際に作業にかかってみると今までテストをしてきたシングルPWMモードのプログラムとほとんど同じで一部を少し書き換えるだけでできてしまいました。
下は[第108回]で作ったシングルPWMモードのプログラムです。


その一部を下のように変更しました。

30行を書き換えました。
前回書きましたようにCCP1CONのbit7−6を10に、そしてbit3−0を1100にしました。
40行のPSTRCONレジスタはシングルPWMモード(Pulse Steeringモード)のためのレジスタですから今回は必要ありません。
40行は削除しました。
PSTRCONは[第107回]で説明をしています。
とりあえず周期は[第108回]と同じ10μsecにしました。
周期はPR2で設定します。
50行でPR2に$77を設定しています。
50行はもとのプログラムのままです。
パルス幅は1μsecでしたが今回は7μsecにしました。
前回のFIGURE14−6に近い波形にしてみようと考えたからです。
60行でCCPR1Lに$54(10進数の84)を設定しました。
パルス幅=4*84/48=7(μsec)
になります。

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

上側(CH1)はP1A出力です。
下側(CH2)はP1B出力です。
P1AとP1Bはコンプリメンタリ(相補的)な波形になっています。
P1Aで見るとactive−highは7μsecです。
周期は10μsecです。
Dead−Bandは設定していませんからP1AとP1BはちょうどHとLが逆の波形になっています。

今度はここにDead−Bandを入れてみます。
下はDead−Bandについての説明です。


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

ハーフブリッジ回路のパワースイッチは通常OFFからONになるときよりもONからOFFになるときのほうが時間がかかります。
もしも(FIGURE14−15の回路図で)上側のパワースイッチと下側のパワースイッチの両方が同時に切り換わる(一方がONにもう一方がOFFに切り換わる)と、一方が完全にOFFになるまでの間に短い時間両方のスイッチがONになる可能性があります。
するとその短い時間に非常に大きなショート電流が両方のパワースイッチに流れることになります。
そのように危険なショート電流が流れるのを避けるためにはどちらのパワースイッチがONするときも他方のパワースイッチが完全にOFFになるまでONするのを遅延するようにします。

ハーフブリッジモードではショート電流によってパワースイッチが破壊されるのを防ぐためにプログラムでデジタル的にdead−band遅延を加えることが可能です。
その遅延は信号が非アクティブの状態からアクティブな状態に切り換わるときに発生します。
FIGURE14−14を参照してください。
PWM1CONレジスタ(下図)の下位7bitで遅延時間を設定します。
設定単位はPICの命令サイクル時間(1/12μsec)です。

下はPWM1CON(PWMコントロールレジスタ)の説明です。

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

bit7はシステムがシャットダウン(およびシャットダウンから復帰)したときのPWM出力の自動再スタートの設定のようです。
初期値は0(OFF)になっています。
bit6−0はPWM信号が本来アクティブになるべき時点から実際にアクティブになるまでの時点までの時間を4*Tosc(1/12μsec)単位で設定します。

さきほどのプログラムにDead−Bandの設定を追加しました。

15行でPWM1CONに$06を設定しました。
遅延時間=6/12=0.5(μsec)
になります。

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

周期(10μsec)は変わりません。
CH1(P1A)とCH2(P1B)の立ち上がりが他方の立ち下りから0.5μsecほど遅れているのがわかります。
その分アクティブ(H)期間が短くなっています。

水平時間軸を1μsec/divにしました。


PIC−USBIO using BASIC[第115回]
2022.11.30upload

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