SSブログ

MIPS値が足りない [PIC32]

(2014.06.05)
PIC32MX250のportBとADCの読み取りを並列に動かして、100kSPSのデジタル・オシロと1MSPSのロジアナを実現しようとしています。

タイミングを細かく管理するため、割り込みは使わず、ポーリングで制御する方式を試してみた(最適化レベル1でコンパイルしてインストラクション数をカウントした)のですが、こんな結果になりました。

portB関連処理 1μ秒当たり 47step
AD関連処理 40μ秒当たり 193step

両方合わせると40μ秒当たり 2073step <==52MIPS!
う~ん、MIPS値が足りてません。特にportB関連の処理負担が重過ぎます。

<対策1>
portBのトリガ条件からパターン・マッチを外す<==45MIPS程度
<対策2>
portBのトリガ条件からビット・チェンジを外す<==45MIPS程度
<対策3>
portBのサンプリング・レートを500kSPS以下にする<==29MIPS程度
<対策4>
portBのサンプリング・レートが1MSPSのときはADの並列動作を止める<==48MIPS程度

”手元のPIC32MX250F128Bを使って”という設計条件の下では、安全サイドの<対策3>で行こうと思います。(I2Cの信号も100kBPSなら観測可能?)

--------------------------------------------------
32biデバイスを使った開発で、こんなミリミリしたプログラムを書くことになるとは思ってなかった。
マルチタスク処理なんて、まだずっと先だなぁ
--------------------------------------------------

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。