真の意味でPR2、Dutyを理解できていなかった
Timer2はカウントを刻むもの
PR2はTimer2が刻むカウントの最大値を決めるもの
DutyはONとOFFの割合を決めるもの
みたいな感覚で思っていました。
やっと掴めたPR2値とDuty値
しかしChatGPTにしつこく質問され、
理解できていないところがバレてしまい、
そこの修正をしてもらい、
を繰り返すことで、
頭の中で

を描くことができました。
文字での説明としては、
Timer2が0からPR2までカウントアップしていく中で、
Duty値に到達するまではON、
Duty値からPR2まではOFFと切り替えます。
それを繰り返す。
■感覚的に言うと
PR値が大きければ大きいほど、細かく刻める(上の図で言うと歩幅が小さい)。
つまり分解能が高い。
PR2が大きすぎると、1周期の幅が大きくなる。
つまり周波数は下がる(1秒間にカウントできる0~PR2までの回数が減る)。
■厳密に言うと
● PR2が大きい → Timer2の1周期が長くなる
● その1周期の中をDutyで分割する
● だから刻める段階が増える
PWMの分解能は
4 × (PR2 + 1)
で決まる。
トレードオフの関係性が成り立ってます。
ここまで理解できるのに随分とかかってしまいましたが、
嫌な顔(?)ひとつせずに付き合ってくれるチャッピー(ChatGPT)には、
感謝です。
次はDutyの内部構造である
CCPR1L と CCP1CON<5:4>
をちゃんと理解したい。

コメント