コメを噛め

コメを噛め

rerofumi の電子工作メモ

Archive for 5月, 2009


hatena bookmark

dsc06445
先日買ったマルツのFPGA学習ベースボードについているパラレルプログラマでうはうはのFPGA生活が送れているかというとさにあらず。この五日間コンフィギュレーションができなくて悪戦苦闘していた。

■ 第一の難関、増設パラレルポートの罠
Lattice の ispVM を起動してダウンロードケーブルを設定することから始まるのだけれども、自動認識に失敗しケーブルを発見することができない。
でまあ、パラレルポート設定の所に 0x0378 とか書いてあるのを見て気がつく。これは、マザーボードというかチップセット内蔵のパラレルポート時のI/Oアドレスだ。うちのは増設カードによるパラレルポートなのでI/Oアドレスが違うはず。
para_jtag1
で、見てみたら 0xb400 だったのでこれを手動設定。
para_jtag2
これでダウンロードケーブルが認識されて使える様になった。

■ 第二の難関、バウンダリスキャンできない
ところが次の段階であるバウンダリスキャンによるデバイス検出ができずエラーのみが帰ってくる状態に。さっぱりわからないので、超簡易プローブテスタを作成して、マルツボード上を信号が流れているか確認する。
dsc06446
大活躍の超簡易プローブテスタ。
みっちりと調査し、結構な時間をかけてわかったことは、JTAGの信号はちゃんとFPGAに届いていること。たぶん、TDOが受け取れずに 1 オンリーを検出している状態であること。
おまけに、調査しているときなんかの切っ掛けですぐ信号が出てこなくなる現象に遭遇。これに出会うとアプリを起動し直しなのだけれども、4回に1回とかの頻度で起こるのでちときつい。
ちなみに Xilinx モードにしたら Impact で普通にバウンダリスキャンできた(デバイスは不明な奴と表示される)。なのでマルツボードのせいでも、FPGA基板のせいでもなさそうである。
パラレルポートドライバと増設パラレルポートの関係な気がしてきて、やる気はがっつり減退。なにかに頼りたくなってくる。
dsc06447
頼りになる女神降臨(ひだりのほうね)。USBなかわいいアイツ。
まあ、Windows7 のときに「パラレルポート撤廃しようかなー」とかいっていた時はまだ迷いがありながらも検討していたと言うことで。

しかし……。

■ 第三の難関、USBケーブルでもバウンダリスキャンできない
流石にUSBケーブルでもコンフィグできなかった時は目の前まっくらになりましたよ。
今回のLattice基板(&雑誌)3つ買ってあったのだけれども、3つとも駄目ってどういうことよ。いったい何がどうなっているのよさ。
具体的にはパラレルポートの時とは違って、スキャンはできる。できるんだけれども、NO-JTAG という「不明なデバイス」扱いになってしまうという現象。
~~ 2日間の格闘を挟んで ~~
5日を費やしてようやく思い出した。そういや以前にもコンフィグできない問題ってあったよなと。
あれは2007年の Spaltan3E 基板の時。コンフィグできないという問題で一堂騒然。結局波形を揃える必要があるということで、うまくコンフィグできない人は244でバッファを作ってかますか、コンデンサを調整して波形を調整するということになっていたと思う。
dsc06455
その時につくった 74VHC244 なアダプタ。
これを基板とケーブルの間にかますと……。
dsc06454
ばっちりというかあっさりスキャンできるようになりましたよ。こんちくしょうめ。
もちろん、コンフィグもバッチリ。
これで Lattice FPGA基板で開発して遊ぶことができますよ。(目の端にキラリと光ものが)

たぶん、増設パラレルポートで上手くいかないみたいと言う問題と、バッファを噛ました方が良いという問題はそれぞれ別の事象。
私の場合はこうだったという情報までに。


hatena bookmark

dsc06443
マルツ電波の「FPGA学習ベースボード」を買ってみましたー。
やあ、デジタル・デザイン・テクノロジー連動付録の Lattice FPGA を使ってみたくなったもので。Lattice FPGAが使えるダウンロードケーブルは手元にないのでどうしたものかなあと考えていたのです。
なひたふさんが XilinxやAlteraのパラレルダウンロードケーブルで Lattice FPGA をプログラミングするサポートダウンローダを公開されているし、Lattice のパラレルダウンロードケーブルの回路図もあるので自作しても良かったりはする。でも、「難しくは無い」けど「面倒くさい」ときってあるよね。その面倒くさいも時には楽しい要素なのだけれども、今回は回避した次第。
それに、テストボードも作るの面倒で、これくらいのがスタートアップにあるのも結構便利なものだったりするのです。いずれは、自作のテストボードができてそれで済ます様になるかもね。

手に取るまで気がつかなかった、というか見落としていたのだけれども。
dsc06444
パラレルポートコネクタがオス型じゃん。
これまで使っていたストロベリーリナックスのパラレルダウンロードケーブル(現在は販売終了)がメス型コネクタだったのでケーブルが合わないよ。中継ぎコネクタでも買ってくるか……。
まあ、ByteBlaster もオス型コネクタだったし、メス型というほうが逆なのかもしれない。

このベースボード、7セグにスイッチにラダー抵抗DACとシリアルって結構バランスの良い学習ボードだと思う。取り敢えずの学習でこの辺は使いやすいしね。汎用I/Oポート端子に245バッファがついているところも初心者向けやマイコン応用用途としてポイント高し。
7セグがダイナミックでなく直繋ぎなのでポートを食い過ぎなのが難点。SRAMがついているとかなり汎用度が高まるんだけれども、まあそのへんはブロックRAMでなんとかするところか。
回路として簡単なのでおまけ的に USBコネクタがついているのだけれども、使える人がどれくらいいるかはちと疑問ではある。

この後に続く、Splatan3E と Cyclone 互換基板の販売が楽しみ。
この手の基板が後々入手できることの安心感は大きいと思うのです。


hatena bookmark

前回の続き。
どちらかというとこっちの方が難易度の高い調査。詳しい方はフォローよろしく。

■ MosChip PCIシリアル/パラレル増設カード
Windows7 64bit : 動作した
今使っているデスクトップにはパラレル/シリアルポートが付いていなかったので敢えて付けるために増設したPCI拡張カード。
何でこれが欲しかったのかの理由が以降続く。

■ ISE 11.1 Webpack
Windows7 64bit : 利用不可
Windows7 32bit : 動作した
Windows7 64bit XP mode : 一応動作した
Xilinx のPLDデザイン環境。
Webpack は 64bit Windows での利用は不可で、使いたかったら有料版を使ってねーということになっている。以前から。
今回 64bit Windows 上だと Webpack のインストーラが起動しないのを確認した。
32bit の方だと現状のVistaで動かすのと同じ感じ。ただ、ISEでもやはりインストーラからのドライバーインストールが失敗して入らない現象が起こるので、それに気がつかないとImpactでダウンロードできなくて首をひねることになる。
このへん、インストール後 ISE のディレクトリ内にある install_driver.exe という奴を手作業で実行してやれば良い。
Windows7 32bit においてはパラレルケーブル経由のコンフィグが可能。
XP mode ではパラレル仮想デバイスがないので、USBダウンロードケーブルの利用のみが可となる。それよりも ISE の様な鈍重なアプリをVirtualPCで動作させるのはかなりきつい。気長に使って吉。
あと、環境のせいかは不明だが XP mode だと若干不安定だったような気がする。

■ SPARTAN-3E スタータキット
Windows7 64bit : ISE Webpack利用不可
Windows7 32bit : 動作した
Windows7 64bit XP mode : 動作した
Xilinx USB ダウンロードケーブル相当なので、こいつでUSBドライバの確認をした。まあ、結果は順当。

■ Quartus II Web Edition 8.1
Windows7 64bit : 動作した、パラレル利用不可?
Windows7 32bit : 動作した、パラレル利用不可?
ALTERA のPLDデザイン環境。
ALTERAの方はUSBダウンロードケーブルを持っていないのと、あまり使わないのとでまともに調査できていない。
ISEみたく64bit版への縛りはないし、USB Blasterやその互換品であれば64bitドライバが用意されていることを確認したので使えそうな気がする。
コンフィグ時、どうやってもハード追加にByteBlaster互換が現れなかったのでできないのかもしらんと諦めた次第。

■ 寸評
64bitだとISEが使いづらい。どうしましょ。
XP以降パラレルポートはデバイスドライバ経由でないと触れなくなったので、扱いやすいポートとは言えなくなってきた。このへんが潮時で、パラレルポートを利用するデバイスは見切りをつけてUSB経由のものに切り替えていった方が良いのかもしれない。


hatena bookmark

Windows7のRCが公開になり、ダウンロードしてみた。
世の中は新しいバージョンのWindowsで盛り上がっているのに、我が家の主力開発マシンはまだまだXPのままである。Vistaだの64bit windows だのにしてみたい欲求はあるのだけれども、どうにもXPから離れられない。
理由は明確で32bitのXPで無いと動作しない「デバイスドライバー」を用いている周辺機器がいくつもあるからですな。
しかしまあ、Vistaが発売になってから結構な時がたっているので、そろっとVista対応ドライバもこなれてきた頃合い。Vista対応は良くなってきて、こんどは64bit対応が進んでいくはず。さて、そんな状況はともかく、今OSを変えたらどうなるのだろうか。いろいろな開発機材は使えるのだろうか。
ふと気がついてみると、そのデバイスドライバーがどうにもならんのであきらめているのって電子工作系の開発機材ばっかりだったりもする。ちょいと前まではDTM関連も鬼門だったのだけれども、最近はVistaや64bit対応が完全に進み割と問題無い感じになっている。なので、やっぱり電子工作系だけなのです。
逆に、そのへんの対応状況さえわかれば良いんじゃないかと。
せっかくの Windows7 RC なんだからそういった調査に使ってみる事にした。どっちかというと64bitドライバ対応調査といった趣。

■ PicoScope 2202
Windows7 64bit : 動作した
USB PCストレージオシロスコープ、安い割に結構使える奴。最新版のアプリをインストールするだけでさっくり対応ずみ。

■ minicube2
Windows7 64bit : だめ
Windows7 32bit : だめ
Windows7 64bit XP mode : 動作した
V850や78Kのプログラマ&デバッガ。なんとドライバがVistaにすら対応していないアレっぷり。
XP mode はVirtualPCそのものなのだけれども、USBをトンネルスタブで渡して仮想マシンで扱える様になった(VMwareでは昔からできていた)。逆に仮想環境まるまるなので純粋なXPが動いている状況なため、ドライバもそのまま使える。
xpmode01
こんな感じで入れ子で動く形になる。USBデバイスの有効化指示をしないとならないので、売りのシームレスウィンドウ化は使えない。

■ PSoC miniprog
Windows7 64bit : だめ
Windows7 32bit : だめ
Windows7 64bit XP mode : 動作した
PSoCのプログラマ。Vista64対応なので本当は動作するはずなんだけれども、インストーラがWindows7未対応で最後に2段起動でドライバインストーラが動くはずなところ起動せずに終わってしまう。なので、ドライバ不在のままPSoC Programmerのみインストールされる形に。
インストーラの改善待ち。
XP mode では普通に動くので、それまでは XP mode の中で使う事で利用可能。
xpmode02

■ CP2102 USBシリアルコンバータ
Windows7 64bit : 動作した
最新のドライバを使用。

■ FT232R USBシリアルコンバータ
Windows7 64bit : 動作した
最新のドライバを使用。

■ Arduino
Windows7 64bit : 動作した
FT232Rがインストールできたので、デバイス的には問題なし。
Arduino.exe が立ち上がらない時は java/ ディレクトリを削除するといった TIPS はそのままだけれども、Arduino.exe が 32bit アプリとして立ち上がるので、32bit版のjdkを入れておかないと動作しないといったあたりがポイント。

■ MPLAB ICD2
Windows7 64bit : 動作した
PICマイコンのプログラマ&ソフトウェアデバッガ。
ICD2の通常ドライバは32bitなので、MPLABをインストールした直後にICD2を接続してもドライバはインストールされない。…/MPLAB IDE/VistaXP64 というディレクトリにあるドライバを手作業で指示してインストールするとかろうじて動作する様になる。
かなり古めのICD2で型番がP/N 10-00319の奴だと、64bitではどうやっても動作しないとの素敵情報有り。うちのはかろうじてP/N 10-00397の動作する型番だったので、利用できた次第。

■ TOP2005+
Windows7 64bit : だめ
Windows7 32bit : だめ
Windows7 64bit XP mode : だめ
Windows7 64bit + VMware workstation + XP 32bit : 動作した
USBユニバーサルプログラマ(ROMライタ)。
以前も書いた様にソフトウェアがだめだめ過ぎる。ドライバが古すぎるためVistaでも動作はしない。てなわけでXP mode ならやってくれると期待したものの、ドライバのインストールとデバイスの認識まではいけたが、アプリがデバイスを認識しなくてアウト。
VMwareで動かすと使えたけれども、そこまでいくと力業過ぎる。
いい加減捨てて、別なプログラマを買うべきかも。

■ 寸評
意外にいける。これなら64bit環境に移行できるかもしれないと思った。
XP mode がこれまた意外に使える。VirtualPCそのままと聞いて最初はしょんぼりと思ったけれども、逆に仮想環境まるごとなのでXPのデバイスドライバがそのまま使える。これが大きい。USBデバイスであればXPレガシーであってもある程度持っていくことができる。
こういった組み込み系開発環境は全部Virtual XPに押し込めてしまうというのもアリかも。CQ出版の雑誌に基板がつくたびに新しい開発環境をインストールとかいう習慣があるなら、わざとsandboxにしておいて日常環境と分離するというのはどうだろう。

この企画はもうちょっとだけ続くかも。


hatena bookmark

dsc00882
マイコン電子工作で半ば定番とも言えるキャラクター型LCDモジュール。
個人的こいつらが大好きである。そこそこ、手間がかかるので制御している感が味わえるし、如何にもマイコンっぽい気分がする。7セグLEDを光らせるよりも手軽にあつかえるしね。
そんな理由よりも、ポケコン時代に刷り込まれた何かがあるのかもしれない。
実際にどんな場面で使うのかというと、大抵開発中の動作確認用だったりする。
レジスタや変数の内容をLCDモジュールに表示しながら、動作が正しいかを確認するといった場面。まあ、最終的にはLCDが要らないプロダクトだったり、GPIOが足りないので取り外したりするのだけれども、序盤のデバッグには無くてはならない感じ。

そんなLCDモジュールで所有しているものでも、OPTREXの奴は黒字に抜き文字がかっこよくてお気に入りだ。
dsc00888
Read the rest of this entry »