lynxeyedの電音鍵盤

組み込みとか電装とか

Cyclone10 LP基板をつくる

プロトタイピング環境の刷新

最近基板を作るのも、組み込みや車載の仕事もいろいろ残念なトラブル続きで最小限の一部の知り合いに絞っていたのですが、
そろそろ身の回りの「ラピッドプロトタイプするときのデバイス」のアップデートをしなきゃと思い立ち、開発の合間に「使い捨て」できるボードを設計していました。

USB/WiFi/Subギガ/BLEなどは新しいデバイスがどんどんリリースされているわけですが、オールインワンデバイスを使うとマイコンペリフェラルのお勉強からやり直しだったりとしんどかったので、まずその辺りの設計スタンスの確認。

「機能、概念試作」がおおいのでそこで手間取らないようなものを考えます。

  • WiFi/BLE/USBはラズパイで完結させてしまい、どうしても必要になったら組み込みWiFi/BLE/USBデバイスを選定する
  • なのでラズパイでできるところは頑張らない(移植できる余地は残しておく)
  • intel FPGAデバッグ環境が充実しているのでマイコンはNiosII/f
  • あまりHDLを頑張って書かなくても良いようにする(プロトタイピングの時間短縮のため)
  • 簡単な画像処理ができるようSDR SDRAMとSPI SRAMが欲しい。カメラIFなどは別にラズパイにやらせて問題ない気もする。
  • RF関連の試作がよくあるのでプログラマブルなPLLを載せておく
  • 差動を8ch以上出しておく(もちろん差動じゃない用途にも使えるようにしておく)
  • それ以外に汎用GPIOを4chくらい出しておく
  • 小さめがいい


「使い捨て」にするためには(壊れない限り処分しませんが)、なるべく基板の製造コストも下げないといけません。

先行デザインの調査

MAX10はCQ出版誌でも取り上げられたせいかホビーでよく使われるようになってきたように見受けられますが、業務プロダクトとしてはCyclone IV派生のCyclone10が多く使われている印象です。プロト用基板もいろいろ豊富です。

https://www.intel.co.jp/content/www/jp/ja/programmable/products/boards_and_kits/dev-kits/altera/cyclone-10-lp-evaluation-kit.html
プログラマブルPLL搭載。
HyperRAMを搭載しているのですが、商用には別途IPの購入が必要。
SDR SDRAM載せてて欲しかった。
ちょっとでかい。

https://store.arduino.cc/usa/mkr-vidor-4000
小さい。ピンアサインがArduino MKR互換。比較的安価
SDRAMもついている。WiFiいらないな。。
マイコン-FPGA間のコミュニケーションAPIが色々揃ってて便利(実態はSPI2Avalon-MMなのかな?)。ただ、FPGAを直接コンフィグすると不便そうなのでやめ。

  • Trentz electronic CYC1000

https://shop.trenz-electronic.de/en/Products/Trenz-Electronic/CYC1000-Intel-Cyclone-10/
ちいさくて良い。とても安価。ピンアサインはArduino MKR互換。SDRAMついてる。Quartus Primeから直接認識できるArrow USB Programmerなるものが搭載されている。便利そうだけど、USB Blaster使いたい時に切り離すのがめんどくさそう。

どれも魅力的な部分はあったのですが、

をすべて満たすものがありませんでした。Trentzは迷いましたが、トレンツ日本(代理店?)がレスポンス遅いという関係者からのタレコミもあり。トレンツの注文が取れんツ。(さむ

設計

プロトタイプに適したボードがないので作ります。
EQFP144デバイスを使おうと以前に調査したのですがSDRAM接続が難しかったので、U256のBGAに。
参考資料:
Cyclone10LPの各々のピンの扱い方など
https://www.intel.co.jp/content/dam/altera-www/global/ja_JP/pdfs/literature/dp/cyclone-10/pcg-01021-j.pdf
パッケージごとのピンアサイ
https://www.intel.co.jp/content/www/jp/ja/programmable/support/literature/lit-dp.html


f:id:Lynx-EyED:20200128002402p:plain
バーン。IOを欲張らなければ2層で引けるとはいえ、めんどくさい感じでした。結局BGA裏側はパスコンとフィルタで埋まるのであまり自由度はなく…。
8割ほど完成した図がこちら。SDRAMプログラマブルPLLのSi5351Aなどを搭載しています。

f:id:Lynx-EyED:20200128094549p:plain
電源とBGAからの配線引き出しと差動以外の配線はKiCadの自動配線に任せ、少し手直ししておしまいにしました。
3Dで様子を確認。Raspi Zeroと寸法はほぼ同じ。ピンアサインもラズパイにスタックできる配置になっています。RaspiからUrJTAGなどからコンフィグしたり、ピンアサイン通りではないので何らかのジグが必要ですが比較的容易にUSB Blaster IIを接続したりできるでしょう。

f:id:Lynx-EyED:20200215120210p:plain
FPGA(中央左寄りの大きい正方形の物体)の右横にある8pinのSOICはIoT RAMというものだそうです。(IPS6404L-SQ)
大容量のQSPI RAMで便利そう。
下図は基板裏側。ラズパイと接続時には意識する必要はないですが、VccIO=Vinのジャンパを短絡させることによって96boardsやSpresenceボードなど3.3Vではないロジックと通信ができます。Vinから入力したロジック電圧で駆動します。(Vin=1.5 V / 1.8 V / 2.5 V / 3.0 V / 3.3 V)この時VccIO=3V3とのジャンパは開放にしておく必要があります。

f:id:Lynx-EyED:20200215120145p:plain

国内の知り合いのメーカーさんに製造実装までお願いする予定なのでメーカーで規定されている認識マークをつけてパネライズをしました。



次回は到着したCyclone10LP基板とRaspberry Piを接続しバウンダリスキャンして遊びます。