2011年05月14日

MachXO2 Pico Dev Kit

Lattice 社の FPGA MachXO2 が気になって、Mouser を覗いたら 『MachXO2 Pico Dev Kit』(LCMXO2-1200ZE-P-EVN) が見つかった。値段は、\3,836.9 で、メーカから直接送られてくるそうだ。(英語のページでは、$29 となっていたから送料込みの値段?)

  • MachXO2 Pico Development Kit』 - Lattice社 英語ページ
  • MachXO2開発キット』 - Lattice社 日本語ページ

    追記: 11/19 現在 DigiKey で 2450 円だが 製造中止で 在庫 29
    モデルチェンジしたようで、後継は、LCMXO2-1200ZE-P1-EVN 。


  • ピコ開発キット

    コンスーマ機器のデザインのための、バッテリー駆動の低コスト開発プラットホーム
    - MachXO2 LCMXO2-1200ZE
    - 4キャラクタの16セグメントLCDディスプレイ (誤り:後述)
    - 容量性のタッチセンサ・ボタンが4つ
    - 1 Mbit SPIフラッシュメモリ
    - I2C温度センサ
    - MachXO2デバイスでデルタシグマADコンバータによって電源を測定
    - JTAG、SPI、およびI2C用の拡張ヘッダ

  • デジキーだと、4787円。(2011/06/28 現在 在庫 48)

    どうも正価は、$45 らしい。$29 というのはキャンペーン価格で、7月末までな上、高額な送料がかかるようだ。

まるで、AVR の評価ボードのようなデバイスが付いていて、バッテリー駆動なんてキーワードまである。



    写真は、『User's Guide』 からの抜粋。現物を 入手したが、この写真の REV.E が正しいものだった。大きさは 63mm 角(ぐらい)。

    『QuickSTART Guide』の写真 や 日本語ページの写真とは違うので注意。

    上記の説明には書いてないが、USB mini-B コネクタ が付いている。 コントローラは、FT2232H(Hi-Speed) 。ケーブルも付属しているので、これだけ買えば使えるもののようだ。

      接続は、Config 用に ADBUS 5 pin と User 用に BDBUS 8 pin 。Config 用は、ADBUS7 で I2C と JTAG を切り替えるようになっている。JTAGは、0 から順に TCK/TDI/TDO/TMS 。I2C は 0:SCL 1,2: SDA 。切り替えに使っているセレクタは、STG3693 。あと、EEPROMは、M93C46 。

    • AN8082: USB Programming and Circuit Guide』というドキュメントがある。これと Pico Dev Kit の FT2232H 周りは、ほぼ同じ回路 。

      気がついた細かい違い: (1) AN8082 では USB D+/D- に RC (27Ω/33pF) が入っている。Pico Dev Kit は直結。(2) AN8082 では 水晶に 1MΩと 1KΩが入っている。Pico Dev Kit はなし。

    • "4キャラクタの16セグメントLCDディスプレイ" の記述だが、7セグ に : 付きのような?
      少なくとも回路図を見る限り、[1-4]A-G , DP[1-3] , COL になっている。

      液晶モジュールにはコントローラはない。LC フィルタを介して 直接ドライブしている。
      LC フィルタは、5.49K + 0.1uF の LPF (cutoff 0.3 kHz) 。-- 好きな波形を PWM で出力できるから 全然問題ないわけか。

      ちなみに 型番は、LCD-S401M16KR 。Lumix (http://www.lumex.com) 社の製品だが、デジキーにあるのは だいぶ違いそうな LCD-S401C

    LCMXO2-1200 は、LUT 数 1280 。ブロックメモリ 9Kb x 7 , 分散メモリもあって 10Kb 。Spartan-3A 50A ぐらいの規模?
    ハードマクロ化したI2C、SPI、タイマ/カウンタがあるから、うまく使えれば 規模を減らせる。

いずれ.. なんて言っていたがこれは欲しいような...

    もちろん、AVR互換コアを載せるのが目的。

    -- ただ、デルタシグマADコンバータなんて書いてある。ADC も作らないと。..確か差動入力さえあれば 、HOLD 用のコンデンサぐらいでつくれたような。

ディスクの空き容量が厳しいし、ARTEMIS ボードが先だがら、やはり『いずれ』なのだが .. ADC は検討しておきたい。

しかし、こういうものが、FPGA で低価格で作れるようになってくるとは。バッテリー駆動なんてのも驚きだ。

追記:
デルタシグマメモ:

  • ΔΣ変調の部屋

  • AN283: シグマ・デルタ ADC/DAC の原理 (pdf)』 - アナログ・デバイセス社の アプリケーション・ノート

  • 簡易シグマデルタ ADC』 - Lattice 社のリファレンス・デザイン



    login すれば、ソースコードと ドキュメントをダウンロードできるようだ。
     - 差動LVDS入力 + RC だけ
     - 54 LUT と書いてある。



    コンパレータは 作動入力で代用して、R 2 つと C で良いのか...
    で、ADIN と足して Vref になるようにするわけか。
    Vref といっても PWM_OUT は 0 - VCCIO だから 1/2 VCCIO になるようにしないといけない。あとは、VCCIO が 安定していないとだいなし。

  • XAPP211: PN Generators using the SRL Macro』 - Xikinx 社: シフトレジスタを使った擬似乱数


      PN ジェネレータ というのは、シフトレジスタ を作って作る。N bit の 結果を得るのに N クロック必要になるわけだが、この条件なら、SRL16 が使われ LUT が少なく済む。

      また、N bit の 結果を得るのに N クロックかけて良いとなると、(LSB first の)bit-stream どうしの演算をベースにできる。

      加算なら 1 bit の FULL-ADDR と ラッチ1 つで 済む。
      積和でも 加算 x N と 遅延用の ラッチ N^2 / 2 があれば良い。そして遅延専用なら やはり SRL16 が使える。

      なかなか設計が楽しそうだ。

チップ単体の価格 (2011/05/27)

リードタイムは 10週間とかだが、Muoser で検索できるようになっていた。

    LCMXO2-1200を検索


    @1個 @25個
    LCMXO2-1200HC-4TG100CR1 695 618
    LCMXO2-1200HC-5TG100CR1 763 679
    LCMXO2-1200HC-6TG100CR1 839 748

    LCMXO2-1200ZE-1TG100CR1 694 618
    LCMXO2-1200ZE-2TG100CR1 763 679
    LCMXO2-1200ZE-3TG100CR1 839 748

    1200ZE というのは、1.2V で動作し 低消費電力が売り。Pico で使っているのは、ZE 。だが、普通は 高速な 2.5V/3.3V の 1200HC を使うと思う。(ちなみに、レギュレータがない 1200HZ もあるが、リストされていない)

    規模は、やはり XC3S50A ぐらい。Config 用の SPI-FLASH が不要だから 丁度 XC3S50AN のようなもの。XC3S50A-4VQ100 は 500円ぐらいだから、SPI-FLASH 分を上乗せしたような価格。

    AVR互換コアは、XC3S50A 向けの構成で 1085 スライス使っている。MachXO2-1200 向けに カスタマイズすれば、同じ機能が入りそう。

      Diamond をちょっとさわってみたのだが、Implement はエラーにならないものの、具合が悪いところがあった。

    • レジスタへの初期値代入は、$readmemh()/$readmemb() によるもの以外ダメだそうだ。
      GPR や RAM の初期値は必要ないし、ROM も $readmemh() を使うので、問題ないのだが、いくつか修正しないといけない。内部的に 4相クロックを作るオプションもひっかかるが、シフトレジスタ自体効率良く使えるかどうか怪しいのでサポートを外す。

    • 内部でクロック生成しているところ全般で Warining になる。なにかしないといけないようだ。内部的に4相クロックを作るオプションでもクロックを生成しているが、他に ROM/RAM の制御でもクロックを合成している。

    • FIFO の通信ポート機能では、シフトレジスタを使っている。Dual Port を使うオプションもあるのだが、いずれも Xilinx ならではの機能かも知れない。ちょっと検討が必要。

    • ブロック RAM は、Dual Port でないので、ROM が具合悪い。デフォルトでは、プログラムからのアクセスを 別ポートを使って実装している。これは SMP 化で使っている ROM_PSEUDO_DP オプションを付けることで 問題なくなるが、規模が増える。

    • 規模を減らすために、タイマーや SPI も MachXO2 の機能を使って実装しないといけないかも。

      XC3S50A 用のコンフィグをベースにして Implement してみた。

      Device utilization summary:

      PIO (prelim) 12/108 11% used
      12/105 11% bonded
      IOLOGIC 2/108 1% used
      SLICE 569/640 88% used
      EBR 6/7 85% used

      569 スライスで済んでいる。(XC3S50A は、Dual Port Block RAM を使うと 656 スライス。Single Port しか使わないオプション(ROM_PSEUDO_DP)で 682 スライス)

      試しに Synthesis Tool を デフォルトの Synplify Pro から Lattice LSE に変更すると 550 スライスになった。いずれも、なにか省略された結果、小さくなっている可能性がある(= 検証していない)。

      予想より効率が良く、タイマーや SPI といったハードマクロを使用しなくとも良さそうだ。
      これはこれで使ってみたいが、後回し。

    ちなみに、VQ100 以外に TQ144 もリストに出ている。VQ100 は -2000 までしかないが、TQ144 は、-7000 まであるから、何を作るか決まっていないもの(教育用・開発用ボードとか)の基板を起こすなら、TQ144 が良いかも知れない。

    2011/06/10 追記: Digikey でも扱っている! しかも在庫があったりするし。

    参考リンク:
  • 日本語ドキュメント
  • Lattice Diamond (日本語ページ)

追記: 『MachXO2 Pico Dev Kit』メモ

    rtavr やツールのテストには、『MachXO 2280 Breakout ボード』をメインに使うことにしたのだが、『MachXO2 Pico Dev Kit』も入手しておくことにした。

    入手先は、デジキー 型番 『LCMXO2-1200ZE-P-EVN』で、価格は、4787円と予想より高価だった。

    さて、このボード いろいろなデバイスが付いているが、それは置いておいて... PC の通信とか、外部との接続についてメモを取った。

    簡単に紹介すると、FT2232H が付いていて、MPSSE として使う ADBUS0-3 以外に、I2C のためのセレクタ (ADBUS7) がある。あと BDBUS の 8pin 、それに 12MHz の出力が MachXO2 に接続されている。(12Mhz は水晶(OSCO)から 直接取っている)

    BDBUS0 PL3C(E1)
    BDBUS1 PL3D(E2)
    BDBUS2 PL4A(E3)
    BDBUS3 PL4B(F2)
    BDBUS4 PL4C(F1)
    BDBUS5 PL4D(F3)
    BDBUS6 PL5A(G3)
    BDBUS7 PL5B(H2)

    USB_12MHZ PT12A(A7)

    拡張用のコネクタは、16x2列で次のようになっている。

    EXT_VCCIO (2) - R - (1) --- Battery or 3V3
    USB_TDI (4) - R - (3) XO2_TDI
    USB_TDO (6) - R - (5) XO2_TDO
    USB_TCK (8) - R - (7) XO2_TCK
    USB_TMS (10) - R - (9) XO2_TMS
    USB_SDA (12) (11) PL9A(K1)
    USB_SCL (14) (13) PL9B(K3)
    PT17C(B13)* (16) (15) PB11A(M7)
    PT17D(A13)* (18) (17) PB11B(N8)
    PT15D(C10)* (20) (19) PL2A(B1)
    XO2_SPI_SN (22) (21) PL2B(B2)
    XO2_SPI_CS0 (24) (23) PL2C(C1)
    XO2_SPI_CLK (26) (25) PL2D(C3)
    XO2_SPI_IN (28) (27) PL3A(C2)
    XO2_SPI_OUT (30) (29) PL3B(D1)
    GND (32) (31) GND

    PT17C(B13) DONE
    PT17D(A13) INITN
    PT15D(C10) PROGRAMN

  • R は、0Ωのジャンパ。取り外すと 外部のJTAG ケーブルを使ったり、逆にJTAG ケーブルとして使えるようになる。

    JTAG 端子をユーザI/O として使えるようにする JTAGENB という端子がある(PT15C)のだが、 無接続。

  • SPI も出力されている が、既に SPI_FLASH が接続されている (CS0 で Enable)

  • ユーザI/O も 13 本使える。ただし、左の 3 つは Config でも使用するピンなので注意。

ちょっと追記: 2011/12/15

    Digkey で MachXO2 の品種が増えている。 (TQFP-100, TQFP-144)

    まだ買えるわけではなさそうだが。7000 もリストされている。

    あと Lattice の MachXO2 の Webページを見ていたら、パッケージが増えている。

    WLCSP とかは、電子工作でどうにもなりそうにないのでパスするにしても、QFN-32 の LCMXO2-256 が追加になっている。この調子で 1200 あたりも QFN-32 で出てくれないかなぁ と思ったり。( QFN-32 でも厳しいけれども 扱える範囲という気もしてきた。)
posted by すz at 21:56| Comment(0) | TrackBack(0) | MachXO2
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/45169270
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック