PIC−USBIO using BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第118回]
●PICUSBIO−03(67)Timer2(16)フルブリッジPWMモード(2)
フルブリッジPWMモードのプログラムを作って実行します。
今までのハーフブリッジPWMモードのプログラムとほぼ同じです。
[第115回]で作ったハーフブリッジPWMモードのプログラムの一部を書き換えました。
30行のCCP1CONに$8Cを設定していたところを$4Cに書き換えました。
CCP1CONのbit7−6を01にすることでフルブリッジPWMモード(フォワードモード)になります。
bit3−0は1100のままにしておきます(P1A〜P1Dをactive−highにする)。
60行の$54を$24(10進数の36)に変更しました。
ここはもとのままでもよいのですがData Sheetの波形図のサンプルのパルス幅に見た目を合わせようとしたためです。
周期は今までと同じ10μsecです。
パルス幅=4*36/48=3(μsec)
になります。
プログラムを実行しました。
今まではオシロスコープの画像でしたが今回はP1A〜P1Dの全ての出力の状態を見ますからCPLDロジアナを使いました。
CPLDロジアナについては「CPLD入門」[第148回]を参照してください。
PROBE0がP1A、PROBE1がP1B、PROBE2がP1C、PROBE3がP1Dです。
PROBE3(P1D)がPWM出力でP1Aはactive−highレベル(Vcc)、P1BとP1Cは非activeレベル(GND)になっています。
PROBE3(P1D)はHレベルの期間が3μsecでLレベルの期間が7μsecになっています。
今度はリバースモードを試してみました。
30行のCCP1CONを$4Cから$CCに変更しました。
CCP1CONのbit7−6を11にするとフルブリッジPWMモード(リバースモード)になります。
プログラムを実行しました。
PROBE1(P1B)がPWM出力でPROBE2(P1C)はactive−highレベル(Vcc)、PROBE0(P1A)とPROBE3(P1D)は非activeレベル(GND)になっています。
PROBE1(P1B)はHレベルの期間が3μsecでLレベルの期間が7μsecになっています。
参考までに今度はactive−lowで同じことを試してみました。
最初に戻ってフォワードモードです。
CCP1CONに$4Fを設定しました。
bit1−0に11を設定するとP1A〜P1Dがactive−lowになります。
プログラムを実行しました。
PROBE0がP1A、PROBE1がP1B、PROBE2がP1C、PROBE3がP1Dです。
PROBE3(P1D)がPWM出力でPROBE0(P1A)はactive−lowレベル(GND)、P1BとP1Cは非activeレベル(Vcc)になっています。
PROBE3(P1D)はLレベルの期間が3μsecでHレベルの期間が7μsecになっています。
こんどはリバースモード、active−lowです。
CCP1CONに$CFを設定しました。
プログラムを実行しました。
PROBE1(P1B)がPWM出力でPROBE2(P1C)はactive−lowレベル(GND)、PROBE0(P1A)とPROBE3(P1D)は非activeレベル(Vcc)になっています。
PROBE1(P1B)はLレベルの期間が3μsecでHレベルの期間が7μsecになっています。
PIC−USBIO using BASIC[第118回]
2022.12.3upload
前へ
次へ
ホームページトップへ戻る