TDR (Time Domain Reflectometry) はともかく、TDT (Time Domain Transmissometry) の使い道がよくわからなかったので調べていた。

TDRの横軸と縦軸

  • 横軸は時間
  • 縦軸はその時間における反射係数。または反射係数から導きだせるもの

特定の箇所のインピーダンスだとかSWRがわかる。

TDTの横軸と縦軸

  • 横軸は時間
  • 縦軸はその時間における透過係数。または透過係数から導きだせるもの

例えば透過係数の大きさをとれば、どのタイミングで信号が伝わってきたかがわかる。もしマルチパスがあるような伝送経路だとそれぞれが可視化される。

TDR と TDT

このスクリーンショットは、青色が TDT、黄色が TDR を表示している。単に VNA の入出力に 2m の同軸ケーブルを繋いでいる (ダイナミックレンジが高くないとわかりにくいでのS-A-A-2 でのスクショ)

  1. TDT は片道なのでまず最初に(0sに近いほうで)現われる。そしてVNAの入力ポートで一部は反射されて戻っていく
  2. TDR 側は戻ってきた反射を観測する。そしてVNAの出力ポートで一部は反射されてまた戻っていく
  3. TDT はまた出力ポートから反射されてきた信号を観測する

という挙動がわかる。キーサイトの時間領域透過率測定の項目 だとトリプルトラベルパスと書いてある。

光速で伝達する波がしっかり往復しているのをぱっと観察できて面白い。

ref

  1. トップ
  2. tech
  3. VNA の TDR と TDT

Aliexpress を徘徊していたらそういうものが出ていたので買ってみた (400円ほど)。これ元ネタはおそらく SDRKit のVNWA Testboard kit というものだと思う。

自分が手に入れたものは以下のセットであった

  • 基板 (PWB)
  • 49.9Ωチップ抵2抗 * 2 0805
  • 丸ピンヘッダ
  • SMA メスエッジコネクタ * 6
  • ナット・ビス 4セット

フィルタ用のパターンがあるが今のところ使う予定がないのでコネクタも実装してない。

冒頭の写真はわざと誘導性の非連続を作って観察してるところで、教科書通り?の波形が見えて結構おもしろい。

  1. トップ
  2. tech
  3. NanoVNA Test board kit というやつ

無料 Wi-Fi なんかでよくある、接続時にログインさせられるやつ。あれの名前は Captive portal というやつらしい。各OSともにこれを検出したときはログインダイアログを表示するような実装になっている。

Captive portal が出る条件は (OSによって違うだろうけど)

  • OS 側が用意するドメインへの http アクセスをリダイレクトすること

のようだ。OS側が用意するドメインとは例えば

  • captive.apple.com (macOS)
  • connectivitycheck.gstatic.com (Android)

みたいなやつ

やることとしては

  1. DNS サーバを立てる。全ての A レコードクエリに対し captive portal の IP アドレスを返すようにする
  2. DHCP の DNS サーバに自分の IP アドレスを指定
  3. captive portal は HTTP サーバを立て、自分以外のホストへのリクエストをすべて自分のホストへリダイレクトする

これで macOS と Android でダイアログが出ることは確認した。

メモ

自力で DNS Server を実装するとOSの違いに気付くことがある

  • macOS は DNS response に QUERY が含まれていなくても (ANSWER だけで) 認識する
  • Android は DNS response にQUERY が含まれていないと認識しない
  1. トップ
  2. tech
  3. Wi-Fi 接続時に OS のログインダイアログを出させる方法 (Captive portal)

トラブルシューティング

DMA ではない HAL_UART_Transmit は動くか試す。動かないなら UART の設定やピンを確認してみたほうが良い。

DMA すると何も動かんとき

generated code がうごかないじゃん…… となったら HAL_DMA_Init を最初にもってくると動くことがある。

とりあえず変更して試すなら適当に編集して試せば良い。が再生成するとき困るので、CubeMX 上でこの順番は変えておくのが良い。Project Manager → Advanced Settings にいくと順番を変更するUIがある。

最初の一回だけ成功するとき

UARTn global interrupt をオンにする。HAL_UART_IRQHandler あたりで送信の後処理とかをしているようで、この割込みが有効でないと最初の DMA 以降は HAL_BUSY となり成功しない。

  1. トップ
  2. tech
  3. STM32 CubeMX で生成した HAL_UART_Transmit_DMA がうまく動かないとき

Aliexpress で LNA 買ってみた。

Specification:
Model: 50K-4G
Optional Type: Bare Board, CNC Shell
Power Supply Voltage: DC9-15V, typical +12V (Typical current value 45mA)
Gain: Typical value 25dB 0.8G
Input Output Impedance: 50Ω
Maximum output power: P1db + 16dBm 0.8G
Input signal: <0dBm (>0dBm input signal has been distortion)
Bandwidth: 50K-4GHZ (different gain in different frequency)
Noise Coefficient: 1.9dB 1.9GH
Bare Board Size: Approx. 6*2.5cm/2.4*1inch

CNC Shell Size: Approx. 7*3.3*1.3cm/2.8*1.3*0.5inch

Weight: Approx. 5g~40g / 0.2oz~1.4oz

3G までの特性。測定方法は以下の通り

  • スペアナの入力に 30dB のアッテネータをつける
  • -20dBm のトラッキングジェネレータ出力を入力とする
  • LNAの代わりにスルーコネクタをつけてノーマライズ
  • LNAに変えて電源を入れて測定

  1. トップ
  2. tech
  3. 50K-4G LNA (25dB@0.8G) を買ってみた