Excel VBA 向 け ボード 制 御 ソフトウエアの 使 い 方 1. Excel VBA でできること Excel VBA 機 能 を 利 用 して Smart-USB Plus 製 品 の FPGA コンフィギュレーション ハードウエアレジスタ 制 御 メモリデータ 転 送 I2C 制 御 ができます 通 常 Smart-USB Plus 製 品 に 添 付 している 制 御 ソフトウエア RefApp7 の 基 本 機 能 とほぼ 同 等 です 適 用 ボード Smart-USB Plus 製 品 ディジタル I/O ボード SX-Card3 System-SX System-SX2 については FPGA コンフィグ 機 能 だけ 利 用 できません. Smart-IO2 では レジスタ 制 御 と I2C 制 御 のみサポートします. 2. Excel VBA の 準 備 マイクロソフト 社 の Excel には VBA 機 能 があり 当 社 が 提 供 する DLL を VBA でインポートしプログラミングするこ とで Smart-USB Plus 製 品 の 各 ボードを 制 御 することができます Excel マクロ VBA 機 能 PSI 製 DLL USB Smart-USB Plus < 図 1. Excel VBA > Excel で VBA 機 能 をアクティブにするには Excel の オプションから 解 析 ツールと VBA にチェックを 入 れ て 下 さい Excel ツールバーに 開 発 タブが 表 示 され ます 参 考 :マイクロソフト 社 のサイト < 図 2. Excel の VBA 機 能 をアクティブ 化 > 1 / 7
3. VBA での 制 御 Excel で VBA が 利 用 できる 準 備 ができたら 制 御 ソフトを 起 動 します 開 発 タブからマクロをクリックし 下 図 のように ボード 制 御 を 選 択 して 図 5 の 通 り 表 示 します ここからは 通 常 の RefApp7 制 御 アプリと 同 じような 使 い 方 ができます 実 行 をクリックして 図 5 が 得 られ ます 編 集 をクリックして VBA コー ドを 編 集 できます この 例 では 収 集 したデータを 解 析 するために 解 析 という 名 称 でボード 制 御 とは 別 のマ クロを 登 録 しています < 図 3.マクロ 選 択 画 面 > 図 3 の 画 面 で 実 行 ボタンをクリックして 図 4 の 表 示 が 現 れた 場 合 PC がボードを 認 識 できていないか ボードが 接 続 されていない 場 合 です PC がボード 認 識 できていない 場 合 は ボードリセットするか 再 度 ケーブル 接 続 し 直 して 下 さい また 図 4 表 示 のまま OK ボタンをクリックすると 図 5 で 示 す 制 御 ソフトウエア 画 面 になりますが このままでは 制 御 できないの で 必 ず 画 面 を 閉 じ マクロを 再 起 動 して 下 さい < 図 4.エラー 表 示 > Excel VBA 運 用 上 の 注 意 点 制 御 中 のボードが 電 圧 低 下 やリセットスイッチによりリセット 状 態 になった 場 合 や USB ケーブルが 抜 けた 場 合 など VBA では 自 動 的 にボードの USB 接 続 状 態 を 検 出 しません ボードのリセット 状 態 以 後 の 操 作 の 場 面 で 書 き 込 みエラ ーや 読 み 込 みエラーを 表 示 します エラーが 発 生 した 場 合 は USB 接 続 が 失 われたと 判 断 できるので 再 度 マクロを 起 動 しなおして 制 御 して 下 さい 2 / 7
< 図 5.ボード 制 御 起 動 画 面 > 図 5 で 示 す 画 面 は Excel VBA 制 御 ソフトの 起 動 画 面 です 起 動 時 アルテラ FPGA をコンフィグするための(*.rbf) ファイルを 選 択 する 設 定 です ザイリンクス FPGA をコンフィグする 場 合 はチェックボックスの Xilinx device と Encrypt をチェックしてください FPGA コンフィグデータを 暗 号 化 していない 場 合 でも Encrypt をチェックが 必 要 です また Spartan6 を 搭 載 する SX-Card6 の 場 合 は BIT SWAP にもチェックしてください コンフィグファイルを 選 択 して 実 行 をクリックすると コンフィグ 処 理 後 にボード 情 報 を 読 み 出 す 制 御 を 行 ってい るので 画 面 の ボード 情 報 欄 に 情 報 を 表 示 します ここに 制 御 するボード 情 報 が 正 しく 表 示 されてい れば FPGA コンフィグ が 正 常 に 行 われたことに なります < 図 6.FPGA コンフィグ 処 理 後 の 画 面 > 3 / 7
3.1.レジスタ 制 御 ノーマルモードのレジスタアクセスと 拡 張 レジスタアクセスができます 図 7 ではノーマルモードの 場 合 です ノーマルモードとは... レジスタ 数 ( 番 号 )16,384 個 に 対 して 8bit 16bit 32bit または 64bit でアクセスできるモードです 拡 張 レジスタモードとは... レジスタ 数 ( 番 号 )1,024 個 に 対 して 1 バイト~64 バイトまで 1 バイト 単 位 でアクセスできるモードです FPGA 回 路 でのコマンドデコード 回 路 がことなるので ノーマルモードと 拡 張 モードのレジスタアクセスは 同 じ FPGA 回 路 に 混 在 できません 詳 細 は SUA011 レジスタアクセスの 拡 張 をご 覧 下 さい ノーマルモードのレジスタアクセス 方 法 は RefApp7 リファレンスアプリの 操 作 方 法 と 同 じです 64bit アクセスする 場 合 こちらの 欄 も 使 用 します 32bit アクセス 以 下 の 場 合 こちらの 欄 だけ 使 用 します < 図 7.レジスタアクセス 画 面 1> 4 / 7
拡 張 レジスタアクセスの 場 合 Excel シートを 利 用 してデータを 読 み 出 しまたは 書 き 込 みします レジスタ 16 から 64 バイト 分 読 み 込 むと Excel シートに 1 列 のデータとして 64 セル(64 バイト) 表 示 します 読 み 出 したデータは 10 進 表 記 です bin や hex 表 示 する < 図 8.レジスタアクセス 画 面 2> 場 合 には dec2hex や dec2bin 関 数 を 使 用 して 変 換 して 下 さい あらかじめ Excel シートに 1 列 のデータとして 64 セル (64 バイト) 以 内 のデータを 作 成 します(10 進 表 記 ) 先 頭 データ(セル)を 選 択 してから マクロ-> ボード 制 < 図 9.レジスタアクセス 画 面 2> 御 を 選 択 して この 画 面 の Write ボタンをクリックす るとデータを 書 き 込 みます マクロ 機 能 は 作 業 を 自 動 化 するための 機 能 なので ボード 制 御 GUI を 開 いたまま Excel シートのデータを 編 集 できま せん データ 書 き 込 みの 際 はあらかじめ Excel シートに 書 き 込 みたいデータを 用 意 し そのシート 上 でマクロを 起 動 し て 下 さい 5 / 7
3.2.メモリ 制 御 FPGA ボードのメモリからデータを 読 み 込 み または 書 き 出 すときに 使 用 します この 画 面 は CX-Card4/SX-Card6 のオプションボード ADD-16B8 AD 変 換 ボードを 利 用 することを 考 慮 して 構 成 しています AD 変 換 ボード ADD-16B8 には 8ch の AD コンバータがあります どの ch のアナログデータを 収 集 するか 選 択 す るためのハードウエアレジスタを 列 数 指 定 レジスタとしています FPG 側 では 列 数 指 定 レジスタで 選 択 した ch データを 順 序 よく 並 べて PC に 転 送 し Excel シートでも A 列 B 列 C 列...の 順 にデータを 表 示 します 列 数 指 定 レジスタ bit0 ch0 列 数 指 定 レジスタ bit1 ch1 ch0 列 数 指 定 レジスタ bit7 ch7 列 数 指 定 レジスタは hex で 指 定 します 各 bit に1を 書 き 込 むと 対 応 する ch のデータを 収 集 します bit 7 6 5 4 3 2 1 0 列 指 定 列 数 指 定 レジスタに FF を 書 き 込 むと すべてのデータを 収 集 することになり データを 読 み 出 した 際 には A 列 から H 列 (8 列 )に 収 集 したデータが 表 示 されます 03 を 設 定 した 場 合 には ch0 と ch1 が 有 効 になり Excel シートでは A 列 と B 列 にデータ 表 示 します 同 様 に 31 設 定 した 場 合 には ch0 と ch4,ch5 を 有 効 にし A~C 列 にデータ 表 示 します これらの 動 作 は FPGA 側 でもデータの 順 序 を 制 御 する 回 路 が 必 要 です FPGA 側 で 列 数 指 定 に 相 当 する 回 路 が 無 く VBA 側 の 列 数 指 定 だけ 行 った 場 合 読 み 出 したデータが Excel シートに A 列 から 指 定 した 列 数 ( 最 大 H 列 )まで 順 番 に 表 示 されます 転 送 するデータ 数 Excel のセル 数 と 同 じです 開 始 アドレス 欄 で 設 定 したデータ がこの No.のレジスタに 書 き 込 ま れます 表 示 オプションのインデックスをチ ェックすると 読 み 出 したデータの A 列 に 番 号 を 振 ることができます 列 数 で 設 定 したデータ が この No.のレジスタ に 書 き 込 まれます < 図 10.メモリ 操 作 画 面 > 6 / 7
図 10.メモリ 操 作 画 面 の 開 始 アドレス 指 定 レジスタ は メモリの 先 頭 アドレスを 示 す 役 割 を 持 たせています デフ ォルトでは 開 始 アドレス 欄 で 設 定 する 値 が 0 なので 常 にメモリの 先 頭 から 読 み 出 すようになっています(このレ ジスタ アクセスは 64bit アクセスです) この 機 能 を 利 用 する 場 合 は FPGA 内 にここで 指 定 したレジスタ No.のハー ドウエアレジスタを 実 装 し その 設 定 データがメモリの 先 頭 アドレスを 指 し 示 すような 回 路 を 構 成 する 必 要 があります メモリ 操 作 画 面 の Read ボタンをクリックすると データ 転 送 の 前 に レジスタ No. 設 定 で 指 定 した 2 つのレジ スタに 対 して 開 始 アドレス 設 定 値 と 列 数 設 定 値 を 書 き 込 んだ 後 実 際 にデータを 読 み 込 みます Write 時 は 開 始 アドレスへの 書 き 込 みを 実 行 した 後 データ 転 送 します このとき 列 数 指 定 レジスタ 設 定 は 実 施 せず ボードに 転 送 する データは Excel で 1 列 に 表 示 したデータになります 開 始 アドレス 列 数 指 定 レジスタを FPGA 側 で 用 意 しない( 不 必 要 な) 場 合 このレジスタ No.には FPGA 内 で 実 装 していない 任 意 のレジスタ No.を 設 定 して 他 のレジスタ 制 御 に 悪 影 響 が 出 ないように 注 意 して 下 さい AD 変 換 ボードの ADD-16B8 を CX-Card4/SX-Card6 に 接 続 して このメモリ 操 作 によりデータ 収 集 した 場 合 FFT 解 析 やヒストグラム 表 示 が Excel 上 で 可 能 になります また ADD-16B8 には 16bit DA コンバータがあるので SIN 波 形 等 を Excel で 生 成 し そのデータをボードに 送 信 して DA 出 力 させることもできます 4.I2C 制 御 FPGA のコンフィグ 状 態 に 関 係 なく 利 用 できる 機 能 です USB 制 御 IC の I2C ポートを 制 御 します 7bit のデバイスドレス 8bit のレジスタアドレス 設 定 により データの 読 み 込 み 書 き 込 みができます < 図 11.I2C 操 作 画 面 > 7 / 7