さて、ZYBO Z7-10 にプログラムとか始める前にまずは基板をじっくり見てみましょう。
ちなみに基板です。基盤ではないです。
基盤はBASE(Infrastructureとも言えるかな)。基板はBOARDです。
これ間違っている人やサイト多いんですよね。
私もたまに誤変換に気づかず書いていたりするので気を付けないと。
さて、本題に戻ります。
ZYBO Z7-10を購入したわけですが、どういう基板なの?ってのを少しじっくり見てみようと思います。
参考にするのはこのオフィシャルサイト。
Zybo Z7 Reference Manual [Reference.Digilentinc]
PDFも置いてあります。
なお、バージョンですが
と、2018/2/21版で基板はRev.B用です。
私の基板は裏面にRev.Bとシルクがありましたので問題なさそうです。
基板上の何がどれ?ってのは先のReferenceManualを見てください。
ZyboのZ7-10とZ7-20の違いですが、秋月では24,800円、39,800円と1.5万円違うわけですが、大きな違いはメインとなるZynq(FPGA)ですね。
XC7Z010とXC7Z020。同然-20の方が大きなFPGAが載っているわけです。物理的なサイズって意味じゃなくて回路規模です。言うまでもないでしょうが。
基板の方も若干違ってます。違うっていうか基板はおそらく一緒でマウントされているかどうか?の違いですね。
回路図を見るとこんな感じでZ20だけよって点線で囲っている部分があります。
これが違いってことなので、基板上でも若干の差異があるってことです。
回路図は以下です。
ちなみにXC7Z010-1CLG400CとXC7Z020-1CLG400Cの費用差はDigi-Keyで見たところ、7,353円に対して13,337円と約6,000円の違いがありますから、その他の細かい部品を考えてもZ7-20の方が利益率が高そうです。
まぁ普通ハイエンド寄りの製品の方が利益率は高いですよね。
次にこれがZynqのアーキテクチャ
上のProcessingSystemがCortex。下のProgrammableLogicがFPGAですね。SoC素人な私にはこのPSとPLの接続部分がまだ理解できていません。今後勉強していかないと。。。
細かい部分の重要そうなところをピックアップしてみます。
電源
電源は5Vです。
便利にできていて、DCジャックでもmicroUSBからでも供給できるようになってます。その選択はJP6。
JP6の構成を見ればわかるように外部電源をつなぐことも可能です。絵ではバッテリーって書いてますけどね。
ここらへんをジャンパーレスで自動選択にできないことはないでしょうが、コストダウンですかね。
電流容量としては2.5Aを必要とするようですね。まぁ軽く動かす程度ではそこまで必要じゃないんでしょうが、外部に色々と接続する場合は必要になりそうです。
で、USBやバッテリーの場合は0.73Aで保護回路が働くようです。
USB2.0は0.5Aまでだからでしょうね。なので大電流を必要とする場合はDCジャックから入れてあげる必要がありそうです。
BOOT
BOOTはmicroSD、QuadSPI、JTAGの3種類から選べるようになっていて、JP5で選択します。
まぁ開発時はJTAGメインでしょうね。JTAGもJ13ではなくてmicroUSB接続で行けるようです。J13を使うのってXilinxの書き込みツール使う時ですかね。でもコネクタがマウントされていませんので普通はUSB経由のJTAGでってことなんでしょう。
クロック
まず、PS領域に33.3333MHzのクロックが入ってますね。
これでCortexはMax667MHzで、DDR3は533MHzで動くようです。
また、イーサネットのファイからPL領域に125MHzのクロックも入っているようです。これがあるとPS領域を動かさなくてもPLだけで動くようです。
ただ、PHYRSTBをLにしておくとクロックが出てこないので注意が必要です。
図を見るとPLLがあってPLへ矢印がいってるのでPS領域で33.3MHzを基にPLLを通したクロックが4系統PLへ入れられるようです。
また、PLにもPLLが2個と4つのMMCM(Mixed-Mode Clock Manager)があるとのこと。
リセット
電源ICのPowerGood信号(電源が全部ちゃんと出てるよって信号)をPS領域のPowerOnReset信号として取り込んでいます。
PS-SRSTと書いてある赤いボタンは、外部システムリセットだっそうで、デバッグ情報を残したままPSのリセットができるようです。
また、PROGBと書いてある赤いボタンを押すとPL領域がリセットされ再Configとなります。
USB(PS)
USBは何か色々と制約が書いてありますので、書き出しておきます。
- USBはHost でも Peripheralとしてでも使用可能。
- Peripheralとして使用する場合、J10を使用し、JP1/JP2はショートしてはいけない。
- 組み込みHostとして使用する場合、J11を使用し、JP1をオープン、JP2をショートする。
- HostとPeripherarl 同時に2個接続してはいけない。
- HostモードはVBUSに150uFの容量が無いためEmbedded Hostとなる。
- JP1をショートすることで、汎用ホストになることができる。
- 殆どの周辺機器はJP1をショートしなくても正常に動作する。
- Zybo Z7はJP1のOpen/Shortに関わらず5V/500mAを供給できる。
- JP1ショート時はUSB給電時に組み込みLinuxを起動する際リセットされる場合がある。これはコンデンサに流れ込む突入電流の影響によるものである。
- USBホスト機能の使用時多くの電流が流れることでリセットされる場合がある。その場合はより電流の取れるバッテリーかACアダプタを使用することで解消する。
って書いてあるようです。気を付けないといけないのはUSBに接続する機器が大きな電流を食う場合ですかね。
基本I/O
Z7ボードは以下の様にスイッチとLEDがPL/PSそれぞれに接続されています。
なぜかここには載っていませんが、RGBLEDがZ7-10ボードに1個、Z7-20には2個搭載されておりPL領域に接続されています。
ちなみにこのRGBLEDの抵抗値はそれぞれ細かく値が違っており、きっちり作られているようです。いつぞやのなんかの評価ボードでは全部同じ値でしたからね。
ファン
J14に3ピンのファン用コネクタがあり、Z7-20ボードの方では実装されているようです。Z7-10は未実装。
ここに5Vのファンを接続できます。回転数検出はできるようですが、速度制御はできないようですので、故障検出くらいには使える感じでしょうか。
Pcam Port
このPcam Portっていう15ピンコネクタにラズパイのカメラがつながるんじゃないか?ってことでこのZYBOを買ったわけですが、つながりそうですね。
MIPI CSI-2 2レーンとI2Cが入っているようです。
追記(2020/6/13)

ざっとこんな感じでしょうかね。
さて、次は簡単なチュートリアルを試してみます。
コメント