ストリナさん、LAP-C Pro入荷しちゃった…… 「欲しいって言ったよね? 入荷したよ? ポチるよね?」という無言の圧力を感じる……
欲しいとは言ったが買うとは言ってない(買えない
***
超音波トラポン、とりあえず、ADCで連続受信、一定数バッファに溜め込んでからFFTで周波数空間へ変換、40kHzのパワーがしきい値を超えていればADCを停止し、DACで送り出す、という処理は動くようになった。
黄色がメインの素子、紫色がサブの素子。メインとサブは異なるタスクで管理されている。コンソールからコマンドを打つと、サブの素子から1ミリ秒のパルスが送られる。伝搬遅延約500マイクロ秒後にメインの素子で受信される。その後、増幅した後にDACで送り返される。
最低限、ADCで受信、FFTで検出、DACで送信、しかやってないので、応答のタイミングとか、作り込んでいない部分が多い。
FFTはq15のRFFTを使っている。これにより、ADCからDMA転送されたデータを直接渡すことができる。ただし、RFFTは入力バッファを破壊するので、DAC用のバッファに移動した後にFFTに通している。また、q15/q31のFFTは飽和対策で信号が小さくなるので、ADCは左寄せで、16384を中心にスイングするように入力している。DAC用のバッファに転送する際は、ただコピーするだけではなく、減算処理を同時に行っている。これにより、右寄せ12bitで転送した際に2048を中心にスイングし、振幅も16倍となる。
超音波距離計の場合、プライマリエコーを使うので、超音波素子を通過するのは2回になる。トラポンの場合、セカンダリエコーを使うので、素子を4回通過することになる。信号の劣化が倍になるので、悪影響はありそう。衛星のレンジングで、探査機側でビットストリームまでデコードしてからエンコードし直したりするの、効果デカイんだろうな。今回は手軽に使うために、非再生型を採用する予定。送信側でチャープとかのパラメータ変えたときに、いちいちトラポン側もそれに合わせるのが面倒。
とりあえず、ADCとDACの同期方法を考えねば。まぁ、タイマ1本増やせばできるはず。任意時間の遅延機能とか作ろうとすると大変だろうけど、なんとかなりそう。
トラポン作るんだったら、返答に12bitデータ載せれるようにしたりすれば、DS18B20で計測した温度とかをそのまま返せるんだよな。自分と相手の場所の温度を平均すれば伝搬速度の計算精度上げれそう。あぁ、また脱線のネタが……
ところで、飛行機のトラポンも、12bitデータなんだよね。作る? (作らねーよ
0 件のコメント:
コメントを投稿