PCM/DSD信号のHDMI/RJ45接続を考えてみよう、の巻き 2021.5.26
すこし前にこんな書き込みをいただきました。
私自身、PCM信号の配線はケース内だけと思っていたのですが、機器が増えてくるとPCM信号で繋ぎたくなる場面もでてきますね。
さらに、具体的に下記のような基板イメージの書きこ込みをいただきました。
#基板の中央すこし右上に熊のマークがあるのがお茶目です。
さらに、こんな書き込みもいただきました。
HDMIケーブルは高周波の信号を送るには便利ですが、ケーブルも少し太くて硬いです。まあ、それが信頼の証でもあるわけですが・・・。
LANケーブルなら細いし柔らかいし、それにHDMIケーブルに比べて安価です。ただ、8線しかないので信号線以外の、例えば電源などが
送れませんが・・・・・
まずは使用できそうな部品を考えてみましょう
主要な部品は下記の3つです。
・HDMI/RJ45コネクタ
・LVDS-CMOS変換器
・アイソレータ(必要な場合)
まずはどんな部品が調達できそうか調べてみましょう。
1)HDMI/RJ45コネクタ
RJ45については秋月でも取り扱いがあるので、これが便利でしょう。
秋月からはRJ45コネクタの取り扱いがあります。ついでにHDMIも欲しいところです。
HDMIについては、先人達はピンタイプのものを使われています。たしかにスルーホールだと半田付けはしやすいです。
でも、このタイプってあまり種類が多くないようです。あとあとの入手性を考えると、表面実装タイプのほうがいいかもしれません。
それに、表面実装タイプの方が財布に優しいです。すこし気になったのは、半田付けができそうかどうかですが、
RasPiにも同様のコネクタが使われているので、試しに半田コテの先を入れてみましたが問題ないようです。
珍しくスルーホールタイプのHDMIコネクタです。
HDMIコネクタについては、表面実装用のピン出力がほとんどです。
HDMIコネクタはこのタイプがほとんど。
ピンピッチは0.5mmなので、いつものICと同じです。
半田コテの先も問題なく入るでしょう。
2)LVDS-CMOS変換器
次はLVDS-CMOS変換器を調べてみましょう。DIGIKEYの検索機能をつかって「IC RECEIVER」で調べます。
a)LVDS(HDMI)→CMOS
いくつも見つかりますが、どうも代表的なものはDS90LV048とかFIN1048のような感じです。
その他にMAXIMとかからもでていますが、ピン配置は同じです。どうやらこのピン配置がスタンダードのようです。
MAXIMのデータシオートを見ると、DS90LV048とピンコンパチとか書いてあるので、DS90LVがデファクトスタンダード
ということなのでしょう。
FIN1048 (Fairchild) DS90LV048 (TI) MAX9122 (MAXIM) |
LVDS → CMOS変換器 ピン配置はどれも同じようです。 |
b)CMOS → LVDS
こちらも上記と同様な感じです。ちなみに、ドライバとレシーバのピン配置は互いに対称に
なっているのですね。
FIN1047 (Fairchild) DS90LV047 (TI) |
CMOS → LVDSピン こちらも配置はどれも同じようです。 |
3)アイソレータ
kkumaさんの基板をみているとSi8660が使われています。こちらも6chのアイソレータにどのようなものが
あるか調べてみましょう。6chのものも複数のメーカからでていますが、同じピン配置のようです。
ADさんだけが、ちょっと違うかな〜。
SI8660 (silicon Lab) ISO7660 (TI) |
|
ADUM7640 (AD) |
上記より少しピン数が多いです。それにちょっとスピードが遅いです. |
RJ45はどうしよう?
あまり深く考えずにRJ45も8ピンだから4本の制御線(DATA、.LRCK,BCK、MCK)をLVDSで送れると思っていましたが、
GNDレベルの信号伝送はどうしよう?RJ45だと1本たりません.一番周波数帯域の低いDATA信号だけシングルで送るという手も
あるけれど、DATAといえども数MHzになりうるわけで、それを1mや2m伸ばして転送できるのか心配になってきます.
割り切って、RJ45は機器間の信号のみの接続コネクタと考えて、機器間のGNDは別のラインで結合するという手もあります.
そもそも、オーディオ装置なので大抵は一か所に集まっているはずです.でも、そうするのもちょっと悩ましいところです.
信号ラインとGND間でコンデンサでAC結合しておけばどうだろう?このあたりは実験が必要かな〜.
どんな基板を作ろうか?
1種類だけつくるのは勿体ないので、いろいろとまとめて作ってみましょう.
といことで、どんなものを作るかを検討です.
分配器やセレクタについては不要かな〜と思っていますが、単体の変換器でも実現できるような機能も追加しておきましょう.
種類 | 説明 | 補足 |
HDMI → CMOS 変換 | HDMIからの受信(レシーバ)です.LVDS変換で受けて、その後にアイソレータを入れます. | 複数個つかって選択することも考えて、出力制御 ができるEN端子を設ければいかもしれません.そうすれば出力をまとめておいて、選択するEN端子だけをアクティブにすればOKです. |
CMOS → HDMI 変換 | HDMIへの送信(ドライバー)です.LVDSに変換して送信します. | 複数のHDMIに分配するのであれば、単純に入力をパラにするだけでいいでしょう.パラ用のコネクタを設けておけば、リボンケーブルの加工も不要かもしれません. |
RJ45 → CMOS変換 | HDMIからの受信です.LVDS変換で受けて、その後にアイソレータを入れます. | 複数個つかって選択することも考えて、出力制御 ができるEN端子を設ければいかもしれません.そうすれ出力をまとめておいて、選択するEN端子だけをアクティブにすればOKです. |
CMOS → RJ45変換 | HDMIへの送信(ドライバー)です.LVDSに変換して送信します. | 複数のHDMIに分配するのであれば、単純に入力をパラにするだけでいいでしょう.パラ用のコネクタを設けておけば、リボンケーブルの加工も不要かもしれません. |
RaspberryPi → HDMI/RJ45変換 | RaspberryPiのPCM信号をLVDSに変換してHDMI/RJ45で送信します. | RasPiだとMCK信号がない場合がありますので、ICS570あたりを搭載してMCKも生成するようにしておいたほうがよさそうです. |
まずは事前実験! 2021.5.31
色々と確認したいこともあるので、いくつかの部品を購入です.
その一つがコネクタです.図面だけではわかりにくく、実物をみないとわかりにくいところがあります.
コネクタの実物確認のため、試しに買ってみました.
HDMIのコネクタはこれにしました.. 接続ピンは表面実装タイプですが、ニョキっとはみ出しているので
半田付けしやすそうです.
HDMIの端子も意外と半田付けしやすそうです.
HDMIはこれにしましょう.備忘録のために型番をあげておきます.
HDMIコネクタはプラグを挿すときにかなりの力がかかりますから、コネクタは4箇所で半田付けで固定されます.
その部分のピンの直径ですが、図面ではφ1.3mmになっています.でも、実際にはφ1mmの穴にも、ぎりぎりで入りました.
ということは、φ1.3というのはかなり余裕をもたせているようです.あまり余裕があると、コネクタを挿したときにガタつくので、
実際に穴はφ1.2あたりでよい感じです.
コネクタのピン穴の直径はφ1.3となっていますが、基板のφ1.0の穴でも入りました.φ1.2程度の指定でよいでしょう.
LVDS関連の石も購入です.とりあえずDS90LV047とDS90LV048を購入しました.
LVDS変換器のDS90LV047、DS90LV048はすでに変換基板に搭載です.
RJ45での伝送は?
ここでの実験ではRJ45がつかえそうかどうかというのを確認するのが主な目的です.
1)シングルエンド伝送は?
まずは、RJ45をつかってLVDSではなくシングルエンドでの伝送です.どの程度の波形の乱れが生じるか調べてみました.
下のような74AC04で1.5mのCAT6のLANケーブルをドライブです.このLANケーブルはいわゆるきし麺ケーブルです.
結果としては100Ωの終端抵抗があれば1.5mのケーブルでも、かなり綺麗に伝送できるようです.
ということはRJ45をつかっても、短い距離ならシングルエンドでも大丈夫そうです.
これだとRJ45を使ったシングルエンドの基板も使えそうです.
シングルエンドとはいえ、ツイストペアケーブルなので比較的ノイズにも強いのでしょう.
なお、同時に終端抵抗をはずしてみると、みるも無残な波形です.
なお、入力と出力で約11ns程度遅れいますが、これはケーブル長の影響でしょう.なんせ、光の速度でも
1nsには30cmしか進めませんから1.5mではすくなくとも5nsかかります.往復だとその倍ですね.
まずはこのような接続でRJ45での接続テストです.
終端抵抗100Ω有り.まあ、まともに伝送できているような気もします.
上:INPUT 下:OUTPUT
終端抵抗なし.反射等で波形がかなり歪ます.上:INPUT 下:OUTPUT
2)RJ45でLVDSの場合(GND接続有り)
こんどはLVDSの変換器を通しての測定です.こちらは、まず問題なく伝送できています
.1.5mのケーブルを通すと信号は約13ns程度遅れています.
LANケーブルを排して10cm程度のケーブルで接続すると遅れは2〜3ns程度です.これが素子の遅れということでしょう.
RJ45をつかってLVDSでの接続テスト回路です.
ケーブル長 1.5m |
LANケーブル(1.5m)を介して伝送です. |
上:INPUT 下:OUTPUT |
ケーブルなし (10cm) |
LANケーブルなしのダイレクトです. |
上:INPUT 下:OUTPUT |
3)RJ45でLVDSの場合(GND分離)
今回の実験で一番の目的はこれです.RJ45をつかっての伝送ですが、送信受信とも別電源で動作、すなわちGND分離されている状態での
伝送確認です.方法は下図に示す通りです.コモンモードノイズ対策の回路と同じです.
送受間で多少ですがGND間の電流の流入はありますが、もともとLVDSトランシーバは3.5mAの定電流駆動なので大した電流は流れません.
こちらのテストでも、問題なく伝送できることが確認できました.
送信受信で電源回路が分離している場合での伝送テストです.
信号は問題なく伝送できています.
上記のテストでは1回路だけでのテストでしたが、4回路ともすべてつかった場合についてもテストをしておきました.
こちらも、問題ないようです.
すべての配線を有効にしてテストです.
こちらも問題なく信号伝送できることが確認できました.
これで、具体的な基板の設計にはいれそうです.
中華図面の憂鬱 2021.6.1
コネクタなどは基板の設計の前に、現物を購入する目的はその寸法の確認です。
寸法自体は図面があるので、それを基板CADに入れればいいのですが、入力を間違うときがあるので
CADに描いたら、原寸大で印刷して実際の部品とピン位置等が合致しているかを確認します。
もし、寸法を間違ったまま基板を作成してしまったら目も当てられません。
で、今回トラブったのは中華RJ45コネクタ。図面番号7810-XPXCです(Xは8あるいは10)。
基板CADに部品図面を書き込ん、等倍で印刷です。左側のHDMIコネクタについては
ぴったしあいました。
片やRJ45(7810-8P8C)のコネクタは微妙というか、かなり位置がづれています。なぜだろう?
実物と印刷パターンがあわないときは、大抵は図面作成時の寸法ミスなのですが、今回ばかりは
何度図面を見直してても間違いはありません。反対に図面の間違いを見つけました。
おいおい!図面を間違えるなよ!
#ひょっとして図面の見方を間違えているというオチはないだろうな〜と、ちょっと心配ですが(笑。
図面では、ピンの端の位置が2.30と指定していますが、この値が間違っています。
そもそも、こんな値なければいいのに・・・。そうすれば、ピン幅全体でセンター位置を決めていました。
この値を正しい値に修正したら、ぴったし合いました。
図面の寸法からは赤丸のピンが横軸のセンターになるはずですが、図面の青枠内の2.30の値が余分で間違っています。
これがなければ、複数あるピン幅全体でセンタ位置を考えたのですが・・・。正確には2.30ではなく2.81が正解です。
間違いを修正したら、ぴったし合いました。
もう〜、つまらないことでエネルギーを使ってしまいました。
ピン配置を決めておきましょう!
HDMIコネクタをPCM/DSDの信号伝送につかう場合のピンアサインは色々あるようです。
まあ、ここは先人にあわせるのが吉ですね。
こういったピン配置もあるようです。
ということで、まずはピンアサインの整理です。
HDMI端子のピンアサイン | ||
PIn | 名称 | 備考 |
1 | SDATA- | PCM-DATA/DSD-L |
2 | SDATA GND | |
3 | SDATA+ | |
4 | BCK+ | BCK |
5 | BCK GND | |
6 | BCK- | |
7 | LRCK- | PCM-LRCK/DSD-R |
8 | LRCK GND | |
9 | LRCK+ | |
10 | MCK+ | MCK |
11 | MCK GND | |
12 | MCK- | |
13 | PCM/DSD | 0:PCM 1:DSD だけど基本は好きにつかってチョ。 |
14 | 予約 | 好きにつかってチョ。 |
15 | SCL | 好きにつかってチョ。 |
16 | SDA | 好きにつかってチョ。 |
17 | GND | |
18 | +5V | |
19 | GND |
あわせてRJ45(8P8C)のピンアサインも下記にしましょう。
RJ45(8P8C) | ||
Pin | LDVS | シングルエンド (3.3Vロジック) |
1 | SDATA+ | SDATA |
2 | SDATA- | GND |
3 | LRCK+ | LRCK |
4 | BCK+ | BCK |
5 | BCK- | GND |
6 | LRCK- | GND |
7 | MCK+ | MCK |
8 | MCK- | GND |
ついでに、いつもの10Pコネクタのピンアサインです。
Pin9,10についてはあまり明確に定義したことはなかったので、今回も「好きに使ってチョ」としましょう。
配線数を減らすなら電源供給に使うのが便利です。
10Pコネクタ | |||
説明 | Pin | Pin | 説明 |
DATA/DSD-L | 1 | 2 | GND |
LRCK/DSD-R | 3 | 4 | GND |
BCK | 5 | 6 | GND |
MCK | 7 | 8 | GND |
好きにつかってチョ。 | 9 | 10 | 好きにつかってチョ。 |
3.3Vの電圧レギュレータはどうしよう?
変換基板であるので、できるだけ小さく作りたいです。そのため必須となるIC以外はできるだけコンパクトなものにしましょう。
必須になるのは3.3Vレギュレータですが、必要な電流は小さいので100mAもあれば十分です。実際には20mA程度でしょう。
秋月で入手できるものから下記がいいかもです。LDOタイプで電流容量も十分ですし、安価です。
これなんかがいいでしょう。
パッケージとピンアサインです。
基板パターンを考えていきましょう!
1.送信基板(PCM/DSD→HDMI)
イメージ的にはこんな感じでしょうか。出来るだけ小さくしたいので、HDMIコネクタの裏側にトランシーバ(DS90LV047)を搭載します。
上下の基板は5V,,GND、DATA,LRCK,BCK、MCKをを連結できるようにしておいて分配できるようにしておきます。
3枚連結しても長さは100mm程度です。
1枚づつバラしても使えるし、連結ままでも使える感じで。
どうだろう?
とりあえず仕上げてみました 2021.6.2
何枚でも連結できますが、まあ多くて3つでしょうね。
分割して2枚あるいは1枚でもつかえるようにしています。
分配器としてつかうなら、信号はどこから入れてもいいのですが、普通は端かな〜。
切断の余白は2.5mm設けていますので、金ノコで切れるでしょう。
カッターナイフで溝を入れて切断するのが簡単です。
一応、ルータで切り出しておいて1、2、3枚のどれでも配布できるようにはするつもりです。
3枚連結基板です。
部品面と半田面のパターンは次の通りです。結構実装密度が高くなってしまいました。
基板の固定のネジは基本はHDMIコネクタの両側の2本で十分なはずですが、それだけでは気持ち悪いので
もう1箇所設けてました。
部品面のパターンです。
半田面のパターンです。
2.受信基板(HDMI → DSD/PCM)
こちらは、アイソレータを搭載するのですこし基板が大きくなります。送信基板と幅をあわせたので
奥行きが大きくなりました。アイソレータ(Si8660,ISO7660)は色々なパッケージがありますが、
1.27mmピッチのものとしてNarrowでもWideでもどちらでも対応できるようにしましょう。
そして、アイソレータを使わない場合はICのランドをジャンパーすればいいですね。
こちらもHDMI→CMOSの変換IC(DS90LV048)を半田面に実装したので、基板面積は小さくなりました。
部品面です。
半田面です。文字がよめるように左右反転したものを掲載です。
3.RJ45用の送受信
次はRJ45用のLVDS変換基板です.LVDS変換に使うICのDS90LV047(送信)とDS90LV048(受信)は、ピン配置が左右対称なので、
基板の両面のどちらかに実装するようなパターンにしておけば、1枚の基板で送信用と受信用にすることができます.
回路図にすると、ちょっとややこしくなりますが、IC1を実装すれば受信用、IC2を実装すれば送信用になります.
RJ45基板はLVDS変換基板を使わない場合のシングルエンドや100Ω終端、またLVDSを使う場合でも外付けでGND配線がある場合とない場合と
色々な場面に対応できるように、色々なジャンパーを設けています.ただ、ジャンパーを配置できるところが結構狭いです.
RJ45用は送信と受信用の兼用基板です.
部品面のパターン IC1を実装すれば受信用です.
半田面のパターン IC2を実装すれば送信用です.
基板の一枚一枚に取付穴を設けると、幅が広がりすぎるので、4個まとめて配置しました.
使わないければ部品を実装しないだけの話です.
LANのハブなんかもRJ45がほぼ隙間なく差し込めるようになっています.おそらくLANのコネクタの横幅も
なんらかの規格があって最大値が決まっているのでしょう.
4個まとめて搭載です.
4.HDMI用の送受信基板は?
アイソレータのSi8660やISO7760なんかもピン配置は左右対称なので、作ろうと思えばHDMI対応の送受信を兼用できる基板の
パターンを描くことができます. でも、基板がすこし大きくなってしまいます.できるだけコンパクトに作らないと、ケースの中を圧迫しちゃうからな〜.
ちょっとペンディングです.
5.Raspberry Pi用のHDMI出力基板
これは以前作ったMCK GENERATOR -B をベースに作りましょう.
といっても、ほとんど前面書き直しでした(2021.6.5)。
コネクタの位置だけコピーできました。
部品面パターンです。
半田面パターンです。
6. HDMIの送受信兼用基板 2021.6.6
HDMIをオーディオ用のピン配置は各社バラバラだけど、色々と対応できるようにピンアサインをへんこうできる
ようにしたものもあると便利でしょう。ジャンパーを飛ばさないといけないのが面倒ですが、ほとんどがストレート
ジャンパーなので問題ないでしょう。ジャンパーを設ける分、基板サイズが大きくなってしまうので、
ついでに送受信兼用基板にしてみました。ICを表面にとりつけるか、裏面にとりつけるかで受信と送信を切り替えます。
アイソレータも載せていますが、不要ならジャンパーを飛ばせばいいでしょう。
部品面です。こちらにICを実装したら受信基板になります。
半田面です。こちらにICを実装したら送信基板になります。
すこし長くなってきたので後編に移りましょう。
(後編へつづく)