Posts Issued in January, 2019

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 基板イメージ

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

posted by sakurai on January 24, 2019 #80

Ultra96

Avnetから画期的なZynq UltraScale+ FPGA評価ボードが発売されたので入手しました。何が画期的かというと、搭載されているチップが20nm先端プロセス、ARM A53×4コア、R5×2コアを搭載したFPGA評価ボードが、従来20万円以上したいわばプロ用の評価ボードが約3万円という、アマチュアにも手が届く価格になったことです。同じチップを搭載しているボードの過去記事はhttp://fs-micro.com/post/show/id/39.htmlです。また、インベーダゲームを実装した記事はhttp://fs-micro.com/post/show/id/52.htmlであり、同じチップであることから、簡単に実装可能と思われます。

開発ツールも無償のWebpackという論理合成、シミュレーション、配置配線全部入りのツールが使えるので、ひと昔前の設計現場では考えられない素晴らしい環境となりました。LSIのEDA、特に配置配線等では数千万円するものもあったのです。

図80.1
図80.1 Avnet Ultra96評価ボード

メーカサイト:
http://zedboard.org/product/ultra96

拡張インタフェース

以前に設計したグラフィックディスプレイコントローラとサウンドコントローラを、本Ultra96ボードのFPGAに実装します。

図80.2
図80.2 Ultra96評価ボード低速インタフェース

問題点としては、図80.2に黄色で示すように汎用GPIOが16本しかなく、グラフィック系だけでも各色4bit×3原色=12bitあり、他にサウンド系4bit、スイッチ系で4bitと少々オーバーします。幸いグラフィクスは各色4bitも使用していないので、各色1bit×3原色=3bitとして本数を減らすことにします。

目的

掲載予定のアプリケーションを示します。

図80.3
図80.3 掲載予定のアプリケーション

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

posted by sakurai on January 16, 2019 #79

デジタル的に出力すればOKのグラフィック系と異なり、アナログであるオーディオ系は正しく動作させるのに案外苦労が必要でした。これだけでなく、リアルタイム性やノイズ防止の考慮を含めるともっと大変でしょう。

出来上がったサウンド系階層のブロック図を図79.1に示します。これはソフトマクロで、中にステートマシン、サウンド格納用ROM、パラシリ変換ユニットから構成されます。

図79.1
図79.1 サウンド系階層ブロック図

基本的に左側のステートマシンが、外部から与えられた音色コードに従い、右上のサウンド格納用ROMから8bitPCM wave情報を読み出し、それを右下のパラシリ変換ユニットを用いてDAC用シリアルデータに変換します。

サウンドの難しい点は演奏終了以前に割込みが入ったらどうする等の、時間的な仕様を定義するところです。本来は同時発声チャネルを複数用意し、サウンドを重ね合わせれば良いはずですが、今回は優先順位表(図79.2)を作成し、優先度の高いサウンドが、演奏中の優先度の低いサウンド演奏を中断させる仕様としてみました。優先度の高いサウンドを待たせるとおかしくなるためです。例えばインベーダの移動音が、弾の発射音を中断させても違和感を感じます。マスキング効果を考えれば、重畳しなくても特に問題ないことが実験により判明しました。

図79.2
図79.2 サウンド優先順位表

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

posted by sakurai on January 6, 2019 #78

ここでアナログ波形をDSOで取得してみます。図78.1のような波形が取得されました。青がシリアルDACデータ、黄色がDACの出力のアナログ波形です。

図78.1
図78.1 DSOアナログ波形

一方で、サウンドデータをAudacityで開いてみると、図78.2のような低音の波形となっています。これはインベーダの進行音です。

図78.2
図78.2 Wave波形

シミュレーション波形やwaveデータ波形は図78.2のようであり、アナログ波形はこのようでなければならないはずなのですが、図78.1ではある閾値以上と以下で波形が折り返されているようです。ここで思いつくのがMSBが反転しているのではないかということです。ここまではwaveデータをそのままDACに入力すれば良いと思っていたので、データ構造を調べてみます。すると、以下の事がわかりました。

  • 8bitPCMデータは符号なし
  • 16bitPCMデータは符号付き

従って、パラシリ部で8bitから16bitへ伸長する際にLSBへのゼロ詰めだけではなく、符号なし⇒符号付き変換を実施しなければなりません。ハードウェアにMSBを反転する修正を加えたところ、図78.3のような正しいアナログ波形が得られました。

図78.3
図78.3 DSOアナログ波形

破裂音はロウパスフィルターが入っていないことだと考えていましたが、波形を見て一目瞭然、符号付き⇒符号なしの変換が抜けていたことが根本原因でした。これで音楽データであってもきれいに再生できるはずです。


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