2017年11月15日

リフローめも

電子工作をやりだして長いのだが、はんだ付けに自信がない。最近は目も怪しくなってきてますます自信がなくなってきている。今は USB 顕微鏡 があるので確認ができるのだけが救い。

そんな状態でありながら、QFN など足のないパッケージにまで手を出して、積んでたり。一応 サイドに電極があるタイプのみを選択しているが、0.65mm ピッチぐらいがなんとか。0.5mm ピッチになると 無理そうなかんじ。しかし、0.4mm ピッチなんてのも 積んでる中にはある。あと サイドに電極がないタイプのクリスタルも苦手。

リフローなら簡単なのだろうか? なんて常々思ったりして。ただ、クリームはんだが厄介。まず管理がめんどうそう。フラックスが蒸発したりするので、すぐ使わないといけない。あと、ステンシルで刷り込むとか 相当に面倒な話に思える。

それ以上にリフロー炉をどうやって用意するのか? ホットプレート やら オーブントースターやら 食品用のものを使うわけだが、食品用と共用にするわけにもいかず、専用のものを用意しないといけない。だが、買ったところで1回やって失敗してヤメとなると目もあてられない。

というわけで、あきらめていたわけだが、やはり1回ぐらいはトライしてみたい。検討だけはしてみようかと。




リフロー炉について

かつては、オーブントースターを改造するというのが流行したように思う。改造キットがあったりもした。が、温度ムラができたりして難しいものらしい。今では、熱風を循環させる コンベクション・オーブンが出回っているので、これをベースにすると改善されるらしい。

その他、熱風の方がメインになるノンオイルフライヤーというものもある。ひとつ持っているが、このタイプは温度管理がすばらしい。しかし、プラスチック筐体のものは、最大温度が 200度あたりで、ちょっと低い。また、扉でないものは、出し入れの際ショックを与えて部品がずれる心配がある。

泉精機製作所 CA-OT56-K

コンベクション・オーブンで最も安価なもの。 温度設定は、230度まで可能。空気は循環させるのだから、ヒーターの熱を直接当てないようにするだけで、使えそうな印象。

安価なものには、シロカ crossline SCO-XXX というものもある。こちらは、中古も。

本格的にやるなら、こういうのをベースに 温度・時間管理をするコントローラを付けて改造するのが良いと思われる。しかし、やってみたいだけなのである。他の方法はないのだろうか?

ホットプレートでも可能である。ググれば記事が見つかる。しかし買ってまでやるなら、コンベクション・オーブンの方が成功する確率は高そうだ。

さて温度管理ができるものとして、他に卓上IHコンロがある。揚げ物用の温度設定が普通あるが、一般に最高温度は 200℃とかで低め。だが持っているものは、250℃までの「焼肉モード」設定がある。これにフライパン+蓋で良いのでは? とか思っていたところに、ダイソーで スクエアスキレットというものを見つけた。長方形で 長辺(内寸)は 100mm ちょっと。短辺は、80mm 弱で 最近作った DUO-DISK がぎりぎり収まらない。が、だいたいの基板は収まる大きさである。蓋はないが、2つ重ねることで蓋にできるとのこと。

値段も安いが、場所を取らないので 1回限りになっても困らない。これでようやく試してみる気になってきた。




さて、次の問題。クリームはんだ。あんまり使いたくないと思っていたのだが、ひとつ記事をみつけた。

予備はんだをしてリフローするというものである。見つけた記事では、ハンダを盛った後、部品を置きフラックスを塗っている。他の方法としては、適当でも とにかく手はんだして、リフローで綺麗にするみたいなことが出来るかも知れない。フラックスをどういう風にするのか --- なんかコツはありそうだが、敷居は低そうである。

また、クリームはんだを使うにしても、ステンシルなしという方法も考えられる。注射器タイプのクリームはんだも販売されていて、先の部分も様々な太さの針と交換出来るものがある。これは、直接 盛るということだろうか? これまたコツがいりそうだが、2012,1608 の CR 程度ならば 苦もなく出来るかも知れない。ピッチが狭い LSI などは、チップを載せるのに苦労するはずで、ステンシルを使ったからといって必ずうまく出来るというものではないだろう。 予備はんだ作戦の次に試すのは、この方法にしよう。

    サンハヤト「表面実装部品取付キット SMX-21」を使った 記事を見つけた。

    注射器(シリンジ)タイプで、手はんだ用? どうやら手はんだでも クリームはんだが有用らしい。それはそうと、注射器でうまく行くようだ。

    保存だが、冷蔵庫や冷凍庫で保存する。注意点は、室温に戻してから蓋をあけること。注射器の場合は、使ったまま冷蔵庫や冷凍庫に入れる。針の中のクリームはんだは数週間で固まってしまうらしいが、次に使うときに針を交換すれば良さそう。

    aliexpress だと このショップにいろいろとある。

    50Pcs SMT SMD PCB Solder Paste Adhesive Glue Liquid Dispenser+Dispensing Needle

    注射器と針一式。針は、細すぎるのと太すぎるのは使わない。使った後は捨てるように書いてあるのだが ...


    XG-50

    35g で 注射器 3本に見合いそうな分量。使い切れるような気がしない。保管は、0-10℃ で 製造から 1年 ?

      最初から 注射器に入っている XG-Z40 という製品がある。これが 10cc 25g みたいな。... ということは、XG-50 は 14cc 程度。3本には全然見合わない。


    10ml というのは、多すぎなのかも。3ml のタイプもあるようだ。付けるチップは互換性があるのだろうか?とか思ったんだが、3ml はダイソーで売っていた。チップも互換性があるように見える。--- これで良いのではないか?

      サイズをメモ
      Olive B1.55 2.1
      Amber 1.36 1.8
      Green 0.84 1.27 
      Pink 0.6 0.92  
      Purple 0.51 0.82
      Blue 0.41 0.72
      Orange 0.34 0.64
      Red 0.26 0.52
      Clear 0.21 0.42
      Lavender  0.16 0.3 

      Olive の B1.55 というのは、穴がなく蓋になっている。Amber で吸い上げて、0.5mm 前後を使う作戦でいこう。で、これらは、ダイソーの注射器にフィットする。10ml はいかにも多いので 3ml でやってみる。

      0.5mm が使えるなら、ここで買っておくと良いかも。どう使うにせよ、針だけは使い捨てそうだし。あと細すぎるのは、フタがわりに使えるかも。

    さて、これを注射器にうまく入れることが出来るのだろうか? 粘度が高そう。 吸い上げるしかないだろうから、心配しても仕方がなさそうなんだが、

      やはり・・というか、粘度高すぎで、吸い上げるのが厳しい。3ml の方は、1ml 弱がようやく。そして、クリームはんだが、随分と無駄になった。注射器作戦がうまく行けばの話だが、次回はもうちょっと考えたい。

    シリンジ充填機 だって。へぇー。




基板から部品を外してみる



リフロー可能であれば、外すことも出来るだろう。油で揚げて叩くと部品が外れるというのは聞いたことがある。熱した後、ショックを与えれば良いはずだ。

PAM8403 ボード と MINI-360 から、メインの部品を外す。後で、自作 PCB に乗せ換えてリフローするのだ。

    PAM8403 は、チップを買う気にならないので、外して使う。MINI-360 の方は パーツが欲しいわけではなく、MINI-360 が何故出来が悪いのか探るべく組みなおすのだ。


さて、熱する前に、スクエアスキレットの底に 耐熱の アライミドテープを張る。最初 シリコン加工されたアルミ箔でも敷こうかと思ったのだが、良いものを持ってることに気が付いた。

蓋をせず、スクエアスキレットにおいて、210 ℃に設定し加熱。3 分ほどで 温度に達してピーとなった。
ラジオペンチで部品をつまんだところ簡単に外れた。



    MINI-360 だが、IC の下ちゃんとパッドがある。10uH インダクタは、本来の性能なら余裕があるはずだがどうか?

とにかく、蓋をしなくても簡単にハンダが溶ける温度に達するのは確認できた。リフローでは、120℃とかに一旦予熱し、そこから一気に温度を上げるそうである。少し間をおいて冷却。スキレットは蓄熱するから、冷却が速やかに出来るか怪しい。普通の金属容器で良かったのではないかと思ったり。ステンレスのトレーで良いのかも。

小基板をリフローしてみる




すず 63% 鉛 37%の「共晶はんだ」の融点は 183℃ 。今度は揚げ物モードで試す。揚げ物モードは、160℃〜 200℃。まず温度を 160℃に設定し、しばらく余熱。その後 200℃ に設定しなおす予定。

ちなみに、鉛フリーハンダ(無鉛ハンダ)の 融点は、217℃ とかになる。リフローの温度は 240℃とかのようなので、鉛ハンダのみ揚げ物モードでいけるように思う。

実施


2枚の基板を手はんだで組んだのを 「揚げ物モード」で試してみたのだが、温度がどんどん上がって止まらない。最初に試した「焼肉モード」とは、制御のロジックが違う! はんだが溶けている状態でオフ。



左が before 右が after なのだが、写真では違いがほとんど分からない。

基板から浮いていたパーツが、基板に密着したように思う。あとはんだブリッジでかろうじて繋がっていたところが切れた感じ。ついでに言えば、全体に黄色くなっている。あとで無水アルコールで拭いておこう。

    よおく見ると、部品が 綺麗に収まったところがいくつか。( ダメなのはダメだが。)。次回やるときは、位置をちょいと動かせるなにか --- ピンセットはダメ 、竹串とか? を用意しておこう。

まぁ失敗かな。無駄に熱を加えて壊すリスクを増やしただけかも知れない。しかし得るものはあった。次は、クリームはんだ注射器作戦。注文したものが届かないことには、なにも出来ないが。

QFN に挑戦





外すことは簡単に出来ることが分かったので、PAM8610 モジュールからチップを外して、自作PCB に乗せ換えてみることにした。ダメもとである。

まず PAM8610 モジュールだが、裏のパッドがちゃんとハンダ付けされていないような。すごい適当な設計。

    PAM8610 は、チップも購入可能なのだが、このモジュールの方がチップより安く入手できる。そういえば、MINI-360 も チップとインダクタを買うより安いような。

さて、まずは、PAM8610 だけ載せてみる。ランドは一応予備ハンダをした。あまりハンダが載ったという感じではないのだが、ベタベタとフラックスを塗って置いてみた。目測だがちゃんと載ったように気がしたので、リフロー。

今回は、こげつくようになって使わなくなったフライパン。アライミド・テープを貼って使用。だいたい、3分で 210℃ --- 全然予定どおりではないのだが、それしか出来ない。その後 30 秒ぐらいおいて、オフ。

USB 顕微鏡で見ても、それらしい感じなので、他のパーツを手はんだで付けて、同様に加熱。加熱時間が短いのか、ハンダがうまくなじんでいない。

これが動くかどうかの確認は、ちょっと先になりそうだが、QFN も出来る! という気がしてきた。

    通電する前に、テスト環境を作らないといけない。テスト用のメインのボードを組み立てて、仮組。あとスマホと接続するケーブルの用意。動作が確認できたら、メインのボードに接着剤で張り付けるつもりで、そっちの準備も。

そろそろ、DUO-DISK のパネルに挑戦しようと思う。QFP なので難易度は低いはず。といっても動かせるような気は未だしない。

はじめてのクリームはんだ






(上) 注射器でクリームはんだを盛っていき、部品を配置した。QFP のところは、うまく塗れなかった。拭き取る自信もないし、どうなるか見ておきたいのでこれで行く。
(下) そのままリフロー。210℃に設定し、はんだが溶ける様子をみながら、停止。一見しただけだと、思いのほか綺麗に付いた。QFP の部分だが、きれいにまとまってダマになった。あちこちにツブが残ることを危惧したのだが、こんな感じだと、あのままチップを載せても良かったのかも知れない。

注射器ではんだを盛るのは、CR に関しては難しくはなかった。QFP は見てのとおり。リフローだと綺麗に仕上がるのが嬉しい。

注射器は 3ml の方に、紫のチップを付けたもの。1ml しか入れられていないが、使用した量は、0.1ml 程度。どうもクリームはんだの粘度が高い。注射器に入れるのも苦労するが、基板に盛っていくのも、ちょっとやりにくい。最初から、注射器に入ったタイプ -- XG-Z40 というのがあるので、次は、これを使ってみたい。

さらにリフロー





調子に乗って、DUO-CLOUD のリフローもやってみた。HUB のチップは後回しで、電源をまず確認しないといけない。インダクタも手はんだのつもりなので付けていない。ちょっと IC のほう盛りすぎてブリッジが出来てしまっている。これでも控えめにしたつもりだったのだが、なかなか加減が難しい。

今回もフライパン。スキレットには入らないのだ。やってみたところ、均一には熱が伝わらず、時間差ではんだが溶けていった。加熱時間は全体で 4分ほど。最初に溶け出して、全部がとけるまでは 1分ぐらいだったろうか。

電源は、OK であった。5V x2 と、3.3V , 1.8V を確認。ところで、3.3V,1.8V の PMIC だが、SY8089A を使った。2A 品というオーバースペックだが、10個 $1.60 で結構安いのだ。もっと安いのは、SY8008C (1.2A) 10個 $1.35。 あと、SY8008B (1.0A) 10個 $1.88 SY8009A (1.5A) 10個 $2.00 も互換性がある。

写真

次に、HUB IC を 付けてみた。クリームはんだを付けておいて、位置決めが決まったら、はんだごてで、熱して固定する作戦。作戦自体は良いと思うのだが、位置が決まってない上に、足が曲がってるところが。

2本連続で曲がってるところがあって、使っていない1本を取ってしまった。使っていないピンも多数あるので、なんとかなるような気もするのだが、通電するのが怖い。



卓上 IH コンロについて。

普段つかってるのだが、IH は温度管理が優秀だと思う。また、食品調理用と共用できるので、お勧めだと思うのだが、「揚げ物モード」がうまくいかなかったので、なんでも良いというわけではなさそうなのが難点。

一応持っているものを紹介しておくと、機種は、ツインバード IH焼肉グリル 味わい亭 IH-D935B 。7000円弱だったか安価に買えたのだが、生産終了モデルで、もう入手すらできないかも知れない。

現行品で、250℃まで設定可能なのは、パナソニックの IHホットプレート ぐらいで、KZ-HP1100 あたりが安価。といっても 14000円ぐらい。

他に興味深いのは、ドリテック 卓上IHクッキングヒーター ブラック DI-213BKDI。200℃までだが、1℃単位の温度設定が可能。... というか 温度設定だけが出来る。
posted by すz at 23:37| Comment(2) | TrackBack(0) | 日記

2017年11月09日

Sunvell R69



cnx-software.com に Sunvell R69 という Android TV-BOX が紹介されている。この TV-BOX は、allwinner H2 採用で 非常に安価なもの。Gearbest でクーポンを併用すると $19.99 で買えるそうだ。写真は本体だけだが、AC アダプタと 本体より大きな赤外線リモコンが付属する。
コネクタ類は、2面のみ。主に後ろに集中していて、サイドは microSD と 2つ目の USB のみ。こういう所は使い勝手の点で悪くないと思う。

なんでこんなものを取り上げたかというと、OrangePi Zero, Nanopi DUO と、H2(+) 採用のものを取り上げてきたため。記事のコメントのリンクを見ると、既に armbian が対応している。

スペックを見ると

    Memory – 1GB DDR3
    Storage – 8GB flash + micro SD
    Video - HDMI 1.4 , AV port (composite video + stereo audio)
    Network – 10/100M Ethernet, 802.11 b/g/n WiFi (via XR819 chipset)
    USB – 2x USB 2.0 ports
    Power Supply – 5V/2A
    Dimensions – 9 x 9.5 x 1.8 cm

全部入りという感じで、コスパは良い。メモリが 1GB あって flash も付いている点は、ポイントが高い。紹介だけしておく。

    ちなみに、RK3229 採用の A95X R1 も同価格帯の TV-BOX で、同じように紹介されている。しかし、Linux を動かすといった話はさかんではないようだ。Sunvell R69 は、OPi Zero の armbian をベースにしたら、すごく簡単に動かせたのだろう。

    フォーラム見てたら、OPi Zero だけではなく、Beelink X2 など、H3 のイメージファイルとかが起動してしまうらしい。その際に問題になったのが、最大クロック。(後述)




内部写真 (armbian フォーラムより)

思ったよりは、内部のコネクターが多い。4pin のデバッグ用シリアル、隣の 5pin なんだろう? 裏面にはカメラ用と思われるコネクタも(18極だから違うかも)。



左下の QFN-20 のチップは 3 出力の DC-DC コンバーター。取り囲むように 1.5uH が配置されている。1.5uH が使えるということは、2MHz とか相当なスイッチング周波数。ダイオードがないことから同期整流型と分かる。こんなチップがあったんだと感心した。
探してみたが、LTC3569 ? 3mm角で 1.2A + 0.6A + 0.6A 出力。--- ちょっと出力が足りないような気も。

右上の 空きパターンは、おそらく Wifi+BT チップの AP6212 -- QFN44 で アンテナのそばにある。XR819 が使えなかった時用かな? ついでに書いておくと 左の空きパターンの中にあるのが eMMC Flash 。これの代わりに (低レベルの) Flash チップ も 使えるようになっている。OSでの扱いが面倒になるから eMMC を採用してくれて幸いであった。

RJ45 は、トランス外付けのタイプ。OPi Zero は、PoE の配線のためだが、これは背を低くするだけが目的のようだ。

メモリは 4つ載る。シールに 512*4 という 印刷が。本当なら 2GB になってしまうのだが? XR819 という印刷も意味深で、AP6212 モデルの可能性を示唆している。

 ・http://linux-sunxi.org/Sunvell_R69
  Vcore 電圧変更には対応していない。1.2V 固定なので 1008 MHz まで。
  
    OPi Zero と Nanopi DUO は、1.1V/1.3V の切り替え。

  microSD カードからのブート優先。

Vcore 電圧は、1.3V だと 1.2 GHz まで動作するらしい。標準の 1.2V だと 1.2GHz では暴走してしまう。1008 MHz までという条件は重要で、他の機種用のイメージファイルを流用すると、この条件に引っかかる場合がある。

サイドの USB は HOST だが、後ろの USB は、OTG に接続されている。Device として使うには、OS で なにか指定しないといけないと思うが、FEL の機能を使うためには、ボタンなどハード的な指定手段が必要になる。U-BOOT と書いてあるボタンがそれらしい。SDからブートするのだから FEL が必要だとは思えないが、一応メモ。




そう言えば、allwinner H2+ 採用の SBC がもうひとつ増えている。



Banana pi M2 Zero という機種で、cnx-software.com でも紹介されている

見ての通り、Rasberry pi Zero W 対抗である。価格は $15 (送料別) で少々高め。HDMI とカメラ・インターフェイスが付いている点、さらに Wifi+BT(AP6212) が付いている点は良いのだが、SPI-Flash は付けられない。あと、Wifi+BT用のアンテナが多分付属していないし、チップアンテナでもない。USB HOST, Ether , AV-OUT もない。

一応紹介だけしておくが、OPi Zero や Nanopi DUO とは、遠い存在。むしろ、TV-BOX の R69 の方が OPi Zero /Nanopi DUO に 近い印象がある。





さらに、何か出てきた

 ・Tritium IoT – Allwinner H2+ quad core Cortex A7 processor with Mali-400MP2, 512MB
 ・Tritium 1GB – Allwinner H3 quad core Cortex A7 processor with Mali-400MP2
 ・Tritium 2GB – Allwinner H5 quad core Cortex A53 processor with Mali-450MP2

だそうで。PCB は共通のように見える。H2+, H3, H5 は、同じパターンでいけるらしいのだ。共通なゆえに残念な点は、GbE が使えず 100M Eth のみという点。あと Rasberry Pi3 とデメンションが互換。

同じものは、もういらないので買わないが。

興味深い点としては、Ethernet コネクタ。Opi Zero と同じく トランスレスのコネクタに、トランス外付けのようである。・・・あの小さいので良いのか。あと、電源チップ。たぶん AXP シリーズ。AXP209 は持っているのだが、バッテリー充電機能+2スイッチング電源。確か バッテリー充電機能がない代わりに 3スイッチング電源の型番があったように思う。
posted by すz at 19:48| Comment(0) | TrackBack(0) | 日記

2017年11月02日

D級アンプ めも

alixpress で D級アンプ基板が安く売っている。12V で動作する PAM8610 や 5V 系の PAM8403 を採用したものが特に安いようだ。なにかを作りたいような気がして、ちょっと調べてみた。

PAM8610




このタイプ は、$0.86 とかで買える最も安いもの。他にもいくつか種類がある。


    コネクタ類とボリュームが付いたものでも $2 程度。

    最も出来の良さそうなタイプ。放熱とか考えて設計してあるし、電子ボリュームを使っている。

    こっちも電子ボリュームで $2.5。放熱についても配慮されている。入力側電解コンデンサは 2200uF の大容量。(Super Slim 15W PAM8610 で検索)

    これらのタイプについては、今回はコメントしない。

さて、最初のタイプには、どうも2つのバージョンがあるようだ。右のタイプには、黒いチップが 4つ見える。これはフェライトビーズではないだろうか? また、このタイプはコンデンサが小さい。コストダウンが世の常なので、フェライトビーズありが古いタイプのような気がする。両方とも電源入力近くに、ダイオードのようなチップが2個。また、このボード実に抵抗が少ない。左でも 3つしかない。124 は、OSC の周波数を決める RC。下の 103 は LED の 電流制限抵抗。あとひとつの 103 (10K) は何だろう?

チップの機能について

PAM8610 のデーターシートを見ると MUTE と ~SD(SHUTDOWN) 機能がある。また ~FADE という機能もある。これは、SHUTDOWN 解除や 電源ON のときにボリュームを徐々に上げていく、逆にSHUTDOWN したとき下げていく機能。(MUTE とは連動しない)。それに加えて 32段階の電子ボリュームもある。また、出力からの負帰還が組み込まれている。昨今ではD級アンプも負帰還を入れるのが当たり前だそうだが、おかげで電源にあまり気を使わなくとも済む。

これらの機能は、ボードではどう扱われているのだろうか? 

電子ボリューム (#5):
ボード上で AVDD(5VLDO 出力 #3),AREF(#4) に接続されている。 パターンカットして改造している人も



    レジストを削って、#5 のパターンを分離する。なんだか厳しそうな改造だ。

増幅度は、+10db 〜 +33db まで 1db 刻み。+10db 以下は +5, 0, -5, -10, -20, -30, -40, -75db となっている。入力に入れる2連ボリュームでは、こういうきめ細かな芸当は出来ない。多分コンデンサを入れることでガリも対策できるはず。ちなみに db は +6 で 2倍だから、+10db だと 3.17倍 +33db は、45倍

~FADE (#8):

ポップノイズ軽減のために是非とも ON であって欲しいわけだが、現物を調べたところ GND に接続され有効になっているようだ。

MUTE (#25), ~SD (#29):

MUTE は H で音が出ない。~SD は逆で L で音が出ない。データーシートではそう読み取れる。
SW という 外部端子がある、どちらを使っているのか、どういう接続なのか?

多分 103 の抵抗が関係しているのだろう。~SD をプルアップして SW の片側。もう片方は GND とかで良いんだが ... 現物を調べたところ どうも MUTE (#25) - 103 - SW と接続されているようだ。

となると MUTE は、L で音が出ないというのが正しいようだ。

ポップノイズ対応は、電源ON のときのみ。OFF のとき MUTE を L にしてから電源を切るのが良いのだが。どうしたものか。

ダイオードのようなもの:

逆接保護のためのダイオードだった。Vf 0.6V 1A 品(多分)をパラ接続。 こんなもの有害なだけのような気がするが ...

    ひょっとして RC フィルタになるのだろうか? 小出力のときに R を大きくする効果になるから、ノイズが目立たないとか?

    最大電流が 2A だとして、そのとき Vf 1V だとすれば、0.5 Ω相当。0.12A のとき 0.6V だとすれば、5Ω相当。無音で 20mA みたいなので、50Ω相当にまでなる。 コンデンサはデータシート通りでも 50uF (以上)。LPF cutoff 周波数は、6KHz → 600Hz → 60Hzと変化する。 上記の 2200uF が付いたモジュールなんかだと、さらに 1/50 にまで下がる。ついでに書くと 2200uF が入っているモジュールなら、ダイオードの外側の電圧を元に MUTE を操作するような回路を入れれば、Off 時のポップノイズも削減できるだろう。

PAM8403




5V で動作するもので、PAM8610 よりさらに安い。(10個で $1.68 とか) 。これも複数のタイプがある -- 写真左のものは、端子の位置がずれている粗悪品ぽい印象。

PAM8403 には MUTE と SHUTDOWN 機能はあるが、電子ボリューム、FADE はない。2009 年あたりの情報では、3.15V まででないと動かないとか MUTE と SHUTDOWN のロジックが反転しているとか。この情報は古いものしかないので、今はデーターシート通りだと思える。

    古いチップを使ったものがあるかも知れない。マークの 4つ目の数字がYEAR 。左のものの 9 とかやばそう。右は 5 だから多分 2015 で大丈夫。

ブロック図には、負帰還に関した情報はない。今では当たり前の機能がない? 書いていないだけのような気もするが、なければないで逆に楽しみな面でもある。そう -- 自分で負帰還を入れてみるのだ。

~MUTE (#5), ~SHDN (#12)

データシートでは、両方 Active-LOW (L で音が出ない) 。内部でプルアップされている。ボードでは両方 5V に接続されている。写真のボードだと #4-#5 , #12-#13 のブリッジをパターンカットすれば良い。ドリルで穴をあけてブリッジをえぐってしまっても良さそうなかんじ。

パターンカット出来たとして、プルアップ抵抗値はいくつなのか? 1.34kΩという情報もあったが、そんなに低いはずはない。 100kΩとかそういうレベルではないのか?

仮に 100kΩで 0.1uF を接続するとして、1.4V まで電圧が上がってくる(0 - 28%) 時間。

    -CR x ln(1 - 0.28) = 0.0033 (3.3ms)

    コンデンサを 10uF にすれば 0.330 秒 。電荷を抜くための抵抗も必要だし、合成抵抗値が 10K ならば、この 1/10 -- 0.033 秒。もし 数KΩ だと 数百 uF が必要そうで たいへん厳しい。



内部プルアップ抵抗が、100kΩ以下なら こんなので良いはず。もっと高い値だとすると、1.4V まで上がらない可能性があるので、外部にもパラでプルアップが必要。古いキットで、100k + 100k + 1uF というものがあった。これが良さそうな気も。

    0.8mm のピンバイス (ダイソー)で、 ピン間をえぐってみた。次に、抵抗値を見てみたところ、数十MΩだった。となると、100kΩ で プルアップ+プルダウン。そして 1uF 程度で GND と接続というのが良さそうだ。

ゲイン:
24 db -- 16 倍固定。 0.5Vrms = 1.414 Vp-p が入力だとして、 出力 4.7 Vp-p だとすると、出力が 3.3倍で済む。この余裕分を負帰還を回せるのではないか? 具体的には、オペアンプ同様 負の出力から、Rf の抵抗を通して入力に入れる。入力側には、Ri = 10K の抵抗が入っている。Rf = 33K としてやれば、ゲイン 3.3 倍。うまくいくのかな? とか思うわけだが、パターンを入れるだけならどうということはない。 あと、そもそも (-) の出力が負なんだろうか? これが逆だったりすると正帰還になって全く意味がなくなるので、(+) 側にも抵抗のパターンを入れておこう。

    The PAM8406 sets maximum RF =142kΩ, minimum RI =18kΩ, so the maximum closed-gain is 24dB.

    という説明があった。Rf と Ri があるということは、負帰還がかかっているということ。また、124k/18k = 7.88 しかないから、24db は BTL 込み。というわけで、さらに負帰還を入れるのは意味がない -- やってみても良いけど。

PAM8406

新しいチップが出ているのを後で気が付いた。SOP-16 で PAM8403 と互換性がある。まず ON/OFF でポップノイズが出ない機能がついた。AB 級 と D 級を切り替えられる機能も。ピンは #9 で H: D 級 L: AB 級と書いてある。PAM8403 のデータシートでは、#9 は NC で 回路例では GND に接続。 パターンを流用すると AB 級 固定になる。

    番外 CS8508E (中国製なぞアンプ), CKE8002 (LM4890 互換)

    SOP-8 のサイズで 2.5V 〜 8.8V で動作する BTL スピーカーアンプ。AB 級 と D 級を切り替えられる仕様。そんなには安くない。(4個 $2 ぐらい)

    SOP-8 BTL スピーカーアンプ だと LM4890 が有名で、ピン互換のものが多数存在する。なかでも CKE8002 が、かなり安く入手できる。(20個 $0.86 とか)。ちなみに CS8508E は全く互換性がない。

    CKE8002 なんかはちょっとモニタ用にスピーカーを付けたいとき便利かも知れない。電源電圧は、2.2V 〜 5.5V

出力側フィルタ

PAM8610,PAM8403 ともにスイッチング周波数は 250kHz あたり。キャリアをスペクトラム分散するタイプらしくフィルタレスを謳っている。ただし、音に問題がなくとも、スピーカーケーブルがアンテナになって ラジオにノイズがのったりする問題が起きる場合がある。

データシートに載っているのは、フェライトビーズ + 220pF 。高周波が出ていくのを防げるとは思うが、AM帯はどうなのか? できれば、まともな LC フィルタを 出力段に入れたい。10uH + 0.22uF の組み合わせだと、cutoff 周波数は 107kHz 程度。

    cutoff = 1/( 2π SQRT(LC) )
    L も C も u 単位なら、周波数は MHz 単位。

PAM8610 では、12V 8Ωスピーカー時に 8W + 8W 出力。PAM8403 だと、5V 8Ωスピーカー時に 1.8W + 1.8W 出力。

どれぐらいの電流が流れるか? インダクタの選定で重要なことだが、よく知らない。BTL で 8W なら 片側 4W 。平均 6V とすると 平均 0.66A なんだろうか? 6V を中心に 12V まで振れるなら x2 x 1.41 ぐらい ? インダクタは、1.9A ぐらいの定格で十分そうな気がする。前調べた CD75 の定格は 10uH で 2.3A 程度。--- いけるじゃないか。

PAM8403 だと 片側 0.9W で 平均 2.5V なら 0.36A ということで、定格 1A 以上とか? CD43 だと 10uH で 1.1A --- これで十分そうだが、4.7uH しか持ってない。4.7uH + 0.47uF で cutoff だけはクリアできる。インピーダンスがどうのという話があるが、まぁいいか。

コンデンサは、積層セラコンでは(見栄え的に)イマイチという印象があるので、フィルムコンを使ってみたい。が、フィルムコンは高い。可聴域でもないし、違いが分かるとも思えないから、やっぱり X7R あたりで。一応 手に入ったときのために、リード間隔 5mm のものは考慮しておきたい。


この回路図は、TA2020-020 のデータシートに載っているもの。10uH を使う場合はフルコピーした方が良さそう。PAM8403 では、値がわからないし、部品点数も増えるしで、左の3つの CR をなしにする。

    ここを見たかんじでは、cutoff が同じならば、左の3つの CR は変わらないようだ。4.7uH + 4.7uF でも 107kHz なので、そのまま使えるっぽい。

    もし 22uH があるならば、22uH + 0.47uF で cutoff 50kHz にするのもあり。その場合 左の3つのうち R を 10Ω → 15 Ωに変更。

入力側

PAM8403 ボードでは、1uF + 10KΩを直列に接続して入力している。103 が2つ見える。PAM8610 では、1uF の コンデンサしかない。内部でゲインを変えるため Ri が内蔵されていて、20kΩ 〜 200kΩ の範囲で値が変わる。





PAM8403 採用のボードには、こんなものも。blutooth スピーカーを作るためのもの。PAM 側に抵抗が 3 つ。103 x2 は、入力の 10K のはず。104 (100K) + コンデンサが ~MUTE 側にあるようなのである。

それはともかく、こういう機能のボードが欲しいような。 ボタンも必要なさそうだし。ESP32 で同等機能を作ってみたい。

その場合、DAC はどうするのが良いのだろうか? 内蔵DAC もあるが、DAC 外付け? あるいは力任せで ΣΔ?

DAC を外付けするとしたら、とりあえず安いもので良いか。鳴らすということが最初の問題であって、それをクリアした後に不満が出ればまた考えればよい。とか思って探したところ CS4334 が見つかった。10個で、$2.25 とか。 このチップまだ現役なのか --- 大昔からあるような気が。これでも I2S 24bit 96kHZ に対応している。192kHz も行けるような話もあるようだ。問題点は、5V を用意しないといけないことと、出力にアナログフィルタを入れないといけないこと。フィルタは逆に楽しみな要素でもあるし、最初はこれで良いんでは?

自分でスイッチ出来るのであれば、ΣΔ ってのも良さそうだ。が、ひとつ問題が。PAM8610 なんかだと、電源 - GND でスイッチしているだけではない。負帰還がかかっていて、電源の影響を受けにくくなっているようなのだ。よほど安定した電源を用意できなければ、太刀打ちできない。

電源は、あとで検討することにして、次。12V をドライブする回路は面倒だから、モータードライバ使っても良さそうだ。手頃なものとしては、L9110 という SOP-8 のチップがある。フルブリッジ1個なので 2個使う。価格は 10個で $1.85 とか。
L9110 の データシートは手に入るのだが、詳しい情報はない、一応 3.3V 入力が可能で、12V までをドライブできる。流せる電流は、コンスタント 0.8A ピーク 1.5 〜 2.0A 。 これだと 10W ぐらいいけそうな感じ。

あと、スイッチング周波数。まぁ好きなようにすればよいのだが、LC フィルタ用の部品を潤沢に用意するわけにもいかない。できれば 10uH + 0.22uF の cutoff 107kHZ だけでいけるようにしたい。となると 250kHz 以上でのスイッチングになる。ESP32 は、360MHz の CPU を1つ占有させることが出来るから いけそうな気もするんだが、決めつけて良いものかどうか。

    ところで、Bluetooth A2DP でどれぐらいのレベルのデータが送られてくるんだろうか? 実は知らないので調べないと。
    どうやら、すべて圧縮形式で、まず必須なのが、SBC 225kbps 〜 345kbps 。注目されているのが aptX 352kbps 。その他 AAC,MP3 なども。 なかなか重そうな処理も同時にやらないといけないようだ。それはともかく 44.1 kHz とか 48 kHz サンプリングが最低レベルのデータを処理できる必要がありそうだ。で、それを直線補間とかしてオーバサンプリングで 250kHz に持っていくのだろうか?

    ちなみに ESP32 には、ON/OFF の時間 (80MHz クロック単位) を決めれば、その通りに出力してくれる機能がある (RMT)。バッファリングも可能で、計算までが間に合えば 良い。バッファリングは全体で 512 エントリ 8ch あるので最低 64エントリ x 2h 、256 エントリ x 2ch も可能。外部 DAC 出力 と比べて処理が重いというわけではなさそうだ。精度は 80MHz クロック単位なので、250 kHz スイッチングなら 1周期 320 クロック -- あれ?こんなんで良いんだっけ?
     ・ PCM 96kHz/24bitと DSD64 -- DSD 2.8MHz/1bit はだいたい同じ情報量
    こんな情報もある。DSD は、ΣΔ だと思って良いらしいから、超オーバースペック? 例えば 4MHz 単位で正確に ON/OFF できればそれで十分ってことか。となると、LC フィルタはやはり 低いところでカットすべきなのだろうか? -- 聞こえなくて電波として外に出なきゃ良いってものかも知れないし、実際のところは良く分からない。

    ところで、クロックは 80MHz である。どうやっても正確な 48KHz, 44.1KHz は作り出せない。リサンプリングして、都合の良いサンプリングレートに変換するしかない。その際に デジタル LPF を 通して エイリアシングを回避するとか面倒な話もある。

しかし ΣΔ がいけるのであれば、相当に魅力である。DAC がどうの アンプがどうのという話が 全てプログラミングに帰着する。私としては、こっちのほうが好みである。

電源について

自前でスイッチングする場合、電源に乗った低周波ノイズは、そのまま 出力されてしまう。ノイズの少ない電源を専用に用意すべきである。CS4334 もそうかも知れないのだが、15mA しか消費しないので、対策は楽だろう。

大昔のアンプ -- LM386 とか -- と違って、負帰還アンプはノイズがすくない。出力が入力通りかフィードバックがかかるためである。自前でスイッチングする場合は、フィードバックが出来ない。

    だいたいバッファリングしようとしているわけで、遅延が大きい。たとえリアルタイムで出力状態をモニタできたとしても無理。

スイッチング電源でも、電圧が正しく出ているかのフィードバックはある。ノイズが大きい印象があるが、一般にスイッチング周波数帯と、FET の状態遷移に関連したはるかに高い周波数帯のノイズが顕著らしい。では、可聴域ではどうなのか?

    前の記事で、リプルのレベルと 出力段 LPF のインダクタンス が 比例関係にあることが分かった。が、これも高周波数帯での話であって、可聴域への影響についてはよく分からない。

一方、リニアレギュレータは、可聴域では良好らしい。PSRR というのがキーワードで、10kHz までは 60db 以上みたいなのが普通にある。

とにかくリニアレギュレータ を通して電源供給したほうが良いのは、間違いなさそうなのだが、いかんせん 出力が小さい。その上 電圧がドロップするので、放熱などが面倒。

    ◎ MIC29302 370/600 $1.83/5
    〇 LT1764 340/450 $13.1/5
    △ LP3966 800/1200 $13.48/10 (入力 〜 7.0V)
    ? LT3083 310 $31.55/5

よくある 1.5A までのものでは話にならないので、3A 品を探すと、上記のものが見つかった。MIC29302 がコスパが良いようだ。電圧ドロップも小さいので、これを通して電源供給すれば良いのではないだろうか?





こういうわけで、いつものごとく、基板設計のネタ。ドライブ回路にフィルタ それに電源 (あとコネクタ) をセットにした Arduino 型のシールドをまず設計する。これがメインだが、いろいろ実験するために、D級アンプ基板 と 入力用 3.5mm ジャックも付けたい。あとボリュームも -- ESP32 にも ADC があるので、あっても良さそう。

D級アンプ基板は、PAM8610 のモジュールを使う。これはオプションでフルブリッジとは排他で組む。この場合(たぶん)シールドとして使わないので、裏面に付ける。入力は 4極の 3.5mm ジャック。電子ボリュームは、頑張って改造すれば使えるよう配慮しておく。

電源は、12V 入力にして MIC29302 で 1〜 1.5V 落とす。3A も電流は流さないとは思うが、もし流すことになれば、これだけで 3W 〜 4.5W も消費する。

ESP32 には、内蔵DAC があるが、これも一応 つなげたい。。100 Ω + 47uF を直列につないでから 3.5mm ジャックとパラレルに接続する。出力が大きければ、イヤホンを直接鳴らせるかも知れない。D級アンプ基板の入力としては、たぶん不適切。

出力レベルは、0V-3.3V (電源電圧) なので、3.3Vpp / 1.17 Vrms (1/2.828 ) 。ライン出力に使うには 2倍強 電圧が高い。十分な電流を流せるならば、イヤホンを鳴らせるが、出力が弱い可能性がある。どっちつかず。分圧抵抗も入れられるようにはしておきたいが、入れてしまうと、3.5mm ジャックから入力する場合に不都合。

    分圧抵抗は不要であった。レベルのスケーリングができる。1, 1/2, 1/4, 1/8 が可能なので 1/2 に設定すれば良い。分圧しなければ、HI-Z にすることで、外部入力に影響がないようにできる。

    DAC は、本来 RTC の電源を使って出力する。が、ESP-WROOM-32 では、すべて1つにまとめられているので、ノイズ低減をすることが出来ない。あまり期待することは出来なさそう。8bit ながら、Msps 以上の高速性がありそうなだけに残念。

コンデンサについて:
秋月では 2012 サイズの 47uF はないようだが、22uF なら 2012 (25V) 以外に 1608 (6.3V) もある。aliexpress では、2012(0805) 47uF 16V なんてのもあった。3225 のパターンを用意するぐらいなら、2012 x2 の方が良さそうだ。

ここまでがメイン基板の機能。この基板の周りにサブ基板をくっつけて、面付けというか、大きな基板にする。分割しても良いが、実験ではそのまま使う。配線しなおすのも面倒だし。


サブ基板1 CS4334 DAC

さて、まず入れたいのは、CS4334 。ESP32 では、I2S の機能もあり、出力ポートを任意に決められる。入力専用のポートにだけ気を付けて、都合のよいポートを使える。

ところで、DAC の出力を Line 出力にする場合、バンドパスフィルタを入れるものらしい。CS4334 のデータシートにも回路例が載っている。



3.3u - 10k - 560 - C の4つの RC が、バンドパスフィルタを形成している。RL だが、音圧レベルを決めるものだろう。3.5V p-p (1.24Vrms) なので、0.5 Vrms にするためには、分圧しなければならない。560 が入っているので、390 あたり。そうなると C は、22nF あたり。

こんどは、
 ・http://sim.okawa-denshi.jp/CRCRtool.php
で計算してみる。22nF だと落ち始める周波数が低すぎる。ググると コンデンサは 3.3nF のパターンが多い。 3.3nF だとまぁ良いかんじにはなる。

3.3u - 10k - 560 - 3.3nF がベストだとして、なんとかならないだろうか? 3.3uF も 3.3nF も持っていない。10nF なら沢山あるし、10uF または 1uF も沢山あるのだが。そもそも 560 というのは、何の値? -- これを もっと大きなあたいにするのはアリなのだろうか?

いろいろ数値をいれてみたが、10u - 30k - 1.5K - 1nF - 1.2K でもいいか。だいたい、直流成分と高周波をカットしたいだけだろう。あと、レベル変換。


サブ基板2 MP2307 電源基板

リニアレギュレータが良いのは分かったが、DC/DC コンでどれぐらい不都合があるのだろうか? 製作記事などを見ても電源について気にしてないような。あまり重要ではなかったりするのだろうか? MIC29302 の代わりに 付けられる 電源基板も用意しておこう。

MP2307 で組むつもりだが、面倒なら、MINI360をさらに載せる。あるいは、この基板を使わずに全然違う電源ボードに入れ替えられるよう配慮しておく。

あと、ΣΔをデバッグするとき、うるさいと困る。電圧を変更できるMINI360を使ったほうが良いかもしれない。

サブ基板3 PAM8610 基板

作るとは思えないのだが、チップ単体も売っている。電子ボリュームを引き出せなければ、いっそ基板から作ってしまえみたいなノリで設計だけしておく。0.5mm ピッチ QFN なので、作れるかどうかも怪しい。

この基板では、SW 端子の仕様を変更してみた。~SD がそのまま接続されている。MUTE は即 出力を落とすが、~SD は、~FADE が効く。

また、プルアップ、プルダウンを入れられるようにしてある。基本使わないから関係ないんだが。


サブ基板4 PAM8403 基板

PAM8403 も試してみたい。安い PAM8403基板も使えるようにするのは厳しいので、PAM8610 基板と同じサイズ・ピン配置のものを用意しておく。 12V を入力するわけに行かないので、上記 電源基板を使うつもり。

PAM8406 には配慮してない。#9 は GND 。

PAM8403 は、手持ちのモジュールから外そうかと。チップを買うなら、PAM8406 の方が良さそう。古いのを掴まされるのはイヤだし。しかし、PAM8406 は高いのであった。


サブ基板5 FAN コン基板

別にここで作る必要はないのだが、スペースがあるし、おまけで。8pin AVR を使うのだが、SOP-8 を想定。DIP-8 のように見えるのは、あくまで ISP 用のコネクタ -- スペースがないのだ。モータ類は、10kHz 程度の PWM で駆動。センサーは、1 回転で 2 周期らしい。



基板全体は、こんな形になった。elecrow で発注するとどうなるのだろうか。面付けと認定されると +$8 らしいが。

    スリットは 1mm 幅。ミリングなら角は丸くないとダメだろうということで、端は半円。凸になる部分はそのままで、凹になる部分は、カーブを付けている。
    ブリッジになる部分は、あまり細いと製造で問題になるらしい。適当に付けたが、ある程度強度があるよう配慮したつもり。
    あと基板の角部分には、ブリッジを作らないようにした。角部分を綺麗に処理するのが難しいのもあるが、のこぎり (丸鋸、クラフトのこ)での切り出しが楽になるようにしたつもり。

    この基板を切り離すのに、金のこを使いたいがスリットが狭すぎだったかも。ダイソーのファミリーソーで DUO-DISK の基板を切ってみたが、切れることは切れるが2枚ぐらいで刃のエッジがなくなってくる。整形は、#120 ぐらいのダイアモンド砥石で軽くこする。包丁用でも良いが、ハンドグラインダー用の円盤型を使ってみたが、楽だった。




11/1 elecrow に発注 。$9.7 (送料込み 1150円だったかな)。 -- 文句言われずに ステータスが、In production になった!

11/08 珍しく時間がかかったが、shipped になった。今回は 10枚ぴったりのようだ。



なんか、指定したのと微妙に違う。サブ基板間のレジストを外すように keepout の指定をしたのだが、レジストがかかっているように見える。修正してたから時間がかかったのかも? 来ないことには分からないが。

11/12 受け取り。



やはり、サブ基板間にレジストがかかるよう修正されていた。手間をかけて修正してるということは、理由は分からないが、やってはダメということだ。前の基板のタブは、指定通りだったから、外側は良いのだろう。あと、枚数は12枚。

これを切ってみた。




32山の金のこでゴリゴリ切断。ちょっと苦労する。残った部分は、配線してあることもあり、とりあえず切らない。もっとも、普通の金のこでは、無理。ファミリーソーの刃を一回外して通すとか工夫がいる。

    ファミリーソーはダメ。突起があって刃を通せない -- つかえないヤツ。
    金のこの刃だけ持って引き切りするのが楽だった。刃を寝かせ気味にして一気に切ってしまうのだ。ブリッジの切断部分が狭いので引っかかるとスムーズに行かない。
    後処理は、ダイソーのダイアモンド砥石が良かった。かかとヤスリみたいな形状のやつ。

さて、このボード最初は、PAM8403 と MP2307 電源ボードから作ろうと思う。ちょっとやってみたいことがあるのだ。
posted by すz at 18:52| Comment(0) | TrackBack(0) | 日記

2017年09月24日

Nanopi DUO

cnx-software.comの記事で知ったのだが、Nanopi DUO という SBC が発売されている。Orange pi Zero (以下 OPi Zero) と同じ SoC (H2+) , wifi チップ(XR819) を採用していて気になっている。



製品ページ:
http://www.friendlyarm.com/index.php?route=product/product&product_id=197

価格は $7.99(256MB モデル), $11.99(512MB モデル)。送料は いくつか買っても $5 。例によって専用のヒートシンクも用意されている (+$2.99) 。

サイズは 50mm x 25mm 程度で、なんと ESP32 の開発用ボード ESP32-DevKitC と同等のサイズで、より安い SBC なのだ。電源に 5V2A が必要なことや、技適がないなど、実際に使うのには難があるのだが、よくぞ作ってくれたと思える製品だ。



ピン配置はこんな風になっている。Ethernet や USB HOST さらには、コンポジットビデオ出力、オーディオ関係があるため、GPIO として使えるピンは OPi Zero より少ない。

また OPi Zero とは違って、ビデオ出力、オーディオ出力には回路が付加されていて コネクタを用意するだけで良い。ただし、ビデオ出力を使うには OS 側の対応がイマイチらしい。

電源は、USB OTG または 5Vピンから入力できる。OPi Zero と同じ回路で 電圧が高い方から入力される。また、USB OTG 側へは逆流しないので、PC の電源を OFF にしても問題が起きない。

ちなみに、レギュレータIC は、単電源のものが スイッチングDC-DC を含めて 6 つも使われている。(OPi Zero と数は同じ)。必要とはいえよく収まったと思うわけだが、さらに Wifi チップアンテナ や SPI Flash のパターンまで付いている。

    製造元の friendlyarm.com のフォーラムに Wifi Problem XR819 という話題が、なんでも Wifi の MAC アドレスが皆同じだとか。解決方法も書いてあるようなので要チェック。



NanoPi DUO には、Mini Shield というオプションがあって(+$9.98) Rasberry pi と同じディメンジョンになる。この Mini Shield には、各種コネクタが付いている。USB は HUB IC を介して 4port 。また、USB-SATA ブリッジも付いていて ハーフサイズの mSATA SSD が付けられる。

    DUO + Mini Shield を買うのであれば、Starter Kit というものがある。ヒートシンクやケース、USBシリアル などが付いてお得な感じ。特に 512M は、$19.98 (+ 送料 $7 )。

    USBシリアルだが、電源ケーブル代わりになるようだ。USB 5V が ボードの 5V に直結されている。電源コネクタは micro USB なので、こちらを使った方が良いかも知れない。

    ちなみに Mini Shield に mSATA SSD を付けるなら、オプションの 64GB SSD ($45) も同時に買うと良いようだ。mSATA ハーフサイズ の SSD は割とレアで 特に for industrial なのは他で買えないかも。

    ピンヘッダーが付いているが、18 ピン。Rasberry pi の #1〜#18 分だけ 互換になるようになっていて、I2C, シリアル TX,RX の位置が合っている。

    cnx-software にスターターキットのレビューが載った。
     ・ https://www.cnx-software.com/2017/09/25/nanopi-duo-starter-kit-review-part-1-unboxing-and-assembly/
    第二弾の記事
     ・https://www.cnx-software.com/2017/10/30/nanopi-duo-quick-start-guide-ubuntu-breadboard-mini-shield-msata-ssd/

    まず、SPI Flash が搭載済み? それも 128Mbit(16MB) 。気になる。

    コメントを眺めると、OPi Zero の イメージ (armbian mainline) がそのまま動くようだ。ただし、1つ問題があって、USB-SATA チップ の RESET が GPIOG11 につがっているため、u-boot で SATA が enable にならないといった(意味の)ことが 書かれていた。




さて、このボードをどうやって使うと面白いのであろうか?

形状からみて、なにか USB デバイスになる専用機というのが思いつく。
 1) USB シリアルボード あるいは、FTDI でできるようなもの (JTAG 等)
 2) USB サウンドボード とか AV 出力ボード
 3) Wifi ドングル
 4) mp4 エンコーダーボード
外付け回路がほとんどないようなものだとこんなやつ。ただのUSBデバイスに SBC を使うのは大げさすぎるが、コスト的には十分成り立つように思えるのである。標準の OS や armbian を入れた SDカードを作ってちょっと弄れば実現できてしまいそうなのだが、もっとシンプルに SPI Flash にインストールできて 専用機として動けばすごく嬉しいような。

 ・ http://linux-sunxi.org/Bootable_SPI_flash

SPI Flashの使い方はここに載っている。1MB が u-boot 専用。残りに カーネル+initrd を置くことが出来る。SPI Flash は 16MB まであるようだが、4MB 程度までなら、そこそこ安い。

昔は 1フロッピーで動く OS がいろいろあったと思うのだが、今はどうなのだろう? Linux カーネルと busybox あとちょっとした自製アプリぐらいなら 圧縮して 3MB もあれば ...とか思ってしまうのだが。

専用機であれば、Linux カーネルなどいらない。全部自製する -- いわゆるベアメタル・プログラミングというのも可能ではあると思う。H2+ のデータシートは手に入らないが、H3 と互換のようで 上記のリンクにも H3 のデータシートがある。本当の ベアメタル・プログラミングだと avrlibc 程度の環境もないから、本当にめんどくさい。たぶん レジスタの定義ファイルを作るだけで嫌になるだろう。すこし楽したければ、u-boot の環境を流用する -- というか u-boot の一部として実装するという手がある。

もうひとつ、作りたいアプリをカーネルモジュールとして作ってしまうという手がある。Linux カーネル API を知らないといけないが、レジスタ定義のヘッダーファイルや ちょっとしたライブラリ環境を利用できる。一部だけ自製して、あとはカーネルの機能を使うということも可能なので、個人的には、こっちの実現方法が好きかも。いずれは挑戦してみたいような。ただ、OPi Zero の時でもやりたいとは思っていたのだが、なかなか手をつける気になってこない。




Ethernet 関係の話題

このボード 100M Ether の PHY も付いているわけである。パルストランス入りの RJ45 なら結線するだけなので、使うのは難しくないのであるが、他の使い方も考えられる。


2台の Nanopi DUO を直結することは可能らしい。同一ボード上で短距離であれば、25Ωで3.3v にプルアップするだけで良いようなのだ。別のIC のデータシート(トランスレス AN1900 で検索)に載っていただけなので、うまく行くかどうかは不明。より一般的には、直流除去のカップリングコンデンサが必要になるとのこと。その場合回路も変わる。

とりあえず、これが出来るということであれば、2台のPC をUSB-to-USB でつなぐことも出来る。それをして何になるか?という話はあるのだが、キーボード切り替え器が とりあえず思いつく。

あと 1:1で接続する形態だと、ちゃんとパルストランスを入れれば、100m まで ケーブルを伸ばせる。物理的に離れたところに Wifi を届かせるルータにもなるだろう。(技適が通ったとしての話 一応)あるいは、離れたところにある USB 機器を 接続する USB ケーブル(?)延長器とかも可能だろう。




ボードの特徴を考えれば、こんなところかなと思うのだが、Mini Shield を使って サーバーに仕立てるような使い方ももちろん良いだろう。普通の使い方だと思うので、ここではコメントしない。

で、そうした使い方をした場合、mSATA が少々ネックになる。$45 もする SSD を買う気にならないので、無駄なのである。mSATA から 2.5in HDD 用の STATA コネクタに引き出せれば、嬉しいような気も。普通に SATA コネクタを付ければ良いだけだが、PC 用のケーブルは長すぎて収まりが悪いような・・・5cm 程度のケーブルというのはあるのだろうか? とりあえず基板設計ネタとして覚えておこう。


    探したら、SATA に変換するボードは安価に購入できる。左は背が高くなってしまうので却下 -- 右のタイプが良さそう。--- 作る必要はなかった。あとはケーブルか。


    ケーブルは、7cm, 10cm といったものがあるようだ。ただ、ストレートー(HDD側)ライトアングルでないと。それを前提として、横から回すので 10cm では短いような気が。15cm ぐらい必要かもしれない。また、7pin どうしをつなぐので、15pin の電源ケーブルも別に必要。これも ライトアングルが良いと思う。

あるいは、Mini Shield のようなものを自作するとか。HDD の裏面にマウントできて、ケーブルもすっきり というのは考えてみたいところ -- こういうのは他のボードでは難しい。ちなみに USB HUB IC は、FE1.1s が安価に入手できる。USB-SATA チップも GL830 が安価に入手できる。-- 実は Orange pi でこれらを採用していて、実際の回路を参考にできるのでお勧め。ただし、これは必要な場合に選択枝があるという話であって、コネクタだけ付けるのもあり。特に USB-SATA は ケーブルになっているタイプとか さらにその中身の基板のようなものが入手できるから、別のやりかたがある。

さらに、さらに、Ethernet が直結できるならば、Switching HUB IC を入手して、いくつかの DUO を接続したコンパクトなボードも作ることは可能だ。

 ・ https://fabiobaltieri.com/2011/08/19/5p-switch/
 ・ https://github.com/fabiobaltieri/5p-switch


HUB を自作した人がいて 回路図など 公開している。HUB IC は、KSZ8995MA というもので、現在でも入手可能 。Mouser なんかでも買えるけれども、aliexpress で 昔のものっぽいのが 安価で購入可能なのだ。どう有用なのか?というのを別にすれば、なかなかに興味深い。作ってみたいものだ。

    こういうのを作っても、有用ではないと思えるのは I/O の絶対性能が低いため。いまどき USB 2.0 + 100M Ether ではちょっと。allwinner の SoC はいろいろ出ているが、H6 という 最新 SoC が出てきている。特徴は 64bit , GbE は当然として、USB 3.0 , PCIe サポート。まともに使えるようになるまで時間がかかりそうだが、Orange pi も プロトタイプらしきものがリークされている。こういうのが、サーバ用途での本命だろう。

    秋月で扱いはじめた ROCK64 なんかでも良さそう。GbE , USB 3.0 だから、高速I/Oは備えている。RAM も 4GB タイプがあるので メモリ的に重い処理もこなせる。こういうのと比べると DUO + Mini Shield は本命の使い方ではなく、DUO 単体で電子工作的に使うのが良いのだろうと思わされる。



Mini Shield のようなもの を検討してみる。

やりたいことは、HDD と一体化するようなボードの設計。


この図は、HDD の上というか裏面に Mini-Shield を載せたイメージ。これをベースに考えてみる。例えば板で HDDマウンターを作って HDD に取り付ける。左上に寄せるとこんな感じ。mSATA からケーブルを上に引き出し、ぐるっと回して HDD に接続。これでも良いのだろうが、SATA のケーブルは太いし、電源ケーブルもあるから、あまりスッキリとは行かない。あとコネクタの向き。Ether などは裏面に配置するもの。となると HDDのコネクタ側が正面になる。正面がグダグダしているのはちょっと。



こういう部品を使って、HDD を接続し、かつ正面パネルになるものを作ってみたらどうだろう?だいたい 結構背が高いのである。HDD からスペーサーで 浮かさないといけないし、2段のUSBコネクタも高さが 15mm ぐらいある。HDD 自体もあるから 全体で 9.5 + 5 + 1.5 + 15 = 31mm ぐらいにはなる。一方 128x64 の OLED モジュールは 27.8mm である。これを付けて タクトスイッチがいくつかあるようなものは作れそう。

問題は、Mini Shield (のようなもの) と接続する ケーブル 。特に SATA だが、信号線は 4 本のみで、距離も 直線なら 4cm ぐらいだから、ツイストペアでいけそうな気はする。あるいは、USB-SATA チップも載せてしまって、USB DISK 化するボードにしてしまうとか。ちょっとこの方向で考えてみたい。一応汎用として考えるのだが、うまくいくようなら、Mini Shield のようなものも設計して完成形を狙う。

    バネル付き USB-SATA ボードというのは、割と良い考えのような気がしてきた。USB2.0 専用で QFP48 の GL830 を予定している。ちなみに、 Mini Shield のチップは、USB 3.0 にも対応の JMS567 である。 このチップは手に余るので無理。というか入手できない(かも)。入手できデータシートがある USB 3.0 対応チップは、ASM1053 (QFN) ぐらい。といっても手に余るわけだが。




こんな感じでレイアウトを考えてみた。サイズは 70mm x 30mm 。左の4ピンコネクタが USB で、右は I2C とボタンと 赤外線レシーバー。コネクタはケーブルを引き出しても良いし、専用基板にピンヘッダで付けることも出来る(ようにしたい)。SATA コネクタは、1.27mm ピッチのスルーホールなので、クリアランスが厳しい。ELECROW は OK みたいだが、DRC が通らないところがあるかも。


で、専用基板のプロトタイプ - ショートバージョン。本当は HDD の 100mm 長にしたいわけだが、別発注になるので、これでいけるかどうかのチェック用。ショートバージョン は随分奥まったところにコネクタが来る。HDD のネジ穴にも届かないので、ちゃんとマウントできない。右の穴は コネクタとの干渉をチェックするためのもので役には立たない。また、マウントの補助のために、左右 5mm づつ 耳を付けている。
要するにパネル部が本命で、ちゃんとパターンが引けるかどうか?これは、ボチボチやっていこうと思う。

ついでに書いておくと、USB は 2 段のパターンになっているが、HUB IC を入れないと、1つしか使えないので意味がない。その場合、普通のタイプを取り付けてもいい。ロングバージョンを作るときに、HUB IC を入れるかどうか検討してみるが、2段はおまけの扱い。あと、電源は DCジャックから 12V 入力を考えている。DC-DC コンは、12V → 5V を 2つ。1つは、HDD というか USB DISK 専用。

そう言えば、このショートバージョンは、もともとブレッドボードの片側に挿すためのものであった。途中で目的を変えたので、こうなったが、それも検討しよう。


あとパネル部分がうまく作れない場合でも、こんなボードを使えば、とりあえず HDD は使える。ショートバージョンでも USB のケーブルを 引き出してすっきりと接続できるはず。この場合は、ボードを HDD の端まで移動させることも出来る。・・・と言っても、移動してもやはり2か所でネジ止めできるだけなので、しっかりと取り付けることは出来ない。

    このボードがどういう チップを採用しているのか分からないが、随分と部品が少ない。目立つのは水晶ぐらいで、あとは RC 。GL830 も 似たようなものなのでパターンは作れそう。SATA 信号線は 数ミリ長でストレートにコネクタに配線するだけであり問題が起きようがないと思える。ーーなんか作れそうな気がしてきた。

    ちなみに、Orange pi の GL830 まわりの回路図を見ていたのだが、内蔵 USB にまで、電流制限 IC の SY6280 が使われている。 ちょっと驚いた。

    ショートタイプは、取り付けに難があるようなことを書いたのだが、アルミアングルなどを使えばいける。10mm x 7.5mm のコの字型のものがホムセンにあるが、基板の耳にネジ止めすれば、HDD のサイドのネジ穴で止めることが、出来そうだ。

さて、少し設計が進んだ。(問題も出てきた)

左側のコネクタだが、ブレッドボード に合わせることにした。BB-801 (EIC-801) タイプは 30穴あってサイズは 82mm と 84mm。この基板は 80mm で、センターを合わせたときに、穴の位置があうように調節した。次に コネクタから 13mm は、なにも置かないようにした。あと、コネクタの増設。一応デジタル信号は、コネクタに割り当てることが出来た。

    USB 5V - DM - DP - GND
    8pin#2 MO - MI - CLK - CS - GND - 3V3 - DTX - DRX
    8pin#1 GND - 3V3 - SDA - SCL - TX - RX - G11 - IRRX

こんな感じ。AV 出力は未だ考えていない。MIC は、取り付け パターンを付けた。

問題は、パネル部への信号線。ボタン3つに対して 2本 (TX,RX) しか割り当てられていない。I2C 以外の信号線は、4 つあって IRRX , TX, RX, GPIO G11。Mini Shield で G11 は、USB-SATA のリセットに使われているので、同じ目的に使おうとしている。GL830 搭載の Orange pi でも、やはり G11 が GL830 の電源制御に使われている。
ちなみに、GL830 にも GPIO があり、電圧低下の検出?(GPIO0) と LED (GPIO2) に使われている。ドライバのソーソコードを読めば使い方が分かるかも知れない。



今は、こんな感じ。パネル部を 使わなければ ロングバージョン(もどき)になるようコネクタと穴を追加。コネクタは電源以外配線しないので、あくまで、ディメンジョン評価用のつもり。



GL830 のパターン作成中。なんとも苦しい。電源ライン(3.3V, 1.8v, GND) が入り乱れているのが理由の1つ。もうひとつ、SATA 信号線は直結するものではなく、10nF (0.01uF) のコンデンサを入れるものだったこと。2012 を使うので、場所が取られてしまう。それでも、なんとかなりそうな感じにはなってきた。

ところで 12V → 5V 変換で MINI-360 を2つ使おうとしているのだが、変更。MINI-360 の IC - MP2307 を使って 自分で組んだ方が良いかも -- とか思ってパターン追加。MP2307 は本来連続 3A が可能な IC なので 1個で済むはず。MINI-360 は インダクタが電流を流せない上に、IC の 放熱も考慮されていないため 連続だと 1.8A 程度まで。 インダクタは、秋月で扱っている NRシリーズ (10uH) なんかが使えれば十分なのだが、10mm 角で大きく パターンを入れるのが無理だった。4.7uH にして、75mm 角であれば、2A 連続には十分ではないかと考えて、CD75 (7mm x 7.8mm) 用のパターンにした。あと上面からハンダ付けできる自信がないので、長穴を置いてみた。仮止めした後、裏からハンダを流し込むつもり。入力のコンデンサだが、一応 25V 耐圧のものを使いたい。こうしておけば、ノーパソ用の 19V までは使える。分圧抵抗は、30K + 6.8K にすると 5.00 V の計算になる。誤差がだいぶありそうなので、後で調整することになるだろう。

    MINI-360 は インダクタが電流を流せないと書いたが、間違っているかも。村田製作所の FDVE0630 というのを見つけたのだが、7.4mm x 6.7mm 3mm高 のサイズで 10uH 3.1A , 4.7uH 4.6A となっている。--- 調べてみたら、一体成型のメタルアロイ というタイプで 大電流を流せる特長があるとのこと。大電流を流しても磁束を保持し、熱にも強い。巻き線が固定されているので鳴きもない。すごく良いものらしい。
    aliexpress でも 同じ 0630 タイプ (7.3mm x 6.6mm 3mm高)で、10uH 4A (Isat 5.5A), 4.7uH 5.5A (Isat 8A) という商品があった。 PIHA06030 という型番のものが 同スペックなので、出鱈目でもないのだろう。
    さて、MINI-360 のインダクタも 0630 で見た目も近い。ということは、4A 品かも知れないのだった。それで何故出力が止まるほど熱くなるのか?という疑問はある。最も 2A 流すのに、2A 品ではダメということはある。2A + Vout/Vin x (Vin - Vout) / ( 2 x fs x L) の定格が必要で、12v , 5v , 10uH だと +0.43A という計算になる。-- これは問題なさそう。あるいは、単純に放熱できていないだけ? 効率が 85% 程度だとすると 5V2A - 10W で 1.76 W 発熱する。 これが MINI-360 単体では無理なのだろうか? データシートに 50℃/W と 10℃/W の数字がある。そのままだと 88℃上がってしまうが、放熱さえすれば、問題ないということだろうか?

      追記: DUO-DISK を組み立て確認した。インダクタは 10mm 角のメタルアロイ タイプ。12V 入力で 5V 出力だが、3A 流しても余裕。2.2 Ω + 4.7Ω パラ (1.50Ω) を 4.95V ぐらい。インダクタは全く熱くならない。MP2307 もあまり --- こっちは放熱が十分という印象。

    あと必要なインダクタンスについて、L = Vout/Vin x (Vin - Vout) / ( fs x ΔIL) という関係らしいのだが、ΔIL とは さっき計算した 0.43A x2 のことである。同じ式なわけで、2倍のΔILを許容できれば 10uH → 5uH にしても良いということらしい。

    さて、まともなインダクタだと思った CD75 だが、定格は 10uH で 2.3A 程度。4.7uH でも 3A ぐらいだろう。ちょっと無理そうなので、再検討しないといけない。


    再検討したパターン。メタルアロイ・タイプ用にパターンを作った。10040 用をメインに、6030 も付く。NRシリーズも付くようにした。これらは、電極の幅が狭いので、なんとか MINI-360 のパターンと重ねて配置できた。入出力のコンデンサは 3216 が 2個パラで付けられるようにしておいた。


    ついでなので、2.2uH も調べてみた。
    CD32 1.4A CD43 1.9A CD54 2.8A(前後) CD75 4.2A(前後)。
    5V から 1.8V や 3.3V を作る DC-DC コンで 1A クラスなら CD32 で良さそうだが、2A クラスになると CD54 を使わないといけないようだ。 あと、メタルアロイ・タイプなら、0420 2.2uH が 3A だが、少々高価になる。


だいぶ設計が進んで今はこうなっている。ボード名も決めた --- LANDISK じゃなくて DUO-DISK 。サイズは、ロングタイプにしたとき使いやすいように 80x100 に変更。電源は MP2307 一つでまかなうつもりだが、MINI-360 x2 でも出来るようにはした。一応 5V3A ちゃんと流せることを期待。実際には 3A も使わないと思うが、その場合効率 85% として 12V 1.5A ぐらいの容量が必要。あと 電源OFF 機能のコネクタを付けた。リモート強制リブートが可能なように配慮だけしておく。

パネル部分。スイッチを、GL830 の GPIO に接続してみた。ドライバを改造しないと使えないというハードルの高い仕様。無理がありそうなので、パターンカット+ジャンパはできるようにはしてある。
SATA コネクタの詳細が FIX すれば発注できそうなところまで来た。(現物で確認しないといけない)


さて、Ether HUB の KS8995MA だが、ついでに いくつかの Nanopi DUO を載せたボードも検討してみようと思う。

まずは、上記の KS8995MA を使ったボードの回路図を見てみる。QFP128 なのでピン数は多いのだが、使わない ピン(NC)が多い 。 PORT5 の MAC と PHY の間を切り離してそれぞれを MII インターフェイスで 接続できるようになっていたりするのだが、使わなければ NC で済む。あと LED が 15 ピン。これもいらない。SPI で、設定したりステータスを読み出すことができる。( SPI を使わない場合 I2C ROM (110バイト以上) を接続する。) SPI で設定をやりたいとは思うのだが、
次に多い線は電源。3.3V と 1.8v と GND だが、実に沢山ある。これらが、入り乱れて配置されるので配線がめんどくさい。

    1.8v は、結構消費するようで、市販製品でレギュレータが壊れるトラブルがあったようだ。1.8v には、DC-DC コンを使いたいところ。SY8008B ,RT8059 あるいは 2A クラスの SY8089A ぐらいか。 3A クラスだと MP2143DJ , SY8113B とかもある。これらは、Orange pi などで使われている。
    加えてメンドクサイことに 1.8v はコア用とアナログ、さらに PLL 用がある。電源は共通でも良いのだが (少なくとも PLLには)LPF を入れる必要がある。

    MII の機能はいらないと書いたが、そういえば ESP32 が MII (または RMII) で Ether に接続する機能を持っている。わざわざPHYチップを用意してまで使ってみたいとは思わないのだが、一応実験用に使えるようにしておくのも良いかも知れない。

電源は面倒なものの、思ったよりは、シンプルに扱える印象はある。多分扱いきれないということはないだろう。

こっちのボードも進行中。名前は DUO-CLOUD 。DUO x3 と HUB が一体になったボードで、DUO-DISK の上に取り付けることを想定。電源は、MP2307 x2 で 6A を想定。割り振りは、マスターの DUO + HUB と DUO 2台。入力は 12V3A ということに。DUO-DISK と合わせて 60W クラスのACアダプタを使う。あと、HUB には、1.8V と 3.3V が必要だが、SY8089A で 5V を降圧する。

左側裏面にある部品は、8ピンAVR ( オプション機能) 。I2C ROM の機能を持たせて HUB を自動で config させる。加えて ファンコン機能。本当に 60W 近くも消費するのかどうか不明だが、ファンは付けることが出来た方が良いだろう。--- この2つは DUO が動いていないときでも機能させたいものなので、独立したコントローラーがあると良い。本当は DUO のリセットなんかも制御させたいが、リセットピンが出ていないため、電源 OFF 機能で対策。外部コントローラで電源制御ができる可能性だけ残しておく。


回路は考えてみただけのもので自信がない。よくあるのは、NPN(Nch) で ファンの GND 側 を ON/OFF する回路だが、それでは回転数検出の回路が組みにくい。12V 側をドライブするように Pch + Nch を使おうと思う。回転数検出は、SENSE がオープンコレクタ(ドレイン)だったはずなので、プルアップして入力。このへんの機能も I2C で制御(予定)。他に3つのコネクタがあるが、DTX,DRX でコンソール用。また、DTX,DRX はとなりの DUO の RX,TX と接続できるようにもしてある。

といっても、オプションだし組むかどうかは分からない。それどころか、このボードの基本機能を動かせるのか? 自信が全くない。

    回路図のコネクタのピン番号は、逆。4pin ファンに合わせて
     (1) SENSE (2) 12V (3) GND (4) PWM
    とするのが正しいようだ。
    あと AVR の信号線

    DUO AVR HUB
    SCL/A11 PB2/SCK/SCL SPIC/SCL
    SDA/A12 PB0/MOSI/SDA SPID/SDA
    MI/A14 PB1/MISO SPIQ
    CS/A13 SPIS_N
    G11 RST_N
    MO/A15 RESET

    こんな風にした。DUO は、HUB の SPI に対しても、AVR の ISP に対しても GPIO で操作する。I2C のマスターも GPIO で操作できるが、I2C ドライバを使っても良い(かも知れない)





またまた外形を変更。Pico-ITX なる規格があることを思い出し、サイズ(100mmx72mm) を合わせることに。DUO-DISK はもともと 70mm で設計したので、部品の位置もほとんど変える必要はなかったのだが、DUO-CLOUD は、だいぶ苦労した。それは良いのだが、マウントするのに難があるように思い、小さいタブを付けることにした。ネジ止めしたり、レールを使って固定したりするのを想定したが、邪魔なら削ってしまえば良い。


    このボード2枚を組みにして使う場合、放熱の関係でボードを立てて使うのが良いのだろうと思うのだ。で上か下にファンを設置するとしたら、60mm ぐらいが丁度よさそう。ボード間隔は 25mm ぐらい。多分 DUO のヒートシンクまでが一番背が高く 8.5 + 2.6 + 7 = 18.1 mm 。次が 2段のUSB 15.6 mm で 三番目が RJ45 の 13.5 mm 。 基板厚を足して、ヒートシンク上部 5mm ぐらいで、25mm 。


    あと、DUO-DISK に 4極 3.5mm ジャックのパターンだけ付けることにした。PJ-393 という型番のもの。それは良いのだが、ピン配置が統一されていない。Mini Sheild は、先端から R-V-L-GND 。だが、日本で一般的なのは、どうやら L-V-GND-R 。 GND の位置が違うとどうにもならないのが難点。カモンのRCA 変換ケーブル 435 は 日本式なので、L-V-GND-R にすることに。

    最初 4極 3.5mm ジャックの位置は、DUO の下にしたのだが、どうにも気に入らない。コネクタ類は右側に寄せる方針なので、無理やり移動した。

    USB コネクタもこのタイプに変更して、場所を作った。使ったことのない部品が増えると不安なのだが、まぁやってみよう。ちなみに、このタイプは、DRC で Restring 10 mil だとエラーになるパターンになってしまう。-- 8 mil 以下でなければならない。SATA コネクタ と これは 業者を選ぶ。





ケースも具体的に考えることにした。一応 MDF で考える。配置は、向かい合わせにして、下にファンを置く。レールは 5mm 角の角材。割りばしでも良さそうだが、サイズが正確なので。メイン部分は 端から 3.2mm 部品を置かないようにしたので タブ 4mm と合わせて 7mm まで行けるのだが、HDD (の取り付け部分) が干渉するので、そこだけ 5mm ぐらいが限界。
5mm 角の角材は、補強にも使う。最初からバックパネルを用意できれば補強は必要ないのだが、自信がないし面倒だしで、最初は厚紙にするつもり。フロントパネルは未だだが、扉にして、前から基板を差し込む。LED が いろんな位置にあるので、できれば透明なものにしたい。


ファンを取り付ける底板。上にレールが来るのだが、ファンを塞がないようレールは短くしている。基板が前後に動かないようにするためのロックだが、あまり練れていない。タブのネジ穴に上から棒またはネジを刺すので良いのかなとは思っている。

あと奥行は未だ決まっていない。HDD と SATA コネクタで何 mm になるか、ちゃんと調べていない。



10/14 elecrow に、基板発注。
 ・duo-disk-01c2.zip
 ・duo-disk-01c-out.zip
 ・duo-cloud-01c.zip
 ・duo-cloud-01c-out.zip

    追記: 問題点の記録
    DUO-DISK: 回路図の LCR の値は基本適当である。よくよく確認しないとマズイのであるが、特に注意すべき点について。MP2307 の 6.8K と 30K が逆に書いてあった。

    DUO-CLOUD : Ether コネクタとの接続。
    HUB は、MDI-X として接続しないといけないが、MDI として接続してしまった。auto MDI/MDI-X の機能があるのでダメではない。内部接続のトランスレス接続は合っている。UP-LINK も MDI で良いので、1つだけ MDI-X であるべきだが、port 4,5 のうち どれを UP-LINK にするか決めていない。ローカルに使う方は、できたらクロスにするということで。
      トランスに CT という端子があるが、これの接続が良く分からない。Orangepi など allwinner 系の回路図では、0.1uF を通して GND に接続だが、例のHUB の回路では、+2.5V に接続している。その他、TX側では、3.3V 、RX側では無接続 というのもあった。

10cm x 10cm 10 枚が $4.9 + 送料 $4.8 -- 1129 円になってる。チェックするのも飽きたので、ダメならまた発注すれば良いかと思い両方発注してみた。

    10/14(土) 発注
    10/18(水),19(木) 発送(追跡OK)

    ボケボケの写真が添付されてた。それにしても 水曜日・朝は早すぎ。土日も働いているのだろうか?
    10/23(月) 通関手続中
     先に発注した DUO-DISK が 国内に来た! 水、木あたりには受け取れそう。
    11/25(水) 受け取り(予定) 火曜日に地元到着。DUO-CLOUD の方は、引き受けのまま。土曜日の4時間の差がこれ。

部品のなかで SATA コネクタの フットプリントだけが分からないままの発注。デジキーとかで買える MOREX (87779-1001) なら、分かるんだが 高いし、これだけのために発注できないし。7pin+15pin の部分さえ合ってればなんとかなる( ということにした)。

    SATA コネクタが来た。両端の 基板に止める部分の幅はぴったり (42mm)。位置はほぼ同じ。穴径は 2mmφにしたが、1.5mmφという感じ。

    HDD に接続したときの位置関係もだいたい分かった。手持ちのHDD だと、端から 105mm の位置に基板が来る。DUO-DISK と右端を合わせると、端のコネクタまで 6.5mm 。だが実際には、合わせられない。穴の位置を間違えた!長穴の端から端を使ってようやくネジを締められる! で、HDD は 2mm はみ出す。ということは、4.5mm 固定でほぼ調整できない。メインの基板の左端から、3.0mm はなれたところにパネルが来る。したかったことは、パネルとの距離を 0mm にすることなので、ここから 3mm ずらせるように修正しておこう。0mm にするには、メインの基板の右の穴から 3mm 右に移動したところにドリルで穴開けで対処できる。この場合 HDD は、右に 5mm はみだす。

    縦の関係は、HDD のネジ穴がある面から 下に 2mm がコネクタの位置。そこから、22.1mm 上が パネルのコネクタの位置で、5mm のスペーサで HDD をマウントするとすれば、メインの基板上面から 13.5mm にコネクタが来る。普通のピンソケット(8.5mm)を使うと、5.0mm 上にコネクタがあることに。対策は、Arduino で使われるような連結ピンソケットを使う。Arduino 用は 8pin, 6pin なので、USB の 4pin は切るかピンを抜いて使う。

回路については、Ether HUB と USB-SATA 以外は電源と配線だけみたいなものだから、一部がダメでもなんとか。2つのチップ回りが怪しいわけだが、元にした回路図があるわけなので動くかも知れない。






DUO-DISK 基板がきた。前の写真で 14 と手書きがあったが、枚数だった。14 枚も来たのははじめて。なにかと運が良い注文だったようだ。パネル部をメイン基板にぴたりと着けるには、赤丸のところに穴をあけなければならない。これはちょっと難しいかも知れない。タブは、予想以上に目立たない。良い感じだ。

最初に作るのは電源回りの予定 MP2307 も同時に到着。というかパネル部を除けば、コネクタと電源しかないが、コネクタは HR911105A(発注忘れ), USB, 4極 3.5mm ジャック (到着待ち)がなく、あるのは DC ジャックのみ。パネル部分の部品は、一応全部ある。GL830 は、紙の台紙にテープで貼った適当なものが来ている -- 動かない不安がある。

10/31 DUO-CLOUD の基板も来た。こっちも 13 枚。何枚も作るとは思えないが、あっても別に困らないか。




本当に動くものを作れるのかなぁ? 0.5mm ピッチならハンダづけは出来ると思うが、設計上の不安も多い。




電源回路の確認

DUO-DISK を組み立て確認した。インダクタは 10mm 角のメタルアロイ タイプ。12V 入力で 5V 出力だが、3A 流しても余裕。2.2 Ω + 4.7Ω パラ (1.50Ω) を 4.95V ぐらい。インダクタは全く熱くならない。MP2307 もあまり --- こっちは放熱が出来ているという印象。

10mm 角を使えば、MP2307 の性能を発揮できるということは分かった。DUO-DISK, DUO-CLOUD では 10mm 角しか使わない。では、MINI-360 と同じ 7mm 角 では本当にダメなのか? 7mm 角 でも 定格4A (サチるのは 5.5A) のはずで、3A 流せると思うのだが。あるいは 4.7uH にするとか。
posted by すz at 23:07| Comment(0) | TrackBack(0) | 日記

2017年05月20日

バックロードホーンを作ってみたい

つれづれ日記を読んでいて、秋月で 2個 500円の 8cm フルレンジ スピーカーユニット F77G98-6 が良いものだと知り、ついつい買ってしまった。4個も。ついでに2個 300円の F02607H0 までも。

さて、どうすんだこれ。FOSTEX の エンクロージャー P800-E と組み合わせれば良いとのことだが、当然余る。実験用だとしても裸で使うのは抵抗あるし、せっかくだから、適当なエンクロージャーを作ってみたい。

最初は、バスレフで良いかと思って、ホムセンで板材を見てきた。6mm 厚 5cm幅(10cm幅) 910mm のやつが良さそうだ。側板は別途ということにして、10cm 幅だと 20cm x 30cm ぐらいの箱が作れる。6L ぐらいだから十分。ダクトは、百均の掃除機ダクトで良いだろう。側板用の板材も百均でいいや。まな板つかっても良いし。板材だけはホムセンのやつを使う。自分で切り出したりしたら精度が出せずに困ったことになりそう。

それでも良かったのだが、いろいろ調べていくうちにバックロードホーン型がいいなと思うようになった。オーディオテクニカの 「AT-SP30BLH」なんて製品や、箱根寄木細工バックロードホーン組立キット「HC-BR100」 なんてのを見つけて、小さくても良いのか。。と思ってしまった。

とは言え、お金をかける気はあんまりない。性能? とかもあまり気にしない。それらしいものになって、自己満足できれば良い。

 お題:6mm 厚 5cm幅(10cm幅) 910mm の板材と適当な側板を使って作ること。

この条件で検討することに。

というわけで、こんな感じのやつってのを eagle で描いてみた。1目盛り 20mm として、線の合計は 701 mm --- いけそうだ。デザインはできるだけ直角を使う方針で。ちなみにラフスケッチであり、計算とかはしていない。配置とか正確に計算して調整したいけども。右は左で描いたものを回転させた。角度は -10.224 度。この値も計算したわけじゃなくて、最初に引いた線の角度。たぶん右の置き方にするので、側板は 160mm 幅あればよい。

作り方は、あまり検討していないが、少なくとも実物大の型紙を印刷できるようにするつもり。あと、接着剤は、セメダイン コンクリメントが良さそうな気がしている。



板材の寸法を決めて、再度配置したものが完成。板材は、切りしろなしで 858mm となった。スピーカーを取り付ける板のディメンジョンも併せて作成し、原寸大の pdf を作成! これを型紙としてコンビニプリントで普通紙印刷する。

型紙をダンボールに張って、組むのもありかな・・という気もしてきた。練習してみたほうが良いかも知れない。

実際にやってみた(1)。液状のヤマトのりをダンボールに塗って貼ってみたところ。水分が多いのでシワができた。--- 失敗かも。スティックのりでないとダメか。

実際にやってみた(2)。ダイソーで強力タイプのスティックのりを購入。型紙のほうに塗ってダンボールに貼ってみたところ、なんか良い感じ。



こんなものが出来上がった。側板とガイド?を張り合わせたもの。あるいは溝を掘った側板というべきか。ダンボールはサクサク切れるので、楽にしかも精度よくできた気がする。
さて、これを組んでしまうのは、もったいない。実機を作る際の冶具になりそうなのだ。難を言えば、組む際に接着剤が付いてしまうと大変マズそう。

実際にやってみた(3)。

冶具を別に作ることに。ダイソーに PP シートが売ってたので 1mm 厚を選択。透明が良かったのだが、色付きしかなかった。ポリプロピレンなら、ほとんどの接着剤は付かない。ただ精度よくつくれるかどうか。ダンボールは柔らかいからぴったりでなくてもどうにかなる。PP シートは、カッターで切り出した後、修正しないと。どうなることやら。



この写真は修整後。2枚別々に切り出したのだが、かなりのずれがあった。しょうがないので2枚を貼り合わせて同じになるように修正。一応 6mmの板はスリットに入る。--- ちょっと修正は難しいというか面倒だった。スリットに入ると書いたが、歪めないとギリギリ入らないような感じ。

苦労したし、この型紙中心で行く。板も現物合わせ優先。



完成! 貼り合わせた状態で穴をあけ、分離した後スペーサで2枚を接続。これを中心に組み上げていく予定。



またもテスト。ダイソー カラーボードでやってみた。5mm 厚で薄い板にも関わらず、冶具を外すのが面倒だった。理由は接着剤の盛り --- 干渉しないように、接着部分が型紙にあたるところを切っておこう。後、組んでからの側板切り出しは、うまくいかない気がしてきた。やはり切り出すのが先か。

側板の選択



ホムセン行ってみたが、どうもしっくり来るものがない。板厚が 13mm とか厚いうえに値段が高い。15cm 幅の板ならいろいろあるのだが、16cm は面倒なことに。結局、百均のまないたで決定 -- スピーカ用としては適切ではないかも知れないが、工作が楽そう。この上に組み付けて、最後に切り出す。余った部分はスピーカーが付くフロントパネルにも使う予定。厚みがあるので設計図とは若干形が変わる。

    ちなみに上の写真は ミーツのものだが、ダイソーにも同一形状のものがある。

    そういえば、ホムセンにフローティング用の板があった。30cm 幅 180cm で 1000円前後。表面がすばらしいし、使いたい気がしたのだが、なんか合わない気がして今回はパス。メモだけしておこう。なんか安いような気がしたが、一帖 3000円 か。8 帖だと 24000円 --- やっぱ安いか。


ところで、このデザインだと 実にもったいない感じでまな板が余る。 F02607H0用まで同じデザインにすると 8枚まな板が必要で同じ形の端材が大量にでることに。それでは、あんまりなので、F02607H0用は、余った部分で作ることにする。
 お題:まな板の残りと 30cm x 20cm 6mm厚 MDF , 10cm幅の板の残りを使って スピーカBOXを作る。
これで検討してみる。

木材の反り

さて、実機を組みだしたのだが、木が反っている。側板用のまな板が1枚。内側に使う 10c幅の木の端も。
困ってしまったのだが、かたく絞った濡れタオルを乗せておくと直るらしい。水分で膨張するので曲がった内側に乗せる。2枚あるなら、()←こうなるように挟む。

やってみたところ、6mm 厚の板は、数時間で反対側に反るほど効果があった。まな板もおおむね OK 。

ほぼ完成!



写真は、最後の側板を付ける直前のもの。ターミナルを付け、ケーブルも配置。側板を付けたら最後、中はいじれないので、結構不安だったり。スピーカの取り付け穴は、ダイソー コンパスカッターで切り抜いた。結構根気がいるが、両面から切っていったところなんとかいけた。

後は、水性ニスを塗る予定。そのためには、まず整形、次に全体をなめらかになるよう紙やすりをかけて、「との粉」なるものを刷り込む。ニスはなかなか乾かないので完成まで日数がかかる。
    「との粉」だが、砥の粉だそうだ --- つまりは石の微粒子。木目を埋めて表面をなめらかにするものだが、塗料をしみこませない役割もある。塗るのは水性ニスなので、しみこまない方が早く乾くだろうという判断。さて、これは MDF にも有効なのだろうか? ついでに実験してみる。
    --- 調べてみると、「との粉」で処理した後、サンディングシーラーを塗るのが有効だそうだ。とりあえず今回は、「との粉」のみで行く。


やってみた。

「との粉」 20ml 弱に同量の水を入れかきまぜる。量的にこんなものかと思ったのだが、塗りすぎたようだ。乾いた後にサンドペーパーで落とすのだが、いくらでも落ちる --- まるで土くれを磨いているよう。あるサイトでは、全部落とすつもりで磨けばよろしいとのこと。もっと少量で良かったかも。



つぎに、ダイソーの水性ニス(けやき)を塗った。できるだけ薄くと心掛けたが、垂れないギリギリだったかも知れない。数時間たってだいぶ乾いてきた。スピーカBOX のほうは、綺麗な木目が浮き出てきた。表面は少々ざらつく感じ。MDF は、ザラザラ。これを2〜3日乾かして、サンドがけして 2度目の塗りの予定。MDF はどう仕上がるのか?塗膜はできているわけだから、いけるとは思うが、まぁやってみる。



2つめ完成! ついでに、 F02607H0用バスレフも1つ。
写真は、それぞれ2度塗り後乾燥中のもの。バスレフは、けやき→ウォールナットに変更。MDF の色が濃くしっくりこなかったので。あとスピーカの穴が左にオフセットされているが、前の設計で穴をあけたのを流用したため。ダクトは、トイレの詰まりを流すアレの柄。内径 19φ 4cm 。吸音材はマットを切ったもの。上下にだけ貼っている。

    ダクトの候補として、ダイソー クレイツールのパイプも良さそうだった。あるいは、これらのパイプを型に厚紙を巻き付けて紙パイプを作るのも良さそうに思えた。


アンプについて



とりあえず bluetooth スピーカーにしたい。それで、左のタイプを入手した。だが、どうもスピーカーケーブルが長い場合 LP フィルタが必要らしい。最初から右のタイプを買えばよかった。とはいうものの 普通の 10uH インダクタ使ってるみたいだし、手持ちがある。コンデンサを 0.1 uF にするとカットオフ 160kHz 。
    なんか、22uF を沢山持ってた。1.3A の小さいやつと 3A ぐらいの表面実装型。これと 0.1uF のフィルムコンデンサで作る。カットオフは 100kHz 程度。

アンテナになるのを防ぐだけだから、これでも良いのかも知れない。あとは、電解コンデンサが目立つ。左のタイプで良かったのだろうか? ちょっと不安。まぁでも、最終的には ESP32 で作りたいしダメでも無問題。

つくり終えて

精度よく作ろうとしたのだが、思うようには行かなかった。板が歪んでいたりして、完璧なのは難しい。ニス塗りもあまり上手に出来たとは言えない。少々残念ではあるが、まぁこんなものだろう。

さて、作成をしていて思ったのが、CNC があれば・・・みたいな。スピーカー穴のくりぬきも完璧だったろうし、側板に溝を掘ることで、組み立てに苦労しなかっただろう。また、固く重い板材を採用することも出来たはずだ。aliexpress を見れば、CNC1610 あるいは CNC2418 といったのが $200 以下で買える。Arduino 互換のコントローラ付きで、この価格。しかもレーザーモジュールをオプションとして付けられる。死蔵してしまいそうで躊躇しているが、いずれ検討してみたい。
posted by すz at 18:51| Comment(0) | TrackBack(0) | 日記

2016年11月21日

OPi Zero クラスタボード(1)



OPi Zero クラスタボードの回路と部品配置が決まって来た。上のパターンは、INA219 の部分で、なんとか乗せることが出来た。まずは、ここらでスナップショット。 。パターンが出来ると発注したく .... 少々手直しは入れたが我慢できず発注!

 ・回路図:suzbrd_opizero_v0.06.pdf
 ・EAGLEファイル:suzbrd_opizero_v0.06.zip
 ・発注ファイル:suzbrd_opizero_v0.06-out.zip
今回は、ITEAD Studio にした。送料が $6.43 で合計 $21.33 。Fusion PCB(Seeed Studio)より少し安い。
v0.06 の問題点:
 ・ MINI-360 フットワーク の幅が 0.5mm 程狭い。0.35 inch ではダメで 0.37 inch ?

11/22 発注 11/30 発送 12/06 受け取り(予定)
 ・2週間ほどで受け取れるようだ。


時系列で思いついたことを記して来たが、よくわからなくなってきているので、まとめを書いておく。この記事は、変更があったら、訂正を入れる。

ボードについて


サイズは、99.06 x 49.53 mm 。これで FIX 。サイドに 2.54mm の余白を作ったので、PCBレール を使うことが可能。この上に 2つの OPi Zero を取り付ける。そのためには、13pin と 3pin のピンヘッダを取り外し、ピンソケットを下側に付けなければならない。
ピンヘッダを一本一本外すことは容易いが、スルーホールの中のハンダの除去が難しい。

左側の OPi Zero を ノード1とする。右側はノード2。基本的に対等ではあるが、一部違う所があり、普通はノード1がマスターになることを想定している。

ボード上にある3つの長方形は、MINI-360 DC DC コンバータモジュール。DJ ジャックの 12V (〜 20V) を入力し、OPi Zero と ボード上の USB に 5V を供給する。この DC DC コンについても改造が必要。1つは、EN ピンの引き出し。もう一つは、可変電圧になってる所を 確実に 5V にする改造 -- こちらは必須ではないものの、少なくとも 5V に調整済みのうえ取り付ける必要がある。
右側のエリアの前後に USB type-A メスが付く。DJ ジャック側を USB1, コネクタ側を USB2 とする。この2つの USB はそれぞれホストの切り替えが可能である。

この DC-DC コンは、aliexpress で MINI-360 DC DC で検索。
よくよく見ると、空きパターンがあるタイプがある。こちらの方が改造には都合が良い。 まぁ古いタイプみたいだから、写真はどうであれ、空きパターンがない方が来るだろう。

裏面はこんな感じで、なにもない。
IC自体 は MP2307 -- 4.5 〜 23V の電源入力レンジ。放熱が十分であれば、連続3A の出力が出来る。(ピーク 4A) 。だが、このモジュールは インダクタが小さいのでそこまで流せない。2.3 A は流せるが連続は無理であった。連続では 1.8A ということになっている。

電圧の設定は、出力を VR + 8.2K で分圧し FB に接続している。VR を外し抵抗と交換することで、固定電圧にする。
誤差を無視して計算すると、

39k : 5.32v
33k + 470k パラ: 4.98v
22k : 3.41v
22k + 470k パラ : 3.30v

こんな感じ。

上限を指定したうえで調整したいのであれば、VR とパラに 抵抗を入れる。最大出力が 17V であることから VR はおそらく 150k 。
56k パラ : MAX 5.52v
27k パラ : MAX 3.51v

この改造の方が良いかも。


2012 の抵抗を付けてみた。5番ピンがFB でそれが VR の右上に接続されている。だから、これでパラレルに接続したことになる。こういう改造なら、空きパターンのない方でも楽。

確認してみた。12V 電源で、5V 系は 5.33V まで。3.3V 系は 3.34V までだった。まだ回せるかも知れないのだが、だいたいこんなもの。作った 5V 系 は 5.22V に調整してタブレット用に使う予定。3.3V 系は ESP32 ボードに回す。

なお、2012(0805)サイズで、これらの抵抗値を入手するには、例えば この25種 が安価。
15K 18K 20K 22K 24K 27K 30K 33K 36K 39K 43K 47K 51K 56K 62K 68K 75K 82K 91K 100K 120K 150K 180K 200K 220K


2A 連続出力可能なのか?

USB resistor というのを入手できたので、試したみた。1A は問題なさそうに思える。2A の設定で 2.3A 流れるのだが、しばらくすると一瞬切れてまた 出力されるのを繰り返す。どうやら効率が急に落ちて温度が上がりすぎるようだ。データシートによるとサーマル・シャットダウンは 160℃。内部ではそこまで温度が上がってしまうということ。... というわけで少々当てが外れた。

信号線のアサインを後で説明するが、その前に、OPi Zero コネクタの信号線について

26pin CON 13pin CON 3pin CON
3V3(1) 5V (1)5V (1) GND
TWI0-SDA 5V GND (2) U0RX
TWI0-SCL GND USB-DM2 (3) U0TX
PWM1 U1TX USB-DP2
GND U1RX USB-DM3
U2RX IO1 USB-DP3
U2TX GND LINEOUT_R
U2CTS TWI1-SDA LINEOUT_L
3V3 TWI1-SCL TVOUT
SPI1-MOSI GND MIC-MBIAS
SPI1-MISO U2RTS MIC1P
SPI1-CLK SPI1-CE0 MIC1N
GND (26)SPI1-CE1 (13)IrRX

3pin には、シリアルコンソールが割り当てられている。13pin は、USB 2ch と アナログ系など。このうち USB の 4pin分のみ使用する。

26 pin は、デジタル系。すべての信号は、GPIO として使用できるが、専用の機能が割り当てられている。また、これらは 20mA まで電流を流せる。

機能として、2 つの I2C (TWI0,TWI1) 、2つの UART (U1,U2) 、および PWM1 を使用し、後は GPIO として使用する。



信号線の割り当てと機能

ノード1 U0TX - ノード2 U1RX
ノード1 U0RX - ノード2 U1TX
ノード2 U0TX - ノード1 U1RX
ノード2 U0RX - ノード1 U1TX
相手の コンソールを UART1 と接続してある。抵抗を間に入れるようにしており、接続しないことも可能


ノード1 U2TX - ノード2 U2RX
ノード1 U2RX - ノード2 U2TX
ノード1 U2CTS - ノード2 U2RTS
ノード1 U2RTS - ノード2 U2CTS

UART2 は、CTS/RTS も含め、相互に接続。抵抗を間に入れるようにしており、接続しないことも可能。CTS は、自ノード電源でプルアップしている。電源が入ったときに CTS が L レベルなら、ブートしないような制御にしようと目論んでいる。

ノード1 TWI0-SDA - ノード2 TWI0-SDA
ノード1 TWI0-SCL - ノード2 TWI0-SCL
まず、この I2C チャネルを使うために、OPi Zero の改造が必要。これらは、Zero 内で、自ノード電源でプルアップされている。共用して使うため、外さないといけない。プルアップはこのボード内の常設電源に対して行う。

このチャネルは、ボード内の いくつかのデバイスに接続できる。(オプション)。外部にも出力されていて、想定しているデバイスに接続できるようにしている。(後述)


R151,R152 を外すだけなので、比較的容易な改修。

ノード1 TWI1-SDA - ノード2 TWI1-SDA
ノード1 TWI1-SCL - ノード2 TWI1-SCL
ボード内では使用せず、外部に接続する。この I2C チャネルを使うために、OPi Zero の改造が必要で、プルアップ抵抗を外さないといけない。このプルアップの取り外しはリスクが大きく TWI0 のものより困難である。今のところ、どのように使用するか想定していない。

プルアップ抵抗を外さないと、片側が電源OFFのときプルダウンになってしまう。そのため、ボード内のプルアップも必要になる。それでも H が 2/3 VCC で通信が出来ない恐れがある。その上 通常時でも 1/3 の 約 700 Ωを駆動しないといけない。Zero 自体はいけるにしてもデバイス側は無理かも知れない。使えればラッキーというところ。


R153,R154 を外すのだが、横の R16,C14 にダメージを与えないようにしなければならない。特に R16 を飛ばしてしまうと起動しなくなる恐れがある。

PWM1
圧電サウンダを取り付け BEEP として使用することを想定し、トランジスタを介した出力になっている。これは、ノード1、ノード2別個にある。圧電サウンダを使う場合、パラレルに 抵抗もしくはインダクタを入れる。入れなければただのオープンコレクタ出力である。

MOSI(GPIO)
それぞれ相手ノードの電源を ON/OFF できる。Nch FET を介して MINI-360 の EN に接続されており、H にすると OFF となる。強制リセットの代替として使用。

MISO(GPIO)
USB1 を切り替える機能。デフォルトはノード1だが、L にすると、ノード2に切り替わる。共用なので H にしてはいけない。

IO1(GPIO)
USB2 を切り替える機能。デフォルトはノード1だが、L にすると、ノード2に切り替わる。共用なので H にしてはいけない。

CLK(GPIO)
ボタン1:外部にタクトスイッチを接続し、ボタン入力 として使えるが、L にすることで、リモートでのボタン押下にも使用できる。ノード1、ノード2共用。抵抗を入れてあるので、出力がぶつかっても問題ない。

CE0(GPIO)
ボタン2:外部にタクトスイッチを接続し、ボタン入力 として使えるが、L にすることで、リモートでのボタン押下にも使用できる。ノード1、ノード2共用。抵抗を入れてあるので、出力がぶつかっても問題ない。

おまけとして、ダイオードを通した外部出力ピンを持っており、ノード2から引き出したリセットに接続できるようにもなっている。このボードをクラスタではない使い方をしたときに、使うケースがあるかも知れない。(後述)

CE1(未使用)
唯一の未使用ピン。使うとすれば、リブート用。リセット信号を取り出しここにつなぐ。あるいは 割り込み割り当てて L になったらリブートさせる。後者は代替案であり、リセットほど強制力はない。でもリセット信号の取り出しが困難ならば、ないよりはマシだろう。


リセット信号がどこにあるかと言うと、C301 -- すなわち、CE1 の隣であった。CE1 につなぐのはどう見ても簡単。



クラスタ以外での使用方法

USB の切り替えには、NX3DV221 というチップを使用する。これの入手が難しかったりするが、それ以前にあまりに小さいためにハンダづけが困難である。そういう理由もあって、他の利用方法も検討している。

中央右、線が集中しているところが、NX3DV221 のパターン。基板は作れそうだが、実装は無理かも知れない。


クラウド
とにかく、多数の Zero を動かしたいという用途では、USB の切り替えはもとより、増設USB などいらないだろう。相互の再起動の仕組みや、コンソールの接続は有用だろうから、2つの DC DC コンだけ生かす。

こういう使い方では、13pin コネクタの取り外しも必要ない。まぁコンソール接続もいらないという場合は、 3pin コネクタの取り外しもしなくてよい。そういう使い方でも 電源が 2個に1つで済み、12V電源が使えるのはメリットだろう。

開発マシン+開発ターゲット

さらに簡略化して、DC DC コンを1つにする手もある。MINI-360 は、1.8A まで連続で流せる能力があるので、ノード1本体のUSB から ノード2の USB OTG に給電する。( ちなみに OPi Zero は ‘Armbian IoT settings’ だと アイドル状態で 110mA とかそのレベルらしい。)

相互接続も ノード2コンソール程度にしておく。運用ではあまり有用ではないのだが、1台を主に実験用に使うならば意味がある。

こういう用途でのみ、ノード2リセット信号の取り出し→ボタン2への接続を利用する。


I2C デバイス

EEPROM (1010xxx : 1010000 外付け / 1010001 内蔵)
クラスタを設計する場合、わずかな容量であっても共有ストレージが必要だろう。そのために EEPROM を接続する。接続可能なのは、正副2系統。幸いなことに、RTC + EEPROM モジュールが格安で手に入る。これを外付けにして正系とする。副系は、ボード内に付けられる。

正系が外付けなのは、このボード自体を交換する場合を想定してのこと。交換したらすべての情報がなくなるのであれば、復旧に手間がかかる。回路などないに等しいのだが、一応 DC DC コンが壊れる可能性がある。 また、このボード自体が実験用である。改修して交換みたいなことはするだろう。

... ということにしておく。実際の装置でも EEPROM をケーブルで接続し筐体に貼り付けるようなことをするそうだ。それがないと、ボード自体を交換したとき困るのは本当らしい。

この RTCモジュールは aliexpress で DS1307 を検索

DS1307 (1101000)

RTC モジュール。まぁあったほうが良いだろう。幸いなことに、必須とした EEPROM モジュールのおまけで使える。

スタンドアロンで使うものではないから、いらない場合も多いだろう。そういう場合は、正系 EEPROM も使えないから、ボードの副系のみで運用する。

追記:実は高精度のDS3231版のほうが安価だったり。

INA219 電圧・電流計( 1000x0x )
(1000000 NODE1, 1000001 NODE2, 1000010 USB1, 1000011 USB2)
オプションで、ボード内に4つ接続することを計画している。付ける場所は、Zero の電源入力に2つ。USB1,USB2 に2つ。

常時測定するような使い方はしないかも知れない。そして、INA219も小さいのである。ハンダづけが難しい。それ以前にアートワークが厳しく、パターンが入れられない可能性がある。
入手は、aliexpress で INA219 SOT23-8 を検索。

なお、安いモジュールもある。わざわざボード上に常設はしないが、測定したいという場合に使える。その場合も ボードに R100 -- 0.1Ω は付けておく。平行に仮付けして 0.05 Ωで計測。
こちらは CJMCU INA219 で検索。

SSD1306 ( 011110x )

表示デバイスが一切ないのは、実験用としても問題だろう。格安の OLED モジュールを接続することを検討。SSD1306 を使ったモジュールには、単色、2色、フルカラーがあるようだ。青+白2色を予定している。

aliexpress で oled module あるいは SSD1306 で検索

この 表示デバイスは、マスターとなったノードが使用し、運用に使う。デバッグにも必要であれば、TWI1 の方を使用する。


SPI-Flash

本体の裏に SPI-Flash を接続できるようになっている。これはブートも可能。クラウドなんかでは有用だろう。どうせ別に NAS がある。クラスタにおいても、USB ストレージを付けるのであれば、OS はそこに入れれば良いのだ。ノードダウンして切り替えるならば、もう一台が OS ごと引き継ぐ。スタンバイ側は、ストレージがないわけだが、マスターをNASとして使えばよい。こうすることで、micro SD が空く。

なんというか、本体が安すぎるせいで、micro SD が高価なものに思えてしまう。SPI-Flash の価格は、8MB が 10個で $4 ぐらい。4MB はもっと安く $4 も出せば 20 個買える。16MB は少し高く 5 個で $5 を超える。これらのうち標準的なサイズは 8MB である。1MB は U-boot で使うので、残り 7MB にカーネル+initrd を入れる。4MB でも良いとは思うのだが、足りなかったときどうにもならない。SPI-Flash を付けるのは比較的簡単だが、付け替えは厳しい。8MB にしておくのが無難。

ちなみに、ブートできないような状態になってしまっても、micro SD からのブートは可能で、いわゆる文鎮化は心配しなくて良い。

入手は、aliexpress で、25Q64FV, 25Q128FV あるいは W25Q32 を検索。



PCBレール

(aliexpress で PCB guide rail で検索)

PCB をマウントするものを探してはみたが、ピンと来るものが1つだけ見つかった。長さは 86mm で少し大きい。このボードを入れてもロックの位置にすらこないので、当て板が必要。

当て板は 2mm 厚 まで。長さは、おそらく 25mm ぐらいで端まで行く。外付けモジュールを付けるなら、もう少し大きく作って そこにマウントすれば良いと思う。

クラスタの場合、裸の 2.5in HDD もレールを付ければいけるのではないかと思う。そう出来れば割とすっきりまとめられるかも知れない。

で、これを何に取り付けるか? L アングルで良さそうな気も。


ケース

(aliexpress で aluminum box 105 で検索 、SZOMK AK-C-C69a:w105 h40 d92)

ケースなど必要なのか?という疑問はあるが、見つかったので書いておく。基板は入るが、高さがギリギリである。

イーサの HUB とか USB Disk とかを 組み合わせて 使うものだから、全体で様にならないと意味がないと思うのだ。でもまぁ一応。


そういえば、よくある安物の5ポートHUB 。こいつのサイズが、97 x 67 x 25 mm だそうだ。


他に、w105 h55 d150 というのも見つかる。これも溝があるので入れられそうだ。これぐらいの大きさになると、HUB と DISK も入れられて良いのではないだろうか。

ちなみに、100mm の基板は入るが、下のでっぱりと干渉しそうな。注意が必要。

100mm で思い出したが、100mm x 72mm の Pico-ITX のボードはギリギリまで部品が配置されてるものが多く(普通)入らない。これらのケース内幅は 98mm ぐらい。また、3.5 inch HDD は入らないが、HDD 用マウンタにも合わない。HDD は 101.6 mm だが、このケースは 106mm 。さらに、2.5 inch HDD は、作ったボードを入れると、タテにもヨコにも置けない。長さが 100.45 mm なので、重なるように配置しないといけない。なんとも中途半端ではあるが、100mm幅の板が丁度合うのは利点。2.5 inch HDD なら、板にマウントしてつりさげるような配置ができる。

ちなみに、Pico-ITX の SBC EspressoBin


ヒートシンク

( banggood で入手 )

一応書いておくと、ちょっと背の高いのが欲しかったので、40x40mm 11mm高のを 切りだして使おうかと。aliexpress でも heatsink 40mm*40mm*11mm で検索すると見つかるが、banggood のやつが具合が良い。フィン 13枚なのは同じなのだが、切り目?が 10本のが良いのだ。

追記:とか書いておきながら 35mmx35mmx17mm のタイプも買っていたり。


こちらは、aliexpress で 「heatsink 40mm 11mm」で検索すると見つかるタイプ。なにしろ安いので気軽に消費できる。
これを 図示したとおりにカットできた。道具は、万力+金のこ。飛び出している部分は wifi チップにかぶせる。これのマウントの方法だが、H2+ SoC に 両面テープ。そのままでは wifiチップも SDRAM も浮くので、0.5mm厚の放熱シート(シリコンシート または αGEL)を挟む。

ちなみに、フィンの数は 13 だが、削った方の切れ目が 8本のタイプと 10本のタイプがある。今回は 8本の方を使った。(2) で切りだした部分も、wifi にかぶらせる突起部がないだけで使える。というか、うまくやれれば 同じ形状を2個取り出せる。(1) と (2) を切り離さないようにすれば良い。あるいは、(3) の切り方を工夫するとか。

35mmx35mmx17mm も同じような形状を切り出せた。背が高くなってもかまわないなら、こちらの方が良いかも。



チップ抵抗の取り外しは、2本のハンダごてを使うと書いたが、ふと USB solder iron を検索してみたところ、$4 ちょっとで買えるようだ。

昔にあったタイプとは違い、こて先が交換可能になっている。(こて先も売っている)。 それだけ実用的に使えるということか?ちなみに、5V 8W で 15秒で使え 30秒で冷めるそうだ。キャップも付属していて、携帯するのに配慮されている。--- 携帯などしないが、すぐ仕舞えるのは便利。今はタブレットの普及で USB AC アダプタも高出力なものが多く使い勝手が良くなって来ているのかも知れない。

ちなみに昔のタイプを所有している。熱量は少々足りない印象だった。形状のせいか、つい先に触ってしまい痛い思いをした。さて、新しいタイプはどうなのだろう?

追記:新しいタイプが来た。早速電流を測定してみると 5.1v で 1.78A : 9W ほど。旧型も火を入れて見たが 1.0A 程度で 5W 。差は歴然で これなら使えるような印象。


ピンヘッダの外し方

戦々恐々としていたわけだが、そう難しいものではなかった。
簡単に言えば、一本づつ、ハンダごてを当ててラジペンで引き抜くだけである。問題は、基板とラジペン両方に力がかかること。両手を使ってしっかりとやらないといけないわけだが、その上でハンダごてを正確に当てる必要がある。ハンダごてを机に置いても出来るが、万力などで固定したほうがやりやすいだろう。

後処理は、はんだ吸い取り線を軽く使った後、無理そうなのは 0.8mm φ のピンバイスで力をかけずにえぐる。私は、ダイソーにあった「精密ハンドドリル」を使用した。

とか書いてみたが、実は練習での話。本番では、はんだ吸い取り線はあまり上手くいかず、だいたいは「精密ハンドドリル」のお世話になった。USB 顕微鏡で見てみると 一部ランドにダメージがあった。大丈夫だとは思うが、それほど完璧にできたわけではなかった。


posted by すz at 03:13| Comment(0) | TrackBack(0) | 日記

2016年11月04日

Orange pi zero



存在がリークされていた、Orange pi zero が発売された。価格は 256MB 版が $6.99 送料込みだと $10.1。512MB 版は +$2 の $8.99。
スペックは

SoC Allwinner H2(+) quad core Cortex A7 @ 1.2 GHz
Memory 256 / 512 MB
micro SD card slot
100M Ethernet
WiFi (802.11 b/g/n)
USB 1x USB 2.0 host
micro USB OTG port

26-pin コネクタ (Raspberry Pi B+ 互換、SPI1, UART1, UART2, TWI0, TWI1 )
13-pin コネクタ (2x USB 2.0, TV out, lineout, microphone, IR receiver )
3-pin コネクタ (serial console)

Power Supply 5V 2A via micro USB port (or optional PoE)
Dimensions 52 x 46 mm


HDMI がない代わりに イーサ も Wifi も付いている。それでいてお安い SBC (某 Zero とは違って複数買いも可能)。特筆すべき機能としては、PoE も一応可能という点。一応というのは、ジャンパしなければいけないのと、5V でないといけないという点。なんの保護もないから、5V以上を付加すると、5V系にすべてその電圧がかかる。ジャンパの箇所は、裏面左下の R29,R358 。

PoE は使ったことがないので知らないんだが、ここに件の DC-DC コンバータをつなげれば、電圧はある程度自由になる(かも)。あと、SPI Flash のパターンもある(SPI0)。ここからのブートも可能らしい。NAS を使い microSD を空けたい向きには朗報か?




回路図(pdf)
回路図を見ると Core 電圧は、1.1v と 1.3v の切り替えが可能。 3.3V 系の電源は、3 系統あって、SYSTEM,CORE,SDRAM を加えると 6 系統もある。(One もそうだが)チープではあっても、電源回路はちゃんとしている印象。あと、Oneの回路図にしか載っていないが USB の 5V 出力は、SY6280 という電流制限つきのスイッチICが使われている。Zero も同じかも知れない。 :間違い、後述。

さて、このブログでは使い方などには触れない。なぜ取り上げたかというと、その基板サイズ --- 5cm x 5cm に収まってるわけで、なにか基板を作ってみたかったり。

arduino ユニバーサル基板で示すと、多分こんな感じ。イーサ と USB がだいぶ背が高い。52 x 46 mm らしいが、コネクタがはみ出てる分が込みになっている。現物が来れば分かることだが、1.9 x 1.8 (inch) ではないかなぁ。


実は、NanoPi NEO という 少し前から発売されてた SBC もある。こちらも 256MB/512MB があって、$7.99 , $9.99 (ただし送料は $10) 。こちらの方が 40mm x 40mm と小さい。専用のヒートシンクとか ケースとかもあって、悪くない。何故 OPi Zero を選んだのか? というと、512MB が $5.9 で出るものとばかり 思ってたため。まさか Wifi が付いて、$3 も予定より高くなるとは! でも Wifi は $3 では買えないし、まぁいいかというノリ。あと、5cm x 5cm というのも基板的にでかい。4cm x 4cm では、入れられる回路が少なくなる。

作りたいものというと ...2台使ってアクティブ--スタンバイ クラスタにする基板 -- とか。
 1) シリアルを相互に接続。
 2) お互いの電源を OFF できる回路 (リセットがあると良いのだけれどない)
 3) USB host を切り替える 回路。
 4) 電源回路
 5) 表示用ディスプレイ(I2C)

3) は無理かと思ったんだけれども、例えば NX3DV221 -- これが aliexpress でも買える。だいぶやる気になってきた。XQFN10 というパッケージなんだが、0.5mm ピッチで サイドまで電極がある。ハンダづけは一応可能そうだ。
4) 電源は 2A では足りない。USB とも 別にして 3 つ DC-DC コンが必要か? 12V 2A (かそれ以上)から供給すれば良いだろう。件の DC-DC コンを使うとして、EN ピンを 引き出して GND にショートすれば OFF にできる。

件のDC DC コンバータとは、これのこと。前の記事で紹介した。

ちなみに、micro USB の VBUS が 5V ということになっていて、ピンヘッダの5Vピンと直接つながっている。となると ... ピンヘッダに5Vを供給する場合に、USB device として使うには? ... 無理かな。

1) のシリアルはどうしたものか? console 用が UART0, その他 UART1,2 がある。console を含めて接続してしまうかどうか? そうした場合、外部との接続はどうする?
console を接続しておくと、panic したときのログが取れるのである。通常時はどうにでもなる --- USB OTG ですら使えるはずだ(使えればの話だが)。... となると console ⇔ UART1 とか。UART2 同士も接続して おいた方が良いか。network を通したりするかも知れないので、CTS/RTS もある UART2 が都合が良い。

5) の I2C は共用で良いのかなぁ。まぁ基板上に置いても見えないわけで。そんなことより、I2C の RTC -- これを共用する。メモリエリアがあるタイプを選べば、状態を通知しあえる。I2C も2つあるから、1つは外部デバイスを接続できるようにしよう。
生きてさえいればシリアルで状態を通知できるが、死んでいると状態が分からない。最終状態を書き込んでおければ、起動して良いものかどうかが判断できるだろう。こういう重要な役割を担わせるのであれば、外部に出さない方が良い。そうなると I2C 2つとも使うことに。

ディスプレイは、こんなやつがある。OLED 0.96 in で 128x64 。サイズは 29.3mm x 27.57mm 。これはバックライトは必要ないが、別途 バックライト制御用の信号線が必要かも知れない -- メモ。

追記:RTC はヤメて I2C EEPROM にするかも。DS1307 が RAM もあって良いのだが、バッテリーを置く場所がない。電気二重層を使おうとも思ったが、それも無理。逆に EEPROM がやたら有用な気がしてきた。秋月で単価 20円のやつが 64kbit の容量がある。装置固有の情報を置いたり、ログを取ったり、相手装置からも読めるわけだし。RTC が必須の装置でなくなれば、外部I2Cにつないでも良いし。


ところで、1列のピンヘッダは上部に実装されてしまっている。これを下向きに実装しなおさないと。抜くのは1ピンづつやれば良く可能だろうが、穴を綺麗にするには? なんだか自信がないぞ。ダメそうなら、作成基板の下に付けないといけない。考慮しておかないと。

考慮といえば、コネクタの方向。イーサを後ろ向きだとして、DC入力や、USB はイーサと同じ向き。そうなると、micro USB や micro SD はフロントということに。USB disk と一緒に、ケースに入れたとして、基板のフロント側はアクセス性が悪い。メンテナンスの時のみアクセスするという位置づけで使いたい。

USB disk だが、例えば 左のケーブルから基板を取りだし、自分で配線することで、コンパクトに収まるかも。USB コネクタも付けずに直接配線すれば、接触不良のトラブルが起きにくくなる。あるいは右のケース。同じようにケーブルを直接配線したうえで、ケース上にこの基板をマウントするとか。
ただ、どちらの例も古いものなので、512B セクタの HDD しか使えない(だろう)。ところで、右のケースで USB 3.0 対応のものもある。その場合、付属のケーブルを使い コネクタを介さないと無理。USB コネクタの向きはよくよく考えないと。


これは、3.5inch ベイ用のマウンタだが、幅が 101mm 。上部にこの基板がマウントできそうだ。随分とチープな仕上がりになりそうだが、それも良いかも。

後は I2C ディスプレイ、フロント側にコネクタを出す。そういえばボタン。付いてないような。GPIO が余ってるだろうか?

26pin CON 13pin CON 3pin CON
3V3(1) 5V (1)5V (1) GND
TWI0-SDA 5V GND (2) U0RX
TWI0-SCL GND USB-DM2 (3) U0TX
PWM1 U1TX USB-DP2
GND U1RX USB-DM3
U2RX IO1 USB-DP3
U2TX GND LINEOUT_R
U2CTS TWI1-SDA LINEOUT_L
3V3 TWI1-SCL TVOUT
SPI1-MOSI GND MIC-MBIAS
SPI1-MISO U2RTS MIC1P
SPI1-CLK SPI1-CE0 MIC1N
GND (26)SPI1-CE1 (13)IrRX

使い道が決まってないのは、SPI1 の5本と PWM1,IO1 の計7本で、システムで必須な GPIO が相手の電源 OFF と USB 切り替え2本 。ボタンは付けられるとして2つぐらい。
どうしても足りないなら、I2C をひとつにしても良いが ... ボタンのスペース自体も足りない。

いろいろ考えるといきなり基板を起こすのは無理がありそう。件の DC-DC コンは 使えるのかどうかテストしないといけないし、USB device が使えるかどうかもテストがいる。USB スイッチも別途テストしたいし。なかなかに前途多難。本当のところは、基板を設計したいだけだったりするのだが。


ところで、クラスタにしてどうする? という話があるかも知れない。単に複数動かすのではなく、アクティブースタンバイ クラスタを意識した構成。まぁ実用上はたいした性能ではないし、堅牢かというと、そうでもない。ちゃんとしたものは恐ろしく高価なわけだから、手軽に実験ができる学習用という位置づけを狙う。USB 2.0 disk なら、まだ切り替えられるものを作れそうだが、USB 3.0 やSATA はお手上げ。この辺が落としどころかなと思う。

そういえば、Wifi も付いているのであった。これを外部とのアクセス用と決めれば、イーサの方はクロスケーブルで直結して、インターコネクト専用とすることも出来る -- メモ。
ただし、技適問題があるから、あくまで実験用と考える。あるいは、逆に Wifi をインターコネクト専用とする。アンテナを一か所に集めてシールドしてしまうのはどうか?。--- これなら、技適問題をクリアできるかな?


SPI Flash について。

 ・http://linux-sunxi.org/Bootable_SPI_flash
ここ見ると、U-boot を起動させるものらしい。SD boot が失敗したら SPI Flash からブートするとのこと。network boot が可能なんだろうと推測されるが、容量があれば、カーネル+initrd も入れておける。

U-boot だけなら、1MB で済む。カーネル+initrd が、7MB 以下になるなら 8MB を使える。SPI Flash は、16MB までの製品があり入手は容易。4MB のものは、中途半端らしい。

入手するには、aliexpress で、25Q64FV, 25Q128FV を検索。


OPi シリーズの Wifi モデルに共通の いかにもチープなアンテナ。いくらぐらいするもの?と思ったので aliexpres で調べてみた。



ようやく見つけたのが左端。同じショップで 他に違うタイプのを扱っている。これらは、5個で $11 〜 $12 だった。 日本で買うと 1つ 500 円ぐらい。結構するのであった。コストが上がるのであれば、Wifi などいらないとも思うのだが... Wifi なし 512MB バーションが安く出るといいなぁ。

感度は、3DBi と書いてある。真ん中の FPC タイプは、よく目にするが、こいつと同じぐらい。


USB OTG について

 ・http://forum.armbian.com/index.php/topic/1426-connect-orange-pi-one-through-usb-otg-with-a-computer/

ここ見ると OPi ONE で使えているようだ。ドライバーは問題なさそう。後は電源回り。

ONE/Lite は、電源入力として使えないと書いてある。Zero は 電源入力。回路も違う。
ONE/Lite では、HOST として使った場合、SY6280AAC を通して電源を供給する。そのための信号線は、USB0-DRVVBUS で出力電流は 680mA に制限される。ID ピンは、USB0-IDDET に接続され、デバイスが接続されたことを認識できるようになっている。DEVICE として使った場合は、VBUS は何も利用されない。ついでだが、標準タイプの USB の VBUS は、5V と直結されていて、電流制限はない。

さて、Zero の方、ID ピンは、USB0-IDDET に接続されている。ということは、デバイスとして使える。問題は、ピンヘッダから 電力を供給して、VBUS にも電圧がかかった場合。Pch MOS FET (AO3415A) が間に入っていて何か回路がある。どうも VBUS の電圧が高いと ON になって 内部に電流を取り込むが、VBUS の電圧が低い場合に電流が出力されないようにする回路に見える。要するに HOST として使う場合の方が問題がある。標準タイプの USB の VBUS は、5V と直結されていて、電流制限はない。

ちなみに、OPi PC と 最近発売された OPi PC2 -- これらは、USB すべてに SY6280AAC が入っている。ただし2段になってるポートは、合計での制限。電流制限は 1.1A 。micro USB は、One/Lite と同じで 680mA 制限。

さて、USB デバイスとして使う場合、g_ether を使えば、ネットワークも通せる。HOST 側には g_ether を使うドライバもあるわけで、HOST 用ケーブル+通常ケーブルで 通信経路としても使えるはずだ。
この SBC で最速のインターフェイスは、USB である。これに network が通るということは ... インターリンクには最適ということでもある(かもしれない)。ケーブルは自作してスマートなものにすることもできそうだ。
USB は、オーバヘッドが大きそうで、実際は最適というわけではなさそう。パケットは 512B までだし、性能的にも怪しい。

あと、g_ether は、標準の USB イーサ。Windows からも使える(はず)。ちゃんと使うには、ルーティングがネック。仮想マシンなどと同じ設定で良いわけだから設定レベルだとは思うのだが、私は良くしらない。
追記:Windows10 マシンと接続する場合、標準機能の「モバイルネットワーク」を使うそうだ。

ところで、SPI Flash でブートできて、USB デバイスになる --- ということは、なにか USB 装置を手軽に作れるわけだ。こういう役割を Rasberry pi zero に期待したんだが、買えないなら仕方がない。256MB もメモリがあるボードが $6.99 (数量を買うときは、送料分 +$1.75) で買えるわけだから、ベアメタル・プログラミングしてみるのも面白いかも知れない。まぁ initrd にアプリを突っ込んで、専用機に仕立てるほうが簡単そうだが。
実をいうと、自分で中途半端と書いた 4MB の Flash をなにこれ安いで買ってしまった。20個で $3.41 。そのときは知らなかったわけだが、8MB でも 10個 $4.2 程で買えるのであった。initrd + kernel で 3MB しか使えないので、どうなることやら。

ベアメタル・プログラミングとか書いたが、おそらくはカーネルドライバですべてを行う方が簡単。ダウンロードして insmod するアプリをでっちあげて arduino もどきの出来上がり ... とはいかないだろうか。

こうやって使うとき、背の高い部品は邪魔。外したからと言って消費電力が減るわけではなさそうなんだが、なんかすっきりしない。部品を外したり、壊しそうなことも含めて、いろいろやってみたい。


制御線案

SPI1-MOSI : H で相手ノードの電源を OFF (デフォルト は電源 ON) 
SPI1-MISO : L で USB1 をノード2に割り当て (デフォルト は ノード1)
 (入力) H マスターノード=ノード1、L マスターノード=ノード2
SPI1-CLK : L で USB2 をノード2に割り当て (デフォルト は ノード1)
SPI1-CE1 : H で 自ノード LED を点灯、

TWI0-SDA,TWI0-SCL : 内部用, ノード1,2ともに接続 I2C-EEPROM
TWI1-SDA,TWI1-SCL : 外部用, ノード1,2ともに接続

PWM1 :未定 ビープぐらいは欲しいし、圧電サウンダを付けられるようにしようかと
12Vも使えるわけだが、うるさいと困るし 5V で駆動可能に。

IO1 : ボタン入力専用
CON
|
+-- (pullup)
|
 IO1 --- R -+- R --- IO1

SPI1-CE0 :ボタン入力専用
|
SPI1-CE0 --- R -+- R --- SPI1-CE0

U0TX --- R --- U1RX
U0RX --- R --- U1TX

U1TX --- R --- U0RX
U1RX --- R --- U0TX

U2TX --- R --- U2RX
U2RX --- R --- U2TX
U2RTS --- R --- U2CTS
U2CTS --- R --- U2RTS

注意:SDA,SCL は、ピンを直結するわけだから、出力がぶつかるような使い方をしてはいけない。これは当然として、USB 切り替えも同じタイプの接続なので要注意。
それ以外でポートが壊れたりはしないように考慮はする。直結を避けて抵抗を入れるだけではあるが、接続したくない場合もあるだろう。こういうジャンパ的に使える抵抗は、裏面にもっていこうと思う。


リセットについて

OPi Zero は、ボタンが一切ないが、他のボードも リセットがないものがある。一体どうなってるのか?と思って調べてみた。



だいたいの回路図は、こうなっていて、C301 と R346 がパーツ名に使われている。回路的には、VCC-IO の立ち上がりを遅延させているようだ。 C301 と R346 が接続されている所を GND に落とせばリセットがかかる。


Zero で言えば、左上のココ。C301 と R346 が見える。

まぁこのボードでは、電源 OFF/ON するつもりだから、リセットをジャンパすることは、考えない。
CE1 を使わないことに決めたのだが、CE1 は写真で言うと C301 の隣のパッド。これにリセットをつなぐのは容易なので考え直すことに

それは良いのだが、ブートしたときの動作を変えるには、どうしたら良いのだろう?

考えてみたのだが、起動を止めておくという指示だけは欲しい。信号線は相互に接続されているが、U2CTS かな。Lは起動待ち。相手が存在しないときもあるし、確実にプルアップしておくことにしよう。

普通タブレットは、電源があれば起動してしまう。電源OFFであればバッテリーの充電制御をしながらブートするのをスタンバっている。で、電源ボタンを押したら起動するが、音声ボタンの状態で動作を変える。U2CTS は、電源ボタンの役割というわけだ。音声ボタンの役割は、2個のボタンを使ってもいいし、EEPROM に何か書き込んでもいい。



GPIO について。

すべての I/O は、GPIO にもなると勝手に思っていたが、確認しないといけない。Zero は H2 なのであるが、どうやら I/O 系は H3 と互換性がある模様。H3 のデータシート と Zero の回路図を見比べて確信できた。

PA0/UART2_TX/JTAG_MS0/PA_EINT0 (IO-2)
PA1/UART2_RX/JTAG_CK0/PA_EINT1 (IO-0)
PA2/UART2_RTS/JTAG_DO0/PA_EINT2 (IO-6)
PA3/UART2_CTS/JTAG_DI0/PA_EINT3 (IO-3)
PA4/UART0_TX/PA_EINT4
PA5/UART0_RX/PWM0/PA_EINT5
PA6/SIM_PWREN/PWM1/PA_EINT6 (PWM1)
PA7/SIM_CLK/PA_EINT7 (IO-1)
PA10/SIM_DET/PA_EINT10 (SPI_CE1)

PA11/TWI0_SCK/DI_TX/PA_EINT11
PA12/TWI0_SDA/DI_RX/PA_EINT12

PA18/PCM0_SYNC/TWI1_SCK/PA_EINT18 (IO-5)
PA19/PCM0_CLK/TWI1_SDA/PA_EINT19 (IO-4)

PA13/SPI1_CS/UART3_TX/PA_EINT13 (SPI-CE0)
PA14/SPI1_CLK/UART3_RX/PA_EINT14
PA15/SPI1_MOSI/UART3_RTS/PA_EINT15
PA16/SPI1_MISO/UART3_CTS/PA_EINT16

PG6/UART1_TX/PG_EINT6
PG7/UART1_RX/PG_EINT7

26- pinheader に接続されているピンの初期状態はすべて Hi-Z 。またこれらの絶対定格は 20mA 。これらの GPIO は、UART といった機能の選択の1つとして、IN または OUT を選べる。さらに割り込み機能も選ぶことが出来る。全部選択なので排他的に使用する。また、これらのピンには、pullup/down 機能はないようである。

UART2 は JTAG を兼ねる。SPI1 は、UART3 にもなる。TWI0 は DI_TX,DI_RX の機能もある。
なお、JTAG を実際に使用するには、PIN 機能の切り替えが必要。H2/H3 には、JTAG_SEL0,JTAG_SEL1 というピンが他にあって外部から有効化できそうなのだが、残念なことに無接続。どうやって使うかというと、ブートローダが起動したときに設定しておくのだろう。

H2/H3 には、RTC の機能があるが、32KHz 水晶用のピン X32KO,X32KI が無接続。ただし、OPi ONE のみ PAD が出てるかも知れない。でも、バックアップ電源のない RTC にどれだけ意味があるかという話があるか。

なお、13pin の方に出ている信号線は、すべてが GPIO に使えない。

この情報を元に回路図をみなおしてみよう。


RTC モジュール


なんか見つけてしまった。RTC の DS1703 に 4KB の I2C ROM (AT24C64)が付いたモジュール。$0.4 とか分けがわからない値段。

これで良いじゃないか。これを接続できるようにしませう。注意点としては、VCC が 5V でないといけないということ。I/O は 3.3V でいけるらしい。 多分 SDA,SCL が 5V でプルアップされてそうだから外さないといけない。

I2C ROM の容量が減ってしまったが、まぁいい。I2C ROM は普通に 1Mbit とかの製品があるし、必要なら付けられるようにしておこう。




もはや、本題とは関係ないのだが、いろんなモジュールが安く買えるようだ。左は 6-axis センサの mpu6050 モジュール I2C 接続 $1.3 ぐらい。右は、NEO 6M gps モジュール $4 ぐらい。シリアル、PPS 出力あり。
 --- まぁ GPS は時刻取得に使えるし一応は関係あるか。


ではこれはどうか? INA219 を使用した 電流・電圧計。$1.7 ぐらい。
R100 だから 0.1 Ω これに 2A 流すとすれば、0.2w だから 1/4 W 品が必要で 1206 (3.2mm x 1.6mm) を使わないといけない。この基板では 1206 より一回りでかい。INA219 が豆粒に見える。

結構悩ましい。IC 自体の値段にちょっと上乗せするだけでモジュールが買えてしまう。IC を付けるスペースも厳しいから、まぁモジュールを買うとして、何を測定したいのか? 自機の消費電力? あるいは USB 出力? なんでもかんでも測定しようとすると、コストもかかるし、ボードがたこ足になって配置に困ってしまう。

スペースさえ確保できれば、パターンだけ入れておこうかなぁ。アドレスが4つからの選択だから 1つのバスに 4つまで。スペース的には USB が余裕がある。あと2つなら、zero の消費電流 か。

データシートを見たら、なんと 16 通りもあった。A1,A0 しかないんだが、SDA,SCL と接続することで選択できるようだ。まぁ4つしか付けないことにして、VCC,GND の組み合わせから選ぶ。

とりあえず、接続予定なのは、次のリスト

INA219 10001x0x
DS1307 1101000
EEPROM 1010xxx
SSD1306 011110x

EEPROM は、DS1307 モジュールにも乗っている。多分 1010000 だから、基板に付く方は、1010001 にしようと思う。

ちょっと、忘れないようにメモ。
INA219 は、おまけなので別につけなくても良い。極小のチップだから付けるの面倒だし。USB の切り替えも別に必要ない使い方もあるだろう。NX3DV221 もハンダづけできない可能性があるわけだし。だから、ジャンパして接続を固定にできるようにしておかないと。この場合、一筆書きに出来るだけ近くなるよう配慮する。


もう、実機を受け取った人がいる

気が付かなかったが、LED とか付いている。--- LED は、わざわざ付ける必要なかったか。外してしまおう。
回路図を確認

PL10/S_PWM/S_PL_EINT10 (PWR-LED)
PA17/SPDIF_OUT/PA_EINT17 (STATUS-LED)

また console 用ピンヘッダが付いている。忘れていたが、どうしようか。

案としては、arduino で良く見るスタッカブルのやつを使う。console 用は下がソケット。13 pin の方は、どうしようか。切って使えるタイプでないと、短いピンソケットを縦に並べるのは厳しい。切って使えるタイプで スタッカブルは見たことがない。USB のみ スタッカブルで、後は ピンヘッダを立てておくことにしよう。26 ピンの方は、普通にソケットを下向き。スタッカブルは必要ないし無理だろう。あと、SPI1-CE1 を使わないと決めてしまえば、24 pin が使える、これも考慮しよう。

要するに 3pin と 4pin のスタッカブルが必要で、8pin を切って使うと丁度いい。... となると、基板に使わない穴を開けなくともよいか。ピン間に通せるのは、表裏2本なので、配線が厳しいのだ。

しまった。USB に スタッカブルは使ってはいけない。4 ピンのソケットを下向き。

そういえば、通常のピンヘッダ+ピンソケットを連結すると、11mm 。だが、11mm のスペーサはない。何故なんだろう?

ついでに回路図を確認したところ、TWI0,TWI1 が、それぞれの 3.3V にプルアップされていた。R151 - R154。これを外さないといけない。場所は確認できた。R151,R152 は、TWI0 で 表右上。取り付け穴のとなり。R153,R154 は TWI1 用で、裏左下。少々ごちゃごちゃしてる。TWI0 が圧倒的に簡単だから 重要な方に割り当てる。

    クラスタとして使わず 1台をホスト、1台を 開発ターゲットとして使うことも考えておきたい。

    26 pin を一切接続しないという場合、開発ターゲットの電源は USB → USB OTG で取れる。USB から電源を取れば、消費電流も測定可能だから便利かも知れない。3pin のコンソールは 必要があればつなぐし、なければつながない。13pin の USB は必要ないだろう。単にボードを固定できる台という感じだが、電流供給能力があるのが利点か。

    リセットが欲しい場合もあるだろう。その場合は、リセット用信号を取り出して、ダイオードを通して、ボタン用のコネクタに接続すればいけるか。タクトスイッチを押してもいいし、リモートで操作もできる。 一応パッドだけ作っておくか。

    他の使い方としては、多数の Zero を稼働させる場合に便利か。電源が1つで2台分。しかも外部からリブートさせる手段がある。この場合 増設した USB は使わないだろう。 だが、今の設計では、DC DC コンが3つ必要。なにに使っているかというと、RTC 用電源。これだけだから、ちょっと考えておこう。

    もうひとつ検討しておきたいのは、この基板自体のマウント方法。レールつけてスライドさせるとか良いんじゃないか? 良くは分からないがフチを作って部品を置かないようにしておこう。

    なんかこういうものがあった。ロックさえできるようだ。”PCB Guide Rail” 。
    とにかく、フチさえあれば、なんとかなるのだろう。

    この製品、全長が 86mm 。ネジがある方 13mm ぐらいは溝がないから ぴったりになる基板サイズは 73mm ぐらい。ロックにぎりぎり引っ掛けられるサイズは 60mm ぐらいかな。少し大きいが、当て板をすれば、どうにでもなる。そんなことより、これに近いようなものが見つからない。ベストかつ唯一という気がしてきた。

    取り付け方法がピンと来ないが、簡易的には、アルミアングルに横にならべていくとか。それを木の側板に取り付けて出来上がり --- みたいな。

    クラスタとして、HDD ありの場合も、HDD に小さい アルミアングルを取り付けてマウントできるか。


    あと注意しておきたいこと。多数の Zero が、同時に起動すると同じタイミングで、ひとつのリソースにアクセスすることになって、あまり嬉しくないことが起きるかもしれない。ブートローダでブートをランダムな時間遅らせるとかしたほうが良いかも。クラスタにしても、マスターを決める手順があるから、時間差があった方が問題が起きにくいだろう。

    ついでに電源の話。12V と書いてきたが、ノートPC用の 19V とかでも良い。100W クラスの ACアダプタを使えば、分岐させて 10台ぐらいいけるんじゃないか。多分もっといけるだろうが、どういう使い方をすると、どれぐらいという情報を集めないといけない。その手段として INA219 を付けておくのは有効かも知れない。


    11/12 私のところにもキター。

    起動確認とかより、まずはサイズの確認。
     1.9 x 1.8 (inch) = 48.26 x 45.72 (mm)
    これで合ってる。横は余白がなく隙間なしに並べられる印象。

    取り付け穴の間隔は、42.5 x 40 ぐらいで リングの外径は 5mm ぐらい。作ったライブラリは、 42.26 x 39.72 --- 合ってそうな気がする。あと、コンソール 3pin の位置も合ってるようだ。

    基板からの高さは、USB が 14mm で、RJ45 が 12.8mm ぐらい。基板からのはみ出しは 約 3mm 。

    フチの計算。基板を 0.1 in 空けて並べ、両脇に 0.1 in のフチを作ると、99.06 mm -- OK 。縦は、基板+余白 0.025 in で 49.53 mm にしよう。


    さて、部品の付け外しの可否。
    ピンヘッダを外せる自信はある。しかしスルーホールをどうにか出来るかどうかは不明。細いドリルで空けなおすのだろうか?
    秋月のFT232R モジュールのピンヘッダを外したことはあるが、このときは吸い取り線だけでなんとかしようとした。一応は出来たものの、かなり基板を痛めてしまった。

    PoE 用のジャンパは問題なさそうだが、DC-DC コンを付けるために線を引き出せるかどうかというと、かなり怪しい。... 5V も GND も一緒に引き出すのは難しいが、+PoE だけなら、あるいは簡単かも。
    R151,R152 は出来る自信がある。R153,R154 は厳しい。となりの R16 も一緒に行きそう。R16 はパワーオンのためのプルアップ 47K。外すと起動しなくなりそうだ。これだけ付け直せるかというと、あまり自信がない。--- でもハンダごて2本ならいけるかも。CR なんかは、両端に同時に熱を加えれば簡単に外せるとのこと。ちなみに、右隣りの C14 は、VCC-IO の パスコンのひとつで 1uF --- これは飛ばしたとしても、どうと言うことはなさそう。
    USB は外せそう。RJ45 は無理そう。とても厳しい印象。
    SPI-Flash は付けられる自信があるが、付け替える自信はない。周りの部品がいってしまいそう。
    付け直せないなら、やはり最低 8MB にするべきか。3M でカーネル+環境というのは可能だと思うんだが、相当な面倒が待っていそうで嫌になって来た。

    リセットを引き出すのは出来るかもしれないが、リスクがでかい印象。失敗したとき 周りの CR を付け直せる自信が全くない。
    ... とか最初思ったのだが、未使用の CE1 に接続してみることにした。CE1 は C301 のとなり、D18 のカソードからCE1 につないでも良い。... なんか簡単そうなのであった。

    まだテスターを当ててないので、多分なのだが、赤い点のどれかを、赤いリングのところにつなぐだけなのだ。なんか楽勝に見えるんだが。

    以上は私の話であり、世の中には全く問題としない人も居るのである。可能性の話を書いておくのは意味がある。

    まぁこれで、ディメンションは FIX 。基板設計を進められる情報は得た。


    ケースについて

    ケースなんて飾り・・・とは思っているのではあるが、一応探してみたところ1つ、ぴったりなのか、はたまた微妙に入らないのか ... というのを見つけた。

    aluminum box 105 で検索して見つかったものだが、サイズは、w105 h40 d92 -- SZOMK AK-C-C69a というものらしい。



    これを見ると、幅は問題ない。99.06 mm であるから ケースのガイドにきっちり入る。問題は高さ。厚みは 2.5mm だから空間は 35mm 。さて、このボードに Zero を載せると、14mm + 1.6mm + 11mm +1.6mm = 28.2mm 。 基板の下は、6.8mm 以下でなければならないが、どうだろう? ギリギリアウトの場合、Zero の USB がなければ、セーフになるんじゃないか? あるいは、短メスを使い 低くするとか。(部品の高さがあるので、それが可能かどうかは不明)。はたまた浮くのを気にせずにパネルを自作するか。USB の分ケースを削ってしまうという荒業もあるかも知れない。

    奥行は、92mm もある。micro SD は、ケースを空けないとアクセスできない。内部の LED も見えない。I2C の OLED は入る。

    折角だから、検討項目としよう。

    ところで、こんなケースに入れた場合、排熱はどうする? 一応 35mm のファンはある。これを PWM に接続することは、可能。しかしクラスタであるから、2個付けるのだろうか? それはともかく、物理的に付けられるようになっているか? ファンの写真を見ると、向かって右が+。この基板は逆になっている。その上、ピンが並んでたりするので、コネクタが干渉する。--- これだけ L 型ピンヘッダを基板の裏側に付ける。-- 一応 OK としよう。

    さて、排熱という話になるとヒートシンク。これをどうしよう。ケースはアルミだから、そこに熱を逃がすことが出来れば、ファンなどいらないではないか。


    そうなると、これを横向きに付けるのかなぁ。幅16x高さ25x奥行16mm ということなので、どうつけるにしても底面は、25mm x 16mm 。サイズ的には DRAM も覆って良い感じなのだが、周りの部品と干渉する。特に DRAM 横の コンデンサは、絶縁しないとダメ。また DRAM は H2 より背が低い。結構頭がいたい。さらに、16mm 高となると、一番背が高い部品になる。2〜3 mm ケースに合わせて削らないと。すごく面倒な予感。


    探してみると、厚いシリコンパッドがある。Heatsink Conductive Pad でいろいろ見つかる。1mm のものが多いが、3mm のものまであった。切れ目を入れてあるものも多い。とりあえず 25mm角にカットした 1mm のものを heatsink の下に引いて、ケースに接触するように上にも置くことを考える。絶縁は問題ないが、ヒートシンクがしっかり固定されない。でも絶縁することの方が重要だから、それは別途検討しよう。逆にそうなると、ヒートシンクの形状より高さの方が気になる。11mm ぐらいが丁度よいのかも。H2 の厚みが 1mm として シートの 1mm 加えると 13mm 高ぐらいになる。この上にさらにシートを置くのである。40mm角で 11mm というのが安価に出てるんだが、切って使うか。 

    私の皮算用では、これで 26 mm x 18mm ぐらい。まぁ秋月のと大差ない。高さを調整できるなら、秋月の方が良いと思うが、絶対に綺麗に仕上げられない自信がある。私には無理。40mm のを切った場合、汚いのは2辺の下側だけ -- 目立たないように出来るだろう。なお、切るのにクラフトのこを使うつもり、2.2mm ぐらいならいける。
    Zero の写真の赤枠に置くつもりなわけだが、いくつかメモ。SDRAM 横のコンデンサは、SDRAM より背が高く本当に絶縁注意。大き目の2つのインダクタは、絶縁の問題はないとは思うが、力を加えたりすると欠ける恐れがある。結局は触れないようにしないといけない。触れて良いのは、パルストランスのみ。ここに引っ掛けるようなことを考えても良いかも知れない。

    さて、どうやって固定するか? 弾力性があって、ネジのところで止められそうなもの --- まさか輪ゴム? 確かにシリコンの輪ゴムは、売っている。silicone rubber rings で見つかったので、試しに 60mm のをひとつ買ってみる。... あまり考えないで買ったが、60mm というと、Zero の外周ぐらい。1本をうまく引っ掛けるわけか。
    amazon でも耐熱輪ゴムという名称で同じものを売ってた。 「通常のアメゴムは3倍程度伸びますが、本製品は2倍程度まで伸びます。耐熱性と伴に対候製もあり、直射日光、雨、風の当たる場面でも使用可能です。」 とのこと。やっぱりパッキンじゃなくて輪ゴムだったのか。

    これ、太さが 3mm もあって ネジに引っ掛けるのは無理。1mm か 1.5mm ぐらいの やつを探してみた。
    色々あるのだが、OD 28mm 1.5mm φ が安かったんで選択。o ring の材質は NBR っぽい。多分延ばさない状態で 4 cm ぐらい。これをクロスして掛ければ良いんじゃないか? まぁ延びるものかどうかさえ良くわからないんだけども。

    追記:40x40mm 11mm厚のヒートシンクは、新たに買うまでもなく持っていた。別件で banggood で買ったのだった。これを切ってみた。道具は百均で買ったクラフトのこもどき。先に見つかったので。

    簡単というほどでもないが、切りだすのは、たいして苦労はしなかった。スジを深く掘って折るのみ。ただ、フィンが多少曲がってしまった。修正は最後の最後。
    だいぶ慣れたところで書いておくと、掻き出すようなイメージでゆっくりと引くのがいい感じ。


    まぁこんな風に置きたいわけだ。意外とインダクタとの干渉が少ない。--- あぁ予定と違うところを切ったのか。まあいいや。後は、どうやって切り取るか?
    ついでに書くと、パルストランスに引っ掛ける案も破棄 --- とどかないだけでなく、実際に引っ掛けると足と接触する恐れがある。


    副産物の切れ端の方がしっくり来る。少し整形して、(熱伝導性)両面テープで貼るほうが良かったりして。

    整形は、ダイアモンドシャープナー #150 ってのを使った。ハンドグラインダー用の円盤で割と安価。適当に削って マジックで塗っておしまい。削るのは切るより大変。途中でめんどくさく ....

    やっと気が付いた。aliexpress で良くあるやつと banggood で入手しておいたのは別物。いや正確には加工が別物。14-5 mm で切りだすには、banggood のやつが具合が良いようだ。

    結論:切れ端の方を貼る。これでいいや。

    ケースに入れる場合、ヒートシンクを向かい合わせにして、ブロック状にする。そのときに、フィンどうしを接触させるように詰め物をする。詰め物は、1mm のシリコンシート。ブロックにしたときの高さは、ちょうど良いかんじ。上面にシリコンシートを置いてケースに接触させる。

    大きい方は、SDRAM との段差を埋めるのがめんどくさい。SoC だけ両面テープで貼って 段差の分はシリコンシートとかでも良いような気がするが、厚みが合わないと本末転倒になるような気がしてきた。

    ところで、両面テープ付きのヒートシンクなんかで、良く 3M のロゴを見る。良く見れば 9448A と書いてあったり。どうもこれ、ただの両面テープではないのか? 両面不織布粘着組織テープ 0.15mm ぐらいの説明しか見つけられない。薄いのが特徴? とりあえず、3M9448A で見つかる 14mm 角のものを注文してみた。


    ESP32 関係で探していたら、良さそうなショップを見つけた。
    Top Electronic Company というショップなのだが、MINI 360 DCDC コンバータや、CP2102 モジュール を初めとして、ここで紹介したほとんどのモジュールを扱っている。値段も最安クラス。RTC モジュールも、高精度の DS3231 + EEPROM が $0.5 とか。

    このショップ探検するだけで楽しいかも。
     https://www.aliexpress.com/store/1266255/search?SearchText=MINI+360
     https://www.aliexpress.com/store/1266255/search?SearchText=CJMCU
     https://www.aliexpress.com/store/1266255/search?SearchText=NEO-6M
     https://www.aliexpress.com/store/1266255/search?SearchText=OLED
     https://www.aliexpress.com/store/1266255/search?SearchText=DS1307
     https://www.aliexpress.com/store/1266255/search?SearchText=DS3231
     https://www.aliexpress.com/store/1266255/search?SearchText=INA219
     https://www.aliexpress.com/store/1266255/search?SearchText=mpu6050

    ほとんどではなく、全部あった。
     https://www.aliexpress.com/store/1266255/search?SearchText=MICRO+USB
     https://www.aliexpress.com/store/1266255/search?SearchText=infrared
     https://www.aliexpress.com/store/1266255/search?SearchText=ESP-32
     https://www.aliexpress.com/store/1266255/search?SearchText=ov7670
    きりがないから、そろそろ辞めるが、まぁいろいろあるものだ。

    あぁ、まだまだある。
     https://www.aliexpress.com/store/1266255/search?SearchText=9G+SG90
      Pan/Tilt Camera 台とか。
     https://www.aliexpress.com/store/1266255/search?SearchText=4WD
      4WD Smart Robot Car -- エンコーダ付いてる!
     https://www.aliexpress.com/store/1266255/search?SearchText=bluetooth+receiver
      BT アンプとか。


    NX3DV221 を見つけて USB 2.0 までなら切り替えられると喜んでいたわけだが、CBTL01023GM という上位互換(たぶん)のチップがあった。digikey で単価 138円とあまり高くない。同じ XQFN10 アナログスイッチなのだが、性能が違い SATA 6 Gbit/s が通せる。SATA などケーブルで接続するような規格だし、意外と電子工作で扱えるかも知れない。

    とりあえずメモだけしておく。
posted by すz at 18:54| Comment(0) | TrackBack(0) | 日記

2015年07月05日

Android リモコン

Android で使えるリモコンについての覚書。

最近は、Android 関係に興味があって、いろいろ調べたり、買ったりしている。今回は、まず買ってしまった変なものの紹介から。


aliexpress で これを見つけて、説明文すら読まずに飛びついてしまった。変な本体とリモコンが2つ、なんだろうこれ? $10.98 と高いものではないし、ハンドルに付けるリモコンが良い感じ。bluetooth という文字が見えたので。

説明文を読めば、本体は、A2DP で Android と接続するもので、FM トランスミッタでカーオーディオに飛ばす装置だと分かる。microSD の音楽を鳴らしたり、ハンズフリーで電話することも出来る。2つのリモコンは 赤外線。

私は車は持っているのだが、カーオーディオはない。Android タブレットで良いかと思って付けなかった。だから FM トランスミッタ があっても仕方がなかったのであった。

ただ、ハンドルに付けるリモコンだけ使いたい。

イヤホンジャックを使ったリモコン



 ・https://source.android.com/accessories/headset-spec.html
 

ここに、ちゃんとした定義が書いてある。ボタンA は Short Press/Long Press/Double Press に対応した 多機能キーで、ボタンB/C は Vol+/Vol- 。

こんな単純な回路でいくつかの制御が出来ることになっている。それに加えて機能をカスタマイズするアプリがあるようなのだ。

ひとつは、Headset Button Controller(Trial) まさにそういう目的のアプリ。これは有料版とトライアル版がある。

もうひとつは、iKey/Pressy といった Aボタンのみのものを 制御するアプリ。KeyCut というアプリは、1-9 Short Press/1-3 Long Press に対応している。(ただし、Long Press は動作が怪しそう)

9 Short Press など人が押すものではないと思ったが、機械で押すのなら話は別である。-- そう、「赤外線リモコン → イヤホンリモコン変換器」が作れそうなのである。AVR だと学習リモコン用のソースコードがありそうだから、多分作るのは簡単だろう。

BlueTooth Shutter を使ったリモコン



そういえば、カメラシャッターというリモコンもあった。Aliexpress でも安価なものがある。これにもカスタマイズするアプリがあるようだ。Blue Genius というアプリは、6 つの機能を割り当てられるようだ。ボタンを押すだけの操作だから、BlueTooth 化も簡単そうなのである。

機械で操作するには、種類がすくないのだが、もし自分でアプリが作れるようになったら、もっと増やせそうではある。可能性があるということで覚えておこう。

MIC端子からの電源供給


MIC端子には、2.2V に 2.2 kΩのバイアス抵抗が接続されているようだ。供給電力は少ないが、IC を駆動できる可能性がある。赤外線受光ユニットだけでも動かせれば、第三の選択がある。

 ・http://s2jp.com/2012/11/make-soundir-receiver/

なにやら、Android 単体で 赤外線受信を成功させた人がいるのである。感度が悪すぎて諦めたようだが、もし赤外線受光ユニットが動作するのであれば、実用的に使えるかも知れない。アプリが作れなければ絵にかいた餅であるが、一応記しておこう。

ちなみに、
 ・http://www.jonki.net/entry/20120725
ここの人は、ELECOMのMPA-IP353M3 を分解しているが、なにやらICが入っている。そうであれば電源を供給しているはず。回路図を起こしてみれば、どうやっているか具体的に分かるのではないか?

 ・http://jp.blog.reinforce-lab.com/2010/11/iphone.html
さらに詳しく考察している人がいた。マイク端子からは1.8V 0.3mAが得られるとのこと。イヤホンに出力して電力を取る方法もあるそうだ。こちらを採用すると 1mA ほど取れるらしい。

コメントからたどると、Hijack というものが... これはなんと、トランスを使って音声出力を整流している。

この情報をもとに、秋月の受光モジュールを眺めてみる。
GP1UXC41QSだと MAX 0.6mA (typ. 0.3mA) 。電源電圧は、2.7V 〜となっている。一番消費電流が少ないが、ちょっと厳しい感じ。

おわりに


今回はこれだけ。もともとは、HID で制御しようかと思っていたのだが、もっと汎用性がある方法もあった。作るのも簡単そうである。自分でも作りたいとは思っているが何時になるか分からない。この記事はネタ・フリーである。これは!と思った方は是非作ってみて欲しい。
posted by すz at 10:39| Comment(0) | TrackBack(0) | 日記

2015年06月28日

USBee AX pro

Dealextreme で $9.99 の 安いロジアナ(SKU:148945)を買ってみた。



EZ-USB FX2LP CY7C68013A に入力バッファを付けたもので、USBee AX pro clone として 色々と出回っている。例えば、aliexpress の これなどは、$5.90 で売っている。



Dealextreme にしたのは、レビューに色々書いてくれているから。だが、良く読めば aliexpress のでも良かったような気がする。


これがよく見る内部写真。実際に来たものは、CY7C68013A が QFN に変更になっていた。他の部品配置・パターンは全く同じ。
入力との間に集合抵抗が入っている (101 - 10Ω)、8pin のIC は、I2C ROM 24C02 (256B)。入力バッファは、HC245。



アプリの選定


さて、問題の1つはアプリ。一体何を使うのだろう? レビュー見て混乱してたのだが、どうやら3つの選択枝があるらしい。

1) USBee 公式サイトで アプリを購入。

使えるらしい。が、レジストするのに $49.9 もするようだ。高いのでパス。

2) VID/PID を (0925/3881 に?) 書き換えて、SALEAE 24M_8CH 用のアプリを使う。

VID/PID の 書き換えのために 開発キットを導入するとか面倒そう。で、アプリが有償で高価だったりすると、試す気もなくす。これ以上、調べないでパス。
 ・https://www.saleae.com/downloads
とは、書いたがここから、公式アプリがダウンロードできる。一応メモ。

3) sigrok/pulseview を使う。

なんと、オープンソースのアプリがあるのであった。プロトコルも開発されているようなので、これを使うしかないだろう。それが結論であれば、何を買ってもなんとかなりそうだ。git の tree を見ると android 版もあるようだ。この pluseview は、色々なハードに対応している。あの ZEROPLUS LAP-C もリストに入っている。とても興味がわいてきた。

あるいは、CY7C68013A ボードで 入力バッファがない代わり I2C ROM が 16KB の これ なんかでも良いのではないか?



さらに言えば、FTDI のチップを使って、SYNCBB あるいは 単なる BitBang で取り込むのも 改造すれば可能ではないか! HI-SPEED 対応の FT232HL とか。FULL-SPEED でも FT232X が バッファが少し多くなっていて 往年の FT232RL より有利になっている。取りこぼしがどれぐらいあるかで、どこまで使えるのか? というのが不安材料。あと、ライブラリ。WinUSB(libusb) + libftdi という組み合わせになりそうで、やや不安。

ハードウェアの問題


これもレビューから。
USBee AX pro clone は、3.3V 専用で 5V トレラントではない。

 ・100 Ωを直列に入れる。
 ・74LCX245 に交換すると 5V トレラントに出来る。

という解決策が提示されている。

消費電流が多いため、バスパワーの HUB では、うまく動作しない場合がある。AC アダプタを付けるタイプの HUB を使うこと。

Windows版 インストール


ここに書いてあることをやってみる。

1) Zadigのダウンロードと実行

これは、WinUSB などにデバイスを登録するツール。USBee AX pro clone を接続して実行する。操作は簡単なものだが、他のデバイスも置き換えてしまうこと出来るので、注意。


Windows 8.1 で試したが、最初 "Install WCID Driver" を押す。そうすると USB のリストが出る。VID/PID も自動で設定されて、WinUSB に登録する。

今回は関係ないが、WinUSB 以外に libusb-win32 と libusbK (って何?) に対応している。

2) pulseview-NIGHTLY-installer.exe のインストール


インストールするだけで、設定などほとんどない。デバイスもちゃんと認識された。おわり。ちなみに、sigrok-cli-NIGHTLY-installer.exe は CUI 版。Linux で使う場合は、こっちも便利に使えそう。

アンドロイド版


Android でも動くらしいが、OTG に対応した端末でないと当然ダメだろうし、OTG と言っても HI-SPEED に対応していないと意味がない。そして、消費電流が多いというのが気になる。相当端末を選ぶのではないか? しかし、ちゃんと動くのであれば、面白い。

ここに apk などが置いてあるが、スクリーンショットを見るに、フルセットのようだ。

ソースコードもビルド可能なようだ。電子工作品を Andriod 対応させる場合に相当参考になるのではないか?

おわりに


今回の記事は、紹介記事に見えるかも知れないが、単なる覚書き。インストールしただけで、使ってはいないし、お勧めなのかどうか、判断できていない。

今回は、オープンソースの Android 版を知っただけで、かなりの収穫だと思っている。Android のアプリを作ってみたいのである。外付けデバイスを扱うアプリのソースコードが手に入ったわけで、調べてみたい。

なにか進展があれば、いつものように追記するかも。

aliexpress のアレ


$5.90 で売っている。aliexpress の これも買ってみた。



写真では隠れているが、Salae logic Analyzer (24MHz 8CH)互換。VID/PID も 0925/3881 ... ということは、アレが使える可能性が。それはサテオキ、sigrok/pulseview は、当然のように認識した。



そして、中のバッファは、LVC245 だった。こっちの方が上等で、高速+5V トレラント!。抵抗は 12Ω、ROM は 24C02 -- 同じようなもの。なお、写真にあるように、CLK の端子がある。ただし、これが使えるかどうかは不明。
posted by すz at 11:04| Comment(1) | TrackBack(0) | 日記

2015年06月10日

RDA5871

突然の更新。ちょっとメモ。
android タブレットを買った関係で、いくつか aliexpress で BTキーボード を購入した。いろいろ問題があって分解したり。その過程で面白いものを発見したのでメモしておく。


RDA5871



購入したのは、このキーボード。"Bluetooth Keyboard" と表示され、Bluetooth 3.0 には対応していない。要するに古いタイプ。
これは、キートップに特徴がある。数字キー2 のところに、虫眼鏡のマーク。

おそらく、赤札天国の これも同じではないかと思う。今の為替レートだと 国内で買った方が良いかも知れない。



中の基板。シルクが入っていて分かりやすい。なにやらライターを接続できそうなコネクタ・パターンがある。さらに RXD/TXD のテストパッドも。8pin のチップは L24C64 -- I2C ROM である。メインのチップには、RDA 5871 とマークされている。

この RDA5871 とは、どんなものなのか調べてみると、こんな説明が。

Features
1. On-chip support for common keyboard and mouse interfaces eliminates external processor
2. Bluetooth HID profile version 1.0 compliant
3. CMOS single-chip fully-integrated radio and baseband
4. Integrated battery charger
5. Compliant with Bluetooth 2.1 specification
6. ARM7-based microprocessor with on-chip ROM and RAM
7. Meet class 2 and class 3 transmitting power requirementr
8. Supporting 26MHz DCXO /TCXO
9. Low power consumption
10. Minimum external component
11. Internal 32k LPO.
12. Support for EEPROM
13. Build-in code patching which supports up to 16 KB patching code
14. Built-in four 8-bit resolution ADC channels
15. Programmable keyscan matrix interface, up to 8 × 18 key-scanning matrix

注目したのは、16KB の EEPROM にパッチ・コードを書くことで、機能を変えられるということ。I2C ROM だから、データさえあれば書き換えは容易。

そうは言ってもプログラミングなど出来るはずがない。... と思ったわけだが、rda5871-sdk なんてものが公開されている。

 ・https://code.google.com/p/rda5871-sdk/
ここに行くと、こっちを見ろと誘導される。
 ・https://5871e.codeplex.com
中を見てないが、確かに SDK らしい。SDK をビルドすると SPP と HID のサンプルプログラムが出来るらしい。

また、先の URL には、評価ボードとその回路図が。


キーボード基板は、ほぼ全ピン出力されているようだ。
開発ボードも作ってる。写真のシルクをチェック

ROW0 GPIO0_0
:
ROW7 GPIO0_7
COL00 GPIO1_0
:
COL07 GPIO1_7
COL08 GPIO2_0
:
COL15 GPIO2_7 (COL11-14 : AGPIO)
GPIO3_0 GPIO3_0
:
GPIO3_3 GPIO3_3
COL16 GPIO3_4
COL17 GPIO3_5

どうやら 8bitポートが4つあって、30 本の GPIO がある。自由に使えるが、キーボードスキャンの機能を使う場合は、ピンの割り当ては決まっているということらしい。COL のうち4本は、ADC に接続されていて、AGPIO となっている。

AB1112



RDA5871 のキーボードとほとんど同じに見えるが、よく見ると 虫眼鏡マークは、数字キー1のところ。接続すると "Bluetooth 3.0 Keyboard" と表示される。



中の基板。(裏面はシルクがないので省略)。チップは AB1112A とマークされていて違うもの。チップは違うが、同じように I2C ROM が載っている。説明は見つけた。



RDA5871 と同じようなものではあるが、こちらは情報がない。とは言え解析すれば キーマップぐらいは変えられそう。

ちなみに、最初の基板になぜか AB1107-xxx と印刷されているが、AB1107 は AB1112 の電池駆動版。このチップを搭載した キーボードも安価であるようだ。ひょっとしたらポケモンキーボードは AB1107 じゃないかという気もしている。

確認するために、中古を購入してしまった。これに載っているのは BCM2048 。カセット側にはホスト・コントローラが載っているが、BCM2070 。どちらも ワンチップ。

キーマップ


ローカルな信号名で作成したので、ちょっとややこしい。シルクとの対応表も載せたが、

ピンとのマップ (+シルク信号名)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1 2 3 4 5 6 7 8 9 a b c d e B C D E F G H I J f
C00 C02 C04 C06 C12 C10 C09 R0 R2 C15 R6 R7
C01 C03 C05 C13 C11 C14 C07 R1 R3 R4 R5 C16
キーマップ
ESC 1 2 3 4 5 6 7 8 9 0 - =
B5 C5 C6 C7 C8 B8 B9 C9 Ca Cb Cc Bc Ba

TAB Q W E R T Y U I O P DEL
E5 D5 D6 D7 D8 E8 E9 Db Da D9 Dc Ee

CAPS A S D F G H J K L ; ENTER
E6 G5 G6 G7 G8 I8 I9 G9 Ga Gb Hc Gc

LSFT Z X C V B N M , . RSFT
E3 H5 H6 H7 J8 J9 H9 Ha Hb Jc He

FN CTRL ALT WIN SPACE / \ UP
G1 B4 E2 I1 IF Ec Ea Id

LEFT DOWN RIGHT
Jd JF Jf

C00 C01 C02 C03 C04 C05 C06 C13 C12 C11 C10 C14 C09 C07 C15 C16
1 2 3 4 5 6 7 8 9 a b c d e F f
R0 B CTRL ESC 5 6 = -
R1 C 1 2 3 4 7 8 9 0
R2 D Q W E R O I U P
R3 E ALT LSFT CAPS T Y \ / DEL
R4 G FN A S D F J K L ENTER
R6 H Z X C N M , ; RSFT
R5 I WIN G H UP SPACE
R7 J V B . LEFT DOWN RIGHT
1 2 3 4 5 6 7 8 9 a b c d e F f
C00 C01 C02 C03 C04 C05 C06 C13 C12 C11 C10 C14 C09 C07 C15 C16
(目視でのみ作成:未チェック)

製品としてのレビュー


忘れてた、一応書いておこう。
このキーボードは、剛性が全くない。古いタイプは裏のアルミ板がさらに薄い。3mm厚ぐらいの木板を張り付けると、その問題は解消し、手にもって使っても使えるレベルにはなった。

打鍵感は、悪くない感じがする。一応パンタグラフで、ポメラキーボードと全く同じ構造のようだ。キーの配置で気に入らないのは、Fn キーとの同時押しが必要な ESC ぐらい。

耐久性については非常に疑問。中のフイルムの印刷だけの問題だが、簡単にダメになるかも知れない。

おわりに


面白いと思ったので紹介したが、試すのであれば、電波法に引っかからないような使い方でお願いする。 -- bluetooth は、屋外に電波が届かないような気がするが。
面白いと思ったのは、HID 。単純なイベントを android ホストに送るには HID が便利なのではないかと思うのだ。車のハンドルに付けるリモコンを改造したり出来たら良いなぁと思っている。他には、お気に入りのキーボードを bluetooth 化するとか。

キーボードに使われている IC は、I2C ROM を使っているものが多い印象。キーマップのカスタマイズ程度ならば、意外と障壁が低いようだ。いずれ弄繰り回してみたい。
posted by すz at 02:21| Comment(0) | TrackBack(0) | 日記

2013年04月20日

基板カッター

古い古い記事の焼き直しなのだが、秋月で 380モーターを取り扱うようになったのを記念して。

リュータで切断砥石を使って基板を切ったことがあるのだが、割れやすい切断砥石を高い回転数で回すのは結構怖い。それだけでなく粉塵がけっこう出る。さらに ちょっと基板が大きいと 垂直に当てられない。(ナナメになるとまっすぐ切れないばかりか、切断砥石が割れるおそれがある) ... などという問題があった。

で、どうにかならないかと考えて作ってみたのがこれ。



電動飛行機用のギアダウンユニット -- GBX400/GBX400NG に、ダイソーの 32mm 切断砥石をつけるのだ。適合モーターは RS−385PH−4045

結構調子が良かったのだが、GBX400は音がうるさかった。(ナイロンギアの GBX400NG なら 少しは静かかも。) 以前は 安物リュータから取り出した 3.6 V 用の モーター を 5V で回してたりしたので 焼けたかなにかで使えなくなって 使うのをやめてしまった。

    写真のまま素手で使っていた。ギアがむき出しなのでちょっと怖いが、注意すれば巻き込まれることはない。へたに軍手など使うと却って危険だと思う。手袋するなら革製?

    たしか、ギアに指が擦れるのはままあった。皮が厚いのが幸いしたのかどうということはなかったが。

    もちろんカバー付けるとか工夫すれば危険は減るのだが、良い案を思いつかず。まぁもともとスライダーとか付けてちゃんとしたものを作りたかったのもある。こちらも良い案を思いつかず。

秋月で 380モーターを取り扱うようになって思い出して記事にすることにした。記事にするにあたって 今でも買えるのかどうか調べてみた。

GBX400/GBX400NG は、まだ大丈夫。ググれば在庫があるところがある。

    ちかごろは、三相ブラシレスモーターをギアなしで使うのがはやりらしく、過去の遺物のようになっているとのこと。いつか買えなくなる時が来るかもしれない。

    なら、ブラシレスモーターを使えば良さそうなものだが、直径が大きい上に 外周が回転する(タイプが多い)ので具合が悪い。

    京商 380ギヤダウンユニット というのもある。多分この 2種類。

消耗品の 切断砥石がキモだったりする。直径 32mm というのは重要。これぐらいないと垂直に当てられない。ちびたら 小さい基板にしか使えない。また穴径が 3mm φ でないと具合がわるい。(リュータ用は普通 1.8mmφとか)。ついでに書くと、厚みが 1.2 mm もあって 切断するには無駄が多いのだが、その分丈夫で割れそうにないのがメリット。

    で、調べてみたら ミニルーター用切断砥石(4枚組) として売っていることが分かった。以前は 1枚だったのでなんと コスパ4倍。

    ほかにダイヤモンド砥石、回転のこぎりをセットにした 3枚組もあるらしい。回転のこぎりは危険そうだし、ダイヤモンド砥石も直径が小さく具合がわるいので、4枚組のほうが良い。

    ダイソーと同じタイプのものが売っているかどうか確認できてない。ダイソーが取り扱いをやめたらどうやって入手するのかという問題がある。

さて、モーターのRS−385PH−4045は通常在庫品なので、焼けようが問題はなさそう。問題は電源のほう。負荷時 2.7 A と書いてある。5V 2A の ACアダブタだとギリギリかもしれない。

5V 4A の 5V4A STD−05040U が良さそうな気がする。

    AC アダプタ直結でも良さそうな気はするけれども、出力を調節できるようにした方が望ましい。
    写真を見ればわかるが、モーターが直接手に触れる。熱くなれば焼ける以前に使えない。無駄にパワーを浪費させるのは具合が悪い。

    Tiny13A あたりで PWM すれば十分なはず。操作にボタンしか付けられないが、2 つでなんとかなるだろう。例えば UP/DOWN に割り当てて、同時押しで スタート・ストップとか。

    モータードライバ -- 例えば BD6211F−E2 なんて ボリュームだけで制御できて使いやすそうなのだが、残念なことに 1A まで。そのほかのやつも 1A までが多い。Nch MOSFET とかで組むほうが良いと思う。

    制御には、MC34063A も使えそう。MC34063A も最大 1.5A で 出力電流が足りないが Tr を 外付けできたはず。

    あまり自信がないのだが、実は 1A で 十分かも知れない。ちゃんと切れている分にはパワーがあり余ってたような気もする。
posted by すz at 00:10| Comment(2) | TrackBack(0) | 日記

AE-FT232HL



秋月から FT232HL 採用のモジュール AE-FT232HL が出ている。以前記事を書いた UM232H と互換。ピンだけじゃなくて、回路やサイズまで互換のようだ。値段も 1200 円と安くなって お薦めだとは思う。

ただ、単にシリアルを使いたいという向きには、オーバースペック。それだけでなく (5.0V トレラントではあるものの) 3.3V 固定 というデメリットもある。(例えば 1.8V で I/O したい場合レベルシフタが必須になる)。また、2ch ある FT2232H なんかと比べると機能が劣る。微妙な面もあるのでツボを押さえた使い方をしたいところ。

    機能差のほかに、バッファの量が少ない。できる限り性能を引き出したいという場合には不利だったりする。

このモジュールのメリット

    足がハンダ付けされてない

      これは地味だけども メリットだと思う。最初からハンダ付けされていると そのまま使うしかない。自由度が高くなるのは嬉しい。

        細ピンのピンヘッダでも 丸ピンソケットに挿すのは厳しい。アイテムラボのピッチ変換基板用連結ピンを使うと 背を低くした上で 丸ピンソケットに挿せる。

      2個ある 2mm ジャンパも自分でハンダ付けする。バスパワー前提ならジャンパピンを使わずにショートしてしまった方がすっきりする。

      上向きにソケットを付けることさえできる。 JTAG アダプタとかしか(今は)思いつかないが、Arduino 的な使い方ができるかも。

    片側のピンだけで使える

      ADBUS が片側に寄っていて、3V3 と GND がある。ブレッドボードで便利そう。最初から片側にしか足を付けないというのもアリだろうし、L型の ピンヘッダで 縦に挿すことさえアリだと思う。

      別の基板に取り付ける場合でも、片側のみなら 基板スペースを有効に使える。ぐらぐらしないようにしたいなら GND,5V0 の 2ピンだけ付けるとか変則的な使い方もありだろう。

      ACBUS は 使えないわけだが、シリアルを使うのがメインなら割り切ることはできそう。

    SYNC Bitbang を使う場合のメリット

      FT232R と比べると Bitbang がはるかに高速。AVRライタレベルだと 速度が出ないという不満は出ないはず。ただ、ライタソフトも対応が若干必要になるので そこの確認は必要。

      対応として必須なのは、USB の ID の対応。あと 必須ではないが望ましい対応としては、ビットクロックの上限の変更と バッファ量(読み書き単位)の 増大ぐらいか。

      忘れてた。API で デバイスをチェックできる。これも対応が必要な場合がある。

    MPSSE を (BitBang として)使う

      FT232Rを PIC32MXライタに の記事で書いたのだが、MPSSE もまた SYNC Bitbang のように使える。プロトコル体系が違うから単純に比較はできないが、最大の違いは (速度低下のペナルティなしに)入出力を切り替えられること。 これを使うと 頻繁に 入出力を切り替えるようなプロトコルにも対応できる。PIC32MX の ICSP 対応はいけたので AVR の TPI/PDI にも対応できそう。

      SYNC BitBang では 8bit しか使えなかったが、うまく使えば 16 bit までいける。これもメリット。

    JTAGKEY cloneもどきにする

      USB の ID が違うという問題はあるが、JTAGKEY もどきにはできるんじゃないかと思う。このモジュールを使えば、お安く作れるとか コンパクトなものが作れるというメリットがある。

      JTAGKEY clone にする場合 EEPROMの 設定を変えないといけないと思われがちだが、MPSSE は SYNC BitBang と同じで単なるモード。問題なのは、シリアルと MPSSE では 入出力の方向が逆になるピンが出ること。具体的には 出力がぶつかる ADBUS2 の RTS (MPSSE TDO)が問題。

      JTAGKEY clone にする場合、レベルシフタ目的に バッファを入れるが、ADBUS2 に 抵抗を直列に入れてやれば、EEPROM を書き換えなくとも 安心して使えるように思う。

        回路図例を見ると ADBUS2 は Tri-State 制御してないケースもある。設定を書き換えない場合は要注意。

        直列に入れる抵抗の値はいくつが適切なのだろう。3.3V の電圧差で 4mA とかなら 82Ω? 。あまり抵抗値が大きいと高クロックにできないし 壊れないと思えるぎりぎりの値で良いとは思う。

        これは MPSSE 共通の問題。シリアルも使いたいなら抵抗は忘れずに。

      あとは、OpenOCD で使えるかのチェック。MPSSE といっても完全には互換ではない。FT2232H とかと ちょっと違う部分があるが、普通に使う分には関係ない。大丈夫だと思うが未確認ではある。

      ググっただけだが、OpenOCD は、0.6.0-rc2 以降で対応?

FT232H 応用メモ

このモジュールが発売されたおかげで MPSSE が身近になった。MPSSE が使えると便利な 応用は何だろう?。まず MPSSE は高速だというのが最大のメリット。入力と出力を頻繁に切り替える BitBang も使える。FT232R と違って EEPROM に設定することでシリアル以外の様々な機能も使える。

    MicroSD アクセス

    FAT を使う .. だけなら 意味はない。だが、情報を読み取ったり、パスワードを付けたり、書き込みロックをしたり するなら 汎用のものでは無理。FT232R や AVR を使っても良いのだが 速度の点で不満が出るケースもありそうだ。あと、ターゲットは マイクロコントーラだとしても プロトタイプはこれで作ってみるのも良さそう。

    I2C アクセス

    実用として使うのは疑問だとしても、プロトタイプを作ってみたりするには良いかも知れない。FT232R では 付加回路が必要だが、これだとそれも不要。AVR など マイクロコントーラではいちいち書きこまねばならないし、結果の出力も悩ましい。お試しなら PC でダイレクトに操作するのもありだと思う。

      FT232R での 付加回路について記しておくと ... 多分 デジトラ 1個が余分に必要なだけの話。... なんだが、まぁ単純なほうが良いとは思う。

    パラレル通信

    FPGA を使うメリットのひとつは高速処理。だが、PC と通信するのに難がある。PC の持つ高速インターフェイスを直接接続するのは荷が重い。MPSSE が高速だと言っても 30M bps 程度で 4MB/sec にも届かない。パラレル通信は高速らしく 60MB/sec とかいう数字を見たことがある。単純なインターフェイスでここまで性能が出せるものはあまりない。

    ちなみに、途切れなく読み(書き)続けるのは無理。ロジアナもどきとかフレームバッファもどきにするのは難しい。

    CPU スタイル FIFO

    よく分からないのだが、こういうのもある。8bit の LCD なら直結できそう。通信 オーバヘッドが減って嬉しいような気もするが EEPROM を書き換えて 専用機を作るときぐらいしか役に立たないような気もする。

ピン配置



パーツメモ

    FT232HL チップ単体でも入手できるし、パーツについてメモしてみた。ただ、Hi-Speed だしモジュールで済ませた方が楽で良さそう。

    BLM18PG600SN1D フェライトビーズ(FB)

      これは、オリジナル UM232H と同じように入っている。

    FA238V-12MHz

      ひょっとして、このモジュールに合わせて 12MHz も販売するようになったのだろうか? それはともかく、FA232 の 12MHz が入手できるようになったのは喜ばしい。

    12KΩ (1%)

      REF に接続する抵抗で 1% 精度指定。入手が面倒。これは FT2232H なども同じ。

    PGB1010603

      USB の D+/D- に入れる パルスガード。オリジナル UM232H と同じ。データシートにも載っている。デジキーだと入手できるものの結構高い。類似っぽい、ESD9B も使えるのかどうか? (こちらは安い)

      あるいは、FT2232H と同じようになしで済ませられたりしないのだろうか? さらには回路図の記号の通りツェナーダイオード直列ではどうなんだろう?

        ちょっと見た限りでは、両方とも IEC61000-4-2 とは書いてある。だが、ESD9B の方は寄生容量が 15pF と大きい。多分超高速インターフェイス向けではないのだろう。となるとツェナーダイオード直列も無謀か。ところで、D+/D- は直列に 0 Ωの抵抗が入っているんだが、なんのためだろう? PGB1010603 を使わないなら 信号線用の FB でも入れるのかな?

        ... と思ったら ムラタの資料(pdf)に Hi-Speed(HS) では FB を使うと波形が崩れるからダメと書いてあった。使うのなら コモンモードチョークコイルだとか。

        FT2232H のデータシートと見比べてみたが ESD プロテクションは同レベルのようだ。なら無理していれなくとも良いのかも。

    93LC56B

      これは、B でないとダメだとか。16bit モードを持っているかどうかが重要らしい。

      なしで済ませるのも可能そうだが、シリアル がベースになり パラレルとか試せなくなる。付いている LED も 点灯できなかったり。高いものではないが、これも入手が面倒。

    こんな風にパーツの選定と入手が面倒でおっくうになってしまう。

おまけ TXS02612

    デジキーで SDIO を検索したところ TXS02612 というものが見つかった。

    これは、SDIO ポートエクステンダというもので、1 つの インターフェイスで 2 つのデバイスを使えるようにするスイッチ。 QFN-24 パッケージがあって、200 円以下。

    データシートをひもといて見ると... 2つのポートは、それぞれ別電圧にすることが可能。(ただし、1.1V 〜 3.6V の範囲) 。(CLK 以外の)信号線 はアナログスイッチのような 双方向。

    オーバースペックだが、下は 1.1V まで対応しているし JTAG 用の レベルシフタとして使えるような気がする。実際に使おうとするならちゃんと調べないとダメだが気になっている。

おまけ FTDI の FIFO バッファ量

    RX TX
    FT2232H 4KB 4KB
    FT232H 1KB 1KB

    FT231X 512 512
    FT230X 512 512
    FT232R 128 256

    FT232H は 1KB と FT2232H と比べれば全然すくない。これだけ違うと BitBang でのピーク性能にだいぶ差がでるかも。

    改めて調べてみたら、FT232R は結構少ない。12Mbps 版の新しいチップ FT231X/FT230X では 512B と増えている。性能的に変わらないかと思っていたが、ちょっと変わってくるかも。

     FT231X : SSOP 20 pin と小さくなった。シリアルのピンは省かれておらず、CBUS も 0-3 があり CBUS4 だけが省かれた。
     FT230X : SSOP 16 pin 。シリアルが 4つ省かれて TXD/RXD/CTS/RTS だけに。あとは同じ。
     共通: VCCIO 3.3V まで (5Vトレラント)。USB D+/D- に 27Ωが必要。VID 6015 に。
posted by すz at 00:06| Comment(0) | TrackBack(0) | 日記

2012年11月03日

A13-OLinuXino

ストロベリー・リナックスから、Olimex の A13-OLinuXino-WIFI というボードが発売になった。(在庫あり! 6,300円)

    Mouser でも取り扱っている。5916 円であまり安いわけではないようだ。


これは、Allwinner A13 という ARM Cortex-A8 (1GHz)採用の Android 向け SoC を採用したボード。Raspberry Pi や BeagleBone の仲間である。

    写真では、WIFIが載っていないが、3 つの USB ポートがある 右、SSOP-28 の GL850G があって その更にすぐ右のコネクタに USB タイプの WIFI が載る。写真では NAND Flash は空きスロット だが、ここに4GB のものが載る。(無印は NAND Flash もない)

    JTAG ポートがあるみたいだが、JTAG 必須ではない。JZ47XX のように USB からブートできる(はず)。あと MicroSD からも ブート可能だったはず。

    メモリは、512MB で 実用可能なレベル。Ubuntu や Android が出ているかどうかは調べていないが、出ているような気がする。

私は、ARM に手をださない方針で blog では ARM 関係は言及してこなかったのだが、これは例外。そして 例外 とした 理由は はっきりしている。

    Allwinner A13 は、電子工作可能 (QFP) な SoC という条件を付けると (おそらく) 最速。今は BGA ばかりだから 新しいチップとしては、希少な存在なのだ。これ以上のものはもう出て来ないのではないかという気までする。そして、 A13-OLinuXino は 回路図まで公開しているボードなのだ。

    要するに 電子工作という観点で気になる存在なのだ。

私は、まだ手をださない。私の目標は MIPS の QFP な SoC -- Ingenic JZ4725B あるいは JZ4755 で 電子工作することで、それは変わらない。だが、人に薦めるならば、Allwinner A13 ではないかと思う。

    電子工作で使うにしても 単にボードを利用する目的だと 薦められるかどうかは分からない。GPIO が沢山あって ピンヘッダも普通の 2.54mm ピッチだから Raspberry Pi では満足できない人には良いかも知れない。

    電子工作ではなく、Ubuntu や Android を使うのが主目的の人には 薦められるかどうかは怪しくなってくる。メモリは 多いほうではない。性能が高いとも言えない。-- Android Stick でも 1GB のものはある。
    VGA 出力というのが特徴で これはメリットにもデメリットにもなりそう。他のメリットがあるとすれば、情報がオープンなこと。製品寿命が長そうなこと。ソフトがメインであっても いじるのが目的ならば 悪くはない。

    そもそも A13 は、Android としてはローエンド向けのチップ。同じ Allwinner でも A10 の方がまだ魅力がある。A10 には、SATA インターフェイスがあり、こういったボードが出るなら SATA を付けてくるはずだからだ。

    以前 『49ドルのARM開発ボード Cubieboard』というのが紹介されていた。今どういうステータスかは良くわからない。入手可能で、ちゃんとソースコードが出てくるならば、こちらの方が良いだろう。あと A10 は、Android タブレットに多数採用されているが、Android Stick , Android TV Box なども製品が沢山ある。Android ではなく Ubuntu を動かしたいと考えているならば、改造している人がいる製品を探すと良いかも知れない。

    Mele A1000 ($92.6), Mele A1000G ($107.1) , Mele A2000G ($106.0) あたりは、Android TV Box のなかでは有名な方(だったと思う)。

    ここまでにしておこう。-- このブログは 電子工作がメインなので、これ以上は掘り下げない。

    と書いたものの、Wandboard なるものが出るらしい。ひょっとして、これは良いもの?

    追記: ストロベリーリナックスから A10 採用の pcDuino が出ている。7350 円。RAM が 1GB もあって良さそうではある。ただ SATA はないみたいなのが少々残念。末永く売ってくれそうだし、これも良いかも知れない。

おわりに

JZ47XXのリファレンスデザインから』、『taobao でジャンク基板(2)』といった 記事を書いている過程で、A13 のボードのことを知った。Ingenic の MIPS SoC は 自分の趣味だが、電子工作可能なものは どういったものがあって、Ingenic のチップは、どういう位置づけなのかは押さえておきたい。そういう意味で A13 に関して興味をもった。

A13-OLinuXino 自体は、Raspberry Pi ほど大量には売られないだろう。ただ、長期にわたって売られる可能性があるし、自作できる可能性さえ残っている。趣味で開発コストを投入するなら、こういうのも楽しみがあって良いのではないかと思う。

なお、新しい情報を得たらここに追記していくつもり。

リンク

おまけ: ARM に手をださない方針について

    不思議に思う人がいると思うのでコメントしておく。

    私は、OS など基盤系が趣味なのだ。(基板ばっかり作っているけど typo にあらず)。 沢山の人が参加している ARM よりも 誰も手をださないものに挑戦したいだけなのである。特に MIPS はちょっとした思い入れがあるし、Ingenic SoC の情報も手に入ったので 強い興味を持っているが、人には薦められる状況ではない。

    今後も、趣味としては ARM には手をださないつもり。実用として使うなら別だけど PC 自体を電子工作の対象とはしないのと同じ事。ただ Allwinner A13 だけは興味が出てきた。手をださないまでも、ウォッチはしていきたい。

メモ

    A13 と JZ4755 の違い

      どちらも 0.4mm ピッチ QFP176 なのだが、決定的に違うのは、まずメモリインターフェイス。

      A13 は、DDR2/DDR3 対応で大容量のメモリが使えるのに対し、JZ4755 は、旧来の SDRAM しか使えない。安価に買える SDRAM チップは 32MB (16M x 16bit) でこれを 2 つ使って 64MB あたりが妥当な容量。これで Android や Ubuntu を動かすのは不可能。だから根本的に使い方が違う。

      CPU 性能も大きく違う。A13 は、二次キャッシュ (256KB) 付きなので、クロック以上の差がある。4 - 5 倍ぐらい違うはず。

      USB HOST -- JZ4755 も USB HOST 機能はあるのだが 12 Mbps の Full-Speed 。Hi-Speed はデバイス専用。A13 は、HOST + OTG どちらも Hi-Speed のようだ。Hi-Speed が 1つあれば、いろいろな目的に使える。SATA はないが、USB DISK も それなりの性能で使えるわけだ。

      これだけ違うなら、別のものとして捉えた方が良さそうだ。

      といっても、JZ4755 がダメなチップだとは思わない。これは、高速な 組み込み向けチップで、A13 は ローエンドの Android チップ。もちろん A13 を 組み込み向けとして使うことはできるのだが、Android がまともに動くなら割り切れないのだ。それに、A13 は電子工作で扱えるギリギリではあるが、多分メモリの周波数が高い分だけ扱いにくい。随分とレベルが上がらないと扱えないだろう。

    回路図から

      ちょっと目についた範囲で簡単に

      VGA は、LCD のデータを 自前のDAC で アナログ RGB に変換している。ALVC244 を多数使い 6bit DAC を抵抗で組んでいる。HYNC, VSYNC は、FET(BSS138) でドライブ。さらに出力はすべて ダイオード(BAT54S) を使ってクランプしている。抵抗値の選択は参考になりそう。

      ボタンは、例によって ADC を使っている。QFP176 でもピン数を節約したいようだ。

      RTC は、I2C 制御のデバイス(PCF8563T) を外付け。

      電源回路は、メインが AXP209 というチップ(QFN48)。このチップは たしか taobao で購入可能だったと思う。回路図と Linux ソースコード が入手できれば、データシートがなくとも 扱えるかも知れない。憶えておこう。

      この AXP209 という電源 IC は、LDO が 4 つに スイッチング が 3 つ。それに加えて USB HOST の VBUS 用 スイッチなどもある。さらには バッテリーチャージャーも。これらの機能を I2C で制御している。

      しかし、これでも機能が足りないらしく単機能の スイッチング 電源IC がさらに 4 つ使われている。電源周りは、予想以上だった。
posted by すz at 15:35| Comment(0) | TrackBack(0) | 日記

2012年10月22日

taobao でジャンク基板(2)

taobao でジャンク基板(2010年10月)』の 2年ぶりの続き。10 元/枚 で売っているところを見つけ買いまししたので、真面目に調べてみることにした。



これはなにかというと PMP ジャンク基板。もとの機種名などは分からないので、基板の裏面に 載っている 名称から FX010 としておく。採用している SoC は、JZ4725 360 MHz (〜 400 MHz)。半完成品(未使用)で NAND FLASH と SDRAM と LCD が載っていない。

    今回よくよく見て分かったのだが、未完成のまま、NAND FLASH, SDRAM , FM モジュールなどを取り外したようだ。ハンダブリッジもあったりするし、一部の部品が 取れてしまったりもしている。水晶の足が 片方外れているものさえあった。

    10 元という安値のところを見つけて、買いまししたのだが、これはもっと程度が悪い。コイルが割れていたりするものさえあった。(これは乱暴にあつかったためだろう)

こんなものを買ったのは、いじれる可能性があるからなのだが、残念ながら人には薦められそうにはない。程度も悪いし、数も確保できない。プログラムを作れるようになったとしても、そのころには入手できなくなっていそう。

まぁでも、解析して自由につかえるようにしてみたいのだ。自分の分は潤沢に確保できたので 潰してしまうような実験も出来る。これで経験を積んで、自作ボードに挑戦してみたいと思っている。

ここでは、このボードの解析情報を載せようと思う。ほとんどの人には関係なさそうだが、中華PMP が、どんなつくりになっているかを 知ることは 他で役に立つかもしれない。(関連記事 『JZ47XXのリファレンスデザインから』)

ちなみに、このジャンク基板の SoC -- JZ4725 の情報は入手できている。どうやって使うかについての詳細は別途にしたい。簡単な説明だけ。

    まず書いておかなければならない。CPU はMIPSで、はやりの ARM とは違う。MIPS といえば PIC32MX もそう。こまきことを言うと、PIC32MX は、MIPS32r2 だが、こちらは 無印 MIPS32 。TLB や キャッシュもあるが、FPU はない。あと 動画に対応するために、特殊な SIMD 命令群を持っている。

    NAND FLASH, SDRAM をつけなくとも、プログラミングは可能と言えば可能だったりする。このチップは、USB から任意のコードをブートできるのだ。最初 stage1 と言われるコードを USB を通して ロードし、キャッシュに載せて動かす。普通は、SDRAM をセットアップして一旦終了。つぎに stage2 をSDRAM に ロードする。stage2 は、USB のコードを持っていて これがブートローダ本体。さらに USB から データを ロードして 動かしたり、FLASH に書き込んだりする。

    stage1 をいじってプログラムを作るのはしんどい。I-cache 16 KB / D-cache 16 KB だから小規模なものは動かせるはずだが、キャッシュの操作を入れないといけない。16Mx16 の SDRAM を載せてやると、32 MB のプログラム・データ領域が得られ、stage2 を使って、結構好きな事ができる。... というわけで SDRAM は、なんとか入手して付けないと 。



    SDRAM は新品では割高だったり入手が難しいのだが、メモリモジュールから外すつもりなら 今 結構安く入手できる。これなんかだと 16Mx16 が 4 つ載っている。

    実際に入手したが、S2516ADTA-75-E とマーキングがある。型名は、EDS2516ADTA-75-E -- 16Mx16 で間違いない。

まずは、入手したら やるべきことについて (注意点)

    まず気を付けなければならないのは、ハンダブリッジ 。チェックして 必要なら ハンダ吸い取り線で 余計なハンダを取らないといけない -- のだが、パターンが弱く剥離させてしまう恐れがある。要注意。

    部品が取れてしまっている場所は、NAND FLASH+SDRAM の周り と FM モジュールの周り。要するに 取り外しのまきぞいを食った形。

    SDRAM の 外 ボタン側が一番確率が高いのだが、まれに 変な所も取れている。... というか下手なやつが外したものは、全体的にひどい。(先に入手した 6 枚中 1 枚のみひどい。)

    ... とこういうわけだが、ひどい1枚は、 水晶の足が片方取れていて スイッチの横の(電源用)ダイオードもなかった。両方とも修理可能だったが、調査につかい パターンを剥離させてしまった。

    10 元/枚 で最近入手したものは、もっと程度が悪い。12 枚入手したが、コイルが完全に割れてしまっているもの 3 枚、1.8V 用の IC まで取れているものが 別に 1枚。コイル欠け(これは製品でも見られたりする)も 2 枚ほど。

    幸いパターンは傷んでいないようだから 補修用の部品 (L, R, C)を確保できるなら修理可能。だが、1.8V 用の ICまでないものは修理も厳しい。

売っているところ

    中国の ショッピングモール taobao の
     ・ e通数码科技 23 元 (個数制限あり? 10 枚発注して 6枚入手)
     ・ 智利数码科技(zyy15278420081) 10 元! : (25 枚発注して 12枚入手)

    ただし、代行業者を通して買うのが普通で、送料・手数料を加算して考える必要がある。他のものを買うついでに買ってもそれなりにコストがかかる。沢山買っても、20円/元 相当になるかも。それでも 200円/枚だが。

    後で発注した方は、どういう交渉になったのか、よくわからないが、25 枚の値段で、ボード 12 枚と JZ4725B のチップ 14 個になった。(別のところでも JZ4725B を買ったので、随分沢山チップを所有することになってしまった。)

こんなに沢山買ってどうするか? 調査のために潰したりもしているが、修理し損なうものが大分出そう。それに JZ4725B に載せ替えてみたいのだ。はんだ付けが出来なくて諦めるかもしれないが、結構な数をダメにする見込み。まぁダメになったのは、部品取り用になってもらう。

プログラミング環境から作るつもりだが、環境を作っても使えるものが残らないと話にならない。 数枚ぐらいは 生き残って欲しい。

まぁ、うまく行くようならボードも作る。ただ、こちらは全然自信がない。ハンダ付けも厳しいし、2 層基板で なんとかする方策を練らないといけない。(4 層基板は作成可能になったとはいえ 高いし経験もなくて無理。Eagle のライセンスもない)



ちなみに、まだ買える PMP で 近いのは、紫光 (UnisCom) T950 。(時計の画面が特徴的で JZ4725B 採用のはず)。 たとえば ここで 115 元。ちゃんとした製品ですらこの値段だから、ジャンクが安いとも思えなくなってしまう。だが、完成品を買うと それに囚われる。動いているものを壊すのには抵抗がある。

ハードとして載っているインターフェイス

     ○ SDRAM インターフェイス (空きパターン)
     ○ NAND FLASH インターフェイス (空きパターン x 2)
     ○ サウンド出力/マイク入力
     ◎ スピーカー出力
     ◎ MicroSD
     ◎ USB (HI-Speed , デバイス)
     ◎ リポ電池 インターフェイス (空きパターン)
     ○ FM モジュールインターフェイス (I2C , ラインイン: 空きパターン)
     ◎ LCD インターフェイス (空きパターン)
     ◎ ボタン x 6
     (◎解析済 ○解析不要 △要解析)

    PMP なわけだから こういうものは当然載っているのだが ... これらを扱うプログラムから作らないといけない。また、どの GPIO が接続されているか解析しないと使えないものも多い。 (ほぼ解析完了)

FX010 の GPIO 割り当て

    ダメだめな 1 枚を 破壊読み出しして、だいぶ分かってきた。 ( 調べる方法はリード線を付けてテスターで確認するだけだが、良くわからないところは部品を取ってみたり。だいぶボロボロになってきた。)

    o SD_CD 54 WAIT SDカード検出
    o SD_PWR 102 LCD_SPL SDカード電源SW (未使用)
    o CHARG_DET_N 107 LCD_PS 充電完了検出
    o USB_DET_N 48 PWM5 USB電源検出
    o BL_PWM 57 PWM3/RXD バックライト制御
    o AMPEN_N 105 LCD_REV スピーカーON
    o LCD_RESET 103 LCD_CLS LCD の RESET ピン
    o LCD_CS 110 LCD_DE LCD の CS ピン (111 かも)
    (LCD_RS LCD_HSYNC ) 一意に決まる
    (LCD_WR LCD_VSYNC ) 一意に決まる

    ? KEY_INT 112 LCD_D16 (?)

    1.65v 2.27v 1.06v 0.60v (USBBOORT)
    ___ ___ ___ ___ ___ ___
    o o o o o o o o o o o o

    WKUP GND 103 COM COM 223 COM 472 COM 222 GND LCD_PCK
    85 | | | | 2
    GND GND GND GND

    VDDRTC
    |
    103
    |
    COM: -+-- R --- ADIN1 68
    |
    | VDDRTC
    | |
    | S Pch FET(2A)
    ---- G
    D -+- LCD_D16 112 (KEYINT)
    |
    105
    |
    GND

    VBUS
    |
    104
    PWM5 -------+
    204
    |
    GND

    不明
    LCD_D17 111

    KEYINT はこんな感じ。2A とマークされた Pch FET (たぶん)の Gate の電圧がボタンを押すことで下がると H 。2A は FET でないと ダメなはずだが ... PNP Tr も 2A とマークされるから区別ができない。

    不明なのは、1 つになった。あと 111 を中心とした 3PIN は入れ替わっているかも 要 FIX 。

    まだ他に不明なものがあった。

    電源については、VCCRTC は常に通電されていて、メイン電源は、PWRON ピンで行う。これは VDDCORE と VDDIO 用のレギュレータの EN に接続されている。レギュレータは アナログ用が もうひとつ別にあって、これの EN の扱いが先の 2 つとは違うようなのだ。OFF は PWRON ピン優先でないと困るが、ON するのに別の条件があるかも知れない。
    ちなみに、OFF (あるいは サスペンド)状態から ON するのには、WKUP ピンがある。これは GPIO の機能もあるピンで ボタンに接続されている。ただし、電源供給されていないと意味が無い。電源供給は、スライドスイッチ が ON になっている or USB に接続されている が条件。

    電源関係は、USB コネクタの裏側にもある。ここに SOT23 が 2 つある。どういう役割をしているか未だ調べていない。どのように電源が供給されるかは、後学のためにも把握しておきたい。

    不明な GPIO が 1 つしかないということは、空いていないということでもある。だが、機能を潰して GPIO に回すことはできる。I2C は最も引き出しやすい、次は 0.8mm ピッチの LCD 。microSD を潰すという手もある。最も使わなさそうなのは、NAND FLASH なのだが、こちらは 0.5mm ピッチで 厳しい。

何に使えるのか?

    こんなものを 何に使うのか? 疑問に思われるかも知れない。それも、もっとも。

    Linux を移植することは可能ではある。JZ4740 用のコードが 正規の Linux に含まれているが JZ4725(無印) は、これと結構近いのだ。だが、移植が出来たとしてもつまらないのだ。(あまり性能が高くない) Raspberry Pi と比べてさえ相当に見劣りするから、単に遅くて不自由な Linux マシンになってしまう。Android は論外で遅い以前にメモリが少なすぎる。

    だが、電子工作レベルで 考えると 結構魅力的にも見える。自作可能で 400 MHz というのは あまりないのだ。もし、PIC32MX を使うのと同じように使えれば、クロックが5倍・10倍 になってメモリも比較にならない容量になる。さらには、HI-Speed の USB -- 電子工作レベルでこれが扱えるものは少ない。

      500 MHz あたりで LQFP ... となると かつて中華PMP で使われていたチップぐらい。それも高性能化にともなって BGA ばかりになっている。古い RK2608 とか ARM で LQFP もあるが、プログラミングできる情報が入手できない。

      ... と思っていたが、なんと GHz クラスがあった。ものは Allwinner A13 。詳しくは知らないのだが、Olimex が ボードを作っている。これは、Linux のソースコードぐらいは入手できるはず。

    ただ、問題はインターフェイス。HI-Speed USB (デバイスのみ)、microSD、オーディオ、LCD インターフェイスに 、バッテリー インターフェイス。さらには I2C 。立派なインターフェイスは付いているのだが、これでは PMP にしかならない。PMP の劣化版が目標ではつまらないのだ。

      I2C にセンサを付け、LCD で表示させる ... なんて使い方はあるかも知れないが、PMP を買って改造した方が安くつきそう。ジャンク基板ベースで 再構成するのでは 意味がなくかえって不利だ。オーディオを扱う場合も同じ。

      そして、PMP ベースにすると Linux を入れたくなる。で、頑張るはめになっても、結局は貧弱なシステムになってしまいそう。

      Linux を入れずに .. そして 電子工作らしいインターフェイスを付けて シンプルなファームウェアで動かすのが満足度が高いような気がする。

      LCD インターフェイスを使って、本来とは違うタイプの LCD を付けるというのはアリかもしれない。コントローラ付き以外に スキャンタイプの LCD (480x272 ぐらい 〜 800x600)も制御は可能。ただ、このボードは、LCD_CLK が、ボタン(と BOOT_SEL)につながっていて、そういう改造をするにはちょっと嫌な感じ。

      コントローラ付きでもスキャンタイプでも DMA を使って フレームバッファを出力させることが出来る。(無限に転送を繰り返すことも出来る)。画像という制限もなく、息継ぎなく波形を出力するようなことも出来るようだ。

    あまり改造しなくとも、結構なことが出来るような気もするのだが、高速なインターフェイスをひとつぐらいは持ちたいところ。ところが、JZ4725(B) は、ピンが少なく上記以外のインターフェイスが全然ないのだ。

    ここをクリアできると、いろんな可能性が出てきそうなのだが ...ここは、ちょっと考えてみたい。

    まぁこういうとりとめがないことを考えに入れつつ... まずは動かすことを目標にするのだ。

    JZ4725(B) は、こんなところだが、JZ4755 というチップもある。こちらも 0.4mm ピッチ LQFP だが、ピン数が多く インターフェイスも多い。カメラインターフェイスがあって、データの高速取り込みも得意で SPI も別にある。さらに、I2S や ビデオDAC(10bit DAC x 3) があって、いろんな出力ができる。 SDRAM も 32bit 幅に対応していて、メモリ帯域を増やせる。ボードを作るなら、こっちが本命だとも思っているが、JZ4725B を入手してしまった。


ここからは、わかったことのまとめ。

データシートについて

    データシートだけでは、プログラミングできない。programmers manual というのが必要。
    さらに、それだけでは分からない部分がある。USB とかは削除されている。削除されているものは、Linux のドライバのソースコードを見たほうが早い。(Dingoo Linux のコード が 標準カーネルに commit されている)

    直接リンクはしない。(jz4725_ds , jz4725_pm で検索すると見つかる .. かも)

    JZ4725B は ピン配置に互換性があるが、別物だと思った方が良い。これも検索すると見つかるのだが、中身が随分と変わっている。こちらは、JZ4755 に似ているのだ。

SDRAM インターフェイス

    16 bit 幅の SDRAM が載る。載せるなら 16Mx16 (32MB)が普通。8Mx16 (16MB) というのも ある。実際の PMP は 16MB が多い。

    PC 用の DIMM (PC133 とか) は、8bit や 4bit 品がよく使われている。とりはずして流用するなら 4 つしかチップが載っていない ものが確実に 16 bit 品。

NAND FLASH インターフェイス (空きパターン x 2)

    2 つ空きパターンがある。
    どちらが #1 か特定する必要がある。(ブート対象)
    NAND FLASH は、2K ページ のものしか使えない。(たぶん 2GB のタイプ)

    ただし、使わない予定。USB を通じてブートさせる。

サウンド出力/マイク入力

    サウンドだが、

    HPOUT ------+- 33 --- 47u -- FB --- OUT
    |
    + -C -- 51 --+
    | |
    C GND
    |
    103
    |
    スピーカーへ

    こんな感じ。C(0.1u) + 51 は何だろうか? HPF を GND に持って行っているから ノイズ対策?


スピーカー出力

    アンプ IC が載っている。Enable するための GPIO を特定する必要あり。(済)

    なにも 操作しないと、ON で イヤホンを挿すと OFF になるようになっている。GPIO で L にすると 強制 OFF 。入力は、L/R をミキシングしたもの。

microSD

    1bit SD インターフェイスを使用している (遅い)

    カード挿入を検出する GPIO を特定する必要あり。(済)
    電源を Enable するための GPIO を特定する必要あり。(済: なし)

    電源スイッチはパターンのみ。常に ON (0 Ωでショート)。常に挿しっぱなしで使うから妥当か。

USB (HI-Speed , デバイス)

    USB からの電源供給を検出する GPIO を特定する必要あり。(済)
    バッテリー使用時しか関係ないから パターンから調べる。それらしきものは見つかった。

リポ電池 インターフェイス

    一般的な充電 IC LTC4054 のパターンだけある。多分代替の 簡易回路が載っているのではないか?

    ステータスを検出する GPIO を特定する必要あり。(済)
    充電を止める GPIO を特定する必要あり。(済: なし)

    デフォルトでは、LTC4054 は載ってない。強制的に充電。(OFF にできず)。載せた場合は、ステータスだけ分かる。

FM モジュールインターフェイス (空きパターン)



    L/R LINEIN , I2C が接続されている(はず)

    2mm ピッチなので(唯一)楽に信号線を引き出せる。

      ANT (1) DATA I2C_SDA
      MPX CLK I2C_SCL
      RLINEIN R-OUT BUS MOD
      LLINEIN L-OUT Write/Read
      GND VCC

LCD インターフェイス (空きパターン)

    36 pin の 2.4 inch LCD が載る。
    LCD 制御用のピンはかなり決まっている。線を引き出せば GPIO として 使える。
     ただし、0.8 mm ピッチのため引き出しは難易度が高い。
     (出力専用として設計されているため)例えばボタンなどと共用になっているピンがあるかも -- 要注意
     LCD 用ピンの出力は、4mA で 初期化時 プルアップされる。
     シリアルインターフェイスも使えるはず (SLCD_DAT15(DATA)/SLCD_CS/SLCD_RS/SLCD_CLK)
    LCD のピン配置を 特定する必要あり。(済)
    バックライトの ON 用の GPIO を特定する必要あり。(済)
     バックライトは PWM が使われることが多い。兼用機能の I2C , TXD は使われることがないので、PWM3(RXD) か PWM5 の二択。
     → バックライトは PWM3/RXD と判明。

    LCD_PCLK 1 は、ボタンに使われていて、シリアル(SPI) には使えない。8 bit 化ぐらい。

      ピン配置 (調査済)

      1-3 NC
      4 GND
      5 NC        

      6 RESET レ (LCD_CLS )
      7 VSYNC VCC
      8 HSYNC VCC
      9 DOTCLK VCC
      10 DEN   VCC
      11-28 DB17 - DB0
      11-18 (SLCD_DAT15/PC15 - SLCD_DAT8/PC8)
      19 NC
      20-27 (SLCD_DAT7/PC7 - SLCD_DAT0/PC0)
      28 NC
      29 RD   VCC
      30 WR   レ (LCD_VSYNC/SLCD_CS/PC18 )
      31 DC   レ (LCD_HSYNC/SLCD_RS/PC19 )
      32 CS   レ (LCD_DE )
      33 GND GND
      34 VCC VCC
      35 LED (-)
      36 LED (+) (3-4 直列)

ボタン x 6

    制御用の GPIO/ADC を特定する必要あり。(済)
     ADC を使用している可能性が高い。

    ボタンは、判明。左 WKUP 、右 LCD_PCK + BOOT_SEL(?) 。中の 4 つは ADC だが 割り込み用に GPIO が割り当てられている(ようだ)。

    USB コネクタ側のボタンを押しながら USB に差し込むと "Usb Boot Device" と認識される。そして、このときだけ 触れないほど高熱になる。... これは知らなかった壊れると困る。全速力で動作するためなのか、ボードになにか問題があったためか不明。

シリアル



    テストパターンとして出てはいる。左が TxD 右が RxD 。

    RxD は、他の機能に使用されている。(バックライト) 。ランドは剥がれやすく扱いに注意が必要。

電源系



    電源は、
     3.3V LDO (SOT23 6621 -- XC6621 ?) RTC用
    3.3V LDO (SOT23-5 A232) x 2 , IO用+ アナログ用。
    1.8V DC-DC (SOT23-5 HX-UG)
    LCD backlight (SOT23-6 5121R -- XZ5121)

    があるのは確認できた。その他に
     Li-po Charger (SOT23-5 LTC4054)
     micro SD (SOT23 Pch スイッチ)
    のパターンだけある。

    LTC4054 は付けておらず ダイオード + 2.2 Ωで代用している。microSD は、スイッチを 0Ωでジャンパしていて常時 ON。あと、XZ5121 の 近くに SOT23-5 の空きパターンがあるが 何か不明。



補修編

    SDRAM と FLASH は取り外されている。そのときに近くの RC も外れてしまっているものが多い。



    ---------- -- HX-UG
    | C | | C| +----+ ------
    | | | | | | + +
    ---------- -- | | | coil |
    -- -- | | | |
    [104] [ X ] | | | | +----+ + +
    | 0| | X| ------
    [472] [ C ] -- -- [ C ] [ C ] [ C ]
    0.1u 0.1u 0.1u 0.1u

    SDRAM 周り で SOT23-5(HX-UG) とコイルがある あたりにまず足りないものがある。
    足りないものは全部 1608 の CR で再生可能。

    まともなやつもあったので、そこから転記。X は元から空きパターン。こんなところだけ器用に外せない。



      だいたいこんな感じ。下側のコンデンサは、たぶん SDRAM 用。SDRAM を付けるとき必要。とりあえずはなくても。

    で、その左。

    (-) (+) 0.1u
    ---------- -- LTC4054
    | C | | C| +----+
    | 10u | | | | |
    -- ---------- -- | |
    | | ---------- -- | |
    | | | | | | +----+
    -- | DIODE | | C|
    2R2 ---------- --
    0.1u

    LTC4054 のパターンは、元から空きパターンのような気がする。その左が根こそぎ外れているものが 1 つだけあった。(それ以外は無事)

    まぁこれは、バッテリー充電周りだから、なくとも動く。ちゃんと使うなら LTC4054 を使いたいし回路を精査しないと。


      回路が分かった。LTC4054 は元からついておらず、ダイオード + 2.2 Ωで代用している。(赤の部分: LTC4054 を付ける場合は外す。) Lipo 電池は 過電圧保護があるが ... それに頼ると劣化が早くなる。充電を停止させるスイッチが 入力に付いていると思いたかったが ... そういうものはなかった。ステータスは読めるが、PROG の操作もない。 まぁバッテリーなど当面使わないのだが ..

      とにかく、ここの部分の部品がばっさり取れていても問題無さそう。ブリッジだけ要注意。

      10 元で買ったやつのなかには、SOT23-5(HX-UG) まで取れているものがあった。普通は修理不可能。(代替チップは購入可能ではあるが、チップを入手してまで修理する意味はないだろう)。取れているものがあるぐらいだから、ここまで 破壊が及んでいる。ブリッジとかのチェックは念入りに行わないといけない。



    スライドスイッチのすぐ下にあるダイオードまで取れているものがある。これは付けないと動かない。

    さらに、FM モジュール周り。並んだ所は全部付いているのだが、とれているものがあった。FM モジュールはつかうつもりがないのでパス。

      が、とりあえず正しいパーツを読み取っておく。


      左側上から 黒 茶 332 茶 332 103 黒 白 。
      右側上から 茶(大縦) 103(縦) 茶 222 222 。

      茶色は 0.1uF あたり 、白は pF クラス。黒はたぶん FB 。103(縦) のとなりは 100(縦)。

      これだけで、どういう回路か想像できるようになってしまった。

JZ4725B 換装(の可能性)

    JZ4725 を外して、JZ4725B に換装は可能。ただし抵抗を ひとつ(?) 付け替えなければならない。#76 RREF に 10KΩ を通して GND に接続するのだが、1% 精度の指定がある。



    JZ4725 は、2.5K Ωのはずなのだが、 そんなものは付いていない。抵抗値を見ると 1.5K + 1K で作っているようだがマークが変 18B(1.5K) , 01B (1K) ? なんだろう?

資料編

    1.8V DC-DC

      HX-UG とマークされているが、5 ピンのものは 同期整流型。


         (1) EN Vout (5)
      (2) GND
      (3) Lx Vin (4)

      PDF があっさり見つかった。名称は HX1001-CE 。LTC3406 互換品。コイルは、2.2uF が指定されているが、実装されているのは違うような気がする。

      ところで、ピン配置違いの Torex XC9236 , Fairchild FAN5307 , Semtech SC189というものもある。こちらの方がメジャーかも知れない。

         (1) Vin Lx (5)
      (2) GND
      (3) EN Vout (4)

    3.3V LDO (SOT23-5)

      電流を流せる(300mA)タイプとして、Torex XC6204 , XC6219 ( 最大 300mA のタイプは 型番に E 〜 H が付く)。

         (1) Vin Vout (5)
      (2) GND
      (3) EN NC (4)

      ( (4) が NC だが、コンデンサを付けるタイプもある。)

      A232 とマークされている IC (2つ)はこれ。中央にあるのは、 EN が 1.8V スイッチング レギュレータの EN とパラレルで接続されていて VDDIO 用。もうひとつは、アナログ用電源。

      秋月で買えるピン互換なものは、NMJ2866、(4) に コンデンサを付けるタイプには、TAR5SB33 , SI91841DT(2.85v) 等がある。 ただ、最大 300mA も流せるものはない。

      A232 は、どこまで流せるのか不明だが、SDRAM や microSD は大食いなので 、要注意。

    LED driver (SOT23-6)

      aitendo でも扱っている XZ5121

         (1) Vin SW (6)
      (2) EN OV (5)
      (3) GND FB (4)

      他に PT4101 も同じ ピン配置 (FB 電圧の違いに注意)

      PT4101 は、FB が 104mV 。5.1 Ωを使うらしい。一方 XZ5121 は、いろいろあるようだ。この基板では、13X というマークの抵抗が側にあり実測してみると 抵抗値は 13.3 Ωだった。より大きな値を使うということは ... FB 電圧がさらに小さい。50mV とか。

    LTC4054

      有名な充電用 IC 。MicroChip の MCP73831 など互換品が数多くある。PMP では、中華製の互換品が良く使われている。

         (1) /CHRG PROG (5)
      (2) GND
      (3) BAT VCC (4)

      /CHRG は、LED 駆動用の オープンドレイン出力。 モニタするために GPIO を接続したりする。PROG は 充電電流の設定。PROG に GPIO を付けて 充電を停止させたり、AC アダプタ時に充電電流を増やす付加回路を付けることもある。

    コイル(インダクタ)

      コイルは、2つ載っている。ひとつは 1.8V 用で、もうひとつは、バックライト用。
      コイルのパッドは、4mm x 2.6mm ぐらいのエリア。1.8V 用は 2.2uH が指定されていて バックライトの XZ5121 は 22uH 。付いているのは、マークがないので、どちらも同じに見える。

        実際同じかも? 線の段数が同じぐらいに見えるので、同じものを使っているように見えて仕方がない。両方とも 10uH で 代用してしまってたりするかも?

      最初は代替に CB2518T で良いかとおもったがちょっと厳しい?

      NR3015T とか ASPI-2512 が電流が流せてかつ安いみたい。

      CBC2518T なら 2.2H , 22uH とも OK そうな感じ
       
      CB2518T CBC2518T
      Sat Max Sat Max
      1.0uH 1.2A 1.5A 60mΩ 1.2A 1.0A 104mΩ
      2.2uH 510mA 1.3A 117mΩ 890mA 1.1A 169mΩ
      4.7uH 310mA 1.2A 100mΩ 680mA 920mA 260mΩ
      22uH 165mA 580mA 650mΩ 320mA 460mA 1001mΩ

      どうも CB2518T だと 電流は流せるものの、すぐ飽和する感じ。CBC2518T は、飽和電流も大きめ。22uH の方 -- PT4101 のデータシート見ると LB2012B も載っていて CB2518T 以下みたいに見える。2.2uH の方 -- LTC3406 を見ると MAX DC CURRENT を問題にしていて 1A あれば良さそうに見える。今買うなら CBC2518T が安くて良さそうなんだが、CB2518Tでもクリアしている? で、手持ちを調べると CB2518T の 4.7uH(R) と 22uH 。

おまけ SDカードインターフェイス(MSC) について

    どう考えても、引き出せる高速インターフェイスはこれしかない。どういうもので、どう使えるか 少し検討してみた。

    MSC

      JZ4725(B) の PMP で使われる microSD のインターフェイスは MSC(B では MSC1) というもので MMC/SD/SDIO コントローラ の略。これは、普通 4bit ある DATA が 1bit しかない。だが、これでも ちゃんと規格を満たしていて microSD も普通に使える。

      速度は、JZ4725 では 5Mbps 〜 20Mbps となっている。JZ4725B では、〜 80Mbps と大幅に上がっている。

      JZ4725Bに限った話だと それとは別に MSC0 があって、NAND FLASH と排他で使える。DATA 線も 4bit あって そこからのブートも可能になっている。と言っても、NAND FLASHを使わずに MSC0を使う PMP は見たことがない。こちらは MSC1 の 4 倍の最大性能で 320 Mbps 。

      NAND FLASH のパターンには MSC0 の信号線は(不足なく)来ている。JZ4725Bに換装した場合、microSD に付け替えることは可能かも知れない。(そのための変換基板を作ったりもしたのだが、0.5mm ピッチのため線を引き出すのは困難)

    1つのインターフェイスを 2つに分岐するチップ

      デジキーで SDIO を検索したところ TXS02612 というものが見つかった。

      これは、SDIO ポートエクステンダというもので、1 つの インターフェイスで 2 つのデバイスを使えるようにするスイッチ。 QFN-24 パッケージがあって、単価 100 円台。

      データシートをひもといて見ると... 2つのポートは、それぞれ別電圧にすることが可能。(ただし、1.1V 〜 3.6V の範囲) 。それなのに、(CLK 以外の)信号線 はアナログスイッチのような 双方向。(方向を指定する信号線もない)。これは ... 一般的なレベルコンバーターにも使えるかも知れない。

      それはともかく、インターフェイスを増やせる可能性が出てきた。

    さて、MSC は、JZ4725(B) でどうやって使うものなのだろう?

    MSC の機能



      まず、MMC , SD/SDIO 1bit, SD/SDIO 4bit の 3 つをサポートしている。MMC, SD/SDIO には SPI モードというのがあるはずだが、それが使えるものなのかどうかは よく分からない。

      さて、気になるのは、Interrupt と ReadWait 。なにやら ステータスを受け取ったりするようだが、4 bit では、DATA 線と シェアしている。いったいどういう仕組みなんだろうか? 1 bit では、専有している。こちらの方が楽そうだが ... だいたい MSC1 では DATA1/2 の専用線はない。MSC とは別に GPIO で接続するのだろうか?



      SDカードのドライバのコードを見たことがあれば知っている内容だが ... コマンド と 4バイト長 の Argument を送ってレスポンスを受け取るのがまず基本。レスポンスは 1バイトの形式もあるし、4バイトの形式もある。

      ChaN 氏の 『MMCの使いかた』が参考になる。

      コマンドの意味やそれに対する レスポンス形式のルールは決まっているが、無視して好きなように使うこともできそう。それに加えてブロック転送がある。これも使わずに済ませることも出来そうだ。

    SPIモード と 1bit の SD/SDIO とは、違うものなのかどうか分かっていないのだが、PIC32MX と直接接続できるような気がしてきた。それが可能なら USB HOST を付けられる可能性があるということになる。

    そればかりか、FPGA とやりとりするのも 出来そう。以前 『USBコントローラの設計(2)』なんて記事を書いたのだが、QFN32 の MachXO2-256 でも コマンド を受け取りレスポンスを返す程度のものは出来そうな気がする。

    4bit での転送は難しいような気がするがこれが出来ると ... JZ4725B の MSC0 + TXS02612 で接続したとして 最大 60 MHz x 4bit = 240 Mbps (30 MB/sec) にもなる。単に PC と FPGA を 取り持つものを作っても 面白いものが作れるかも知れない。

JZ4725B 自作ボードの構想

    チップを入手したし、2層基板での自作ボードの可能性を考えてみたい。(ハンダ付けが困難なのは、サテおく。)

    ひとつは、単なる変換基板を作る作戦。裏面を全部 GND にすれば、2層基板でもなんとかなりそうな気はする。汎用の変換基板があるかもだが、作った方が安いような気がする。ただこれでは、外部に出すピンが多すぎる -- 配線が面倒すぎるのだ。SDRAM ,水晶 , パスコンを引き回して良いものかどうかという不安もある。

    変換基板から一歩進めて、これらをオンボードにしたい。SDRAM につなげるピンは、1:1 にして専有させる。... そうすれば信号的に安定するだろうし、外部に引き出さなくて済む。NAND FLASH は接続できなくなるが、MSC0 (microSD) 専用ということにする手がある。

    USB は微妙。信号線は、SDRAM なんかより よっぽど高速なわけだが ... USB コネクタを載せると電源系も 付けたくなる。そうなると面積が...

    ちなみに、50mm x 50mm に収めようとすると ピンヘッダ・ソケット は 19x2 (38pin) を 2 つ入れるのが最大。結構線を引き出せるように見えるが、配線の都合があるから効率良く使えるとは限らない。また、2列は不便。可能なら 1 列にしたいところ ... 無理だとは思うが、1 列でも 一応は使えるような割り当てを目指したい。

    結構具体的なのは、実は設計を始めているため。ダメかもしれないが、いずれ記事にしたい。
posted by すz at 00:43| Comment(0) | TrackBack(0) | 日記

2012年10月08日

JZ47XXのリファレンスデザインから

JZ47XX というのは、中国の Ingenic という会社が作っている MIPS SoC 。MIPS 版 Android では JZ4770 というチップが採用されていたので知っている人もいるかも知れない。

この会社が出している JZ4725B や JZ4755 といった (世代が古い)SoC は、0.4 mm ピッチだが LQFP で 電子工作レベルでボードを設計できるかも知れない。Programmers Manual なども ググって見つけたし、いずれは挑戦してみたいと かねがね思っている。

そんな考えでリファレンスデザインを眺めたりしているのだが、PMP は All in One だから、回路図が結構参考になる。今回はちょっと紹介してみたい。

参考書は、RD4725B VOLANS 。(もう新規設計を推奨しておらず、メーカーページからのリンクがなくなっている .. のだが、ググると見つかる)

    RD4755 CETUS
    RD4760 LEPUS
    RD4770 PISCES

    これらは、現行のチップ用リファレンスデザイン。

    RD4725B VOLANS は、ftp://ftp.ingenic.cn/2soc/4725B

    ここにあるが、どうもサーバーが重いような。

LED バックライト



    LED がパラレルになっている LCD バックライト用の回路。電流制限抵抗を入れるだけ ... みたいないい加減なことはしていないのだ。電源電圧が 3.3V しかないと 電流制限抵抗では調整が難しいためだ。

    で、この IC は KB5239D となっているが、パーツリストの ID のようだ。でも、8 pin で 4 出力の LED ドライバというものがある ... というだけで随分ヒントになる。

    デジキーで探してみると ... 例えば、CAT4104V なんてのが見つかる。ピン配置は違うのだが、PWM で 平均電流を 制限してくれる。なかなかに良さそう。コントローラ側でさらに PWM をかけることも出来る。ここで使われているのも同じようなタイプだろう。

    他には、PCA9633DP1 とか。こちらは I2C で制御するタイプ。

    実際の PMP で、ここまでやっている 製品は少ないだろうとは思うが、電子工作では、こういうのを積極的に使いたいところ。

      単にパラレルにすると Vf のバラツキのために、明るさに偏りが出るかも知れない。個別に PWM で調整することは可能だが、メインの MCU の リソースを割くのはもったいないし、ノイズを分離できない。

      ここは、専用 IC にまかせてしまうのが良さそうに思える。

スピーカーアンプ



    8 pin の BTL アンプが PMP ではよく使われている。(LM4890 か 互換品) ピンアサインは同じでも D 級のタイプもある。( これはリニアのタイプかも) 。それはともかく、入力部分が気になった。

    ヘッドホン用のステレオ出力を ひとつにして、アンプの ON/OFF で スピーカー出力を制御している。普通といえば普通なのかも知れないのだが、デジタル系ばかりやっていると どう回路を組めば良いかイメージできないかも知れない。

    あと電源に 1 Ωが入っている。RC フィルタにして ノイズ対策しているようだ。 負帰還用の抵抗が NC になっているのも気になる。これで良かったのだっけ? ... 普通に ゲイン 1 倍の 51K を付けるのでは? Rail-to-Rail でないのなら 少し大きい値。

ヘッドホン出力



    ヘッドホンだと 220uF ぐらいが普通なのだが、これは 47uF しか使っていない。100 Ωを入れて 出力を落とせば 47uF でも まぁなんとか。表面実装の 220uF なんてのは結構高いし、へたなものを使うぐらいなら こっちの方が良いのかも。

マイク



    10 KΩ + 1uF で 電源ノイズをカット。で、4.7k Ωで改めてバイアス。... これも知っている回路と違う。なるほどという感じ。

キー



    これは、ADC を使った回路。JZ4725B は、128 pin の IC なのだが GPIO が全然足りない。少しでも節約するためにこうなっている。

FM モジュール周り



    FM モジュールは使ったことがなく良くは知らないのだが、これもまた電源周りに工夫が見られる。10 Ω + 1uF の RC フィルタが 2 段。AVR とかでも ADC を使うなら これぐらいやった方が良いのかも。

    GND の方は、0 Ωだが、本来入れるべきなのは? チップフェライトビーズとか?

      これは、10 Ωとか。AVCC と対称で良さそう。実際 他の RD で 10 Ωになっているものがあった。

    そういえば、PIC32MX は、RC 1 段が データシートに載っていた。AVR の場合は LC が載っている。

電源 IC



    電源はスイッチングレギュレータ。PMP では、SOT23-5 の IC が 良く使われている。VCORE 用は当然としても、3.3V 用でも リニアレギュレータをメインにしているのは見たことがない。(RTC 用には 使われたりする) 。インダクタに 10uH というのを良く見るのだが、これは 3.3uH でスイッチング周波数が高いタイプのようだ。

アナログ系電源



    コンデンサの前に BKP1608HS121 (デジキーで 100個 368円) というのが入っている。ググると 太陽誘電製で、インピーダンス 120 Ω。秋月だと チップフェライトビーズ BLM18RK121SN1 (120 Ω)が近そうな気がするけど、定格電流が全然違う。それでも 抵抗いれるより全然まし?

    あと水晶周り。どうも ただの CMOS インバータで発振させる定数のように見える。-- 32KHz だと 10M なのか -- 1M でも問題ないと思うが 消費電流を減らしたければ 値を大きくできる。

MicroSD カード



    プルアップとかは、SoC 側に付いているのだろう。で、CLK だけ直列に抵抗が入っている。ちょっと気になった。

RD4725B はこんなところ。他の RD についても、紹介したいものが見つかれば追記しておこうと思う。

あと、他のメーカーの回路図は見ていないのだが、設計する人によって特色があるかも知れない。見比べてみるのも勉強になりそうだ。

追記: RD4755 CETUS

ようやくダウンロードできたので、見てみることに。

VGA



    JZ4755 は、JZ4725B とほぼ同じ世代なのだが、JZ4755 は大分機能が多い。そのひとつが VGA 出力。こんな風に RD にもコネクタがある。(2 段だから PC 用ではない?) 。そして、これ以降の JZ4760/JZ4770 は HDMI になったので もう VGA のサポートはない。ちなみに 他の JZ47XX は、2ch しかないので、S-Video 出力までにしか使えないのだが、これだけ 3ch あって VGA が出力できる。

    で、どんな風にインターフェイスしているのか。



    I2C は、FB(フェライトビーズ)を通したり、コンデンサ(120pF)を付けたり。



    VSYNC/HSYNC も同様 。それはともかく、これだと LCD と 排他で使うのだろうか? それとも 同じタイミングで出力?



    さて、映像出力はこんな風になっていた。75 Ω と 15pF を GND の間に入れてから FB を通す。そしてまた 15 pF 。いまさら VGA でもないのかも知れないが ....

ヘッドホン出力



    これは ... ただの直結。コンデンサを省けるように ステレオ化した BTL(?) になったのだが、こんなもので良いのだろうか? 気になったので、RD4760 LEPUS と RD4770 PISCES も見てみた。


    (RD4760 LEPUS)

    (RD4770 PISCES)

    RD4760 LEPUS は、なんか変。220uF ものコンデンサを入れてたり、やりすぎ? RD4770 PISCES だと ESD5B5V というのが GND との間に入っただけ。(AOHPR の方も入っている。図からはみ出た)。ESD5B5V はクランプしてくれる保護回路という理解で良いのだろうか? ツェナー x2 と同じ?

    RD4770 になると ESDxByV がやたらめったら入っているのだが ... 結構安いものなのだろうか?

    あ、参考になりそうなのは、イヤホンを FM アンテナにする所。RD4725B では、HPM ではなく GND なので、 FB を GND との間に入れて その前段を アンテナ入力にしている。

RD4760 LEPUS と RD4770 PISCES

先に出してしまったが、RD4760 LEPUS と RD4770 PISCES というのもある。

JZ4760 以前は、400 MHz 程度が上限の コアだったのだが、JZ4760 で 600 MHz 程度と周波数が一段回上がった 。SDRAM も DDR2 対応に。周辺回路もまた大きく変わっている。JZ4770 は、1.2GHz とまた 周波数が一段回上がったのだが、 周辺回路はわりと JZ4760 に似ている。

スピーカー


    (RD4760 LEPUS)

    (RD4770 PISCES)

    RD4760 は、専用出力を直結。これもあんまりだ。こうなってくると参考にならない。RD4770 はまとも? 負帰還用の抵抗はちゃんと入っている。ただ、IN+/IN- 入力に BTL の出力をそれぞれ入れている。そうした方が良いのか出来るからそうしただけなのか? ESD5B5V まで入っている。専用 IC にそんなものが必要なのだろうか?

GPS



    回路の一部だけ 載せたが、RD4760 LEPUS と RD4770 PISCES の両方 GPS が載っている。しかもモジュールではなくて、直付け。回路図なんて初めて見たかも。

    それはともかく、気になったのは、TCXO 0.5 ppm 。GPS には、精度の良い オシレータが載っているらしい。16.367667 MHz とはまた 数字がやたら多い。

    デジキーなんかで探すと 16.368 MHz とかの TCXO がわりと安く買える ... のだが周波数が 使いにくい。16368 = 16 x 1023 。16.3676.. と続くなら 16 x 1022.98 とかそんな値。

おまけ: 中国で買える SoC とか

    中国のショッピングモール taobao は代行を通さないと買いにくいのだが、様々な SoC を扱っているショップもある。たとえば ここ

      Allwinner A10 50.00 元
      RockChip RK2918 40.00 元
      RockChip RK2706B 15.00 元
      Ingenic JZ4725/JZ4725B 15.00 元

    A10 や RK2918 は Android タブレットで使われている SoC で GHz クラスの ARM 。BGA だから電子工作は無理なのだが、実際に 1 個単位で買えてしまう。50 元だと x12.5 で 625 円ぐらい。JZ4725/Z4725B は 0.4mm ピッチ 128 pin なので 電子工作 可能な範囲。RockChip の旧世代も良さそうなのだが、Programmers Manual が手に入らないしパス。

      Allwinner A13 が、QFP だという 情報が ... 多分 0.4mm ピッチ 176 ピン - 電子工作レベルで扱えるかも。もし SATA が (A10 同様に)付いていてデータシートが入手できるのなら、欲しくなってしまう。

    JZ4725/JZ4725B については、データシートとか SDRAM とか 入手済み。いずれは.. と思っている。だが、現行品では なくなってしまっているので、この機会に JZ4725/JZ4725B を入手しようかと思う。

      ついでに書くと、リンク先のショップは、PMP に使われる IC とかも 扱っている。やたら安いので一見の価値はありそう。5121 は ZX5121 LED バックライト用昇圧 IC 。LM4890 は上記でも出ているスピーカアンプ。662K は、3.3V レギュレータ。A18 は、上記の 1.8V スイッチングレギュレータ。4101 は、リポ電池充電 IC PT4101 もバックライト用昇圧 IC 。全部は分からないが メジャーなものの率が高い。こういうものは、PMP 以外でも 有用。まぁ品質上のリスクはあるが、興味深い。

    ただ問題は、JZ4725/JZ4725B が区別なく扱われていること。物理的にはピンの互換性があるのだが、中身は全然違う。SD からブートできる B が欲しいのだが ...

    ついでに書いておくと taobao で JZ4725 を検索すると PMP の メインボードが見つかる。以前も紹介したのだが、SDRAM と NAND FLASH が 付いていないもの。23 元で入手したのだが、JZ4725 採用の新品。そのままで USB Boot は出来た。(32KB のキャッシュだけで動かす)。



      SDRAM は新品では割高だったり入手が難しいのだが、今は、メモリモジュールから外すつもりなら結構安く入手できる。これなんかだと 16Mx16 が 4 つ載っている。 16 bit 幅でないといけないし、ぼちぼち 入手が難しくなっているので、いずれ使おうと思ってるのであれば 入手しておくと良いかも知れない。

      FLASH は、必要なら 手持ちの適当な 装置やらモジュールやら から外すつもり。ただ、スタンドアローンで動かさないなら 不要。



      今みると おなじものを 10 元で売っているところがある! 写真は確かに手に入れたものと同じ。(ということは無印 JZ4725)。まぁ、ついでだから買い増ししようかと。これもいずれ、ちゃんといじって記事に書きたい。

      Linux の ソースコードはある。ただ、古いチップだし大分手を入れないといけない上に、性能が他と比べて低いので 、Linux を動かしても面白くなさそう。だが、チップを生で使うなら ちょっとしたもの。400 Mz とかで動くし、メモリも 32MB とか使える。 LCD を付けないで GPIO として 使うと ... なにやら楽しいことが出来るかも知れない。

      0.8mm ピッチから線を引き出すのは私には結構なハードルだ。だが、0.5mm ピッチよりははるかに楽なはず。ピッチ変換基板を以前作ったので、それを利用して引き出すつもり。(わざわざ作る必要はなかったけど)

    ところで、手に入れた PMP のボードだが、サイズは、47mm x 77mm ぐらいで偶然にも 前の記事 『アルミケース三種(2)』でテーマにした aitendoo CASE-B に合うサイズ。最もサイズが合うだけで、入るわけではない。サイドのボタンをどうにかしないと無理。でもなにか考えたい。
posted by すz at 04:18| Comment(0) | TrackBack(0) | 日記

2012年09月30日

アルミケース三種(2)

アルミケース三種』の記事の続き。



aitendo のアルミケース(B)は、幅 が 50mm を僅かに超えるだけのサイズ。ちょっと基板を設計するついでに、フタにできないか検討してみた。

    フタが別売で、139 円 / 枚。50mm に収まるなら、imall.iteadstudio.com で作ると 黒基板/白シルク 10 枚で $15 $13.49 。いくつか作る場合や 汎用的なデザインなら コストに見合う。

    ついでに説明しておくと、ケースの外寸は、50mm x 20mm 。(↓の図面は、あまり信用できない。幅が 50.4 mm となっているが、50mm ジャストに思える。高さも 21mm に見えるが、 実際は、20mm 。 )



    ケース厚 1.5mm 。底面〜スロットに入れる基板 の距離は、たぶん 2.8 2.5 mm で 1.6mm の基板が入って 中央までが、4.1 4.4 mm 。上の空間は 10mm - 1.5mm = 8.5mm なので 12.9 mm までの部品高が許容範囲。

    幅は、47mm ということになる。スロットは 溝が 1mm しかないので ギリギリのサイズにする必要がある。

    奥行きは 77mm 。秋月 C 基板だと 72mm なのできっちりではなく 5mm 空く。

      訂正: 2.8mm ではなかった。

    計算上は上記の通りだが、現物で合わせてみると入らない。秋月 C 基板 は、47mm より少し大きい。またケース自体すこし内側に曲がっている。左右合計で 1 mm弱 削る必要がある。ただし、C 基板と言っても いくつか種類がある。最近のものは サイズが違うかも知れない。

    C 基板を削ってみたところ、力を入れないで入るようになった。幅は 47mm ジャスト(な感じ)。 底面との隙間は 3mm 弱で 、(L 型)ピンヘッダを仮に差してチェックしたところ僅かに隙間がある。

この基板自体は、もともとスロットに入れられるような幅で考えてみたのだが、高さも丁度良さそうなのでフタにできないかディメンジョンを検討。

多分、リューターで ケースの飛び出ている部分を少し削れば、埋め込む形のフタにもなるんじゃないかと思う。

    あと、仕切りのようにできそう。ケースを スライドさせると書いてあるが、ケース上部を、上から被せることもできる。ただ、それをして意味があるかどうか...

上記は内側の黄色い線をベースに少し修正して作る。白い外形線は、50mm x 20mm で、現在の最終型。ただし、切り代の分だけは小さくなる。

これは、電子回路用の普通の基板だが、シルクと 銅箔パターンを使って、デザイン性豊かなフタを作れそうな気がする。基板だから外形も含めて 精度は高い。穴も 6mm ぐらいの丸穴なら問題なく作れる。

    そう言えば、バナナ用の 中継コネクタで、ただの筒のような形状のものがある。(内径 2mm, 3.5mm, 4mm など)。これを直接ハンダ付けして、変なデザインの 装置(電源、オーディオ系、測定器?)を作るとか...

    あと、注意点がある。勝手にシルクに番号を入れられるので、表裏逆につくることを忘れてはいけない。

    もうひとつ注意点。ネジが別売となっているが、合いそうなものは M1.7 とか変なものしかない。... もともとネジが切ってあるのだが、特殊サイズで M1.7 ... なんだろうか? しかもネジを買い忘れた。

    ケースを切ったりすると、もとのサイズのネジは自力では切れない ... どうするのか方策を練らないといけない。タップネジにするか、径の大きな M2 で無理やり ネジを切るか?

この基板について

    これは、『8桁7セグ表示ボード』で書いた PIC32MX の コントローラ基板をベースにしている。上のコネクタは、シリアルと USB 。USB には type A 直接付けられる(かも) シリアルの部分は、ICSP のコネクタにもなる(はず)。下のコネクタは、I/O 用だが順不同。7 seg 用のつもりだったので、配線の都合を優先。

    単独の方が、面白いかと思って切り離して手を入れていったらこうなった。

    今思いついたのだが、この基板を裏に付けて マザーボードにするのはどうだろう。スロットに別の基板を差し込んで ピンヘッダとピンソケットで連結する。スロットに入れる方は L 型ピンヘッダで、この基板はピンソケット。

    ちょっと無理やりだが、電源コネクタは、USB typeA で USB 延長ケーブルを使う。

    手直ししないと見栄えが悪そうだし、コネクタの位置(高さ)も調整しないといけない。だが、ちょっと面白そうだ。

    考察1) (図面を見るかぎり)スロットに入れるほうの基板と底面の間が 1.5mm ほどしかない。L 型ピンヘッダは、2.54mm のスペースが必要だから無理。普通のピンヘッダを基板の裏面に貼ると、0.6mm □ だとして 底面から 1.2mm の位置に 中心が来る。ピンソケットが 底面に張り付くぐらいの位置ならあるいはいけるかも知れない。マザーの方は、そんな感じになっている。いけるかも。

    ただ強度が問題。2 列のピンヘッダで基板を挟んで 強度を確保するか ... あるいは 2 段の L 型の短い方を取ってしまってスルーホールにするか。

    追記: 現物を手に入れたところ、底面の隙間は 3mm 弱あった。結局、L 型 ピンヘッダを普通に付ければ良いこととなった。

追記 caseb-pic32mx-01



    上のアイディアをもとに基板を設計してみた。

    最初 USB A メス を検討したが、パターンはなんとか入ったものの IC-ソケットとぶつかる。で、少し上に上げてみた。これでも IC-ソケットとぶつかることには変わりないが、IC 直付けならなんとか。そして、mini-B も入れた。こちらは、ギリギリ OK (のはず)。

    このレイアウトにするには、長穴加工するしかない。初めての試みで不安だがやって見ることにした。

    Eagleメモ、フットプリント互換性
    ITead Studioへの基板発注
    SSW Blog: Eagleで長穴
    これらの ページを参考にさせてもらって、トライ。

      ・ ドリルラインと長いスロットは受付できません。
      ・ 最小スロットは 1mm*1mm です。
      ・ 穴やスロットでサブ基板を分離する事はどのような事であれ許可されません。

      このあたりが注意点。まぁ良くわからないんだが...

      ・ スルーホール付パッドに Dimension で長い外形穴を入れる。

      基本はこれ。ただ長い パッドはライブラリでしか使えないので、ライブラリ化必須。また、Milling レイヤが 一応それ用のレイヤなので、そこに書いて Dimension と同じ扱いをするうように cam ファイルを変更するのが筋らしい。

      あと、1mm 幅以上というのをクリアしなければならないのかどうか? 端にドリルを当てるべきなのかどうか? とか、いまいち分からない点もある。まぁダメなら怒られるだろうから、発注までこぎつけたい。

    あと、ボタンとか LED も付けた。実をいうと、USB のコネクタが、表裏逆かも知れないという不安がある。ボタンとか LED を付けないなら、逆にして使えば良いだけだと開きなおってたのだが、ちゃんと確認しないとダメになった。

    中国は 10/5 までお休みなので、チェックする時間はある。ボチボチチェックしよう。

      これで合っている。垂直のコネクタは、mini-B も Aメスも 内側向きに付けたものを引き起こすようなイメージ。

この基板のつかいかた(想定)

    (1) aitendo CASE-B の リアパネルに使う。

      スロットに拡張(というかメインの機能の)基板をいれてマザーボードとして使えることを想定している。下の 15 ピンのコネクタには、ピンソケットを付け、拡張基板の方は、ピンヘッダを(直に)下面に付ける。(想定レベル)

      上部のコネクタは、外向きに付ける。左の シリアル部分は ICSP で、ピンヘッダ。USB は、MU5F-23 か同等品でないとマズイはず。工夫すれば、A/メス、[UAF-19]が付くかもしれない。A/メス を付ける場合は、下になるパターンが接触しないよう気をつける。(テープなどで絶縁)

      ボタンは、TD-85XUしか付かない。MU5F-23の同等品 とともに入手を推奨。



      ケースに実際に付ける場合、上部のコネクタや(パターン)がケースに接触するおそれがある。なんらかの方法で絶縁する。特に A/メス、[UAF-19]を付けた場合は危険でより注意しないといけない。

      どんな拡張基板を作ると楽しいかは、まったく考えていない。

      あと 水晶は、秋月 FA238 。16 MHz とかしか入手できない。8 MHz 用の プログラムは、コンフィグを変えないと 使えないので注意。(HEX しかなくても コンフィグ部分の データを変更することは普通可能)

      右のコネクタは、クロックを外付けモジュールに変えるとき用。どういう用途でどう使うかはほとんど考えていない。

    (2) ブレットボードと共に使う。

      I/O を片側に寄せたので、ブレットボードで便利に使えるかも。3.3V も供給できる。USB は単なる電源コネクタとしても使える。

      下側のコネクタは、ピンヘッダの方が良さそう。ブレットボード専用なら細ピンヘッダの方がブレットボードを傷めないので安心。

      その USB だが、A/オスも水平に付けられる。その場合は 表(ICの面)につける。A/メスも OK でこちらは裏。ただ、固定するための フレームグランドはハンダ付けできない。そればかりか基板と干渉するかも。干渉した場合は、ヤスリ等で調整する。


      ミニUSBコネクタ(B)[MU5F-21] (在庫切れ)
      基板取付用USBコネクタ・ミニB(秋月)
      DIY Mini USB 5-Pin Female 90 Degree (10-Piece Pack)

      無理やり水平に付けるなら、このタイプ。ただし、裏面(IC と逆) に付けなくてはならない上に、フレームグランドは奥の 2 つしか付けられない。

      mini B の 広い方が 垂直タイプでは 2 ピンなのに対して 3 ピンになっているのがポイント。-- 最初気が付かなくてライブラリを作る際に混乱した。

    (3) 秋月 C 基板に付ける

      下の部分は、秋月 C 基板に合わせている。ピンヘッダ/ピンフレームで接続しても良いし、直結しても良い。

      L 型 ピンヘッダでうまく接続すると。aitendo CASE-B に スロットを使って入れられる。... というか逆か。
      基板を消費することになるが、フロントパネルに無理やりしてしまうことは出来る。うまくシールを作って化粧してやれば いけるんじゃないか?

      メリット? 加工がアルミ 2mm よりは楽。基板とパネルを一体化できる。

      あと、裏に加工用の目盛りを入れとけば 便利かも。(済)

      まぁこれはただの案。基板の方に部品が乗っていれば、強度は要らないし、透明なもの -- PET のシートとか? でも良いのではないかと思う。

    (3) 3 ピンコネクタ

      右上の 3 ピンコネクタは、5V - CLKI - GND 。

      とりあえず、5V を出していなかったので ここにした。CLKI は、外部クロック入力で、 精度が高かったり、ジッタが少ない 40MHz とか 48 MHz とかを入れると ... なにか楽しいことが出来ないかと思い付けた。

      パネルにする場合は裏面にコネクタを付ける。 単なるピンヘッダではなく、ケースとの接触から保護できるタイプのものを推奨。

      ブレットボードで使う場合は、5V を取り出せると便利かも。コネクタは逆で IC 面。

追記 現物合わせ→修正



    CASE-B を入手したところ、外形が 20 mm 丁度で思ってたのと違う。あと底面から基板までの高さも。それで、現物に合わせて修正することにした。

     

    どうも底面と基板の間は、2.8mm っぽい。これなら 2.54 mm 高 の L型 ピンヘッダはちゃんと入る。それだけでなく、マザー側に低メスが使える。低メスを使うことで 秋月 C 基板がきっちり入る(はず)。

    低メスを使わなくとも問題ない。もともと 15 pin は、2 段目からだが、3 段目に入れれば 丁度良さそうな感じ。

    ところで、このスロットは遊びが全然ない。マザーボードにすると当然ネジ止めすることになるからこちらも遊びがない。となると、ピンヘッダを完璧な精度で付けないとならない。これはなかなか厳しい。組んでおいてハンダ付けということが出来ないのだ。

    これはどうしよう。ケースに穴を開けておいて、仮ハンダできるようにしておく? ひとつ組立用に潰すか。

      思ったより広かったのだが、逆に 内部が狭いということで、caseb-pic32mx-02 ではダメだということが分かった。作りなおした所、上下コネクタが 随分内側に寄った。もう、USB A/メスは無理。また DIP のピンとコネクタの間が随分狭くなった。2.54mm ないので 同じ面には付かないし、ハンダ付けも工夫がいる。

      (再修正) DIP-28 の方を少し上に移動した。これでぎりぎり。

    その上で、表面のシルク見直し。コネクタのシルクは最小限に。

    そして、USB A/メスと C 基板用の HOLE を外しすっきりさせた上で ボタンを秋月で入手できるタイプに変更。(caseb-pic32mx-03)

    裏面のシルクに 内面のパターン追加。-- 部品をおいてはいけないところが分かる様にする目的がひとつ。あと、この線を目安に基板を加工すれば、ケースに嵌め込めるかも知れない。実験用の目的もある。

    追記: 10/4 caseb-pic32mx-03 を発注。長穴が受け付けられるか が 興味のポイントのひとつ。今のレイアウトなら丸穴に変更可能でダメだと言われても致命的ではない。あと、色は黒。$15 だったのが $13.49 だった。-- さすがに緑では合わないと思ったので。
    (10/11 : 発送の連絡 -- どんなのが来るか楽しみ .. あと 10 日ぐらい?)

所感(基板発注時点)

    このケースB + コントローラ付きバックパネルというのは、思ったより使い勝手が良いものかも知れない。

    C 基板で試作するとして、試作中や試作後の使用で保護できる。保護できれば、開発中でも持ち歩ける。-- これは、ちょっとしたメリットかも知れない。

      ケースが 分割されているが、ケースの上部下部を接着して筒状にしてしまえば良い。そうすれば、開発中は、フロントパネルなしでも済む。

      アルミだから、たぶん強くは接着できないのだが、乱暴に扱わなければ大丈夫だろう。とにかくそうしてしまえば、差し込むだけで良い。外すのも簡単。

      C 基板では、幅を削らないといけないのは、手間ではあるが、そんなに時間はかからない。10 分ぐらい? うまくやれば、差し込む固さも調節できる。

    あと、基板を効率良く使えるメリットもある。

      共通部分は別だから基板には入らない。固定するための面積も少なく済ませられる。C 基板だと、コネクタ部分 (3 列目まで)以外は、フルに使ってもケースに入れられる。

      専用基板を作るにしても、47mm 幅と 5cm を切るわけで、 長さを 5cm までにしてしまえば、低コストになる。

      ただ、そうすると ケース長 77mm は、ちょっと長い。ピンソケットの分 8.5mm + 50mm ぐらいで良い。完成品にする場合はケースを切ってしまうという手はあるが試作段階ではそうはしたくない。... Arduino でよく使われる 足が長いピンソケットで延長して とりあえず 長さを稼ぐのが良いかも知れない。




        6mm 差し込むと、19mm - 6mm = 13 mm 延ばせる計算にはなる。まだ短いがこんなもので。

      ちょっと高いが、5cm x 5cm の 4 層基板というのもあるようだ ($68)。10cm x 10cm クラスだと $99 だから 3 割ほど安く上げられる。4 層基板を作る手段も持っていないし、目的もまだないが 覚えておこう。

      4 層基板なら アナログ系? ... AVCC のところは適当に処理してしまった。R+C か L+C を入れられる様にすべきだった。 2 回目を作ることがあれば、忘れないようにしよう。ただ、デジタル派なので、4 層基板なら FPGA(BGA) ? ... これと組み合わせる もので 足が多い BGA の基板というのは何か変だし関係なさそうだ。

    さて、PIC32MX 版を作ったのに、わざわざ コントローラ付きと書いたのは ... arduino 互換だと 実はもっと便利かと思ったため。趣味的には mega328(DIP-28) + FT231X(QFN-20) かなぁ。ボタンはひとつで良さそうだから、空いたところに FT231X が入りそう。

      問題は、ピン配置。13 ピン分の I/O ピンしか出せない。デジタルのみにして、アナログは、上のスロットを使う? ... まぁなにか変なものになりそうだ。

    FT231X は発注かけているので現物見て作れそうなら、この基板の仕上がりを確認した後になるが、基板を設計してみたい。

追記: AVR 版 (仮)



    AVR 版 を仮に設計してみた。どうも、時間があると eagle いじってしまう。それはともかく ...

    大分良い感じではあるのだが ... ピンのスペースが足りない。ピンを増やすのも厳しい。位置すらなかなか動かせない。

    というわけで ... 下は アナログ A0 + デジタル D0-D11 (D12,D13 は配置できず )で終わり。3 ピンの部分は 電源電圧の選択( 5V - 3.3V )。 これは、装置が目的ならスイッチにしないで、直結すべき。せめてジャンパ。

    問題は、アナログ入力。下に入らない以上、スライドさせて装着というのは難しい。しょうがないので、センサーボードを別にするという考え方にした。A2 - A5 (I2C 含む)を電源込みで 6 ピン。

    あと大問題なのが ISP 。専用のコネクタを出せないどころか、RESET もピンに出せていない。USBシリアルの FT231X を入れてあるのだが、TXD/RXD/DTR 以外は引き出せていない。要するにブートローダ専用。まぁ DIP だし、装置組み込み用ということで。

    AREF は、コンデンサを付けられるようにしただけ。



    ISP のコネクタは出せないが、BitBang ライタの配線はできた。通常時も切り離せないわけだが、シリアルとして使っている間は、入力ピンなので壊してしまうことはないはず。ただ、配線はできたものの、クリアランスとかかなり厳しい。不安なので前のも残してある。

    ... 今はここまでにしておこう。本当に作るかどうかは、別途検討しよう。

追記: ネジについて

    aitendo CASE-B はネジが特殊だった(M1.7 ?)。いずれ ケースを切ったりすることも考えて M2 でなんとかする方針。まずは、ネジとタップを購入。


    ネジは、トラスコ中山 の ステンレス皿頭小ネジ寸法M2X8六角穴付ボルト寸法M2X8 というのを試す。タップも持っていないので、これ にした。

    六角穴付ボルトというのは、たまたま見つけたのだが、仮組みのとき便利そうなので様子を見てみる。

    ... これでうまくいけば、ケースのサイズの調整も可能。だめなら、おとなしく aitendo からネジを調達する。

      買ったタップは、中仕上用 ピッチ 0.4mm/下穴用ドリル径 1.6mm。製造元直販ページ に書いてあった。

      ケースには、1.5mm Φ の 穴があって 1.7mm Φのネジが切ってある。ここに強引に M2 のネジを切るつもり。完全な穴ではないし、肉厚もあまりないから失敗するかも。ネジが切れても中心がずれるかも知れない。

      まぁ買ってしまったし。結果は追記する。

    ところで、この daishinshop というところ 取寄品 が多いんだが なかなか安い。時間がかかるのは(中華ショップで買うことが多くなったので)慣れている。ついでに、いろいろ買ってしまった。

    タカチ MX2 は、4cm 幅, 6cm 幅のタイプは、M2.6 タップネジだそうだ。同じように M2.6 のタップと ネジを買っておくと良いかも。

追記 2012/10/16:ネジ一式到着

    さっそく タップで ネジを切ってみた。ハンドルを買っていないので少々不安だったが、タップを ラジオペンチで固定してケースの方を回すやりかたなら問題なし。ただ、抜くときがネジを切るより難しかった。完全な穴ではないので、ひっかかるのだ。抜くときもネジを切る -- しかも反対側でという感じ。だから一気にねじ切ってはいけない、一回ぐらいは途中で抜くべき。中心は少しずれたかも知れないが分からないレベル。

    さて、ネジについてだが、六角穴付ボルトは、見た目でも良い感じかも。基板が到着したら写真を取ってみよう。もうひとつは、サラネジ。悪くはなさそうだが、基板を大径ドリルでさらわないと 。綺麗な仕上がりになるかどうか ...

おまけ: imall.iteadstudio.com で気になる商品

    新サイトになったときは、商品が少なかったが、結構増えている。ちょっと気になるものを取り上げてみた。基板だけ発注することが多いのだが、ついでに買うのも良いかも知れない。

    2.54mm 40Pin Gold-plating Male Header

    ピンヘッダなんだが、白と黄色がある。(前みたときは、緑とか青もあったような...)

    ITDB02-4.3
    ITDB02-5.0

    コントローラ(SSD1963)付きの 4.3 inch 480x272 , 5 inch 720 x 480 LCD モジュール。
    フレームバッファ付きだから、AVR でも使おうと思えば使える。

    Crystal Oscillator 3.2 × 2.5 × 0.7 SMD (5Pcs) (passive: 発振子)
    Crystal Oscillator 5.0 × 3.2 × 1.2 SMD (5Pcs) (active: 発振器)

    12 Mhz と 25 MHz しかないが、FPGA に良さそう。

    Rotary Encoder with Switch

    ロータリースイッチ。掘り出しモノなのかどうか判断できないが、なにやら良さ気。

      少し小さめ。プッシュボタン付き。シャフトが丈夫そう。... メリットはこのあたりか?

    部品は、マニアックなものがわりとある。要チェックかも。

追記 2012/10/21 : 基板到着



    長穴は、なにも連絡なしに黙って作ってくれた。ただ、気持ち大きいような気がする。milling の線の太さを 細くすべきだったのかも?



    とりあえずケースに取り付けてみた。幅はぴったりか 気持ち大きめ。ケース中央は少し凹んでいるため、そう感じるのかも。高さは小さめで、明らかに段差がある。dimension だけ 少し(0.1 〜 0.2mm)大きくしたほうが良いかも知れない。

    六角穴付ボルトは、良い感じになった。あと、すz マークだが、銅箔も マークしている。気持ちほりが深い。



    皿ネジのほうは、こう。ピンヘッダの先が見えるのだが、C 基板の 3 列目に L型ピンヘッダを差し込んで、基板をフタにぴったりくっつけてみた。

    記事中で L型ピンヘッダの位置合わせが難しいと書いたが、間違い。下に取り付けるので 現物で合わせた上で、はんだ付けできる。

付録: eagle ファイル

    ai-caseb-04.zip

    PIC32MX のボードと 回路なしのディメンジョンのみのボードを添付。

    caseb-pic32mx-01
    Todo:
     発注までに見直す。長穴、USB 表裏 (見直し1回)

      cam は、Milling を Dimension と同等の扱いにした。両脇に drill を打つべきかどうか?
      USB の表裏は合ってる。

     できるだけ部品は裏にもっていく (済)

      RC は裏に持っていったが ... VIA の処理も目立たないようにすべきか。Stop Off にして(tented via)にして位置も隠れるところに移動。(済)

     シルクの見直し (見直し1回)

      見直しはした。でも、パネルにするなら、不要なものは削除すべきか。

     USB A/メスの削除

      パネルにするなら、見栄えと絶縁の問題で削除した方が良いが... 便利な機能を削るのもどうか? ... と思ったが、USB A/メスは 無理なので削除決定。

    caseb-pic32mx-03

      目盛りをいれたり、パターンを見栄えのために少し修正。

      スロットの基板想定位置も シルクに入れた。現物で合わせている。

     DIP-28 の移動。

      DIP-28 と下のコネクタとの間が狭すぎハンダ付けが難しそうなので、上に移動。

     panelize で 表裏逆に

      とりあえずパス ... と思っていたのだが、単に brd の中で グループ・ミラーすれば良いだけだった。

    コネクタを 0.25mm 下げる。(0.4 で済)

      底面からの高さを 2.8 mm と見たのだが、どうも違う。2.5mm (か 2.6mm) のようだ。実際 2.54 mm のパーツが入るので、底面からの高さを 2.55 mm に変更。

      もう発注してしまったが、これだと 合わせられない。困った。
      → ピンフレームだと 0.5mm x 0.25 mm とかだから 1 Φ内で調節できる(と思うことにした)。ピンヘッダだと無理だが .. スロットに合わせないなら OK 。今後もあるので、eagle ファイルは修正。
posted by すz at 22:31| Comment(2) | TrackBack(0) | 日記

2012年09月24日

USB VID/PID

スイッチサイエンスで『USB PID無償提供プログラム』を検討しているのを知った。USB の ファームウェアを公開している立場からすると、USB の PID/VID は結構厄介で、正直自由に使える ID が欲しい。ID を使わせてあけようと考える人がいるというのは、非常にありがたい。

この機会に使える PID/VID についてまとめておこうと思う。

チップベンダーが提供する サブライセンス

    MicroChip や FTDI, TI (, Atmel も?)などは、製品に利用できる サブライセンスを発行している。が、当然ながら そこのチップを使うことが前提になっている。いまのところ USB 付き AVR の ファームウェアしか作っていないのだが、互換性のある ファームウェアを PIC32MX 向けに作りたいと考えている。

    ベンダーのしばりがあるのも問題だが、作っているものは製品ではないほうがより大きな問題で、サブライセンスを受けようとも思わないし、また受けられるとも思えない。

V-USB が使っている USB の VID/PID

    V-USB の最新版 vusb-20120109.tar.gz を解凍すると USB-IDs-for-free.txt というのがある。これには、いくつかの VID/PID のペアが載っていて、ライセンスに従えば 使用することができる。

    ライセンスは、Version 2009-08-22 となっていて、以前のものから見直しがされている。一番大きな変更だと思ったのは、使うチップやライブラリの条件がないということ。シェアできるようにさえなっていれば、他に条件がないようだ。

    以下、自分の理解。(厳密なものではないので注意)

    テキスト名による 識別

      ・ テキストの ベンダー名と プロダクト名は、USB language 0x0409 (English/US)でなければならない。

      ・ ベンダー名は、自分の Internet domain name (e.g. "mycompany.com") か e-mail address (e.g. "myname@gmx.net") を含んでいないといけない。( たぶん URL でも可 )

      ・ 自分の URL や e-mail アドレスは、レスポンスを返せるものでなければならない。

      ・ ドライバは、全文字列を チェックしなければならない。(sub-string の比較はダメ)

      以上を守れば、次の ID を使うことができる。

      PID dec (hex) | VID dec (hex) | Description of use
      ==============+===============+============================================
      1500 (0x05dc) | 5824 (0x16c0) | For Vendor Class devices with libusb
      --------------+---------------+--------------------------------------------
      1503 (0x05df) | 5824 (0x16c0) | For generic HID class devices (which are
      | | NOT mice, keyboards or joysticks)
      --------------+---------------+--------------------------------------------
      1505 (0x05e1) | 5824 (0x16c0) | For CDC-ACM class devices (modems)
      --------------+---------------+--------------------------------------------
      1508 (0x05e4) | 5824 (0x16c0) | For MIDI class devices
      --------------+---------------+--------------------------------------------

    シリアルナンバーによる 識別

      ・ シリアルナンバーは テキストで、USB language 0x0409 (English/US)でなければならない。

      ・ シリアルナンバーは、自分の Internet domain name (e.g. "mycompany.com") か e-mail address (e.g. "myname@gmx.net") を含んでいないといけない。( たぶん URL でも可 )

      ・ 自分の URL や e-mail アドレスは、レスポンスを返せるものでなければならない。

      ・ Vendor Class を使いたい場合は、libusb か libusb-win32 を使うこと。

      ・ それ以外のクラスを使う場合は、OS のデフォルトのドライバーを使うこと

      以上を守れば、次の ID を使うことができる。

      PID dec (hex) | VID dec (hex) | Description of use
      ===============+===============+===========================================
      10200 (0x27d8) | 5824 (0x16c0) | For Vendor Class devices with libusb
      ---------------+---------------+-------------------------------------------
      10201 (0x27d9) | 5824 (0x16c0) | For generic HID class devices (which are
      | | NOT mice, keyboards or joysticks)
      ---------------+---------------+-------------------------------------------
      10202 (0x27da) | 5824 (0x16c0) | For USB Mice
      ---------------+---------------+-------------------------------------------
      10203 (0x27db) | 5824 (0x16c0) | For USB Keyboards
      ---------------+---------------+-------------------------------------------
      10204 (0x27dc) | 5824 (0x16c0) | For USB Joysticks
      ---------------+---------------+-------------------------------------------
      10205 (0x27dd) | 5824 (0x16c0) | For CDC-ACM class devices (modems)
      ---------------+---------------+-------------------------------------------
      10206 (0x27de) | 5824 (0x16c0) | For MIDI class devices
      ---------------+---------------+-------------------------------------------

    ちなみに、ここで出てきている VID (0x16c0)を、Atmel だと誤解していた。Atmel は 0x03EB で違う。0x16c0 は、 "Van Ooijen Technische Informatica" ( www.voti.nl ) であった。

スイッチサイエンスさんへの要望

    最後になるが、twitter で意見を公募しているようなのだが、twitter の ID を持っていないのでここに書いておこう。

    USB には ドライバーが付き物で、ドライバーまで頑張って作るのではない限り、USB-IDs-for-free のライセンスで結構カバーできる。だが、OS のデフォルトのドライバー で使える別のクラスがあれば、このリストに追加して欲しいということになる。できたら、スイッチサイエンスさんに 同じルールの PID/VID の セットを作ってもらって 要望によって、リストが追加されるようになっているとたいへん嬉しい。

    OSS で ドライバーまで頑張って作るのであれば、ドライバー自体が共有できるものだから、やっぱり このリストに追加して欲しいということになる。

    逆に 個別のID を製品に付けたい ... となると 同人ハード とか 商品の試作みたいなことになるのではないだろうか? OSHW かつ OSS であるなら コピー製品を妨げることは出来ず 累計の制限は無意味になる。 累計の制限を付けるのなら OSS はともかく OSHW の制限は外すべきだと思える。

    まとめると、

    ・ シェアできるものは、USB-IDs-for-free ライクなライセンスで追加の要望が出せる
    ・ シェアできないもの(そのレベルになっていないものも含める)は、累計の制限を付け 仮ID の扱い。

    こんな風だと非常に嬉しい。
posted by すz at 20:37| Comment(0) | TrackBack(0) | 日記

2012年09月20日

8桁7セグ表示ボード

aitendo の 3/4 桁の7セグLED は、アノードコモンとカソードコモンが両方ある。なら、全部並列につないでやれば、12 ピンで 8 桁に拡張できる。さらに、よくよく見れば 4 桁で小さめのサイズもある。

4桁7セグモジュール(0.36"/green)[KEM3261G]
4桁7セグモジュール(0.36"/red)[KEM3261R]

8 桁だと、6cm 幅になるが、パターンは 5cm に収まるので、表示ボードを設計してみた。

    コネクタは、12 pin + 3 pin の15 pin 。基板のサイズは、秋月C基板に近いので、固定する穴のディメンションを同じにしている。


    ボタンも付けてみた。



    ボタンの回路図はこれ。ピンを節約したかったので、ADC で読むようにしている。こういう風に接続すると、同時押しには向かないものの、制御が簡単になる。

    表示方法は、1 つのセグメントを順番に表示させるつもり。1/64 duty というわけだ。以前 8x8 のドットマトリックス LED で同じようにしたが、全然問題ない。ただ、表示順は考えておかないと ぶれたとき見にくくなる。

    u5004s-0.1.zip : ベースにする予定のコード。(メモ)

コントローラの追加

    もともと tiny2313 を付けるつもりだったのだが、うまく収まらなかった。で、表示部だけ にしたのだが、コネクタの都合もあって ADC が必要になってしまった。そうなると tiny2313 は使えない。

    で、表示部と別にコントローラ部を作ることにして、mega328 (タイプ) を使うことにした。

      後で気がついたのだが、アノード+カソードでもボタンは 7segの線と 共用できる。ADC など必要ではなかった。-- まぁ ADC での回路を作ってみたかったということで。



    結局こんなのが、出来上がった。そのままでも良いが、切り離して、T 字型に組めるようにした。表示部分のみにして、別のコントローラを使ってもよい。

    専用のコントローラ部を作ったわけだが、出来ることは多くはない。

    もともと、シリアルで受け取ったデータを表示させるだけのつもりだったのだが、これだけではもったいないような気がして、水晶を付けてみたり 、さらに外部クロック入力 や ICP を コネクタに出したりはしたが、やっぱりイマイチ。

    追記:

    PIC32MX 版も作ってみた。... のだが、PIC だと 5V トレラントのピンがあったりして、ポートの出力が均一にならない。こういう目的だと AVR の方が良さそう。折角作ったので、これも含めた eagle ファイルを置いておく。

    あと用途について。LED をダイナミック点灯させるとノイズがすごいことになる。やはりコントローラでいろいろやるのは、避けて 表示メインにしたほうが良いと思う。

    とはいえ、周波数カウンタぐらいには仕立てたい気もする。ただ、水晶 も温度で周波数が変わるし、補正する仕組みを入れたいところ。ICP と SPI はピンに出しているから、
    DS3234S
    を接続することはできる。

    DS3234Sは、結構精度が良いらしいので、この出力をもとに補正するやりかたを考えたい。ちなみに、WDT 用 RC クロックと 水晶の周波数のズレを元に温度が測定できそうな気がしている。それが出来ると、補正値も温度ごとに持てる。... 補正できてしまえば、DS3234Sを外せる。そして、外した DS3234S は、自家用基準クロックとして使いまわすのだ。

    (参考) ■ TCXO水晶内蔵 SPIバスRTC DS3234Sを制御する ■

      O-Family 氏の解説等 ... なんと 独自に翻訳した DS3234S 日本語マニュアル がある。

C-533SR + TYINY2313 版



    秋月で扱っている 3桁 7seg の C-533SR 版も設計してみた。

    6 桁になってしまうが、これも 50mm に収まる。(aitendo のやつはダメ幅が広い)。 さらに、TYNY2313 (DIP) も内側に入れられる。両方カソードコモンなので、6 桁に減っても +2ピン増える。ただし、ボタンは 共用して -1 ピン。合計 14 ピン。TINY2313 だと TXD/RXD を通信用に使っても 1 ピン余る計算。

    コネクタは、固定用の意味もあるので、そのままにしているが、VCC/TXD/RXD/GND の 4 ピンのみ使う。ISP も一応コネクタに出した。

    この基板は、組むのに手順がある。表面実装 RC → TINY2313, ISP コネクタ → 7seg の順でないとまずそう。

全体回路図:


全体回路図( C-533SR 版):

eagle ソース:
seg7disp-02.zip
posted by すz at 21:05| Comment(0) | TrackBack(0) | 日記

2012年09月15日

FT232Rボードとか

ちょっと思い立って goodluckbuy.com で FTDI を検索 してみたところ、FTDI Basic Breakout っぽいボードが出ていた。



 FTDI Basic Breakout Arduino USB-TTL (goodluckbuy.com) $6.56
 FTDI Basic Breakout Arduino USB-TTL (dealextreme.com) $7.50

かなり安いのだが ... よくよく見ると ピン配列は同じものの、垂直にピンソケットが付いている。

なんで? と思ったのだが、どうやら 検索のついでに出てくる 『MWC MultiWii』 のほうがメインで、それで使いやすいようになっているようだ。

    『MWC MultiWii』を知らなかったのでググってみて、『MWC MultiWii SE Standard Edition(CRIUS)』という記事を発見。

      この一枚の中に3軸ジャイロセンサー、加速度センサー、気圧センサー、方位センサーなどがセットしてあります。

    とのこと。さらに調べると 『有志が作成したデータシート』が見つかった。



    - ITG3205 three-axis MEMS gyroscope, I2C, 16-bit ±2000°/sec, 3.3V-6.5mA
    - BMA180 three-axis accelerometer, I2C, 14-bit, <0.15° accuracy, 3.3V-800uA
    - BMP085 pressure sensor, I2C, 0.3m resolution, 3.3V-10uA
    - HMC5883L three-axis digital compass, I2C, 12-bit, 160Hz, 1-2° accuracy, 3.3V-100uA

    基板のサイズは、50mm 角となっているが、40mm 角のタイプもあるらしい。あらためて goodluckbuy.com で検索すると $40 ぐらいからある。センサーだけのボードもある。

    なかなかに興味深い。arduino として使えるなら、quad copter のコントローラにこだわらなくても、倒立振子とか 用途はいろいろありそう。

FT230X/FT231X

    実を言うと FTDI を検索してみたのは、FTDI の新しいチップの FT230X/FT231X に興味を持ったため。そして、興味を持ったのは、QFN パッケージだったりする。サイドまで パッドがつながっている QFN なら容易にはんだ付けできる -- そして FT230X/FT231X は 今までのパッケージと違って サイドまで パッドがつながっているのだ。しかも安かったりする。Mouser だと 180 円前後。

      FT230X は 16pin / FT231X は 20pin 。パッケージは、QFN 以外に SSOP(0.65mm ピッチ) もあって、 FT232R のピン数を減らしたものに見える。SYNCBB も使えるし、CBUS ピンもある。ただし、VIO は、1.8V 〜 3.3V (5V トレラントではある)。

    基板を作ってみたいという、妙な動機で興味を持ったわけだ。CTS/RTS しかない FT230X にするか 全部ある FT231X にするか迷っていたが、FTDI basic breakout (DTR + CTS) が主流なら FT231X が無難かも知れない。あと、パッケージが小さくなっているので、AE-UM232R (というか UM232R) 互換 のボードも自作しやすいかも知れない。

    追記: USB の D+/D- には、27Ωが必要で、パッケージが小さくなっても必要な面積は減らないようだ。安いだけがメリットかも。

      AE-UM232R で気に入らないところは、足が付いてしまっているところ。外すのも難しいし、いっそのこと基板から作りたい気分になっている。ちなみに、ピン配置は、FTDI の UM232R モジュール互換で、AE-UM232R がオリジナルというわけではない。

    ... などと考えていたのだが、沢山作ってもしょうがないので、思いとどまった。とりあえず今回はメモだけ。Mouser で発注するついでに 入手しておくつもり。忘れないようにしないと。

    あと、思いとどまった理由に PIC32MX がある。PIC32MX でも QFN があって、FTDI Basic Breakout っぽいボードは作れそうな気がしている。PIC32MX を使いこなせるなら、こっちの方が良い。問題は、いつ使いこなせるようになるか。なんとかしたのだが、なかなか手が進まない。

FT231X ボード設計



    QFN-20 の FT231XQ を使った FTDI Basic Breakout っぽいボードを設計してみた。

    USB は mini-B 以外に ケーブル直付けも出来るようにしてみた。typeA オスを(裏に)付けることもできるので、シリアル側のケーブルを伸ばす使い方もできる。

    あと、シリアル側に抵抗を入れることができる。さらに RTS を引き出せるよう細工。



    こっちは、AE-UM232R っぽいボード。裏面に抵抗を入れられるようにしてみた。VCCIO は、3V3 につないであるが、パターンカットができるように配慮はした。あと、RST も VCCIO に直結しているが、プルアップ抵抗を入れられるようにした。

    CB0/CB1 は、同じピン配置にしたが、FT231X では、TXLED/RXLED が CB1/CB2 に変更されている。LED を外部に付ける場合 FTProg (MProg) で 設定を変更しないと互換にならない。



    2012/9/18 : panelize.ulp で 面付けしてみた。一枚のボードとして認識されないと面倒そうなので、自作のツール(gerbtool)は使わなかった。

    下が、PIC32MX (QFN-28) の AE-UM232R 風ボード。2 の 2 枚が、FT231XQ (QFN-20) を使った AE-UM232R 風ボード。PIC32MX だと部品点数が増えて厳しい。USB を飛び出させた分大きくなった。

    切りやすいように、基板間に、tStop/bStop ,tRestrict/bRestrict の帯を入れる。さらに、ボード厚を 1.0mm にして発注するつもり。

    ところで、panelize.ulp での面付け少しばかり不安。上の 2 枚の QFN の 裏の パターンが変わってしまっている。-- 属性が 変わったようだ。この程度なら良いけれども ... 他にもあるかも知れない。

    あと、面付けしたことで、ベタパターンが変わってしまっている。橋にまで回り込んだだけなので、問題はないが ...

    eagle ソース : PIC32MX-typeBr3-04.zip
    gerber データ:um231x-p-out.zip

注意:

    無邪気に紹介してしまったが、ロゴまでコピーしたものとか、ロゴだけ取ったコピー品とかあるかも知れない。さすがにそういうのは薦められない。

    最初のボードは、パターンが違うし、ロゴ取っているし、なんとなく ぎりぎり OK な範囲のような気がする。

    『MWC MultiWii』の方はオリジナル自体知らないので、判断できていない。買うなら独自性のあるものを選んで欲しい。あと、ファームウェアがどういう条件で使えることになっているのか知らないのだが、本来の目的では使わず 他の使い方 をすることを想定して紹介している。本来の目的で使いたいのであれば、ファームウェアの使用条件には留意して頂きたい。

Mouser メモ

    全く関係ないのだが、Mouser で買っておきたい部品のメモ:忘れないようここに書いておく。

    ERJ-3GEYJ

      1608 5% の抵抗なのだが、やたら安いらしい。

    CC0805

      2012 のコンデンサ。かなり安いような... 22pF とかの買いまし。

    LTV-0701

      高速フォトカプラ。10Mbps 以上の 高速フォトカプラ は、あまり品種がないのだが、これは 100 Mbps となっている (本当なのかどうか、未確認) 。

      10Mbps の LTV-0601 より安かったりするし、ちょっと欲しいような。 使い道も考えていないのだが ...

    PIC32MX2 (QFN-28 / QFN-44)

      QFN が欲しいのだが、いつでも在庫があるわけではないようだ。

    追記: デジキーだと PIC32MX220 の QFN-28 は、在庫がある。PIC32MX250 も 10/1 に入荷するようだ。だが、 FT231X は、12 月! 。一方 Mouser は、10月に FT231X が入荷するものの、PIC32MX250 はリードタイムも出ていない。なかなか入手できないなら、デジキーで発注をかけておこうかな ... という気になっている。
posted by すz at 16:43| Comment(0) | TrackBack(0) | 日記

2012年08月23日

アルミケース三種

気になったアルミケースについて。

aitendo のアルミケース(B) 550円


     基板幅 (最大 47.4mm) 基板長 (最大 77mm) ケース高(外寸 21 mm)
     専用基板 P47X77-B
     ケース・フタ B-CAP

これが気になった最初のもの。ケースに溝があって基板が入るのだが、どうやら秋月C基板がはいりそうな感じ。

最近は C基板が入るかどうかより、Fusion PCB や IteadStudio で作る基板に向いているのかどうかの方が大事。5cm x 5cm は $9.99 と格安だから、このサイズに合うかどうか ... 幅はちょうど良いが、少し長い。押し出し材だから切ってしまうという手もあるが、5cm x 10cm も最近は安いようで、$25 出せばカラー基板が作れる。

タカチ MX型丸型モバイルケース (pdf) 590 〜 670円 (標準価格)


    MX2-6-5, MX2-6-8, MX2-6-10 -- 基板幅 (最大 47.7mm) 基板長 (最大 45mm, 70mm, 95mm) ケース高(外寸 18 mm)

あらためて、タカチのケースを見れば、ちゃんとあった。MX型は値段も安いし、45mm と 5cmx5cm に合いそうなものもあった。5cm x 10cm までで作るなら、MX2-6-10 も良いかもしれない。

タカチ MXA型アルミモバイルケース (pdf) 1290 〜 1490円 (標準価格)


    MXA2-6-5, MXA2-6-7, MXA2-6-10 -- 基板幅 (最大 47.7mm) 基板長 (最大 40mm, 65mm, 90mm) ケース高(外寸 18 mm)

    最近は、オールアルミで仕上げが美しいタイプもある。その分お高いが、目指すものによっては、これを選択するのもアリなんだと思う。

... というわけで、ちゃんとケースに入れるものを作ってみたいような気がしている。最初は、MX型の MX2-6-8 か MX2-6-10 あたり? ただし問題は中身。装置として完結していないと ... 。
posted by すz at 21:31| Comment(0) | TrackBack(0) | 日記