Darkside(リンクエラー修正しました)

2020年2月11日(火) 21:26

dsPICの意味

 基板にハンダゴテを入れてローパス追加する前に、若干のソフト修正を行った。基本は、割り込みを使わず無限ループで隣接相に移行というのを無限ループで連続して実行する方式である。
 修正内容は、記述ミスの再検証と、処理の高速化。PWMやIOを変更するのに関数を呼ばず、関数の中身を直接記述。更に、複数ピンまとめて設定する。これにより、何マイクロ秒も節約できるが、代償としてMCC上での変更が反映されなくなる。保守性がかなり悪化するので、バグが減ってからでないと決行し難い。

 改めて、オシロを使う。動作は明白に安定さを増し、オシロでもノイズの改善が見られた。ただしまだ、実用域ではない。

 単純な最適化が意外に大きな効果を発揮したということで、dsPIC33 の魅力も分かった。モーター制御用途の一部 dsPIC では、PWMの ON/OFF までも複数まとめて設定できるのだ。ローサイド3系統とハイサイド3系統の合計6系統の ON/OFF を、1命令で一気に設定する機能がある。速いし、余計なノイズ源にもならないだろう。
 ただし dsPIC は、8ビットPICに比べてピンに流せる電流が小さいというデメリットがある。僅か4ミリアンペアなので、TLP250さえ直接ドライブできないのだ。PIC16F1579
は絶対定格が50ミリアンペアもあり、20ミリアンペアのLEDを余裕を持って扱える。

 なぜか上位マイコンでは、ピンに流せる電流が小さい。これは、TLP250のようにLEDを内蔵したフォトカプラを利用する場合、非常に面倒だ。
 それ以外にも8ビットPICは「とにかく扱い易い」ので、8ビットPICで何とかなる場合は8ビットPICで済ませたい。
 この状態から更にローパスを追加すれば、実用になりそうな雰囲気だ。

 本の回路では、電圧変換もついでに行うなど、そのまま8ビットPICには使えない。dsPIC33 は、3.3V系である。
 シミュレーターで波形の減衰を確認し、定数を決める。
 ホールセンサー出力は、せいぜい300〜400Hzまでしか上がらない。だから、強力なローパスを入れることも可能だが、やり過ぎると遅延が大きくなる。遅延すれば、状態変化割り込みのタイミングが遅延して性能に悪影響を及ぼす。ノイズを減らせる最小限の強さを選択せねばならない。

written by higashino [Sタンク 1/16] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4