2018年12月22日

Nanopi M4 用ボード

記事が2つになってしまったので、しきりなおし。

Nanopi M4 を買ったわけだが、アドオンボードというか HAT ? を作ろうとした。余白に思いついたボードもつけ加えた。

M4_PWR_SATA_v12s.png

一回というか、2回発注したのだが、暇だといじってしまって現状はこうなってる。(未発注)

M4-PWR-SATA

    左側のボードは、HAT で、12V → 5V (5A !) の電源回路 と 電圧・電流モニタ。それに PCIe SATA x2 , USB 2.0 x2。
    ASM1061 を採用し、カン!で回路を起こした。・・・というのはあながち嘘ではない。実際は、データーシートの説明と、他のボードを眺めて回路を決めている。動くかどうかは分からない。
    ファームウェアは入手済み。一応 3.70 を添付。ROM データを GPIO から SPI-FLASH に書けば良いはず。

DP-SATA

    右のボードは、JMS567 を採用した USB3.0 - SATA ブリッジ。普通のボードと違うのは、USB3.0 のコネクタには、Super Speed の配線しかせず、USB2.0 は、別のコネクタに配線している点。Dual Port 化が出来るんじゃないかと考えて 設計してみたもの。もちろん、動くかどうかは分からない。
    ファームウェアは update tool を入手。PC と接続すれば書き込めるはず。

概要説明 おわり。

最新 EAGLE ファイルとガーバー
 ・m4-pwr-sata-v1.2b.zip
 ・m4-pwr-sata-v1.2s-out.zip


変更の履歴

基本的な回路は、発注した v1.2 から変えていないのだが、暇があれば、基板のパターンとかを弄っている。

DP_USB_SATA-haisenn.png

例えばこういうところ。信号配線から GND を遠ざけるように。ただし GND を他の配線との間に入れるように。他のボードは全部そうしているし、浮遊容量があるとまずいのかな?と考えた。コンデンサの下側とか、SATA コネクタまで一応配慮。後、等長処理 -- 配線長は分かるので、差が 1mm を超えないようにしてみた。最近のボードはそういうことをしていないようなので、やらない方が良いような気もするのだが・・・

DP-SATA の方は、大胆に USB 2.0 の バススイッチを省いた。MODE 設定もヤメ。(省いてない版も一応残してある)。配線がごちゃごちゃしていると (Super Speed 程ではないにせよ)悪影響があるのでは?と心配になった。もし、構想どおりなら必要ないのである。

なお、このボードは、まだまだ発注しない。完成形に向けての準備である。

M4_PWR_SATA_v12_real.jpg

発注したのは、v1.2 で、これ。elecrow だとこういう基板を追加料金なしで受け付けてくれる。



部品の覚書

M5-PWR-SATA

    ASM1061 (QFN48) 5個 $14.08
    SPI-FLASH (PM25LV512A ? W25Q32 ?)
    MP2380 (電源 IC) 10個 $1.33+$0.54
    ダイオード SS54 20 個 $0.92
    インダクタ 0630 3.3uH 10 個 $1.06
    20mΩ 0.5W 3216 100個 $2.65

    SATA 7pin 30個 $5.49
    ADS1115 モジュール $1.15

    水晶 20 MHz (3225) 10 個 $1.04
    インダクタ CD43/0420 4.7uH

    (保険)
    インダクタ CD43/0420 2.2uH
    MT3410L , SY8008B 等

DP-SATA

    JMS567 (LQFP-48) 2 個 $2.86
    PM25LV512A (SPI-FLASH) 10 個 $1.75
    MP1471 (電源IC) 20 個 $2.30
    インダクタ CD75/0630 6.8uH 10 個 $1.06

    USB 3.0 micro-B コネクタ 5 個 $1.13
    SATA 7pin+15pin コネクタ 10 個 $5.58

    25MHz 水晶 (3225 )
    12.1K Ω (2012 1%)
    36K Ω (2012 1%)
    6.8k Ω (2012 )
    0.1uF (1608)
    ダイオード SS34 100個 $1 程度

SPI-FLASH は、容量が大きい W25Q32(4MB) とかでも良いと思うのだが、JMS567 のアップデートツールが対応してそうなものでないと面倒かと思い PM25LV512A(64KB) にした。

DP-SATA は、7pin+15pin タイプのコネクタを使えば HDD に直結できる。が M5-PWR-SATA で使う 7pin タイプ や垂直型 7pin も使えるようにした。この場合、電源コネクタとして 4pin Floppy 用が使える。

電源は 12V 系のつもりで、ダイオードを通し DC/DC コンバータで 5V に降圧する。DISK をつなぐので、BUS パワーとかはなから考えていない。このダイオードには、SS34 など SOD-128/DO214AC サイズを使う。電源IC は、MP1471 を採用。ちゃんとしてれば 3A までの能力があるが、1〜1.5A で使えれば良いとしている。インダクタが重要で 0630 6.8uH が良いと思うが 巻き線型の CD75 でもかまわない。この IC は FB 0.8V なので 36K と 6.8K の抵抗を使い 5V を指定するつもり。

M5-PWR-SATA では、電源IC に MP2380 を採用 。5A 出力である。これは、5A のダイオード SS54 等が別途必要。インダクタは、0630 3.3uH を予定。CD75 ではダメである。FB は、0.808V で MP1471 と同じ抵抗の組み合わせでいく。EN 端子を Nch MOSFET を通して端子に出しているので、外部から OFF/ON 出来る。

なお、入力側のコンデンサは、2012 10uF を 2つ並べる(耐圧に注意) 。出力側は、2012 22uF か 47uF を 2つ。

ADS1115 モジュール を使い、電圧・電流モニタが出来るようにした。電流測定用抵抗は、20m Ω (0.02 Ω!)である。それでも 0.5W 品が必要。使わなければ抵抗パターンをジャンパする。
ADS1115 モジュールのアドレスは、2 通りが可能なようにした。これは、2 つの Nanopi M4 の I2C を相互に接続して、相互に監視できないかと考えたため。

M5-PWR-SATA も DP-USB も、電源IC 以外に インダクタが必要である。CD43 4.7uH で良いと思うが、0420 タイプ の方が良いと思う。M5-PWR-SATA では、内蔵の DC/DC コンバータを使わない選択枝も用意した。(そういうボードが複数あったので)。外部電源ICとして、SY8008B か互換品を使い、2.2uH のインダクタを使う。(0420 4.7uH でも可)

あと、特殊な抵抗として、12.1K Ω 1% が必要である。また Super Speed BUS, PCIe, SATA には 0.1uF を直列に入れるが、1608 と小さいタイプを使う。今まで 2012 で通してきたが、これだけは別になった。

GPIO 関係

    M4-PWR-SATA では以下の GPIO を使用。

      3 I2C2_SDA (内部使用+外部コネクタ出力)
      5 I2C2_SCL (内部使用+外部コネクタ出力)

      19 UART4_TX (外部コネクタ出力)
      21 UART4_RX (外部コネクタ出力)

      7 PERST# GPIO1_A0 ASM1061 のリセット(Z → L)

      8 GPIO4_C1 SPI_DO SPI FLASH に接続
      10 GPIO4_C0 SPI_CK  〃
      11 GPIO1_A1 SPI_CS  〃
      12 GPIO1_C2 SPI_DI  〃

      13 GPIO1_A3 (外部コネクタ出力)
      15 GPIO1_A4 (外部コネクタ出力)

      2nd 23 GPIO4_C6/PWM1 ファン制御

    通常 7 は使う必要がないかも知れない。8-12 は、SPI FLASH 書き換え用で1回使ったら用済み。 だが、ASM1061 が Hi-Z とか pull-up にしてくれてないと使うことすらできない。ダメなら PERST# して試す。それでもダメなら 一回外し外で書き込む! そうこうしている間に どちらかの I/O を壊すかも知れない。残念だがリスクがある。

    本来ならば、PCIe を通して ASM1061 の GPIO を操作して書き込むものである。そうしたいのは山々だが、具体的な方法は分からないだろう。

    ファン制御は書いてなかった。内側のGPIO に PWM 可能な 3.0V I/O ピンがあるので、接続してみた。4pin ファンなら ファン電圧を制御せず 素直に PWM 端子でコントロールする。が、ファン電圧を PWM制御する回路を組むこともできる。

    他に書いてない機能として ADS1115 モジュールの 外部入力がある。温度測定のための サーミスタ(NTC) を接続するつもりで付けたもの。




構想について

なぜこの2つのボードをセットにしたかというと、ハイエンドNAS に仕立てたいからである。 2 層基板で作っているから もの自体の品質が悪く、なんちゃってになるかも知れないが。(いやなんちゃっての以前に動くのか?という心配が濃厚だが)

なにがハイエンドかと言うと、アクティブ - スタンバイ クラスタが可能な構成にしたかったのである。ローカルDISK に常時ミラーするのも手だが、Dual Port の DISK があると また別の使い方ができる。USB 3.0 なら出来るんじゃないか?と思い付き、追加したのである。

いずれにせよ アクティブ - スタンバイ にするためには、相互の監視手段が必要になる。確実な判断が必要でいくつかの経路を考えている。

    1) GbE での通常のネットワーク
    2) USB HOST と USB OTG を接続するネットワーク

    USB OTG は、USB 2.0 である。USB HOST は、外部出力したポートを使えば良いかと思っている。USB 2.0 でも 2 経路あるので、GbE に匹敵するはず。ミラーリングのための相互の通信は全部これを使っても良いかも知れない。

    3) シリアル UART4 と デバッグ・シリアル

    デバッグ・シリアルと UART4 を相互につなぐ。UART4 同士でも良いような気がするけれども、一応 カーネルメッセージをモニタできたほうが良いかなと。

    4) I2C 電圧監視 , I2C ROM ? RTC を経由した 通信。

    DS1307 24C32 の 2つが入ったモジュール Tiny RTC が安価にある。 DS1307 は、56 バイトの RAM を持っていて、ちょっとした情報なら 頻繁に書き換えられるのである。ただし 5V 系でちょっと使いにくい。別にこれでなくても良いが、こういう外部モジュールをつないで、両方からアクセスできないかなと。

      ADS1115 モジュールも 5V で動かしていたのだった。なら、5V でもかまわないではないか・・と思えてきた。RTC は、DS3231 とか精度が高く温度計まで付いたものがある。しかし NVRAM はないのだ。RTC はおまけで NVRAM が欲しいので DS1307 が良いではないか。

      DS1703mod.jpg
      ・・・というわけでこれを使いたい。 ただし、SDA,SCL のところのプルアップ抵抗を外さなければならない。また、裏面はバッテリーなので取り付ける場合は、バッテリーを上にしないといけない。

    M4_PWR_SATA_wire.png
    接続図(例)

それでも、どうにもならなかったら、相手の電源を OFF/ON 出来る手段も用意した。OFF → ON して相手のブートローダを操作することも可能である。

電源も 12V 2系統である。別々の AC アダプタを使い、その先は別の配電盤 -- 別の発電所が望ましい。

あと足りないものは・・・UPS か。あまり考えていないが、片側に車用のバッテリー+充電器で良いのかも。3.5inch DISK に直結するとまずいが、2.5inch なら DC/DC コンバータで 5V にするので使える。入力電圧監視も出来るので、停電時バッテリー動作になったときの電圧を監視しておけば良い。

今の時代、停電になっても ノーパソが使え、4G/3G でのネットが使える。GbE は使えなくとも良いが、WiFi でできるだけ稼働したほうが良いのかも知れない。(WiFi を忘れていた。普段は必要ないと思うので必須の機能とは考えていないが、停電時は活躍するかも )

とにかく、動機としてはこういうものにしたいのである。使い方とかはその先の話。




ところで、相互接続で USB OTG - USB 2.0 HOST を使うと書いたのだが、機能・性能はともかくかっこ悪いのである。ボードの四辺からケーブルが生えるのはヤメたい。そういう意味では、上辺の USB 2.0 HOST もあまり積極的に使いたくない。

では、どうするか? USB 3.0 - USB 3.0 で接続したい。単体でそんな機能のチップはないだろうと思われるのだが、USB 3.0 - GbE を対向で直結してしまう手がある。GbE 8 本の信号線を PCIe や SATA のように間に0.1 uF コンデンサを入れて、つなぐのである。gigabit ethernet transformerless で検索すると、そういうアプリケーション・ノートが見つかる。ものによっては、コンデンサの両側で、50 Ωでプルアップとかが必要になるかも知れない。

幸いなことに、RTL8153 というチップの回路図は手に入る。ODROID HC1/HC2 で採用しているのである。そして LQFP-48 のチップも購入できる。作ることは可能である。プルアップなしでトランスに直結するようなので、対向でもプルアップは多分いらない。水晶は 25MHz が必要で、インダクタも(2.2uH)。SPI-FLASH または I2C-EEPROM も付けることが出来る。I2C-EEPROM は多分 MACアドレスとかその程度の情報用で、SPI-FLASH は、オフロードとか機能を追加したファームウェア用らしい。なしだと、デフォルト値?なしでも済むような・・・。

ファームウェアは何かダウンロードできるものがあるのだろうか?あったとして、ドライバ初期化でダウンロードできるようなチップも多々あるし SPI-FLASH に書く必要があるのかどうか?

ボード設計するとして、配線は、ASM1061 や JMS567 とほとんど同じ感じになる。ピンアサインを見ると1辺をまるまる USB に、もう1辺をまるまる GbE に割り当てているから、よりシンプルかも。SPI-FLASH を付けなければ、さらにシンプル。

これを DP-SATA ボードと同じサイズにすれば、違和感がないような感じになるだろう。設計だけしておこうかな。

RTL8153-pin.png

最もシンプルに配線できる位置関係は、こんな風になった。なんだかなぁという感じであるが、2層基板だし、高速な信号線優先が一番ではある。と言っても、GbE は各ペア 250Mbps で USB 2.0 より遅い。チップの面を同じにして、GbE を引き回すか。・・・それは良いが、基板面積がだいぶ必要になる。ううむ。

よくよく見れば、GbE の配線が実に綺麗にできる。やはり表裏でいくか。同じものを2枚作って ピンヘッダでつなげるというのも作れそうだが、今度はそれとの選択。ううむ。

・・・とここまで書いて、入手できると思った RTL8153 がなんか怪しいことに気が付いた。データーシートが見つかるのは、0.4mm ピッチ QFN-48 のチップ RTL8153-VB-CG である。回路図もそれ用。割と高価だが、それ以前に 0.4mm ピッチなら無理。で、いろいろ変な型番で売られていたりするのである。QFP-48 としている RTL8153EH-GR とかなら作れるのだが・・・実在のチップなのだろうか? ちょっとお安いのは嬉しいが、超あやしく・・・。 あとは QFN40 の RTL8153B とか。

RTL8153EH-GR は、ググれば売ってるところが多数あるのだが、それだけである。製品に搭載された画像とか一切ない。チップに REALTEK とは書いてあるが、カニマークはない。

    ピンに出ている GND が 3 本と 少なく、どう見ても パッドのある QFN 専用の設計。特定顧客に出荷したダイがこんな風にパッケージされて、使い物にならないから流出した・・・こんな可能性はあるがやっぱりダメじゃん・・みたいな。でもリマークとかは良く聞くが、架空のチップがこんなに出回るのも変な話。

    他に 同じような感じのチップに RTL8211CL とマークされたものがある。ロゴなしで REALTEK の文字も同じような感じ。しかし、長く続けているチップ専門のショップが、こんなあからさまなものを仕入れるだろうか? そこに、わずかな期待をかけよう。

ところで、RTL8153 採用アダプタの写真を入手した。

rtl8153-lan.jpg

なんと SPI-FLASH が載っている。512KB の MX25L4006E のようである。512KB は最低サイズで、1MB 品が推奨されている。何が入っているかは分からないが・・・

ちょっとこの写真も参考に、設計を進めてみよう。無駄になりそうだが・・・一応。

まず気になるのは、3.3V の電源ICがないということ。ASM1061 , JMS567 もないわけだが、普通 3.3V への LDO があって、スイッチングレギュレータで、1.2V (等) core 電圧を作り出している。RTL8153 では、LDO は 2 つあって、一つはハイパワー (3.3V ?) もうひとつはローノイズ(1.2V) のようだ。それは良いのだが、スイッチングレギュレータの入力電圧が 3.3V となっている。そうなると、3.3V LDO は 200mA 程度をコンスタントに供給できる必要がある。大丈夫なのかなぁ?という疑問がある。ODROID HC1/HC2 では、はなから 3.3V 電源を用意していて、VDD5 にすら 3.3V 供給である。
あと抵抗が多いという印象。だいたいコンデンサばかりで、抵抗を使うのは、明確な理由があることが多い。一個一個チェックしていかないといけないかも。

    3.3V LDO 出力は AVDD33 で 3 ピン使っている。大丈夫なようだ。ところで LDO で 200mA というと 5V 入力だから 消費電力は、全部で 1W 程度。GbE にしては少ない方なのかも。

    抵抗は全部分かった。ほぼプルアップ用途である。ひとつだけリファレンス用に 2.49K 1% が使われている。当然持ってない。

    あと、ODROID HC1/HC2 では明らかに SPI-FLASH は付いてない。共用となっている LED 出力に使われていた。




USB3-USB3.png

RTL8153EH は動かないだろうというのを承知の上で基板設計。USB3-SATA ボードにアドオンするイメージで設計した。一応パターンは引けて、想定した基板サイズに収まった。これをベースに QFN-48 のほんもの用に作り直すことが容易になるよう配慮している。ただパターンは引けても作るのは無理そう。もし本当に ほんもの 0.4mm ピッチ QFN で作るならば、基板の裏表にチップを配置すると相当面倒なので、表面にならべて、イーサの配線を引きまわすことにした。

調べもせずに RTL8153EH 買ってしまったし。来たら GND (など)が想定どおりか調べてみて、万が一想定どおりなら、試してみようかなという程度。ほんものを入手して頑張って作るようなことはいまのところ考えていない。$5 ぐらいで アダプタが入手できるから、普通にクロスケーブルで対向で接続すれば良いではないかと思うのである。そもそも見栄えだけの問題でもある。OTG で接続すれば済む話。

    そう言えば MIPI DSI/CSI のコネクタがある。相互に接続すれば、データー転送に使えるんじゃないの?という気が。4 レーンあるようだし、PCIe x4 の能力があるのでは?うまく使えれば面白そうな・・・まぁ無理かヤメておこう。


M4_PWR_SATA_v12riser.png

他に、2つの M4 を配線するボードも設計。基板幅と コネクタ位置を合わせてある。で、I2C には、上記の Tiny RTC が載るように。AT24C32 とか I2C EEPROM を単独で載せることもできる。

EEPROM には、OS の設定だとか、通信を始めるための最低限の情報を置くのであろう。4KB しかないから、たいしたものは置けない。RTC の NVRAM は 56 バイト。こちらは、ステータスかな。

しかし、動くかどうか分からないものから初めて、動くはずがないというものにまで、手を染めてしまった。さすがにそろそろやめないと。




SPI-FLASH プログラマについて、

Linux で使えるソフトを探したところ ぷちのいずさんのところにまとめがあった。
 ・https://petit-noise.net/tag/ch341a/

CH340A 採用のボードが 確かに $2 程度で売っている。どうしても書けなかったら、これを使うのが良さそうである。SOP-8 のソケットもあって、両方売っているショップもあった。

 ・https://tosiek.pl/ch341-eeprom-and-spi-flash-programmer/

オリジナルは、これのようだ。

Linux で使えるコマンドラインツール。
 ・ https://github.com/setarcos/ch341prog

他にもありそうだが、シンプルそうなので、これをベースにして GPIO 対応したら良いのではないかと思う。

CH341prog.jpg

写真を入手。シリアルも接続できるし、SPI も外部に出力できる。便利に使えるものかも知れない。

ASM1061 は、ROM ファイルがあるので、書き込んでからハンダ付けする手がある。ハンダ付けした後も、GPIO が使えたらの話だが、SPI-FLASH を読み書きすることが出来る。一方 USB のJMS567 は、WINDOWS でしか使えない UPDATE ツールがある。ROMデータはプログラムに埋め込まれていて、どうやって操作するのかも分からない。USB だし PC に一回接続すれば問題はない。ただ、ジャンク?基板を購入したので、ROM を一回外して抜き出せるかも。あるいは、古い Windows 上で、SnoopyPro でログをとり解析するか・・・解析できれば 操作方法まで分かるかも知れない・・・そこまでやればの話だが。だいたいどちらも古いチップである。もはや 新しい firmware アップデート はないと思うし、アップデート手段などいらないという気も。

    ジャンク?基板というか裸の基板の USB3-SATA ケーブルは JMS578 であった。普通なら喜ぶところだが、欲しかったのは JMS567 なのである。多分ピン互換だと思うのでそれは良いのだが、ファームウェアを読むというのは無理になった。




オプションボード

M4_PWR_SATA_v13opt.png

ここまで来た。RTL8153 の対向ボードは、怪しいチップ用と正規のチップ用の2種類にした。正規のチップ用は作れるような気がしないが・・・怪しいチップでは動く可能性がほぼない。

無駄になりそうなボードばかりでは悔しいので、おまけボードを付けている。
左は、2台の M4 を接続するクラスタ接続ボード。ただの配線ボードだが見栄えが良くなるかと思い作った。右上に USB2 と USB3 を入力して USB3 Type A にするボード。実験用である。いろいろな機器を調べてみたい。スペースの関係で少々いびつな取り付け方法になった。
左上は、SBC 一般用、簡易電源ボード。裏に DCジャックを取り付け。5V 以上の AC アダプタを使う場合は、表に DC-DC コンバータ基板。定格 は 5V 2.5A 。DC-DC コンバータ基板に MINI-360 も使えるのだが、連続だと 1.8A ぐらい。M4 には使えない。謎の切り欠きは、USB TYPE A コネクタを付けられる(かも)機能。ただし、パターンカットしないといけないが。




 ・ m4-pwr-sata-v1.3-out.zip
 ・ m4-pwr-sata-opt-v1.3-out.zip
 ・ m4-pwr-sata-v1.3.zip

 ・https://gerber-viewer.easyeda.com/ (ガーバービューワ)

・・・修正は、もう気がすんだ。とりあえず FIX 2枚組 。elecrow に 5枚 2セットを発注すると $4.9 x 2 + 送料 $11.64 。
前に発注した基板に間違いがあれば、これをベースに修正する。間違いがなければ最後にこれを発注する。
posted by すz at 19:22| Comment(1) | TrackBack(0) | SBC
この記事へのコメント
海外で販売されている様々な医薬品を自宅や会社、どこにいても簡単に注文して頂けるお薬の個人輸入代行サイトです。有効性・安全性・品質が保証されています。最短3日間でお届け!
Posted by 元気漢方 at 2019年01月15日 11:00
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


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

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