Tang-NANO届いた(追記あり) [FPGA]
SiPeedの激安FPGAボード、Tang-NANOがSeeedで販売になってたのでいくつかまとめて購入しました。
GOWINのツールは半年ぐらい前からインストールして触っていたのですが、現物含めたファーストインプレッションとしては‥‥
・GOWIN IDEツール
意外と使いやすい。SynplifyProで論理合成から配置配線までやるので、IDEはほぼガワだけの存在。そのうちVScodeのプラグインが出てきそう。
コンパイルはかなり高速だけどチューニング項目はあんまりない。タイミングを追い込んで使うようなヘビーな使い方を期待すると死ぬ。
ハードマクロを使うIPジェネレータや、組み込みロジアナなんかも一通り揃っている。
ただし、論理シミュレータがまったくないので、これだけで使おうとすると泥沼。QuartusPrime Liteと併用してModelSimを使うのが吉。
・Tang-NANOボード
使われているFPGAはGW1Nシリーズの一番小さいやつ。1152LUT+864FFで乗算器はなし。メモリマクロは18kbitのブロックRAMが4個。PLLが1個。コンフィグROMを内蔵しているので、MAX10の500~800LE相当な感じ。
オンボードにはJTAGダウンローダが載っているので、単体でGOWIN IDEのProgrammerからコンフィグレーションデータを書き込むことができる。
それ以外には64MbitのQSPI-SRAMが載ってる。所謂IoT-RAMと呼ばれているグループで、小ピン(6本)でそこそこ高速な大容量メモリを扱える。
ボード上には40ピンFPCも載っていて、4.3インチグラフィック液晶のデファクトスタンダード配置。専用の800x480 LCDの他、秋月で売ってる480x272 LCDも接続できる。
なかなかいい、と思いきやLCDバックライト昇圧回路が問題でした。
サンプルのコンフィグで指定のLCDを繋ぐとカラーバーは出る、しかしLCDを繋いでないときは点滅し続けるカラーLEDがLCDを繋いでいるときは途中で止まってしまう。しばらくほっとくとまた点滅を始める。
USBの電源供給の問題かと思ったので5V/2Aの充電器に繋いでみるも、やっぱり挙動は変わらない。
個体の問題かと思って別のボードを繋いで見ても同じ症状がでる。
こういう不可解な挙動をする場合、かなり高い確率でFPGAの電源系に問題を抱えています。
サージやドロップで部分的に内部ロジックの動作がおかしくなり、CRCチェックが回ってくると再コンフィグして復帰する、というパターン。
それでパターンを追いかけてみると、1.2Vの電源が1本、昇圧DC/DCのインダクタのそばを通り、ICの下をくぐってバックライトLEDラインと並走して、かなり大回りしてFPGAに接続されているのがわかりました。
また1.2V/3,3V LDOへの入力も昇圧用インダクタと十分なデカップリングがされていないので、1.2Vラインの電源品質はかなり悪いと考えられます。
基板のアートワークレベルの問題で、部品の載せ替え程度では解決しそうにないので、LCDを使う場合はオン
ボードのバックライト昇圧回路は切り離して、外部にバックライト電源を接続する必要がありそうです。
なんとか電源パターンのカット&ジャンパでどうにかできないか模索中。
で、とりあえずLチカ
追記。
SiPeedからレスがあり、どうも出荷で書き込まれてるやつはタイミングmetに不具合があるようです。
さらに迅速にストレステストを実施してもらい、1.2Vの安定性を確認していただきました。
ただ、出力しかしないはずのLCDを接続するとおかしくなるのも、負荷のかかり方でシビアなタイミングの問題でてるとするならやはりボードなりデバイスなり電源まわりに弱い箇所があるのだろうとは思います。
上限を見極めたいので、こちらでももうちょっと調べています。
さらに追記。
1.2Vラインをジャンパして昇圧DC/DCをカットしたものと、無改造のものを比較測定しました。
接続したLCDは秋月のATM0430D5です。これに480x272のカラーパターンを表示させて電源ラインに重畳するノイズを見ました。
昇圧DC/DCの1.5MHzのノイズが定常で±60mV以上重畳していて、動作マージンはかなり厳しいと考えられます。タイミングぎりぎりのデザインはやらない方がいいですね。
GOWINのツールは半年ぐらい前からインストールして触っていたのですが、現物含めたファーストインプレッションとしては‥‥
・GOWIN IDEツール
意外と使いやすい。SynplifyProで論理合成から配置配線までやるので、IDEはほぼガワだけの存在。そのうちVScodeのプラグインが出てきそう。
コンパイルはかなり高速だけどチューニング項目はあんまりない。タイミングを追い込んで使うようなヘビーな使い方を期待すると死ぬ。
ハードマクロを使うIPジェネレータや、組み込みロジアナなんかも一通り揃っている。
ただし、論理シミュレータがまったくないので、これだけで使おうとすると泥沼。QuartusPrime Liteと併用してModelSimを使うのが吉。
・Tang-NANOボード
使われているFPGAはGW1Nシリーズの一番小さいやつ。1152LUT+864FFで乗算器はなし。メモリマクロは18kbitのブロックRAMが4個。PLLが1個。コンフィグROMを内蔵しているので、MAX10の500~800LE相当な感じ。
オンボードにはJTAGダウンローダが載っているので、単体でGOWIN IDEのProgrammerからコンフィグレーションデータを書き込むことができる。
それ以外には64MbitのQSPI-SRAMが載ってる。所謂IoT-RAMと呼ばれているグループで、小ピン(6本)でそこそこ高速な大容量メモリを扱える。
ボード上には40ピンFPCも載っていて、4.3インチグラフィック液晶のデファクトスタンダード配置。専用の800x480 LCDの他、秋月で売ってる480x272 LCDも接続できる。
なかなかいい、と思いきやLCDバックライト昇圧回路が問題でした。
サンプルのコンフィグで指定のLCDを繋ぐとカラーバーは出る、しかしLCDを繋いでないときは点滅し続けるカラーLEDがLCDを繋いでいるときは途中で止まってしまう。しばらくほっとくとまた点滅を始める。
USBの電源供給の問題かと思ったので5V/2Aの充電器に繋いでみるも、やっぱり挙動は変わらない。
個体の問題かと思って別のボードを繋いで見ても同じ症状がでる。
こういう不可解な挙動をする場合、かなり高い確率でFPGAの電源系に問題を抱えています。
サージやドロップで部分的に内部ロジックの動作がおかしくなり、CRCチェックが回ってくると再コンフィグして復帰する、というパターン。
それでパターンを追いかけてみると、1.2Vの電源が1本、昇圧DC/DCのインダクタのそばを通り、ICの下をくぐってバックライトLEDラインと並走して、かなり大回りしてFPGAに接続されているのがわかりました。
また1.2V/3,3V LDOへの入力も昇圧用インダクタと十分なデカップリングがされていないので、1.2Vラインの電源品質はかなり悪いと考えられます。
基板のアートワークレベルの問題で、部品の載せ替え程度では解決しそうにないので、LCDを使う場合はオン
ボードのバックライト昇圧回路は切り離して、外部にバックライト電源を接続する必要がありそうです。
なんとか電源パターンのカット&ジャンパでどうにかできないか模索中。
で、とりあえずLチカ
追記。
SiPeedからレスがあり、どうも出荷で書き込まれてるやつはタイミングmetに不具合があるようです。
さらに迅速にストレステストを実施してもらい、1.2Vの安定性を確認していただきました。
s_osafuneSiPeedでも実測してワーストコンディションについても1.2V系の安定性に問題無いとのことです。 https://t.co/6OnIPRWZPN11/22 23:10
ただ、出力しかしないはずのLCDを接続するとおかしくなるのも、負荷のかかり方でシビアなタイミングの問題でてるとするならやはりボードなりデバイスなり電源まわりに弱い箇所があるのだろうとは思います。
上限を見極めたいので、こちらでももうちょっと調べています。
さらに追記。
1.2Vラインをジャンパして昇圧DC/DCをカットしたものと、無改造のものを比較測定しました。
接続したLCDは秋月のATM0430D5です。これに480x272のカラーパターンを表示させて電源ラインに重畳するノイズを見ました。
s_osafune測定した。私感では「昇圧DC/DCの影響は無視して良いほど小さくなく、動くけど問題は潜在している」という結論。タイミングmetしてない部分や非同期部分にはクリティカルな影響があると思う。 https://t.co/1P56I7g8oY11/23 03:48
昇圧DC/DCの1.5MHzのノイズが定常で±60mV以上重畳していて、動作マージンはかなり厳しいと考えられます。タイミングぎりぎりのデザインはやらない方がいいですね。
2019-11-21 03:41