<回路図>
外形寸法ガバーデータ(PCB用ガバービューワでご覧ください)
CN1 | CN2 | |||||||
GND | 1 | 2 | GND | GND | 1 | 2 | GND | |
EVCCIO | 3 | 4 | +3V3 | +5V | 3 | 4 | +3V3 | |
EMAX2_VCC | 5 | 6 | VBUS | 5 | 6 | |||
7 | 8 | 7 | 8 | |||||
EIFCLK | 9 | 10 | CLKOUT_CLK12 | INT0 | 9 | 10 | SDA | |
FD15_IO4 | 11 | 12 | FD14_IO3 | SCL | 11 | 12 | IO41 | |
FD13_IO2 | 13 | 14 | FD12_IO7 | IO42 | 13 | 14 | IO43 | |
FD11_IO8 | 15 | 16 | FD10_IO15 | IO44 | 15 | 16 | IO47 | |
FD9_IO16 | 17 | 18 | FD8_IO17 | IO48 | 17 | 18 | IO49 | |
WAKEUP | 19 | 20 | RESET | IO50 | 19 | 20 | IO51 | |
IO1 | 21 | 22 | IO100 | IO52 | 21 | 22 | IO53 | |
IO99 | 23 | 24 | IO98 | IO54 | 23 | 24 | IO55 | |
IO97 | 25 | 26 | IO96 | IO56 | 25 | 26 | IO57 | |
IO95 | 27 | 28 | IO92 | IO58 | 27 | 28 | IO61 | |
IO91 | 29 | 30 | IO89 | CLK62 | 29 | 30 | CLK64 | |
IO87 | 31 | 32 | IO86 | IO66 | 31 | 32 | IO67 | |
IO85 | 33 | 34 | IO84 | IO68 | 33 | 34 | IO69 | |
IO83 | 35 | 36 | IO82 | IO70 | 35 | 36 | IO71 | |
IO81 | 37 | 38 | IO78 | IO72 | 37 | 38 | IO73 | |
IO77 | 39 | 40 | IO76 | IO74 | 39 | 40 | IO75 |
<製作>
キットが届きましたら部品を確認してください。
不足部品がある場合は、組み立てる前にご連絡ください。
部品 | 数 | 備考 |
IC実装済み専用プリント基板 | 1 | FX2LP(CY7C68013A-56)、MAX2(EPM570T100C5)実装済み |
クリスタル(24MHz) | 1 | |
USB−Bコネクタ | 1 | |
シリアルROM(24LC128) | 1 | SOPタイプ |
レギュレータ(3.3V) | 1 | DPAKタイプ MC33269 |
チップ抵抗 2.2KΩ | 2 | 222 |
チップ抵抗 10KΩ | 3 | 103 |
チップ抵抗 100KΩ | 2 | 104 |
チップ抵抗 33Ω | 3 | 33R or 330 |
タンタルコンデンサ 10uF/10V | 2 | 極性あり |
チップコンデンサ .1uF | 15 | |
チップコンデンサ 12pF | 2 | |
レベル変換用TTL(1bit) | 2 | SN74LVC1T45(6pin SOT23) |
レベル変換用TTL(8bit) | 1 | SN74LVC8T245(22pin TVSOP) |
ピンヘッダ 1*2 | 1 | |
ジャンパピン | 1 | |
極細はんだ | 1 |
<キットの組み立て>
20−30W程度の先端の細い半田ごて、ピンセット、フラックス、ルーペ(虫眼鏡)などを準備します。
基板の裏面から半田付けを行います。
まず、写真のようにソルダージャンパのブリッジ(写真赤丸部分)と、チップ部品の片側のランドに半田を盛ります。
(半田付けのテクニックについてはこちらも参照してください)
(ソルダージャンパの設定は後ほど詳しく説明しますが、とりあえず写真のようにショートしてください。)
セオリー通り背の低いチップ抵抗・コンデンサを半田付けします。
値が指定していないチップコンデンサは全て0.1uFです。
次はシリアルROMの半田付けです。1番ピンの向きに注意してください。
続いてレギュレータです。耳(タブ)の部分もしっかり半田付けします。
半田が付きにくいようでしたら、熱量の高い30−40Wの半田ごてを使用します。
裏面は完成ですので、表面の半田付けをします。
表面は、33Ωのチップ抵抗と、10uFのタンタルコンデンサを先に半田付けします。
タンタルコンデンサは極性がありますので、向きを間違えないようにします。
最後はクリスタル、ピンヘッダ、USBコネクタの順に半田付けして完成です。
PROM書き込み許可のジャンパピンを入れておきます。
<動作確認 〜デバイスドライバのインストール〜>
実際にPCに接続して動作確認を行うためには、デバイスドライバが必要です。
少々面倒なのですが、Cypressの提供するデバイスドライバには2種類あります。
一つはezusb.sysで今はディスコン(製造中止)になってしまった、EZ-USB(AN2131SCなど)用に提供されていたデバイスドライバです。
2年ほど前のFX2の開発キットでもezusb.sysが使われていたため、ezusb.sysを使用してFX2用のアプリケーションを開発している方もいます。
(オプティマイズのFX2のページでもこの古いデバイスドライバを前提に記述されています。)
こちらのデバイスドライバは既にCypressからは提供されなくなっていますので、新規アプリケーションでは使用しないほうが賢明です。
もう一つはCyUSB.sysと呼ばれる、最近のFX2LP開発キットで使用されているデバイスドライバです。CypressからはCyUSB.sysを使用するためのCyAPIと呼ばれるライブラリ群も提供されていますので、今後のアプリケーション開発ではこちらを使用することになります。
今回の「カメレオンUSB FX2」においては、新しいデバイスドライバであるCyUSB.sysを使用することにします。
CyUSB.sysデバイスドライバはCypressのHPで入手できるFX2LP用の開発キット(リンクが切れていたらCypressのHPでCY3684を検索してください)をインストールすると、自動的にデバイスドライバもインストールされます。
FX2LP用のファームウエアの開発を行わないのであれば、開発キットをインストールする必要はありません。
そのような方のために、デバイスドライバだけを抽出したものを用意しておきます。
ダウンロード CyUSB デバイスドライバ
(ダウンロード後解凍します。「カメレオンUSB FX2」をPCに接続するとデバイスドライバのインストール要求が表示されますので、解凍したディレクトリを指定してデバイスドライバーのインストールを行います。)
古いデバイスドライバ(ezusb.sys)を使用した開発キットを既にインストールされている方は、正しくCyUSB.sysがインストール出来ているか確認します。
Windowsのデバイスマネージャを開き、「Cypress EZ-USB.........」を選択して、プロパティを開きます。
「ドライバ」タブを選択して、「ドライバの詳細」をクリックします。
画面のようにCyUsb.sysが使用されていればOKです。
もし、CyUsb.sysではなく、ezusb.sysが表示されている場合は、前の画面の「ドライバの更新」をクリックして、
再度デバイスドライバのインストールを試みてください。
<動作確認 〜EEPROMとMax2の書き込み>
デバイスドライバの準備が出来ましたら、実際に「カメレオンUSB FX2」をPCに接続して動作させます。
こちらに「カメレオンUSB FX2」で使用するツール関連がありますので、これをダウンロードして解凍します。
Windowsのコンソール画面(コマンドプロンプト・DOS窓)を開き、解凍したディレクトリに移動しておきます。
ツール名 | 用途 |
FX2WRID | FX2に接続されるシリアルROMにID番号を書き込む。 ID番号は複数のFX2をPCに接続して使用するための番号です。 |
CUSBWR2 | MAX2にロジックを書き込みます。入力ファイルはSVF形式です。 リードプロテクトを設定したり、消去のみなども出来ます。 |
SPD_CHK | MAX2とPCアプリの間の上り・下りの限界データ転送速度を測定します。 転送速度はPCのチップセット、OS、組み込みドライバなどによって変動します。 実行するためにはMAX2にSPD_CHK.SVFを書き込む必要があります。 |
それでは実際に起動して動作確認を行います。下記のようなメッセージが表示されれば正常です。
各ツールの仕組みや、使い方などは別のページで解説しています。
<ジャンパの設定>
「カメレオンUSB FX2」にはピンジャンパとソルダージャンパ(半田ジャンパ)があります。
ピンジャンパは、ピンを入れた状態で「EEPROMが有効」、ピンを入れない状態で「EEPROMが無効」になります。
EEPROMを書き換える場合は、「EEPROMが無効」の状態でPCに接続して、デバイスとして認識させた後「EEPROMが有効」の状態にして、Cypressの提供するCyConsoleツールなどを使用してEEPROMの書き換えを行います。
ソルダージャンパは写真のように4箇所あります。
詳しくは回路図を参照していただく必要がありますが、簡単にまとめると表のようになっています。
状態 | 機能 | |
SJ1 | ショート | 基板内蔵の3.3VレギュレータをUSBバスパワーで駆動する |
オープン | レギュレータは外部電源(+5V)で駆動する | |
SJ2 | 1-2ショート | MAX2のI/Oバンク2をPCB内の3.3Vで駆動する |
2-3ショート | MAX2のI/Oバンク2を外部電源(EVCCIO)で駆動する | |
SJ3 | 1-2ショート | MAX2のコア電源をPCB内の3.3Vで駆動する |
2-3ショート | MAX2のコア電源を外部電源(EMAX2_VCC)で駆動する | |
SJ4 | ショート | FX2 8051CPUの割り込み(INT0)を使用しない (USB経由でMAX2のプログラムは可能) |
オープン | FX2 8051CPUの割り込み(INT0)を使用する (USB経由でMAX2のプログラムは不可) |
<ユニバーサルエリア・レベル変換TTL>
「カメレオンUSB FX2」にはちょっとした回路を組み込んで使うことの出来るユニバーサルエリアが存在します。
このユニバーサルエリアは、電圧レベル変換用TTLの信号端子にもなっています。
どの信号がどの端子に接続されているかは回路図を参照してください。
2電源レベル変換TTLはアプリケーションによって必要なケースと、全く不要なケースがありますので、実装はオプション扱いになっています。
またレベル変換TTLは双方向バスバッファで、DIRやOEといったコントロール信号があります。このコントロール信号はVCCA側の電圧の信号になります。
(VCCA側がMAX2側になるのか、外部の電圧側になるのかもアプリケーションに依存しますので、今回GNDピン以外は全て未接続にしてあります。)
レベル変換TTLの実装向きは下記の写真を参考にしてください。
<JTAG信号>
「カメレオンUSB FX2」ではMAX2のプログラムはCUSBWR2ツールを使用して行います。
USBケーブルを解してMAX2のプログラムが行えるため便利ではありますが、CUSBWR2ツールはアルテラのデザイン開発ツールQuartus2と連動していないため、デザインの開発では効率的とはいえません。
そこでJTAG信号を「カメレオンUSB FX2」のユニバーサルエリアに引き出し、アルテラ標準の書き込みツールで開発を行うことも可能です。
JTAG信号は引き出しやすいように、大き目のスルーホールを使用していますので、こちらから引き出してください。