カメレオンUSBを使って作るロジックアナライザーです。特徴は以下のとおりです。
ロジアナのアタッチ基板です。このアタッチ基板をカメレオンUSBに取り付けて使用します。
中央のチップがPBSRAMで、CypressのCY7C1347B-133ACを使用しています。128K*36bit構成で、4bit分は未使用です。(1Mbit
版のキットはWinbondのW25P010AD-6を使用、32K*32bit構成です。)
左下にあるのは100MHzのOSCです。
右側のピンヘッドにプローブをつけて使用します。
正確な測定を行うためには、GNDをしっかり接続して、なるべく短いプローブを使用します。
カメレオンUSB+ロジアナはとてもコンパクトなので、測定対象機器に組み込んで使うのが良いと思います。
回路図
ダウンロード
回路図データ(Bsch用)
ロジアナキットの制作
ロジアナキットが届きましたらまず全ての部品が揃っていることを確認してください。
100Ωチップ抵抗はVer1.4の基板から追加されました
部品名 数 備考 専用プリント基板 1 PBSRAM 1 CY7C1347B-133AC
1MbitキットはW25P010AD-6100MHz OSC 1 キンセキ FXO-37FL
または相当品22uF電解コンデンサ 1 47uF/100uFでもOK チップコンデンサ(パスコン) 5 基板の裏面に実装
(一つは表面に実装)100Ωチップ抵抗(101) 34 プローブの保護用
(2個は予備)40ピン ピンヘッダ 4 取り付け向きに注意 極細はんだ 1
Ver1.5以降の基板は100Ωチップ抵抗が集合抵抗(4*8個)に変更されています。
PBSRAMは基板に両面テープで仮止めされています。
ICの足を曲げないように注意して取り外し、PBSRAMからはんだ付けします。
ピンピッチは0.65mmですので、CPLDのはんだ付けに成功した人なら無理なく取り付けられるでしょう。
はんだ付けが終了したら、ルーペなどではんだブリッジの無いことを確認してください。
チップの向きに注意。ポッチのある場所が1番ピン。
(基板側もポッチのある場所が1番ピン)
次はOSCを取り付けます。
チップの向きに注意。
チップコンデンサは基板の裏面に取り付けます。
プローブ保護用の100Ωチップ抵抗を表・裏で合計32個取り付けます。
(Ver1.5以降の基板は集合抵抗を表に8個取り付けます。集合抵抗は半田付けの時に浮き上がることがあるようですが、浮き上がると半田不良の原因になりますので、ご注意ください。集合チップ抵抗の取り付けはこちらのページを参考にしてください。)
コンデンサの取り付け。
極性に注意。
最後にピンヘッドを取り付けて完成です。
プローブ用のピンヘッドは基板の表、カメレオンUSBとの接続用のピンヘッドは裏面に取り付けます。取り付ける面に注意してください。
写真はプローブ用のピンヘッドです。
Gと書かれているピンがGND用のプローブです。
GとGで囲まれている部分が計測信号用のプローブを取り付けるところです。0から31までで、32チャンネルです。
プローブの右側に余っているピンが4本あります。
これはCPLDのI/Oピンと接続されていますので、ロジアナVHDLソースに独自の回路を記述することにより汎用的に使用できます。
これでロジアナアタッチ基板の作成は完了です。
実際にロジアナとして使用するためには、下記のlogiana.jedをダウンロードして、cusbwr.exeプログラムでCPLDに書き込みます。(注意:この時点ではまだロジアナアタッチ基板をカメレオンUSBに取り付けないこと。)
書き込みが完了したら、一度USBケーブルを抜いて、ロジアナアタッチ基板をカメレオンUSBに取り付け、再度USBケーブルを接続してロジアナソフト(logiana.exe)を起動します。
<ロジアナのテストについて>
ターゲット(計測対象)に接続する前に、ロジアナが正しく機能しているか調べます。
EZ-USBは24MHzのクロックを外部に出力出来ます。この信号はカメレオンUSBのCN3-32に出力されています。
これをピンヘッドのメスと接続して、プローブを一本ずつ計測します。はんだブリッジなどの検査にもなります。
トリガは0から14チャンネルまでしかかけられませんので、それ以外のチャンネルを計測するときのトリガ条件は、無接続のプローブを選択して条件を’H’に設定します。これにより、トリガがかかり対象のプローブを測定することが出来ます。
(無接続のプローブの測定結果は、他の信号の影響などを受けてふらふらした値になります。)
24MHzをPROBE0に接続してサンプリングした状態
<ターゲットの測定について>
このロジアナで測定できる信号の電圧は、当然ですがCPLDに入力できる範囲の電圧になります。
5Vでも3.3Vのデバイスでも測定できますが、0.0V〜5.0V以外の電圧をかけた場合、CPLDが破壊されます。
測定する信号の電圧には十分注意してください。(RS232の信号などを直接接続することは出来ません。)
プローブに関しては、極力短くするのが鉄則です。長くすればそれだけノイズがのります。
ターゲットとの接続を10センチ以内にするのがベストです。コンパクトなロジアナですので配置を工夫すれば可能だと思います。ターゲットとのGNDもしっかり取ってください。
<HDLトリガの使用について>
ロジアナのVHDLソース(top.vhd)の最後の部分で、HDL_TRG信号を設定しています。HDLトリガを使用する場合はここを変更してください。余っているマクロセルを使って、ステートマシンを使ったトリガなども記述可能です。
CPLD(ロジック) ダウンロード
4Mbit キットはこちら
logiana.jed (cusbwr.exeを使ってCPLDに書き込みます。)
logiana_cpld.lzh (VHDLソース一式、ザイリンクスWebPackを使用して論理合成できます。)
1Mbit キットはこちら
logiana_1m.jed (cusbwr.exeを使ってCPLDに書き込みます。)
logiana_cpld_1m.lzh (VHDLソース一式、ザイリンクスWebPackを使用して論理合成できます。)
ロジアナコントロールソフト
機能を簡単に説明します。
「STARTボタン」は計測を開始します。「STARTボタン」が押されると、ボタンの表示が「STOP」に変わります。
計測が終了すると自動的にボタンの表示が「START」に戻ります。計測中に測定条件を変更したい場合は、表示が「STOP」の間にボタンを押して測定を中止させ、条件を変更して再度「STARTボタン」を押します。
LOADボタンは過去にセーブしたデータをロードします。
SAVEボタンは測定したデータをセーブします。
計測スピードを選択する
100MHz,50MHz,25MHz,16.6MHz,12.5MHz,10MHz,8.3MHz,5MHz,
3.84MHz,2MHz,1MHz,500KHz,10KHz,1KHz,外部クロックから選択できます。
トリガの位置を選択する
TOP(検出後128Kサンプリング計測する。)
CENTER(検出後64Kサンプリング計測する。)
LAST(検出後、即計測を終える。)
トリガの条件を選択する
↑ 信号の立ち上がりエッジ
↓ 信号の立下りエッジ
H 信号がHのとき
L 信号がLのとき
トリガ条件に使用するプローブを選択します。
PROBE0からPROBE14、あるいはロジアナのVHDLソースに記述した
HDL条件を選択することが出来ます。
便利な機能として、波形の上にマウスカーソルをもっていき、マウスのマウスの左ボタンをクリックすると、その波形の信号が変化していいる場所まで左方向にジャンプします。右ボタンをクリックすると右方向にジャンプします。
定義ファイル(def.txt)を編集することにより、この画面のように、プローブに名称をつけたり、複数のプローブをまとめて16進で表示したり(例えばデータバスなど)することが出来ます。
<定義ファイルの記述例>
#SYSPARM 0,0,0,0,0,0
;AGB
CS 2
RD 1
WR 0
AD 3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,
AH 19,20,21,22,23,24,25,26,
WR(0) 0
RD(1) 1
CS(2) 2
AD00(3) 3
AD01(4) 4
AD02(5) 5
AD03(6) 6
.
.
ロジアナソフトダウンロード
4Mbit キットはこちら
logiana.exe (ロジアナコントロールソフト実行ファイル)
1Mbit キットはこちら
logiana_1m.exe (ロジアナコントロールソフト実行ファイル)
1/4Mbit 共通
logiana_pgm.lzh (ロジアナコントロールソフトソースファイル一式)
logiana_fw.lzh (ロジアナファームウエアソースファイル一式)
木村さんが作成されたロジアナコントロールソフトMyLAへのリンクはこちらです
ロジアナ使用例
これはゲームボーイアドバンス用のカートリッジ(マリオブラザース)にプローブケーブル(?)を取り付けたものです。
ゲームボーイアドバンスは過去のゲームボーイとの互換性を維持するために、アドレスバスとデータバスを共有する特殊なROMを使用しています。
まず手始めに、ゲームボーイアドバンスのバスをロジアナで解析して見ましょう。
実際にゲームが動作中にロジアナでデータを取得すると
こんな感じになります。
0nS直後のCS信号の立下りを見てください。ADバスが0E46になっています。AHバスは00です。
そしてその後、RD信号がたち下がります。この直後にADバスがE7E1になります。
実はこの値がアドレス000E46番地のデータ(E7E1)ということです。
この後、RD信号がたち下がる毎に、ADバスの値が変化します。
これは先ほどのアドレス(0000E46)番地からバースト読み出しを行っているのです。
本当にそうなっているかバイナリエディタでROMイメージを覗いて見ましょう。
0000E46番地はワードアドレスなのでバイトアドレスにすると001C8Cになります。
どうでしょうか?001C86番地はE1 E7となっており、ロジアナの計測(E7E1)と一致します。
ご参考までにゲームボーイアドバンスのロジアナのデータをダウンロード出来るようにしておきます。
上記のlogiana.exeをダウンロードして、このデータを読ませればロジアナが接続されていなくてもデータをビューすることが出来ます。