[Armadillo:08332] Re: Armadillo-440 のバックライト制御PWMについて

柳原 考作 email@hidden
2012年 9月 21日 (金) 13:11:59 JST


柳原です。
ご説明ありがとうございました。

> PWMPR+2と同じ値に
> なったときにPWMO出力を再度反転します。
PWMPR+2ではなく0ではないでしょうか?

つまり、PWMPRとPWMSARに等しい場合は、
 ・PWMカウンタ=PWMPR
 ・PWMカウンタ=PWMPR+1
の2サイクルがPWMO反転出力で、PWMPR+1の次は0に戻ってPWMOが初期状態に戻る
という事ではないかと。

> つまり、輝度最大時に常に値を一定にしてパルスを発生させたくない場合、
> PWMSAR > PWMPR+1とすれば良いことになります。
preriod_cycles(PWMPR)とduty_cycles(PWMSAR)のどちらをいじるかについては、
 (a) 両方が0xxFFFFになる条件では結局1サイクル分はパルス発生してしまう
 (b) prescale算出にperiod_cyclesが使われている影響が懸念された
の2点が心配であったため、こちらではトリッキーだが従来動作に影響が少なそ
うな方法を採用しました。

(a)の根拠は、データシートにて、「PWMPRに0xFFFFを設定した場合は内部的には
0xFFFEとして扱われる」という説明があり、この場合PWMカウンタの最大値は
0xFFFFになってしまうため、最大値をとる1サイクル分だけPWMSARと一致してし
まうという理解です。

(b)については、period_ns、period_cycles、prescaleの関係までは理解できて
いないため、period_cyclesを増減することによって、結果的にperiod_nsで指定
した時間と実際のPWM周期に矛盾が生じないと判断して良いのかどうか、分から
なかったという事情がありました。



armadillo メーリングリストの案内