« A/D変換器のテストアプリを開発 | トップページ | ZYNQのFSBLが動かない場合の対処法 »

2014.08.13

ZYNQのADCボードの実装があがりました

本日、ZYNQのADCボード「Cosmo-Z」の実装があがってきました。2枚あります。

Cosmoz3

ZYNQはこんなパッケージでした。これがFBG656ってやつですね。初めてみました。上に見えるのはDDR3 SDRAM、右に見えるのがEZ-USB FX3です。

Cosmoz1

ずらっと並んだ高速ADCと、メザニン。

Cosmoz2

実装していなかったコネクタやコンデンサなど、すべての部品を手作業ではんだ付けして、完成です。

Cosmoz4

安定化電源をつなぎ、1Vから徐々に電圧を上げていき、各電源が異常な電圧を出さないかどうかチェックした。1.0,1.2,1.5,3.3VすべてOK。

ZYNQに何も書き込まない状態で消費電流測ったら890mAです。結構食います。アナログ部の消費電力が結構大きいようです。

おそるおそる電源を入れ、EZ-USB FX3にUSB-JTAGのファームウェアを書き込んで、MITOUJTAGでをつないだら認識できました!

ここまでくれば一安心です。

Cosmoz5

このボードのUSBコネクタはライトアングルタイプで上に出てくるやるなので、ポキッと折れそうで怖いです。エポキシで固めるなどの補強が必要かもしれません。

Cosmoz6

さて、いろいろ書き込んだり、プログラムを動かそうとしているのですが、なかなか安定して動作しません。どうやら、MIO[6:2]の設定でいろいろあるようです。

ZYNQをJTAGで見ると、ARMのDAPというものと、FPGAの部分と、2つ見えるはずなのでうが、これが1つしか見えていません。これはMIO[2]で決まるようです。

MIO[2]が0だとカスケードモードというやつになるそうなのですが、それでも1つしか見えないときがあります。たぶん、ZYNQの中の初期ブートコードがMIO[7:3]を見て起動モードを設定してしまって、そのときにDAPを隠すようなことをしているのだと思います。

特に、iMPACTでコンフィグするには、JTAG ブートモードにしなければならないのかもしれません。QSPIやSDカードモードではiMPACTでは失敗するようです。MITOUJTAGではどのモードでも書き込めるのに、なぜかiMPACTでは失敗します。

Zynq_boot

このあたりのジャンパをいろいろ変えて試しているのですが、そのときに、MITOUJTAGが使えてとても助かりました。

MIOはモード設定ピンと、QSPIの出力を兼ねるので、リセット時の状態がどうなっているかは起動してしまうとわかりません。MITOUJTAGのバウンダリスキャンを使えば、ZYNQの起動前のMIOの状態が見ながらいろいろ試すことができました。

Zynq_mio

ZYNQ起動する前後の波形です。

Zynq_boot_wave

PS_POR_BがLに下がると、各MIOの端子が出力を停止し、その後、SD_DATAが激しく動いてブートプログラム(boot.bin)を読みに行っているのがわかります。起動した後はMIO/BOOT_MODEは出力に変わってしまっています。

上の波形では、

  • VCFG[1:0]="11"・・バンク1、バンク0ともに1.8V
  • MIO[6]/BOOT_MODE[4]=1・・PLLバイパス
  • MIO[5]/BOOT_MODE[3]=1・・SDカードブート
  • MIO[4]/BOOT_MODE[2]=1・・SDカードブート
  • MIO[3]/BOOT_MODE[1]=0・・SDカードブート
  • MIO[2]/BOOT_MODE[0]=0・・・カスケードモード

ということがわかります。

起動する前のモードピンが正しい値になっているかを調べたり、ちゃんとSDカードを読みに行っているのかを調べたりすることは、MITOUJTAGを使わなければ不可能だったと思います。

|

« A/D変換器のテストアプリを開発 | トップページ | ZYNQのFSBLが動かない場合の対処法 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« A/D変換器のテストアプリを開発 | トップページ | ZYNQのFSBLが動かない場合の対処法 »