Welcome to telecotele.com » 丁寧な暮らし

HDMI ARCを試す

最終的にHDMI音声分離器を使う話です。

tags: house

テレビにS/PDIFが欲しい

赤外線リモコンの信号を見るで述べたようにSHARPの「LC-32H30」というテレビを使っています。 この製品はローエンド扱い……なのか、光デジタル音声出力 (S/PDIF) はありません。 でも欲しい。 年数も経っているしいっそのこと買い替えか……? というのも思いましたが、いやまだいまはそのときではない。 そこでなんとか出力を追加できないか調査してみます。

一般に「S/PDIFが無い機器を改造して出力を追加する」場合、もともとMCUからはI2Sなどのデジタル音声が出力されている(そしてD/Aコンバータを通してイヤホン端子などアナログ音声出力に送られている)ことを前提に、そのデジタル音声を取り出してS/PDIFに変換すれば良いようです。 ならまずはアナログ音声出力をたどって、D/Aコンバータを見つければ良さそうですね。

ということで基板(次図)を見てみました。 が、D/Aコンバータは見当たらず、アナログ音声出力は基板中央ちょっと左上のデカい謎チップに繋がっているだけです。

基板全体 基板全体

謎チップはメインMCUと思われ、ここにISDBやHDMI関連のICが繋がっています。 おそらくやってきた映像/音声の信号から音声だけ取り出してアナログ音声に変換して……というのをこの中で閉じて行っているのでしょう。 MCUからのデジタル音声出力を取り出して~ということはできません。おわり。

ただ、基板中央ちょっと下に怪しい空きランドもありますね。 足は3本と思われる、S/PDIFの角型コネクタの足も3本、他端子との位置的にもちょうどS/PDIFがありそうな位置です。

空きランド 空きランド

調べてみると、S/PDIFのピンアサインでVcc—GNDとされているピンに3.3Vかかっています。 信号用のピンはメインMCUに接続されており期待しましたが、出力としては何もありません。 他の(S/PDIFを備えている)機種の説明書を見ると、S/PDIFを使うためには設定で有効にする必要があるらしいです。 もちろんこの機種にはS/PDIFが無いためそれらしい設定項目はありません。 「サービスマンモード (Adjustment Process Mode)」で設定も見てみましたが、やはりそれらしいものはありませんでした。おわり。

ほか、何か分からないかと思って、公式サイトで配布されているファームウェア更新ファイルも見てみようとしました。 が、暗号化されているのか独自の方式によりパッキングされているのか、データ形式が分からず見れません。 放送波を通じたダウンロード(エンジニアリングサービス)だと違った形式になっていたりしないかな……基板裏にあるフラッシュメモリも見てみようかな……と一瞬思いもしましたが技量やそれを見てどうなるか?を考えると厳しいです。

HDMI ARC

このテレビのHDMI入力のうち、1つだけARC (Audio Return Channel)に対応したポートがあります。 あーAudio?そうそう、HDMIは映像も音声も1本のケーブルで送られているんですよね、 バカにしないでくれる?知ってるわよそのくらい!! まったく、D端子とかコンポジットビデオの話じゃないんだからさ……。

と誤解してしまいますが、ARCはテレビ側から音声を出力する機能です1。 この音声は(少なくとも試した限りでは)ARCに対応したポートからの音声に限らず、たとえば地上波の音声や他のHDMIポートからの音声もARC対応ポートから出力できます。

ARCはデジタル音声です。 ならテレビ側もどこかでデジタル音声を出力しているのでは?ということで、再び基板を見てみます。 この基板でHDMIまわりを担当しているのはSiI9687A(次図)というICのようです。

SiI9687A SiI9687A

SiI9687AはメインMCUと接続されており、データシート2によればMCUからI2Cで操作を受けて、HDMIポートの切り替えやARCの確立を行うようです。 特にARCの接続(次図)を見ると、音声はSPDIF_IN (pin47)に入力され、ARC(pin48)を介してHDMIのUTILITYピンに渡るようになっています。

SiI9687A SiI9687AのARC接続(データシートより)

SPDIF_INを調べれば良さそうですね。 ということで調べてみましたが、何の出力もありません……。 テレビ側の設定を見るとARCの設定は「自動」または「切」のみとなっています。 おそらく「自動」でもテレビ側でARCに対応した機器が接続されたことを検知し、それからSPDIF_INへ音声を渡すような感じだと思います。

前述のとおりメインMCUとSiI9687AはI2Cで繋がっているため、その間にI2C Proxyのような何かを挟んで「ARC対応機器が来たよ!(だからS/PDIF流せ)」と言えばなんとかなりそうな気はします。 ただ、I2Cでどんなメッセージをやり取りすれば良いかはデータシートでも明かされていません。 そのため、もしやるならcec-clientなどから “Initate ARC” (CEC_OPCODE_START_ARC) を送って3反応を見たり、 それに対して “Report ARC Initiated” (CEC_OPCODE_REPORT_ARC_STARTED) が来るか、また逆に “Request ARC Initiation” (CEC_OPCODE_REQUEST_ARC_START)が来たりするのか見るところから始める必要があります。 こうしてI2Cメッセージが判明したとしても、そもそも間に何か挟むというのは配線的にも難しくしんどいです。

HDMI音声分離器

テレビ側をなんとかするのは厳しそうですね。 そもそもARCに対応しているというなら、そこから音声を取り出してS/PDIFに変換すれば良いんです。

そうした機器は「HDMI音声分離器(※特にARCをサポートしている商品)」として販売されています。 2024年6月3日時点で2,399円と一番安かった次の商品を使ったところ、想定どおり地上波の音声や他のHDMIポートからの音声も音声分離器のS/PDIFから出力され「テレビにS/PDIFが欲しい」という要望が達成できました。

avedio links HDMI 音声分離器 4K 60Hz HDMIオーディオ分離器 HDMI 2.0b/ARC対応 光デジタル/SPDIF/3.5mmジャックステレオ ハイレゾ パソコン・Xbox・PS5・Fire Stickなど対応 Blu-ray・TVボックス用 分離機

ところで、「音声分離」とは……? ARCで流れてきた音声をS/PDIFとして外部に出力しているであろうことは理解できます。 この手の音声分離器には別途HDMI入力を備えているものも多く、その入力はテレビ側に渡さないで直接S/PDIFにしているからとか……? よく分かりませんが、やりたいことは実現できたから良いんです。おわり。

Footnotes

  1. HDMI入力とは一体……いや、思えばCEC(テレビ側リモコンでHDMI機器を操作したり、機器側から情報を伝える機能)も双方向ですね……。

  2. https://www.lcsc.com/product-detail/Video-Interface-ICs_Lattice-SII9687ACNUC_C369573.html

  3. コネクション確立はHDMI機器側から始まるような雰囲気だと思っていますが、実は逆かも知れない。