トップページ > UCT-202

UCT-202のリセット編 by 浜本正樹

 間違いのご指摘、ご意見などがございましたら、「掲示板」へご遠慮なく書き込んで下さい。

2011年9月20日
 以前に購入して動かしてみていた(株)ニッコー電子のFX2キット UCT-202を、ひさしぶりに取り出して動かしてみた。

写真右上のCN3にはPA6とPA7にLEDをつなげてあり、また、写真下のCN4からはTxDとRxDを取り出してある。購入してすぐに、いろいろ試してみたようだが、なにを試したのか、すっかり忘れてしまった。 たぶん当時はそれなりに動いていたものと思われるが、今回いろいろと試してみても、どうも正常に動作しない。

写真右上に電解コンデンサがつけてあるが、これは、さきほどつけたもので、以前にはつけていなかった。
なぜ、この電解コンデンサをつけたのかをメモ代わりに、以下に書きとどめておくことにする。
ニッコー電子 UCT-202基板

Cypress社のEZ-USB開発キット用ツールで「EZ-USB_devtools_version_261700.zip」をダウンロードし、EZ-USBコントロールパネルをインストールします。
・JP4をオープンにして、EEPROMを切り離します。
・JP1は2-3(EX5V側)をショートして、外部より5Vを供給するようにします。
・USBケーブルを接続し、外部の5V電源をONします。
 Windows Xpでは、「新しいハードウェアの検出ウィザード」が表示されるので、
 ◎ソフトウェアを自動的にインストールする を選択し、「次へ」をクリック。

これで、Cypress社のドライバ「ezusb.sys」が割り当てられます。
デバイスマネージャーで確認すると、下のように「Cypress EZ-USB FX2 (68613) - EEPROM missing」が表示されます。

・EZ-USBコントロールパネルを起動します。
・次に、bulkloopというサンプルプログラムをUCT-202のFX2にダウンロードしてみます。
さきほどダウンロードしてインストールしたCypressのフォルダにはサンプルとしてbulkloop.hexが含まれていますが、これはCypress社の専用ボード用なので、そのままでは使えません。
オプティマイズさんが、リンクアドレスを変更してくれたbulkloop.hexを使用します。
EZ-USBコントロールパネルの「Download...」ボタンをクリックし、上記の変更したbulkloop.hexをダウンロードします。

ダウンロードが成功すると、FX2はリセットして、RAMにダウンロードしたプログラムで再起動します。
bulkloop.hexは、EEPROM missingとは異なるVID,PIDなので、本来なら「新しいハードウェアの検出ウィザード」が表示されるはずなのだが、なにも表示されない。
「GetPipes」ボタンをクリックしても、下図のように表示されるだけで、パイプがなにも表示されない。

あれこれとほかのプログラムをダウンロードしてみても、どれも同様のようだ。
ダウンロードしたプログラムは動くようだが、USBのやりとり(Enumration?)がうまくいっていないようだ。
UCT-202の基板が壊れてしまったのだろうか?

過去の資料をパラパラとめくってみたら、「FX2がハイスピードデバイスとして認識されない問題」というタイトルの資料がみつかった。
UCT-202, UCT202Aでは、リセットICとしてTPS3828-33DBVというのが実装されているが、これはリセット時間が200msecで、バスパワーで利用したときにリセットに時間がかかりすぎるかも、25msecのTPS3820-33DBVに取り替えてみればよいかも という資料がみつかった。
今回は5V電源を外部より供給しており、バスパワーではないので関係ないのかもしれないが、以前試してみたときとはパソコンが新しくなって、UCT-202と相性が悪くなったのかもしれないので、やはりこのリセットのあたりが問題なのかもしれない。
しかし、TPS3820-33DBVは、すぐには手に入らないし、どうすんべ?

オプティマイズさんのFX2 USB2.0回路図(PDF)では、リセット回路は100kΩの抵抗と1μFのコンデンサで構成されている。
100kΩ x 1μF = 100msecなので、それでもちょっと長めかなと思う。
UCT-202はリセットが10kΩでプルアップされているので、10kΩ x 1μF = 10msecで、短すぎるかなとは思うが、
たまたま 1μFの電解コンデンサがみつかったので、とりあえずこれで試してみるべぇ。

TPS3828-33DBVのリセット出力の1ピンを基板から浮かしてやろうとして、半田ごてをあてて1ピンの足を持ち上げたら、ポロッとICから取れてしまった。 ひぇ〜〜〜、もう元には戻れない。
代わりに、下の写真のように、 1μFの電解コンデンサを取り付けた。
これで再度bulkloop.hexをダウンロードしてみたら、「キンコン」と鳴った。 なんか、良さげだ。
「新しいハードウェアの検出ウィザード」が表示されたので、
 ◎ソフトウェアを自動的にインストールする を選択し、「次へ」をクリック。
正しく認識してくれたようだ。
デバイスマネージャーで確認すると、下のように「Cypress EZ-USB Sample Device」が表示された。

また、EZ-USBコントロールパネルの「GetPipes」ボタンをクリックすると、下図のようにパイプが表示された。

いやはや、よかったよかった。
しかし、10kΩと1μFのリセット回路では、RAMにダウンロードして動作させた場合はよいかもしれないが、EEPROMで起動する場合はどうなんだろう。
以前試したときにEEPROMには何かプログラムを書き込んだと思うが、なにを書き込んだのかもう忘れてしまったので、新たに書き込んで試してみる。
一度ブート用(1バイト目=0xC2)に書き込んだEEPROMに対して、再度コントロールパネルを使用して書き込むことは出来ないようだ。 そこで1バイト目に0xFFを書き込んでやる。

・JP4をオープンにして、EEPROMを切り離します。
・USBケーブルを接続し、外部の5V電源をONします。
・EZ-USBコントロールパネルの「Download...」ボタンをクリックし、C:\Cypress\USB\Examples\FX2\Vend_Ax\Vend_Ax.hexをダウンロードする。
・JP4のどちらか書き込みたいほうのジャンパーをセットする。
・EZ-USBコントロールパネルのVendReqの項目に下記をセットする。
 Req:0xA9 Value:0 Index:0 Length:1 Dir:0 OUT Hex Bytes:FF
・「VendReq」ボタンをクリック
これでEEPROMの1バイト目に0xFFが書き込まれたので、JP4をショートした状態で5V電源を投入してもEEPROMからプログラムをLoadしてこない。
(1回ではうまく書き込めなかった。後日同じ処理をしたときも1回ではダメだった。なにか操作を間違えているのかもしれない。)

この状態で、EZ-USBコントロールパネルの「EEPROM」ボタンをクリックし、EEPROMに書き込みたいプログラム(iicファイル)を指定する。 数秒待つがプログラムがEEPROMに書き込まれる。

5V電源を再投入するか、リセットボタンを押すと、EEPROMよりプログラムをLoadし、「キンコン」と鳴るので、PCとのあいだで正常にEnumrationが出来ていると思われます。
デバイスマネージャーで確認してみても、正常に表示されます。
少なくとも、現在のPCと、1μFの電解コンデンサをリセットにとりつけたUCT-202とは相性が良いようです。


エスペランサ トップページへ ()