goo blog サービス終了のお知らせ 

-・-・ --・-  -・-・ --・-  -・-・ --・- 

不定期更新。電子工作オタクのメモなので、おもしろくないですよ。

MicroBoardでFIRフィルタを作る(2)

2012-11-18 22:58:26 | FPGA
やっとI2Cが動くようになった。
UMB-SSM2603のI2CをMicroBoardで制御(といっても、初期化だけ)して、I2S制御はACB-BF592でやることで、Talkthroughができた。
I2CのVHDLはここのコードを参考にさせてもらった。Thanks!

XilinxのFPGA開発ツールには、いくつか種類があって、それぞれ得意とする分野はあるのだろうが、どれを使えばいいのか良く分からない。
チュートリアルでは、EDKとISEを使ったが、今回はPlanAheadというツールも少し使ってみた。ISEよりPlanAheadの方が多機能であるが、使いこなすまでは時間がかかりそうだ。
今回初めて使ったもう一つのツールが、ChipScope Proというデバッグツールだ。これは内部信号を1、0の波形で見られるので便利なツールなのだが、なぜか取得したい信号名が設定ファイルのリスト上に出てくる場合と出ない場合あり、どうして一定にならないのか理由が良く分からない。
観測したい信号名に似た信号を接続することで、なんとかI2Cのデバッグができたが、ボード上のSWオンでトリガをかけてから、信号の取得をを開始する方法がわからない。今回は画面を見ながら、STOPをかけたが、トリガがかかったところから、信号を取得するやり方があるはずだ。

次は、MicroBoardによるI2S制御により、Talkthroughをやってみることにする。
Talkthroughが終わって、やっとFIRフィルタだ。道は遠いな。
MicroBoardでI2C

ChipScopeでdebug

MicroBoardでFIRフィルタを作る(1)

2012-10-28 15:17:01 | FPGA
smartSDRにはFPGAによるフィルタが必要となるので、MicroBoardでFIRフィルタを作ってみることにする。
実際のSDRでは数十MHzの信号を扱うことになるが、FPGAの勉強なので、とりあえずはオーディオ帯域での実験とする。
ということで、smartSDRで使うであろう、金子システムさんのAudio CodecモジュールUMB-SSM2603のAD変換後のシリアルデータにFPGAのFIRを入れて、DA変換することをやってみることにする。
まずは、FPGAの変わりに同じく金子システムのACB-BF592モジュールを使って、信号処理の基本であるTalkthroughをやって、UMB-SSM2603の概要を理解することにした。

以前にACB-BF592を試してから、EclipseもBlackfinのtoolchainもバージョンアップになっていたので、サポートページの手順にそって、再インストールした。
Talkthroughのコードもサポートページに載っているので、ブレッドボードで両モジュールを接続して、JTAG経由で書込むまでは順調だったが、DA変換後のイヤホンからはプチッと音が聞こえるものの連続して音声は聞こえてこない。
マニュアルの接続図とコードをながめると、muteのポートを間違えているのに気付き、PF0に変更すると無事、入力からのラジオ音がイヤホンから聞こえてきた。
Talkthrough成功
これから、ACB-BF592でやっているシリアル-パラレル変換、パラレル-シリアル変換、SPII2C処理に加えてFIRフィルタをFPGAで実現させていく必要があるが、LCDへの表示だけでも結構大変だったので、しばらく時間がかかるだろう。


MicroBoardでストップウォッチ(2)

2012-10-20 22:42:46 | FPGA
Xilinxのツールの使い方が理解できていなかったので、再度チュートリアルを最初からやった。忘れるのは早いが、理解するのは遅いことを実感する。
VHDLの入門本のストップウォッチはCPUを使っていないので、今回は内臓のCPUは使わずに実現しようとしたが、チュートリアルに載っているデバッグのやり方では動かず、やたら時間がかかった。どうやったらデバッグができるんだろう。
やっとのことで、何とかLCDに文字が表示できるようにはなったが、ストップウオッチにするには、MicroBoard上のSW1個にスタート、ストップ、リセットの状態を持たせることと、数字をカウントして、桁上がりの処理が必要だ。
ストップウオッチは完成させたいが、LCDの表示に時間がかかりすぎたので、しばし中断としよう。

下がLCDに表示できた写真。左はしがHT7750Aを使った5Vのスイッチングレギュレータ。


MicroBoardでストップウォッチ(1)

2012-09-04 18:24:57 | FPGA
遠ざかっていたsmartSDRに、取りかかれるようになった。
これまでMicroBoardのチュートリアルで勉強してきたが、なかなか自分のものにならない。
SDRではFPGAでフィルタを作る必要があるが、とてもとても作れるレベルではない。

というわけで、回り道だが、もう少しFPGAに慣れるためはじめてのVHDLの本に載ってるVHDLでストップウォッチを記述している例を参考に、MicroBoardでストップウオッチを実現してみよう。

MicroBoardには拡張ポート(Pmodというらしい)があるが、IOとして使えるのは16ピンだ。
ただ、この拡張ポートは3.3V系なので、5VのLCDは直接接続できない。手持ちに5V昇圧コンバータHT7750Aがあればいいが、なければ余りやりたくないが、USB周りの5Vを引き出してきて、レベル変換ICを使うか。


Hello smartSDR!!

2012-02-05 21:35:57 | FPGA
いやー、Xilinxの開発環境の設定になんと時間のかかったことか。

最初の間違いは、Xilinxからときどき届くメールにISE Design Suite 13.4が出たよとあったので、これをダウンロードしたが、AVNETのサイトにあるサンプルとかネットにある情報は当然最新版の内容にはなっていない。
13.2の資料を見ながら、サンプルプログラムを動かそうとしたが、SDKの画面が違うし、これ以上、試行錯誤でやっても時間ばかりかかって動かせない気がしてきた。
せっかく6GBほどダウンロードしてインストールしたのに、泣く泣くMicroBoardに添付されていた13.2にダウングレードした。

AVNETのサイトに日本語のページはあるが、ユーザズマニュアル、サンプルプログラムなどは全て英語なので、わからない単語はexciteに頼りながら、やっとのことサンプルプログラムが動いた。
気を良くして、サンプルプログラムの文字を変更して、Hello smartSDR!!を出力してみた。

それにしても、FPGAは昔いじったCPLDに比べたら、何倍も難しい気がする。
もっともっとサンプルプログラムをいじらないと、smartSDRで使うミキサーとかフィルタは実現できないな。
それとメモリ2GBのCore i3 2.4GHzで、ISE Design Suiteを動かすには時間がかかってしようがない。メモリの増設が必要かもしれない。