dsPIC33Fの基本動作から応用プログラムまでを学びます。

ホーム
16F18313
16F18325
16F18346
16F1619
Curiosity
---
---
    
12F1822
16F1455
16F1459
18F14K50
18F26J50
dsPIC
その他
ロジックアナライザ自作 (dsPIC33F側)

dsPIC33FJ128GP802を使用し、ロジックアナライザーを作成しました。dsPICを最高速の80MHzで動作させTimer1で定期的にロジック信号を取り込み内部RAMに収集していきます。PICkit2のロジックアナライザーと同等の機能をもっています。さらに、PICkit2のロジックアナライザーで不足を感じていた「FreeRun機能」を盛り込みました。

全てC言語 (XC16)でコーディングしたため、サンプルレートの最高は1μSecです。1回に1100サンプル読み込みます。dsPICはRAM容量が大きいため保存するサンプル数はこの10倍にすることも可能ですが、データ取得や結果の転送に時間がかかるため、1100サンプルにとどめています。また、現在使用している入力端子は、5vのロジックを直接接続できるRB6-RB9の4チャンネルです。さらに、 RB10、RB11を追加することは簡単な変更で可能ですが、PC側の操作パネルの見栄えの点から、現在必要としている4チャンネルだけにしています。 収集したデータはUSBでPCに送り表示させます。dsPICからはシリアル115200bpsで出力し、PIC16F1455の「シリアル - USB変換」でPCのCOMポートに接続しています。

このdsPICロジックアナライザーを操作するPCアプリケーションは 次ページで紹介します。



プログラム

ポイントは以下の点です。

PCからのコマンドを解釈し、データの収集を開始すると、サンプル間隔毎にデータを保存したのちに、トリガ条件を満たしているか検査します。トリガポイント前後の処理シーケンスの流れを下図ステート処理に示しました。

XC16 C言語ソースリストは、[こちら