- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PWM制御のデューティ変更時におけるトラブル)
PWM制御のデューティ変更時におけるトラブル
このQ&Aのポイント
- PWM制御において、デューティ変更時に予期せぬ現象が発生しています。
- デューティを急激に変化させた場合に、デューティが100%以上になる現象が起きます。
- デューティを変更するタイミングやデューティの値が問題の可能性があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、ざっくり簡単なとこだけ。 TCNTがフリーランカウンタになっているならば、デューティー変更の際気をつけないとコンペアマッチが発生せず、1パルス分おかしな波形になったり、使い方によってはデューティーが逆転する可能性さえもありますね。 この場合、デューティーの変化量が大きいほど事象が発生しやすくなります。 サンプルの例で例えるならばデューティーレジスタを1999から399に変更した場合に、TCNTが400-1998の間にあると、1999で発生すべきコンペアマッチが発生せず、TCNTが次周期の399に達するまでHiを保持するでしょう。 TCNTも割り込みの度に初期化してあげることでとりあえず現象が収まるならばここが問題じゃないでしょうか? TCNTをフリーランカウンタとして使うためにはファーム側できちんと出力波形について条件分岐する必要があります。 コンペアマッチでトグルする仕様だったりすると1A->5Aへの変更時も同一周期に2度コンペアマッチが発生してしまうなど 意図しない動作をする可能性がありますね。 質問内容にここらの考慮が記載されてませんでしたので念のため。
お礼
bug_bug様、ご回答有難うございます。 bug_bug様が仰るとおり、TCNTについては何も考えておらず、フリーランカウンタになっています。 動作検証ができるのは1月5日なのですが、その時に早速試してみます。 大変貴重なご意見、有難うございました。
補足
回答への補足にて失礼します。 本日、実機にて動作確認をしてみた所、bug_bug様が仰ったとおり、TCNTとデューティレジスタの関係で、コンペアマッチせずに次の周期まで出力が維持されたため、このような現象が起きた事を確認できました。 プログラムに更なるコーティングを施し、今では問題なく動作しております。 これで、本制御のメインであるPID部分に専念できます。 これもbug_bug様のおかげです。 真に有難うございました。