T-SH7706LANにUSBポートを増設


1.ハードウェア組み立て編

○USBホストコントローラについて

USBホストコントローラとして、Cypress社製のSL811-HSTを使用しました。
このホストコントローラを選択した理由は、以下の通りです。

ただ、組み込み用途としてのマイクロコントローラへの接続を前提としたLSIであり、PCのUSBホスト機能のような、高いスループットを望むのは非常に厳しいと思います。また、互換性の問題もかなりキツいようです。

感じとしては、いきなり実用性を求めるのは酷だけど、お遊びで制作して試してみる程度ならば、まあ良いかなというところです。その後は、チューニング次第ということになるでしょう。

○回路図

USBホストコントローラ回路図を以下に示します。(クリックで拡大表示します)

※0.047uFは誤記で、0.0047uF(472)です m(_ _)m

○部品表

部品は以下の通りです。

部品名
単価
(参考)
入手先(参考)/
備考
ユニバーサル基板 (155×114mm) 1 400 片面タイプでOK
IC変換基板 48ピンQFP変換基板 DAISEN Q047 1 300 マルツパーツ館
2.1mm標準DCジャック(基板取り付けタイプ) 2 40  
2.1mm標準DCプラグ 2 30  
ピンヘッダ(オス) 40P(2列×20) …T-SH7706用 2 50  
ピンヘッダ(オス) 12P(2列×6) … SL811-HST用 4 12.5 48ピンを4つに折る
ピンソケット(メス) 40P(2列×20) …T-SH7706用 2 80  
ピンソケット(メス) 12P(2列×6) … SL811-HST用 4 150 マルツパーツ館
USBコネクタ(Aタイプ、メス、基板取り付け用) 1 50  
Cypress SL811-HST (水晶発振器12MHz付き) 1 800 秋月電子
ロジックIC 74AC14P 1 105 千石電商
電源用インダクタ(コイル) 22uH 1 25 22uH 〜 1mHでOK
電解コンデンサ 10V 47uF 1 11  
積層セラミックコンデンサ 0.1uF 3 32  
積層セラミックコンデンサ 0.0047uF 4 32  
セラミックコンデンサ 15pF 2 32  
カーボン抵抗器 1/4W 33Ω 2 6  
カーボン抵抗器 1/4W 15KΩ 2 6  
カーボン抵抗器 1/4W 1MΩ 1 6  
ポリスイッチ(ヒューズ 0.5A) 050XF 1 50  
フェライトビーズ MURATA BLM11P600SPT 1 10 鈴商
フェライトビーズ MARUWA CFM10C241NC 2 10

鈴商、240Ω程度

※合計3,139円(参考)
※入手先は参考まで。通販で入手可能な店舗のみ掲載。

○必要な道具等

まず最初に、ピッチ変換基板にSL811-HSTを半田付けするのですが…
SL811-HSTの足ピンは0.5mmピッチですので、最初にして最大の難関です。

ここは、サラッと流す訳には行かないと思うので、 私の採っている方法を紹介しておきたいと思います。
USBポートを増設したくても、ここで尻込みしている方も多いと思いますので、後押しという意味で。。

まず、SL811-HSTをQFP変換基板にハンダ付けするために使用した工具は以下の通りです。

工具
型番
入手先・備考
ハンダゴテ 太陽電機産業 CXR-40 千石電商
糸ハンダ (φ0.3mm) ホーザン株式会社 H-712 千石電商
無洗浄フラックス 太陽電機産業 BS-75B 千石電商
レンズ付き作業台 太陽電機産業 ST-92 ITプラザ
ルーペ (×10倍) HAKUBA カメラのキタムラ

余りに細かい作業なので、レンズ付き作業台とルーペは必需品だと思います。
レンズ付き作業台を使わないと、顔を近付けすぎて、ヤニの飛散物が目に入る危険がありますし、頬にハンダゴテが触れると大変です。

○SL811-HSTの半田付けのポイント

#説明用の写真では、SL811-HSTではなく別のICを使っていますが、内容は全く変わりません。

○SL811-HSTの半田付け方法

ここでは、SL811-HSTをQFP変換基板(ダイセン工業 Q048)に半田付けする手順を説明します。

1) ハンダメッキする

まずは、ハンダメッキの作業をやり易いように、QFP変換基板を机にテープで固定します。

作業し易い角度で基板を固定すると良いです。

私の場合には、左の写真のように45度で固定しています。

   

パッド(ICの足ピンが乗る端子)にフラックスを塗ります。

フラックスは、ハンダゴテの熱で蒸発します。従って、作業を続けるうちに段々と効果が薄くなっていきます。

そのため、一度に4辺全てにフラックスを塗るのではなく、こまめに1辺づつフラックスを塗ってはハンダメッキする、という作業を4辺分繰り返します。

   

フラックスを塗った辺にハンダを載せます。

ここでは、ブリッジなどは気にせず、端から3〜4ピンの間をめがけて、ポコッとハンダを載せます。

均等にハンダメッキするためには、ハンダの量がポイントですので、様子を見ながら調整すると良いでしょう。

   

ハンダの山を広げてメッキします。

画用紙に筆で「絵の具」を塗るように、ジグザグにハンダを移動します。

ハンダは、コテ先にまとわりつくようにして簡単に広がっていきます。

1辺の全てのピンに均等にメッキするのがポイントです。

   

ハンダの量が多いと、次の写真のようにブリッジしてしまいます。

最初のうちは、よくこうなると思いますが、簡単に取り除くことができるので、心配は無用です。

   

ブリッジを取り除くには、ハンダ吸い取り線をブリッジした部分に当て、その上からハンダゴテを乗せて軽く押さえながら、ハンダ吸い取り線を引きずるように、矢印の方向へ移動します。

ここでの注意点として、強く押し付けてはいけません。パッドが剥がれてしまうことがありますし、仕上がりも美しくありません。

また、無理にコテ先でいじり回してブリッジをどうにかしようとするのも禁物です。パターンが傷付いてしまう恐れがありますし、やはり仕上がりも美しくありません。

   

次の写真は、ブリッジを取り除いた所です。
これで1辺分のハンダメッキは終了です。

残りの3辺も同様にハンダメッキします。

最後に、ルーペでブリッジが無いかを確認します。

2) SL811-HSTの半田付け

ICを半田付けする前に、全てのパッドにフラックスを塗っておきます。

フラックスが流れ出さない程度に、多めに塗っておくと良いでしょう。

   

ICを基板に乗せます。

ICはピンセットなどでつまむと、簡単に足ピンが曲がってしまいますし、間違って落下すると確実に足ピンが曲がってしまいます(復旧は難しく、即失敗です)ので、セロハンテープなどをICの背中に確実に貼り付け、慎重に取り出します。

なお、基板にはセロハンテープで仮止めしますので、この方法だと一石二鳥です。
(テープ越しに足ピンが見えるという意味で、透明なセロハンテープという所がポイントです)

   

そして基板に乗せます。
まずは、1番ピンのマークを、QFP変換基板上のマークと合わせます。(赤丸の部分)

そして、ICの足ピンと、QFP変換基板側のパッドの位置を厳密に合わせます。
修正してはルーペで確認し、再修正…という作業を、何度か繰り返すと思います。4辺がキッチリと合うようにします。

微少な修正であれば、セロテープを貼り直すのではなく、ICの肩の部分に爪を引っかけ、押すようにして位置を調整します。

   

半田付けをする足ピンの順番を、左の写真に示します。

写真の矢印のように、両端の2ピンから半田付けします。
片っ端から半田付けをすると、ICがズレてしまう危険があるためです。

また、ハンダ付けを始める前に、フラックスを1辺分の足ピン全てに塗ります。

なお、以降は糸ハンダを使うことはありません。パッドは既にハンダメッキされているためです。

   

そして、いよいよ半田付けです。
面倒ですが、最初のうちは1ピンづつ半田付けします。

ハンダゴテのコテ先を、左の写真のような角度で、パッドの端(足ピンから一番遠い部分)に当て、少しづつ足ピンの方に近付けていきます。

足ピンの手前まで来ると、ハンダが足ピンを包み込み、足ピンの先端部分が「キラッ☆」と光ります。そっとコテ先を持ち上げます。

これで1ピン分の半田付けは完了です。
半田付けの順番は、「両端の足ピン→向かいの辺の両端の足ピン→残りの足ピン 」の順番にすると安全です。

   

ハンダ付けの例を写真に示します。

ハンダ済の足ピンは、未ハンダの足ピンと比べて、1)ハンダが盛り上がっている2)足ピンの先端が銀色になっている、という特徴があります。

※この例では判りやすくするために、わざとハンダの量を多めにしています。実際には、これよりも少ないように見えると思いますが、全く問題ありません。

もし、ハンダ付けが足りないと、足ピンが元の色(鉛色?)のままですので、簡単に見分けることができます。

ハンダが足りない場合や、逆にブリッジしてしまった場合は、フラックスを塗ってハンダ付けします。

それでもハンダが足りない場合に限って、ほんの少しだけハンダを足します。

3) 後処理とチェック

4辺全てのハンダ付けが完了したら、塗ったフラックスを除去します。
放置しておくと、足ピンやパッドが酸化してしまう恐れがあるためです。

フラックスの除去には、フラックス除去液を使うか、無水エタノール(効果は大差無いようです)を綿棒に染みこませて拭き取ります。

   

最後に、ブリッジが無いかを確認しましょう。

QFP変換基板を蛍光灯などの光にかざすと、パッドやパターン以外の部分が透過し、クッキリと見えますので、ルーペで確認します。

特に、足ピンの間にブリッジが無いかを確認します。

問題が無ければ、ピンヘッダをQFP変換基板に取り付けます。ピンヘッダは、メス側のコネクタをQFP変換基板に取り付けます。(逆はできないはずです)

以上でSL811-HSTの半田付けの説明は終わりです。

○制作の注意点

1)SL811-HSTのエラッタについて(内蔵PLLのクロックジッタ問題)

当初の設計では、直ぐに通信がストールしてしまい、理由が全く判らずにハマっていました。
そこで、Webを検索したところ以下の資料が出てきました。

SL811-HSTのエラッタ情報 (Cypressサイト)

要は、SL811-HSTのXIN端子に12MHzのオシレータを接続したとき、内部のPLLを使って48MHzに逓倍するのですが、VDD端子に高周波ノイズが乗っていると、PLLの出力にジッタを生じることがあるそうです。

これによって、結果的にFull speedモードでの通信に不具合(SOFパケットのタイミング異常)を生じるということです。

代替え手段として、PLLを使用せず48MHzの水晶発振器を接続するのがベストということですが、ユニバーサル基板では発振が不安定になる恐れがあり、却って不安定になってしまっては困りますので、もう一つの案であるVDDのピンにパスコンを接続してノイズを抑制する、という方法を採りたいと思います。

注意点としては、VDDピン(6,15,41番ピン)にできるだけ近い場所に、0.0047uFの積層フィルムコンデンサを配置する必要があるという事です。

2)USBポートのVBUS用電源について

USBポート(USB-Aレセプタクル)にはVBUS用電源を供給する必要があります。
これは5Vの電圧が必要なのですが、 T-SH7706のバスから取り出せる電源は、3.3Vのみです。

そこで今回は、SL811-HSTを載せたベースボードに電源(5V)を一旦引き込み、そこからVBUS用とT-SH7706用の電源に分岐することにします。

とは言うものの、電源周辺については、自分のシステムに合うようにカスタマイズした方が良いでしょう。
(今回は、ACアダプタ1個で駆動するために、電源を分岐させています)

3)通電前の確認について

電源周りの結線が間違っていると、マイコンボードや、接続したUSBデバイスを破壊する恐れがありますので、特に念入りに確認しましょう。

また、電源を入れる前に、+側と−側がショートしていない事も確認しましょう。

○MESでの動作確認

製作した回路の動作を確認するため、ここではMES 2.4r16(非モジュール版)を使うことにします。
config.sysファイルの内容は以下のようにします。

mem.addr=0x8c600000 mem.size=0x100000
ram0 addr=0x8c700000 size=0x100000
sci2 freq=32000000 baud=115200
mmc0 cs=scp3 sio=0 eject=ptg4
usb0 areg=0xb4000000 dreg=0xb4000002 bussiz=8 wait=15
ne0 addr=0xb0000000 bussiz=8 wait=15
end

今回重要なところは、赤字の行です。

SL811-HSTはCS5領域に接続したので、物理アドレスはH'14000000となります。
但し、キャッシュ領域との兼ね合いも考慮し、上位アドレス(ミラー領域)にI/Oを配置することにします。
アドレスの上位3ビットは無視されるということなので、H'B4000000 & H'1FFFFFFF → H'14000000 となります。

MESを起動したら、以下のコマンドを入力し、USBメモリをマウントします。
(MES> の部分は入力する必要はありません。念のため)

 MES> mount usb0
 MES> cd /spc0
 MES> dir

暫くしてI/Oエラーとなる場合には、あっさりと諦めて別のUSBメモリで確認します:p
また、即行でI/Oエラーとなる場合、USBデバイスと通信すらしていないということなので、もしかしたら結線の間違いがあるのかも知れません。

参考までに、私が確認したUSBメモリを、「4.その他USBデバイスの動作確認編」 に載せておきます。

また、「V02」が表示される場合、VDDピン周りのパスコンの接続が十分ではないために、USBホストがストールしていることを示しています。パスコンの接続を確認してください。

マウントでき、dirコマンドが通ったら、ひとまず完成です。
Congraturations!!!

なお、電源を落とす前に、忘れずにUSBメモリをアンマウントしておきましょう。

 MES> eject usb0

以上で、ハードウェアの組み立て編は終了です。


[戻る]