« はじめてのブラケット製造 | トップページ | PCI Express転送テストアプリとデバイスドライバを更新 »

2010.10.23

Spartan-6ボードをExcelから操作

ExcelのVBAマクロを使って、Spartan-6ボードを操作できるようにしました。
まずは次の画面をご覧ください。

Sp6excel_1

Excelのシートに置かれたボタンを押すと、Spartan6ボードからUSBを通じてデータを取りだしたり、書き込んだりできます。取得したデータはExcelのシート上に数字で書かれるだけでなく、その場ですぐにグラフ化されます。
入出力するデータは8bitとして扱うことも、16bitとして扱うこともできます。
Excel 2000でも動くように、データ長は最大で32000に制限しました。(グラフの描画とセルへの書き込みのため)

使い方を簡単に説明します。

① まず、サンプル・リファレンス・デザインをFPGAに書き込んでおいてください。

② シートを立ち上げたときには、このとおり、データもグラフも何もありません。
Sp6excel_default

③ 「USB Read」と書かれたボタンを押すと、選択されたソースからデータがキャプチャされ、このように数値とグラフが表示されます。グラフがない場合は新しくグラフを作成し、グラフがある場合はそのグラフの内容を書き換えます。
Sp6excel_captured

④ 「USB Write」と書かれたボタンを押すと、シート上の数値がSpartan-6ボードへ送られます。

⑤ 取得するデータのソースや、送信するデータのターゲットには、FPGA内で作りだすテストパターンのほか、ブロックRAMの内容や、DDR2 SDRAMの内容、GPIOが選択できます。
Sp6excel_source_2

とても簡単です。
このアプリケーションのうれしいところは、エクセルだからデータのコピーやレポートの作成が簡単にできるということに尽きるでしょう。

例えば、OV7670のCMOSイメージセンサをつないでみたら、640周期で繰り返しの波形が見えました。これは画像の輝度データをラインごとになぞっているのです。グラフの場所を変え、タイトルや軸のタイトルを変更してみました。
Sp6excel_ov7670

今回、はじめて、VBAマクロというものに触れました。いつもCとVHDLばっかりやっているので、普段とは違うことができてとても面白かったです。ハマってしまいました。
千個、数万個のセルに高速に値を読み書きするために、For文で回すのではなく、二次元配列を作ってRangeのValueを使って一括で書き込んだりとか、グラフを自動で作成したりとか、ちょっとした工夫をしています。

このExcelのマクロは、ソース公開のうえ無償でリリースします。
ぜひとも、いろいろな用途に組み込んでみたり、遊んでみてください。
皆様がExcelを計測・制御用途に使う際のお役にたてていただければ幸いです。

Excelのシート(マクロ入り)は、こちらからダウンロードできます

どうぞお楽しみください。

|

« はじめてのブラケット製造 | トップページ | PCI Express転送テストアプリとデバイスドライバを更新 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« はじめてのブラケット製造 | トップページ | PCI Express転送テストアプリとデバイスドライバを更新 »