シリアル信号のノイズ(静電容量関連?)


11

「エグゼクティブサマリー」写真:

シリアル信号が壊れているようです

3.3Vをマイクに供給し、タブレットのTXを調べる

タブレットのヘッドフォンジャックから出力されるシリアル信号をデコードしたい。これは、いくつかの携帯電話やタブレットに存在するやや奇妙な「ハック」です。基本的に、TRRSプラグのマイク入力に3.3Vを供給すると、左右のチャンネルがシリアルTX / RXになります。

Raspberry PI TRRS-to-TVケーブル(2枚目の写真を参照)を使用して、必要な4つの場所(GND、MIC、L、R)にアクセスしました。ケーブルは、露出する以外のことを行うものではありません。 3つの対応するケーブル(赤、白、黄色)の3つの信号(MIC、L、R-GNDとペアリング)。

BitScopeのプローブを使用して、TX(2番目の写真の白いケーブルの先端)と共通のGND(2番目の写真の下部にある茶色のプローブ)の間をプローブしました。また、2つのプローブ(赤と青のプローブ)を使用して、USB / TTLチップ(ラップトップに接続されたPL2303HX)からMIC(赤)チップに3.3Vを「供給」しました。

タブレットを再起動すると、115200(8〜9usのピーク間)のシリアル信号が紛れもなく見られますが、多くの静電容量(ビデオ)があります。

だから、私の質問-オンラインになってTRRSプラグ、ケーブル、はんだごてを注文する前に-私が見ている静電容量は...

  • 長さ1メートルのTRRS-TVケーブル、またははんだ付けされたケーブルの代わりにプローブを使用

または

  • プローブとケーブルは実際にはこのくらいの静電容量を考慮できません。そして、私がこれを見ている理由は、タブレットのヘッドフォンジャックが単にこの信号を発するように設計されていなかったからです。 。

おそらく推測できるように、私はこの種のものに非常に新しいです。私はソフトウェアの男で、1週間前にBitScopeを購入しました。タブレットのシリアルに「楽しみと利益」(ブートローダーのハッキング、Cyanogenmodのコンパイルなど)にアクセスしたいと思っています。

これが失われた原因であるかどうか(つまり、ケーブルがこれほどの静電容量を説明できない)かどうかの推測を評価していただければ幸いです。

ヘルプ/提案を事前に感謝します。


1
信号は私にはかなり正常に見えます。何が嫌いですか?RCAケーブルのバルク容量はおそらく1000pF程度なので、エッジが遅いことは驚くべきことではありません。
Ale..chenski

「あなたはそれについて何が嫌いですか」-エッジが遅すぎると思います(私のPL2303HX-つまり私のUSB / TTL-は何もデコードしませんでした)。
-ttsiodras

(1)ケーブルが3メートル(10フィート)未満であることを確認します。(2)ケーブルなしの部品としてジャックだけを入手できる場合、タブレットにプラグを差し込み、ケーブルなしで測定して信号の「品質」を確認します。(3)ボーレートを下げる。
匿名

@匿名-試しました。以下に私の結果を掲載しました。
ttsiodras

1
@アリチェン:あなたは正しかった、メイト-私はBSS138を使用し、信号をデコードしました(以下の私の答えへの補遺を参照してください)。すごい-これは予想していなかった。
ttsiodras

回答:


10

だから、私はコメントした2人の親切な人々によって与えられたアドバイスに従った...ここに結果があります。

  1. Ali Chenは、スローエッジはRCAケーブルの静電容量に起因する可能性があることを示しました。「匿名」は、ワイヤのないジャックでボードに直接取り付けることをお勧めします。私は彼らのアドバイスに従い、タブレットを剥がしてPCBを露出させ、裸のジャックを差し込んで調べましたが、残念ながら結果は同じでした。非常に遅く、明らかに容量駆動型のエッジです。それはRCAワイヤではありませんでした -代わりに、タブレットを設計した人はヘッドフォンジャックから出てくるシリアル信号をあまり気にしていないようです(おそらく、ボードとのインターフェイスに他の方法を使用した)。よりクリーンなシリアル信号を見つけることを期待して、PCB全体を調べてみましたが、失敗しました。

  2. 匿名は、ボーレートを下げることも推奨しました。残念なことに、タブレットの起動プロセスに影響を与えて、u-boot中に使用するボーレートを設定する方法は文書化されていません(これは私が興味を持っていたものです)...

しかし、ADBシェル内からブートが完了した後にそうすること可能です- 自分のカーネルコンパイルしてrootになったからです。

だから私はこれを行うことができました...

$ su
# stty -F /dev/ttyHSL0 9600
# while true ; do echo UUUUUUU > /dev/ttyHSL0 ; sleep 0.1 ; done

そして確かに、結果ははるかに優れています。

9600ではるかに良い

シフターを使用すれば、この信号を正常にデコードできると確信しています(1.8Vなので、3.3V USB-TTLはまだデコードできません)。

結論として、私のタブレットの「ヘッドフォンジャック内のシリアルポート」は、ブートが完了し、UARTの速度が9600ボーに低下した後にのみ実際に使用できます。残念ながら、シリアル出力はブートプロセスに最も必要とされるため(何かが失敗した場合)、その間、UARTの速度は115200ボーでタブレットのブートコードにハードコーディングされます。

PS友人からの提案も試してみました。ヘッドフォンジャックから送信されるシリアル信号の3.3Vレールに向けて3.3Kのプルアップを使用しました。

更新、3日後

辛抱しました:-)

クリス・ストラットンからのアドバイスに従って-良いシフターはこの種の信号にも対処できる-私ははんだごて、BSS138、ブレッドボード、ケーブルの束を買いました。おそらく史上最悪のはんだ付け作業の後、私はBSS138のピンヘッダーをはんだ付けし、それをブレッドボードに取り付けて、このもつれた混乱を作成しました:

ブレッドボードと私のBSS138

私が予期していなかったのは、minicomを生成して「fastboot reboot」を発行した後、驚いたことに、これを見たということです。

シリアル信号がデコードされました!

信じられない-BSS138が信号を1.8から3.3Vに「持ち上げ」た後、その悲惨な、容量が乱れた信号を実際にデコードできます。タブレットが起動しない理由がようやくわかりました。

こんにちは、小さなタブレット-私はあなたに今所有しています:-)


1
元の信号は適切に設計されたレベルシフターでデコードできる可能性が高いですが、出荷時のオーディオ出力回路の帯域幅は、このデジタル信号に最適な帯域幅よりもかなり小さい可能性があります。消費者製品は放射妨害波テストに合格する必要があり、ヘッドフォンアンプ自体はおそらくスイッチングデザインであるため、放射を抑制するためにボードエッジにLCフィルターがある可能性があります。
クリスストラットン

ただし、比較的低いパフォーマンススコープまたはそれで使用している設定が信号を誤って伝えている可能性があるかどうかも考慮してください-同じボーレートでpiまたはUSBシリアルコンバーターの出力を見て比較するのが良いでしょうスコープがどのように正方形に見えるか。
クリスストラットン

@ChrisStratton干渉フィルターについて:アイデアはありませんが、私が明らかにした機能(ヘッドフォンジャックを介したシリアル)が使用されることを意図していなかった場合、もっともらしいです。Nexusデバイスについて読んでいるときに最初にこのことを知りました。タブレットがどのように反応するのか興味があり、試してみることにしました。スコープの確認について:もちろん、それを購入したときに最初にしたことは、ラズベリーPI2のTX GPIOピンから送信された115200の透明な矩形パルスを示しています。私はこの時点で、私でもスコープでもないことを確信しています。それはタブレットのハードウェアです。
ttsiodras

@ChrisStratton:「...うまく設計されたレベルシフターでデコードできます」-特定のチップを念頭に置いていますか?
ttsiodras

@ChrisStratton:勝利!BSS138が信号をデコードしました-答えを増やして証明を追加しました:-)正しい方向に向けてくれてありがとう。
ttsiodras

0

DSOには、115.2kbpsのデータレートで方形波を表示するのに十分な@ksk​​spsの帯域幅がありますか?そう思う。参考までに。私は間違っている可能性があります。

遅い解像度を使用した可能性があります。


うわー、小さな男への愛はありません!悪いBitScope :-)しかし、真剣に-BitScopeは私のRaspberry PIから出てくる115200ボーを細かく調べ、きれいで明確な正方形のパルスを表示します...タブレットのヘッドフォンジャック(i.stack .imgur.com / WAw6J.png)。私はシフター(1.8から3.3に移行)とロジックアナライザーを取得するプロセスにあるので、シフターがこれをクリーンアップするかもしれません。見えるよ!
ttsiodras

やった!BSS138は信号をデコードしました。
ttsiodras

BSS138には、Vcc / 2 +/-?ではなく1.3V {0.8min、1.5max}の低いVgsしきい値があります。または2.5V +/-?そのため、下限しきい値がそれを行いました。これは74HCTxxがよく5Vロジックに3.3Vの信号を受け取るよう動作する方法である
トニー・スチュワートSunnyskyguy EE75

今、Jiffiesオーバーフローとは一体何でしょうか?バギーLinuxボックス?または通常のブートレイテンシー
トニースチュワートサニースキーガイEE75
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.