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


PIC−USBIO using BASIC

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

[第107回]



●PICUSBIO−03(56)Timer2(5)シングルPWMモード

今回は4通りあるPWMモードのうちのシングルPWMモードを試します。
他のPWMモードは同時に2以上のPWM出力を使うのに対してシングルPWMモードは出力を1個だけしか使わないので「シングル」というのだろうと思います。
Data Sheetではどうも名称が整理されていなくて複数の名称が使われています。
Single PWM mode
Pulse Steering mode
Single Output mode
PWM Steering mode
これらは全部同じモードのようです。
Data SheetではSingle PWM modeについての説明はPulse Steering Modeの項目にあります。


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

Steeringは操縦、かじ取りと訳されます。
たとえばSteering Wheelは車のハンドルです。
直訳ではピンときません。
「操る」だとなんとなく近い意味になるかなと思います。
パルスの周期、パルス幅を決めるモードということでしょう。
シングルPWMモードでは最大4本の端子に同じパルスを出力することができます。
どの端子に出力するかはPSTRCONのbit3−0で指定します。
bit4はパルスの最初の出力タイミングを規定しますがここは特別の場合しか問題にならないでしょう。
bit3を1にするとP1D端子からPWMパルスが出力されます。
bit3を0にするとその端子はI/Oポート(PORTC)のビットになります(以下同文)。
bit2を1にするとP1C端子からPWMパルスが出力されます。
bit1を1にするとP1B端子からPWMパルスが出力されます。
bit0を1にするとP1A端子からPWMパルスが出力されます。
各出力波形の極性はCCP1CONレジスタのCCP1Mビット(bit1−0)で指定します。
Note 1:PWM SteeringモードはCCP1CONレジスタのCCP1M<3:2>=11でP1M<1:0>=00のときのみ使えます。

CCP1CONは前回お見せしましたが下に再掲します。

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

P1MはCCP1CONのbit7−6です。
シングルPWMモードを使うためにはここを00にする必要があります。
それとPWMモードではbit3−2は11にしなければなりません。
bit1−0が00のときP1A、P1Cはactive High(Hパルスが出力される)、P1B、P1Dはactive High
bit1−0が01のときP1A、P1Cはactive High、P1B、P1Dはactive Low(Lパルスが出力される)
bit1−0が10のときP1A、P1Cはactive Low、P1B、P1Dはactive High
bit1−0が01のときP1A、P1Cはactive Low、P1B、P1Dはactive Low
下は上記を図で示したブロック図です。


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

下はPWMモードの出力波形(Active High)を示した図です。


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

こちらはActive Lowの波形図です。


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

図ではシングルPWMモード以外のモードについても示していますがとりあえずは一番上のSingle Output(シングルPWMモード)のみを見ます。
図の一番下のRelationshipsのところに出力パルスのパルス幅と周期の計算式が示されています。
わかりにくい式ですしどうやら間違っているところもありそうです。

次回はそのあたりのことも書いた上で、式にしたがって適当な値をあてはめたプログラムを作ってパルスを出力してみたいと思います。

PIC−USBIO using BASIC[第107回]
2022.11.22upload

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