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

ホーム
12F1822
16F1455
16F1459
18F14K50
18F26J50
dsPIC
その他
    
16F18313
16F18325
16F18346
16F1619
Curiosity
---
---
ロジックアナライザー
2021-10-30

電子工作にあったら便利なロジックアナライザーを目標とし、シンプルで安価な回路を作成ました。データを一時保存するRAM領域がPIC16F18325では不足するためPIC16F18326を使用します。PICを最高速の 32MHzで動作させTimer0で定期的にロジック信号を取り込み内部RAMに収集していきます。

全てC言語 (XC8)でコーディングした場合、サンプルレートの最高は 10μSecでした。1回に1100サンプル読み込みます。アセンブラ言語 MPASM に書き換え、処理の効率化を図るために、1024サンプルに変更した場合、最高サンプルレートは 2μSecまで高速化できました。使用している入力端子は、RC0-RC4の5チャンネルです。さらに、RC5を追加することは簡単な変更で可能ですが、現在必要と考えている5チャンネルにしています。 収集したデータはUSBでPCに送り表示させます。PICからはシリアル115200bpsで出力し、「シリアル - USB変換」でPCのCOMポートに接続しています。PICロジックアナライザーの主要な特徴は以下の通りです。

  1. サンプル数 1024 x 5 bit
  2. 最高サンプル周期 2 uSec
  3. PICはアセンブラ言語でプログラム
  4. 構成部品
      PIC16F18326
      USBシリアル基板 [AE-FT234X]
  5. PCにUSB接続するためPCから給電 5v システム
  6. 専用アプリ Processing3で作成
  7. 専用アプリ Mac 及び Windowsで動作

  
回路図
市販のUSB - シリアル変換モジュールを使用するため、右図のように大変単純な回路構成です。電源はUSBから 5vが供給されます。
配膳図に示されているように、ICSP用に丸ピンソケットがプ5個 pinに取り付けられています。
PIC
サンプルデータの一時保存に 1kbyte必要となるためRAMが 2kbyteのPIC16F18326を使います。
USB - シリアル変換
秋月電子で FT234X 超小型USB - シリアル変換モジュールを購入しました。モジュールの入出力は、3.3Vですが、5V許容設計なので、USBから供給される 5VをそのままPICで使用します。
CLC
CLCモジュールを2個使いデータ収集のトリガ条件検出に使用しています。
ケース
この製作で最も苦労するのがケース探しかもしれません。今回は手芸用ビーズの入っていた透明ケースを利用しました。

プログラム C言語

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

リストの表示
XC8 C言語ソースリストは、[こちら

プログラムフロー

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

CLCによるトリガ条件検出

トリガ監視する3本の入力端子 (RC0-RC2) にCLC1を接続し、サンプルタイミングでそれら入力信号を確認・ラッチします。タイミングパルスでラッチしているため、その出力は次のタイミングパルスまで保持されています。トリガ条件の検出を行う CLC2 の入力に、CLC1出力を接続することで、トリガ前の状態と現在の状況を CLC2で同時に監視するトリガ条件の検出が可能となります。

つまり、トリガ前条件の検出にCLC1、トリガ条件の検出にCLC2を使用します。各チャンネルのトリガ条件でこれらCLCのGate2入力を都度設定し直します。下の図は、Ch1 立上り、Ch2 任意、Ch3 任意の時の設定です。

プログラム アセンブラ言語

アルゴリズムをほぼそのままに PIC ロジックアナライザ のソフトウエアの全てを機械語MPASMで書き直しました。その結果ソフトウエアの命令数を削減し、処理時間を大幅に短くし、サンプルレートは今まで最高 10usec だったものを 2usec にすることができ実用性が高い ロジックアナライザになりました。

データを読み込みメモリーに記録するポインタは16ビットなのですが、8ビットのPICで処理すると多くの命令サイクルを使い高速動作ができません。そのため、今まで1100サンプルの記録をしていましたが、処理のしやすい2のべき乗である1024にしています。

アセンブラソースリストは、pic-as用と、MPASM用の2種類あります。

*注意*
pic-as アセンブラは、MPLAB X v5.40 以降で利用可能です。また、MPLAB アセンブラは、MPLAB X v5.35 以前を使用してください。
また、MPASM 32ビットソフトウエアのため、MAC OS は、Mojaveまでしか対応しません。最新のMACでは、MPASM を動作させる環境を作るのは大変困難になっています。作成したプログラムのHEXコードも掲載します。
HEXコードをPICに書き込む作業は、MPLAB IPE を起動させれば、どのMAC OS ででも可能です。

リストの表示
pic-as アセンブラ ソースリストは、[こちら
MPASM アセンブラ ソースリストは、[こちら
アセンブラ HEXコードは、[こちら

PC専用アプリ Processing3

PICロジックアナライザを制御するPCアプリケーションを Processing3 で作成しました。Processing3 は、Mac, Windows, Linuxで動作するソフトウエアです。Processing3本体とcontrolP%ライブラリがインストールしてあれば、どのPCでも動作します、ただし、Windows PCで使用するときは、フォント名 "Verdana" を使用しているPCに登録されている日本語フォント名に書き換えてください。
  ( 例えば、”Yu Gothic Medium” など )

リストの表示
Processing3 ソースリストは、[こちら
PICとアプリの通信仕様は、[こちら

操作方法