Top > 気まぐれ日記 > 2004-03-20

実家1 *

実家でのんびり。
会社の花見の案内状をつくったり。

ノートパソコンを持ってきているので、夜は作業をしながらメッセンジャ。

メール処理 *

フルカラーLEDイルミネーションの制御方法について質問がありました。
仕様に書いていた最小デューティ比約1/7500を、ソフトウェアPWM制御で可能なのかという内容です。

仮にキャリア周波数80Hzで、ソフトウェアPWM制御で行うには、

80Hz ÷ (1 / 7500) = 600kHz

にとなり、600kHzでタイマ割り込みをかける必要があります。
1.2MHzで動作しているATtiny12Lで、600kHzで割り込みをかけることはまず無理です。

タネあかしは下に書いておきます :)

フルカラーLEDイルミネーションの階調制御方法 *

結論から、
LEDの階調制御には、PWM制御とPFM制御を同時に使用しています。

PFM制御の場合、

デューティ比 = パルス幅 ÷ (1 / 周波数)

AVRは1CPI(clock/instruction)で処理することができるので、1.2MHzで動作しているATtiny12Lで出力できる最小パルス幅は、

(1 / 1.2MHz) ≒ 0.833μs

仮に周波数80Hzとした場合のデューティ比は、

0.833μs ÷ (1 / 80Hz) ≒ 1/15000

になります。

PWM制御は分解能を大きくすると、比例して割り込み回数も増えるためにCPU負荷が大きくなります。
そこで、PWMでの分解能は128、最小キャリア周波数は80Hzにしています。
タイマ割り込み周波数は、

80Hz × 128 ≒ 10kHz

PFM制御は周波数を高くすればデューティ比が大きくなりますが、比例して割り込み回数も増えるためにCPU負荷が大きくなります。
そこで、PFMでの最大周波数は10kHzまでに制限しています。

0.833μs ÷ (1 / 10kHz) ≒ 1/120

制御可能範囲、0 〜 1/120 (分解能 1/15000)

PWM制御とPFM制御は同じタイマを使用しています。
(PFM制御では、平均周波数を変化)

PWM制御とPFM制御を組み合わせることによって、高い分解能を実現しています。
(他にもキャリア周波数を大きくみせる細工もしています)

...そろそろ製作記事もかかないとなぁ :(