Posts Tagged with "Ultra96toPMOD"

既に発行済みのブログであっても適宜修正・追加することがあります。
We may make changes and additions to blogs already published.

Ultra96toPMODボードの改版 (2)

posted by sakurai on June 9, 2019 #110

あまりにもPCB製作が安いので、4層板も試作してみました。PCB業者は前回と同様Bocktechです。今回は、PCB製造に7.78日と4層のせいかかなりかかりました。PCB(SMDのみ)実装に0.90日、配送(DHL)に6.13日と、ネットでの支払い完了から数えて到着まで14.81日かかりました。またコストは、送料込み合計92.02 USDで、その内訳はPCB製造が42.19 USD、PCB実装に29.83 USD、配送(DHL)に20.00 USDです。

完成した回路図を図110.1に示します。EAGLEにより作図しました。UltraZedボードとUltra96ボードの兼用であるため、電源のORをショットキーバリアダイオードで取っています。どちらの電源がONしているかを2色LEDの色で表示しています。初版から比べてリセットSWとDIP SWを追加しました。

図110.1
図110.1 論理回路図

PCBアセンブリはSMD部品2個のみを実装してもらいました。garberデータの他にBOMのエクセルファイルをアップロードします。PCBアセンブリ費用29.83 USDの内訳は、部品費6.64 USD、セットアップ費20.00 USD、組み立て費0.92 USD、サービス費2.27 USDとのことでした。2枚SMD実装してもらって29.83 USDなら苦労してハンダリフローや手付ハンダをしなくても良いかもしれません。

図110.2
図110.2 PCB BOM

Boktechにより5枚を製造し、2枚をSMD実装したPCBです。

図110.3
図110.3 PCB表面

図110.4
図110.4 PCB

組み立てを実施したPCBです。電源や主要信号にテストポストを立てています。


左矢前のブログ 次のブログ右矢

Ultra96toPMODボードの改版

posted by sakurai on April 15, 2019 #97

Bocktechという会社にオーダーしていたPCBが届きました。 このメーカーだと、PCB製造に2.66日、PCB実装に1.02日、配送(DHL)に2.00日と、ネットでの支払い完了から数えて、わずか5.68日しかかかっていません。

それなのに、値段は送料込み合計54.83 USDと最安でした。その内訳は、PCB製造が1.00 USD、PCB実装に29.83 USD、配送(DHL)に24.00 USDとなっています。

後は品質がどうかということなので、部品を実装して、動作チェックしてみましたが、特に問題無く動作しました。2層なので電源ノイズは小さくない(300~400mVp-p)ですが、これは会社の問題では無いです。

総じて価格は最安、納期は最短ということで、当面この会社のサービスを利用することになりそうです。

図97.1
図97.1 PCB

試作なのでPCBは5枚オーダーしました。

図97.2
図97.2 PCB基板表面

そのうちの2枚にSMDを実装しています。最低の実装数量が2枚となっているためです。

図97.3
図97.3 PCB基板裏面

左矢前のブログ 次のブログ右矢

Ultra96toPMODのPCBの完成

posted by sakurai on April 7, 2019 #96

FusionPCBにオーダーしていたメインPCBが届きました。実装も依頼したので、基板だけよりは時間がかかります。受注から実装完成まで18.94日、DHLによる配送が0.95日でした。FusionPCBは若干高いようですが、DHLの配送料込みなので、他社と価格比較する際はトータルで見る必要があります。

コストを抑えるため、実装はSMD部品のみ依頼し、残りのスルーホール部品はマニュアルによるハンダ付けとしました。

図96.1
図96.1 完成したPCB

部品を実装したボードをUltra96ボード、PMOD-VGAボード、PMOD-I2S(サウンド)ボード、PMOD-JOY-SWボードと組み合わせて、Space Invadersが正常に動作することを確認しました。

基板図の表、裏の両面を示します。

図96.2
図96.2 ガーバーデータ表

図96.3
図96.3 ガーバーデータ裏

UltraZedボードでは電源ONでリセットがかかったのですが、プロトタイプボードを実装して電源を入れたところ、電源スイッチをONしなければならないことが分かりました。ところが、Ultra96ボードの電源スイッチがインタフェースボードで隠されて押しにくいことが分かったので、新たに電源スイッチとついでに敵の強さを設定するDIP SWを設けました。回路は他は基本的には変えていません。ソルダーレジスト色は黒にしてみました。

図96.4
図96.4 SketchUPによる3D化

図96.5
図96.5 IndigoRTによるレンダリング

左矢前のブログ 次のブログ右矢

posted by sakurai on March 24, 2019 #93

FusionPCBにオーダーしていた基板が届きました。以前の設計時のブログの続きです。

非常に小さい基板で、以下に基板の100円硬貨との比較写真を示します。基板業者は前回と同じFusionPCBで、今回はOSCという速達配送業者を利用して9.9USDでした。基板のみで製造に7.94日、OSCによる配送にシンセンから日本まで3.13日かかっています。シンガポール郵便よりはだいぶ早いですね。9.9USDの内訳は、7.9USDが基板制作代、2.0USDがOSCの配送料のようです。

前回はソルダーレジストを白で製造しましたが、今回は黒にしてみました。Ultra96toPMODボードもオーダーしています。レベル変換ICのみSMDだったので、手ハンダはマイクロスコープ下のハンダ付け作業となり厳しいため、レベル変換ICのみ実装もオーダーしました。

図93.1
図92.1 基板写真

これに部品を実装したものを次の図に示します。

図93.2
図92.2 基板に部品を実装した

UltratoPMODボードに取り付けて正常に動作することを確認しました。


左矢前のブログ 次のブログ右矢

posted by sakurai on February 8, 2019 #86

ゲームの完成

以前の記事で実装したインベーダゲームを、Ultra96及びUltra96toPMODインタフェースボードの組み合わせと、ジョイスティックで動作させることができました。絵も音も、UltraZedボードと全く同様に出ています。

動画のフルキーボードは全く使用していません。Ultra96に上記PMODインタフェースボードを接続し、それにPMOD-VGAボード、PMOD-I2Sボード、自作PMODジョイスティックSWボードを接続し、動画中のジョイスティック及びスイッチにより操作しています。

図86.1
図86.1 Ultra96のインベーダゲーム

共通シーケンス

ゲーム自体はまだ改良の余地があり、共通ステートシーケンスをソフトで言うところのサブルーチン化する等のリファクタリングを実施中です。図86.2にその一例を示します。パターンROMからいろいろな形、例えばインベーダ、自機、ベース、UFO等をVRAMに矩形転送するシーケンスは、多用されますが、それぞれにシーケンサを用意していると大変なロジック量になります。これをサブルーチンのように、{ソースX座標、ソースY座標、横幅、縦幅、デスティネーションX座標、デスティネーションY座標}の6個を入力パラメータとして、シーケンスを呼びだすことでシーケンスの共通化が可能です。呼び出す前には戻り番地をリターンレジスタに退避してから呼び出します。呼び出し先で戻るときにはリターンレジスタをステートに代入して戻ります。

図86.2
図86.2 共通シーケンス(=サブルーチン)

本来はプロセッサのソフトウェアで実行する、十分複雑なシーケンス制御をハードウェアで実装してみて判明したのは、まさにプロセッサの進化のリバース(逆行)だということです。FSMシーケンスを共用化する目的で、前述のようにリターンレジスタを実装しましたが、これはプロセッサのリンクレジスタと同じです。

水平マイクロ

現在マイクロプログラム処理をあまり見なくなったのは論理合成のためだと思います。論理合成が無い時代はハードウェア論理を変更するのは大変な作業で、それを簡単にするために、FSMではなくマイクロプログラム処理を考え、ROMの内容を書き換えることで、処理の変更を行ったわけです。今回のFSMシーケンス記述は、いわば、インベーダ処理プロセッサの超水平マイクロを書いているようなものです。ちなみに水平マイクロには、普通プロセッサレベルのISAには存在しない、マルチウェイ分岐等の強力な命令があります。

ESDAツール

最近ではSDSoCなりVivado-HLSなりが使えるので、Cで書こうかとも思いましたが、今回はVerilogで記述してみました。VerilogはCに対するアセンブラとも言われますが、コード量的にはそれほどの差はありません。20年ほど前にESDAツールがあったのですが、最近はどこへ行ってしまったのでしょうか。動作合成が進んだのでなくなったのかもしれません。同じアルゴリズムをCで書いてみると、ESDAが不要かどうかが分かると思います。


左矢前のブログ 次のブログ右矢

posted by sakurai on February 5, 2019 #85

Ultra96対応だけであれば変換ボードに吸収しても良いのですが、 スイッチ類をUltraZedボードに差し替えて使用する場合には、前述のとおりインタフェースが必要になります。その理由は、遠い場所にあるスイッチは単なるロジックではなく電装線路扱いとしなければ、反射が起き、正常に動作しないためです。

この反射を抑えるために、図85.1のような回路を設計しました。

図85.1
図85.1 回路図

このボードを作成しました。手ハンダでも作成できるようにSMDは使用しないようにしています。

図85.2
図85.2 ボードレイアウト図

EagleUpを用いて3D化します。

図85.3
図85.3 ボードイメージ

前々回作成したUltra96からPMODへのインタフェースボードと組み合わせ、レンダリングしたものが図85.4です。フラットケーブルの先(反対側)には前回のジョイスティック及びスイッチを接続します。

図85.4
図85.4 結合ボードイメージ

左矢前のブログ 次のブログ右矢

posted by sakurai on January 29, 2019 #83

生基板

今回はSeeed Fusion PCBという会社に基板を発注し、約22日で届きました。製造に13.16日、配送は最安のシンガポール郵便で9.67日となっています。

費用は送料込みで$7.9でした。送料込み約860円くらいで試作基板が5枚作成できるので、ユニバーサルボード一枚が200円前後することを考えると、非常にお得です。

図83.1
図83.1 PCB

組み立て

部品をハンダ付けにより実装していきます。試作のため手ハンダを前提としたことにより、SMDを極力避けたのですが、レベル変換ICのTXS0108EPWRはDIPの製品が存在せず、SMDとなってしまいました。

図83.2
図83.2 組み立てたPCB

SMDのアマチュア的ハンダ付けには、手ハンダ、ホットプレート法、トースター法等がありますが、今回は手ハンダでやってみます。手付けでなんとかきれいに付けることができました。図83.3にTXS0108EPWRの手ハンダ実装後の顕微鏡写真を示します。

図83.3
図83.3 SMDのハンダ付け後の端子の顕微鏡写真

以下の動画を参考にさせて頂きました。
https://www.youtube.com/watch?v=5uiroWBkdFY


左矢前のブログ 次のブログ右矢

posted by sakurai on January 28, 2019 #82

3D化による検討

基板と部品の配置を行うために3D化をします。これにより部品どうしの干渉などが発見できます。そのためには3D CADと3D部品が必要ですが、ここでは無償で使用可能なSketch Upを使用してみました。さらにEAGLEからSketch UPへのプラグインが必要となります。

そのプラグインの場所はここです。 https://eagleup.wordpress.com/

ImageMagickを入手してパスを記録しておいてください。ImageMagickのインストール時には、レガシーツール(convert.exe等)もインストールするように、チェックしておいてください。

EAGLEのULP->Browseをクリックし、EagleUpを実行します。最初の一度だけパスを表示する画面が出るので、必要な情報を入力します。

図82.1
図82.1 EAGLE内からEagleUpを実行

EAGLEからULPを開き、EagleUPを実行すると、SketchUpのプラグインで読み込む情報(.eupファイル)が生成されます。SketchUpを立ち上げ、プラグインを実行し、今作成された.eupファイルをロードしたものが図82.2です。ただし部品が一部未搭載です。

図82.2
図82.2 SketchUp内からEagleUpを実行

レンダリングしたものを図82.3に示します。ただし部品が一部未搭載です。

図82.3
図82.3 レンダリングしたボードイメージ

左矢前のブログ 次のブログ右矢

posted by sakurai on January 27, 2019 #81

プロトタイプボード

以前UltraZedボードに実装したスペースインベーダーを移植します。

Ultra96にはPMODインタフェースが無いため、PMODインタフェースを持つVGAインタフェースボードI2Sインタフェースボードを接続するためのインタフェースボードを作成します。

仕様

Ultra96にPMOD仕様カードを接続するために、PMODコネクタだけでなく、レベル変換ICを搭載します。PMODは3.3V電源が標準ですが、Ultra96の低速インタフェースは1.8V電源であるため、1.8V⇐⇒3.3Vレベル変換ICが必要です。さらにUltraZedにも接続可能なように設計します。もともとUltraZedはPMODインタフェースが搭載されているので、論理的な意味は無いのですが、PMODカードが複数あり、抜き差しする手間を減らすために、共用にしてみました。

サプライヤ

プロトタイプボードを作成する場合には、これもひと昔前はワイアラッピングやハンダ付けで作成したものですが、最近では10ドル以下で5枚程度のPCBを作成できる工場が現れてきました。これだとユニバーサル基板で作成したほうが高くつくくらいです。送料は別として、

https://www.pcbway.com/⇒基板10枚で5USD
https://www.fusionpcb.jp/⇒基板10枚で4.9USD
https://www.boktech.cc/⇒基板5枚で1USD
https://jlcpcb.com/⇒基板10枚で2USD

Boktechはなんと5枚製造して1ドルという、ユニバーサル基板よりも安い金額ですが、送料が別途20ドル程度かかるので、今回はFusion PCBにしてみました。10枚製造して送料込みで7.9ドルです。

PCB設計ツール

PCB設計ツールも無償のものがあり、無償の範囲で十分実用的なPCBが設計できます。今回はEAGLEというPCB設計ツールをインタフェースボードの設計に使用してみました。

図81.1
図81.1 EAGLE設計画面

PCB製造業者とはGarberフォーマットのファイルでインタフェースしますが、設計が完了したレイアウトデータをビュワーにかけたものが図81.2です。

http://mayhewlabs.com/webGerber/

図81.2
図81.2 基板イメージ

左矢前のブログ 次のブログ右矢


ページ: