パスワードを忘れた? アカウント作成
637445 journal

espyの日記: robo:: いまだロジック部 (汗;) 2

日記 by espy

この土日にアルミ板切断作業へ進むつもりが...うむ。

T-Engine→PICへのコマンド書き込みは成功していたが、その逆、
ホストCPU側からの読み出しの動作確認でトラブる。
PICが今、readyであるか否かのフラグを返す機能を、途中に挟んだ
CPLDで管理しているのだが、ホスト側から全く読めない。
「readyであるか否か」というのは、ホストCPUがPICにコマンドを出して
良いかどうか、という意味で、「readyでなくなる」場合は二つある。
(1)PICがサーボに"H"パルスを出している時。クロック数えのループ
    なので割り込めない。
(2)ホストCPUがPICに1byte書き込んだ瞬間。CPLD内のFFがセットされる。
      FFのリセットはPIC側が忙しくなくなった時、clearするパルスを出す。
この設計が妥当かどうかはあると思うが、安全にアクセスするために
悩んだあげく作った仕組みである。

で、verilogのシミュレーションではうまくいっているのに現物はダメだ。
悩んだ。データバスに値を吐く部分は、スリーステートの(普段は
Hi-Zを出す)、ちょっと不慣れな記述を使っていた。これだろうか?
  こんな風な: assign PICREADY = (picread) ? ff_q0 : 1'hz;
いろいろ確認していると、read#入力ピンのピン番号のアサインが
間違っていただけであった。がくっ.

続いて、1×2.5cm程度の小さい基板片を作り、加速度センサ ADXL202を
乗っけて、拡張基板に垂直に立てるように取り付ける。つまりロボが
直立時に水平になる。
T-Engine側の読み出しプログラムを作り、ぐるぐる回しながらボードを
傾けると、ちゃんと値が変化している。オッケー!
X,Y軸がなぜか逆なのと、感度が悪そうなのが気になる。(感度に
ついては10bitのMSB側を取っているがLSB側8bitを取るべきか?)

今日はここまで。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • アナログベースなセンサのLSBは怪しいし。

    何倍の感度が欲しいかにもよるネ。4倍以上が欲しけりゃLSB側を取って平均
    化処理してみるとか、どーしてもレンジがほしけりゃ10bits全部取って対数
    表現してみたりアナログチックに丸めてみたり。
typodupeerror

「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常

読み込み中...