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

名前

URL

タイトル

コメント

2018年7月7日(土) 20:25

サーボ動作

 アナログ入力までOKになったと思ったが、妙に不安定である。ボリュームを回しても、LEDは点灯しっ放しになる。たまに、ちゃんと反応することもある。
 リセットボタンを押すと、期待通りに動作する。

 これは、パワーオン・リセット・タイマーが無効じゃないか?
 サンプルプログラムでは、案の定設定されていなかった。しかも、パワーオン・リセット・タイマーを設定するコンフィギュレーション・レジスターの別ビットでは、PWMモジュールを有効にする設定がある。このままだと、PWMまで機能しなかったんじゃないか?
 とにかく純正サンプルは、優秀っぽいがあちこちヌケてるので要注意である。

 ともあれ、15番ピンと16番ピンからラジコンのサーボパルスを出力することにする。
 試験基板にコネクターを設置し、配線する。
 リニア・アクチュエーターは最大6Vなので、エネループ4本をそのまま電源線に乗せられる。いっぽうで出力信号は3.3V電源のマイコンから送り出される。だからレベル変換の必要がありそうだが、ラジコンのサーボパルスは3.3Vで行けるという定説である。取り敢えず直結してみる。

 サーボパルスを作成するため、dsPIC30 用に昔作った「マイクロ秒単位で待つ」サブルーチンをそのまま使用。ところが、2倍ぐらいに間延びしている。
 dsPIC30 と dsPIC33 は、ほぼソフト互換のはずである。速度が2倍も変わるのは、おかしい。

 データーシートを再確認し、誤解に気付いた。40MHz動作で40MIPSだと思い込んでいたが、どうやら80MHz動作で40MIPSが正しい。
 クロックを40MHzにしていたので、速度が半減していたのだ。さっそく80MHzになるよう修正してやる。

 サーボパルスは、問題なく2つのリニア・アクチュエイターを動作させた。やはり、レベル変換は不用だった。

written by higashino [ドリル戦車] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

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

Comments

TrackBacks

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

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4