使い捨てカミソリ2種を試した

これまでいろいろなカミソリを試してきました。基本的に肌が弱いので、電気カミソリでも、 安全カミソリでも肌荒れを起こしてしまいます。これまでしばらくの間電気カミソリを使ってきましたが、 どうしてもすっきり剃れていない感じがあります。久々に安全カミソリを使ってみようと思い立ち、購入してみました。

購入したのは、Schick Xtreme3とDorco Pace6です。

Xtreme3 パッケージ: “Shick Xtreme3 パッケージ”

Xtreme3 拡大: “Xtreme3 拡大”

Pace6 パッケージ: “Dorco Pace6 パッケージ”

Pace6 拡大: “Pace6 拡大”

どちらも1本あたり100円程度で購入できました。思いつくままに印象を書きます。

Xtreme3

剃りやすいですが、なんだかしっかりそれていない感じもしました。1回できれいに剃るというのではなく、 何度か剃るのが前提のように感じました。3枚刃なので、こんなもんでしょうか。 肌にあまりうまく当たっている感じがしませんでした(これは単に使い方の問題の可能性もあります)。

Pace6

そもそもDorcoというメーカは聞いたことがありませんでしたが、韓国の会社のようですね。 Amazonで割と評価が良かったので試してみました。安いので、さほど懐は痛みませんので。 こちらはさすがに刃の数が多いだけあり、ごっそり剃っている感じがあります。 でも、1剃りで完了とはいきません。大分昔にジレットの5枚刃Fusionプログライドというのを使っていたことがありますが、 それにはさすがに劣る感じもしますが、値段からすればまぁ良いと思いました。

ちなみに、かなりごっつい感じのボディが無駄に感じます。大陸の方はこういうデザインが好きなのでしょうか。

全体として

まだどちらも1本だけ消費してみた感じですが、耐久性は似たり寄ったりでしょうか。自分の場合、 2,3回で使えなくなるということはありませんでしたので、値段からすれば十分ではないでしょうか。

とにかく安いので、旅行中でも電気よりしっかり剃りたいという時には良いと思います。

以前に使ったジレットの5枚刃は、1回でかなり剃り切れる感じがありましたが、その最高の剃り味は2回程度しか 持続しないという印象でした。最高の状態で使い続けたいのであれば、かなりの出費が必要になると思い、 しばらくしてやめてしまったのでした。

ちなみに、剃る時には、シェービングジェルを使っています。 別に石鹸を泡立てても同じ効果かもしれませんが、とりあえずお手軽なので。 でも、最近近所の薬局で、ネット上で評価の高かったシェービングフォームも買ってみました。 現在のジェルが無くなったら試してみます。

でも、自分の場合ジェルを付けていても肌荒れするので、どちらかというと剃った後が重要な気がします。 今は友人からもらった、フタアミンhiローションというのを使っていますが、 大分良いです。無刺激で全くべとつきません。でも結構お高いのですね。どおりで効果があるわけです… 今のが無くなったら、半額くらいのニベアメンでも買ってみようかと思います…

個人的には、メルクールの両刃にも興味が出てきました。 自分は慎重に剃るというよりは、かなり適当にやってしまうので、両刃を使うと出血必至かとも思いますが、 コスパが良いのであれば、1回くらいは試してみたいですね。

**2017/11/27追記:**安い両刀剃刀を入手しました。ごみの量が減るので気に入っています(使い捨ては割と本体部がかさばる)。 記事はこちら。 両刀はコスパも高いので、旅行などを別にすれば、もう使い捨ては買わないかもしれません。

FM ADC基板 rev0.2到着

Elecrowに発注していた基板が先日到着しました。今回は、前回と異なり、発送前に確認用の写真を送ってくれました。 実物を見ると、写真より大分小さく感じます。

“基板2種”

小さいほうの基板が、FM帯域のBPF基板です。+5Vを供給します。左側のSMAにアンテナを接続し、 右側のSMAからフィルタ、増幅された信号を出力します。

BPFとADC基板はSMAケーブルで接続します。

大きいほうの基板がADC基板です。左側のSMAはトランスによる差動変換回路も含むFM用入力です。 下側SMAコネクタはシングルエンドのままADCに入力されます。AM信号などの取り込みが可能です。

ADCコネクタは、これまで同様Z-turn boardに接続しますが、 rev0.1基板とは逆側の80pinに接続するように設計しました。

電源、クロック発振も問題無いことを確認しました。

くみ上げた状態で、生信号(サンプリングレート40MHz)をPCで取り込んでFFTした画面が以下になります。

“0-20MHz FFT”

一方、ADC基板に信号を入力しない場合のキャプチャとFFTは以下になります。

“0-20MHz FFT w/o antenna”

これとrev0.1基板での信号も比較してみると、 rev0.1基板ではアンプによる増幅が必ず行われるので、アンテナ未接続時もそれなりのノイズがみられましたが、 今回はADC基板側にはアンプは載っていないので、+2から-1程度の範囲内で信号が取れています。

実際に動作させてみたら、イーサネットケーブルを接続したときと、JTAGケーブルを接続したときで、 ノイズがかなり混入します。それぞれのノイズの周期は異なる感じで、 イーサネットの方はかなりホワイトノイズのように聞こえますが、JTAGケーブルは数Hz程度でノイズが入ってきます。 なかなかノイズ対策は難しいですね… イーサネットは電源線は無いはずですので、ディファレンシャルノイズではなくて、 コモンモードノイズ(参考1, 参考2)が入ってきてしまうのでしょうか?

それと、今回の基板から、BPFとADCの距離を離せるようになったので、距離を色々変えてみましたが、 当然のことながら、離せば離すほど、ノイズは減少します。

というわけで、デバッグ用のケーブル類は一切接続せずに、単体で動作させると、それなりに良い音が得られています。 でも、できればデバッグしながら音も確認したいですので、ちょっと困りました。 JTAGは接続しないでも動作するようにすれば良いとして、データダンプ用のイーサネットはできれば繋いでおきたいです。

2017/9/12追記:イーサネットの代わりに、ZynqをUSBデバイスとして動作させて、USB経由でデータダンプを行えば良いと気づきました。 元々、USB2.0だと480Mbps止まりだけど、イーサだと1Gbpsまで行けるだろうという目論見で、Linuxを動作させてイーサを使用しましたが、 実際のところ1Gbpsの50%も出ていないようです。40MHzで12bitデータを取り込むとなると、480Mbpsとなり、 しっかりチューニングしないと転送は難しそうでした。そういうわけで、現状は一旦DDRメモリに一定量をためてから転送しています。

したがって、USB経由でデータ転送を行ったとしても、現状と使い勝手はほぼ変わらないと考えられます。それに、 USBガジェットとしての動作であれば、わざわざLinuxを使用しないでも、FreeRTOSで十分です。

7シリーズFPGAでの非同期クロック切り替え

注文済みの基板の到着を待つ間に、FPGAデザインの修正を行いました。

ADCにつながる信号線のピン配置を変更しても良かったのですが、今回の基板は、前回とは異なるコネクタに装着することになります。 つまり、新旧二つの基板を、同時に一つのZ-turn boardに装着することができます。 それで、Z-turn board上に実装されているディップスイッチで、どちらの基板からの信号を処理するかを変更できるようにしました。

FPGAの大きさとしては、両方の基板からのADCデータを同時に処理することも可能です。 でも、そこまでする必要性を今は感じません。それで、FM処理回路自体は1つだけで、当該回路にどちらの基板から信号を供給するかを、スイッチで切り替えるという算段です。

それで、ひとまず想定した実装を行って、既存基板で動作することを確認しようとしたら、どうにも動作しませんでした。 調べてみたところ、MMCMのlocked信号がHighになっていない。つまり、基板からの40MHzのクロックがちゃんと切り替えられていない。

結果として、次のようにすることで解決できました。

BUFGCTRL bufg_inst (  // use as asynchronous MUX
    .IGNORE0    (1'b1),
    .IGNORE1    (1'b1),
    .CE0        (1'b1),
    .CE1        (1'b1),
    .S0         (!SW[2]),
    .S1         (SW[2]),
    .I1         (w_adc_ck_bufg),
    .I0         (w_adc_ck_b_bufg),
    .O          (w_adck)
);

最初はBUFGMUX_CTRLを使用していましたが、それが原因でした。UG472をよく読んでみると、 BUFGMUX_CTRLは基本的には、どちらの入力クロックも常時トグルしている場合に使用することが前提となることが分かりました。

それだと、場合によって(必要な要件によって)は当然困った事態になりますので、ちゃんと回避方法が準備されています。 それが、BUFGCTRLのIGNOREピンです。IGNORE0をHighにすると、I0ピンのクロックからI1ピンへのクロックの切り替えが(クロックの変化を待たず)即時に行われます。IGNORE1をHighにすると、I1ピンからI0ピンへのクロック切り替えが即時に行われます。

というわけで、上記のように記述することで、現在のように片方の基板が接続されていない(したがってI0がずっとLow)場合でも、 SW[2]の切り替えに応じてクロック選択が可能になりました。

ADCのフロントエンドの設計

ADCの分類方法として、アナログ信号の入力部にバッファがあるか、無いかというものがあります。 後者は、スイッチキャパシタ方式と呼ばれています。文字通り、キャパシタにスイッチが付いていて、 クロックのHigh, Lowに合わせてスイッチが開閉することで、電荷を蓄積し、 その電荷をデジタル値に変換するという動作をするようです。

それぞれのタイプには、以下のような利点と欠点があります。

利点 欠点
バッファタイプ アナログ入力部のインピーダンスが一定なので、設計しやすい 消費電力が大きい
スイッチキャパシタタイプ 低消費電力 アナログ信号の周波数に応じて、入力インピーダンスが変化する

スイッチキャパシタタイプを使用する場合には、フロントエンド部の設計にも気を遣う必要があります。 それについて、Analog DevicesのAN-827(日本語)、(英語)とAN-742(日本語)、(英語)が参考になりました。

キャパシタに電荷をためる段階をtrack-modeと呼び、電荷を保持する段階をhold-modeと呼びますが、 track-modeのインピーダンスマッチングを取ることが必要です。 とりわけ、インピーダンスのうち、キャパシタ由来の虚数成分を、フロントエンドでインダクタを使用して打ち消すことが結構重要のようです。資料には、その定数の求め方の計算例が出ていました。

また、資料中の図から、200MHzあたりを超えるとインピーダンスは実数成分、虚数成分ともにそれほど変化していないようです。 100MHz以下の領域では周波数に依存して大きく変化しています。

現在使用しているADCであるLTC2292も、フロントエンドの推奨として、70-170MHz, 170-300MHz, 300MHz以上という3つの例がデータシートに出ていますが、おおむねこのような分類で周波数を網羅できる理由も理解できました。

ADC基板の改版

ADC基板を改版して、またElecrowに製作を依頼しました。 今回は、基板を分離して、(1) FM BPF基板、(2) ADC基板 という二枚構成にしました。 ADC基板がZ-turn boardに接続され、FM BPF基板には+5Vを供給します。

BPF基板は、トラ技2015/4を参考に、76-95MHzを通過帯域とすることを目指しています。

ADC基板は、前回とは以下の部品を大きく変えました。

  • 発振器:前回はSiTimeのMEMS発信器+-5ppm品を使用しましたが、これは結構高かった(7USD程度)のに加え、 推奨3.3V駆動であり、今回は3.0Vにしたかったので、+-1ppmのTCXO(3.26USD)を使用しました。 このTCXOはクリップ正弦波出力なので、インバータ(On semiconductor: NC7SVU04)と1MΩ抵抗フィードバックで発振させるようにしました。 このタイプの発振器は使ったことがないので、一応推奨の使用方法通りの回路としましたが、しっかり動作するか少し心配です。
  • 差動変換:前回はM/A ComのCenter-tapped transformer (MABAES0060)を使用しましたが、今回はLTC2292の推奨回路に従い、 ETC1-1-13という型番のbalunにしました。
  • SMAコネクタ:前回は基板を貫通する、ライトアングルのコネクタを使用しましたが、 各社の評価基板を見てみると、単純に基板エッジのSMAコネクタは、なんだかカッコ良いです。 真似して、今回はエッジタイプのSMAコネクタにしてみました。

その他としては、今回も音声出力用DAC(NAU8822LYG)を載せましたが、いろいろ調べてみたら、 FPGAで比較的簡単に、 同軸デジタル、あるいはS/PDIFと呼ばれるデジタル音声出力ができそうでした。 もっとも、DACとコネクタ含めても部品代は3USDちょっと程度なので、これを削除してデジタル出力のみにしても、 それほどコストダウンはできません。ただ、DAC部はそれほど注意深く設計していないので、 デジタル出力して、外部のDACで変換して音を聞く、というのは実験する意義があるかと思います。 同軸デジタルであれば、RCAコネクタ、S/PDIFであればTOSLINKコネクタを使用します。

TOSLINKコネクタは1,000円以上するかと思っていましたが、 調べていたら100円くらいとお安い(秋月)ものが存在(aitendo)するようですね。digikeyにもありました。 コネクタが高いなら、RCAで良いかと思っていましたが、光だと絶縁できるというメリットがありますからね。

S/PDIFについてはこちらのページも詳しいですね。

それぞれ2枚ずつ製作を依頼しました。これでトータル264USDでしたが、前回のクーポンが使えて、 256.62USDの支払いでした。既に日本円に換算されて、1USD=111.23JPYあたりとなり、 28544JPYでした(送料込み)。

インダクタはこちらが指定した部品を使用してもらえることになりましたが、キャパシタについては Elecrow側が選んだものを使ってもらうことにしました(お値段が高くなりすぎると言われたので…)。 ちょっと特性については心配しています。

以下はおまけのレイアウトです。

ADC基板 (4層 1.6mm)

“ADC rev 0.2”

FM BPF基板 (2層 0.6mm)

“FM BPF”

FM BPF基板の回路図は次のような感じです。

“FM BPF Schematic”

まだ到着まで2週間くらいかかりそうです。

2017/9/12追記: 基板到着しました。2セット製作したので、 1セットは予備で保管しています。試してみたいという方は、twitterでお知らせください。 ご要望が多ければ、再度製作するかもしれません。

記事のまとめ

記事が結構多くなってきて自分で参照するのも大変になってきたので、これまでの記事をまとめます。

SDR関連

ワンセグ関連

GNU Radio + ADALM-PLUTOでの受信, ワンセグデータのファイル保存, OFDM復調, TMCC, SP検出, CFOの影響, QPSK復調成功

BPFのシミュレーション

LNA前部, LNA電源, LNA出力, rev0.1基板のBPF

rev0.1基板の特性

電源, 時報測定, FMパイロット信号, アンテナ未接続時のFFT

rev0.2基板

写真と測定, 時報測定, 概要とデジタル音声出力について. BPF基板回路図

SDR処理実装

AM復調のソフトウェア実装, FM復調全体のソフトウェア実装, 周波数ミキサとCIC, FM復調, FM復調後, DAC動作完, FMステレオ復調

その他

基板写真, DDS, 全体設計構想とLinux, RF電界強度, rev0.1 RF回路図, 部品選定, ADC性能指標, ADCフロントエンド設計, FMアンテナ製作

Web関連

Canvas要素で描画, Canvas描画とWebSockets通信(Haskellサーバ), WebSocketsサーバ高速化, RustでWebSocketサーバ on Zynq, Zynqで動作するWebSocketサーバから受信したデータをブラウザにてFFT表示

FMヨコハマの時報キャプチャ

現在改版したADC基板が届くのを待っていますが、現在の基板の性能データを残しておきたいと思います。

以下はFMヨコハマの時報信号をキャプチャした時のFFTの様子と生データの様子です。

“84.7MHz time signal”

ちょっと検索した感じでは、周波数は分からなかったのですが、1.056kHz程度の信号でしょうか。

理想的には画面上部の信号が正弦波のように見えれば良いことになりますね。 それにしても現状はすごい歪みですね。図の右側の方は多少それっぽくみえていますが、 全体的にかなりギザギザしています。

ADCデータシートの読み方

ADCの性能をちゃんと把握するには、データシートの意味を理解できないといけません。 そのために自分が調べたことをまとめておきます。SDRに関連する、AC性能の指標だけです。

Understand SINAD, ENOB, SNR, THD, THD+N, and SFDR so You Don’t Get lost in the Noise Floor

上記資料に重要なことが上手くまとまっていました。

FFTの読み方

“8192 point FFT”

これは、LTC2291というADCのデータシートからの抜粋です。25MHzでサンプリングし、30MHzの正弦波を入力したデータに8192ポイントのFFTを掛けたものです。このADCは12bitの解像度ですので、SNRは最大でも6.02*12+1.76=74[dB]になるはずです。 でも図を見てみると、ノイズ部分が100[dB]近辺に表れています。

この理由は、上記資料のFigure2から読み取れます。

“FFT Noise Floor”

FFTのノイズフロアの理論値は、SNRの理論値にFFTのプロセスゲインを加えたものになります。 FFTのプロセスゲインは、Mをポイント数とすると、10log(M/2)で求まります。 つまり8192ポイントのFFTであれば、10log(8192/2)=36[dB]がFFTプロセスゲインになります。 この効果のおかげで、ノイズフロアは70[dB]近辺から100[dB]近辺に見えるようになります。

SFDRについて

SFDRとは、入力信号のRMSと一番大きなスプリアスのRMSとの比のことです。 SFDRは、フルスケール比(単位dBFS)と実際の信号振幅比(単位dBc)で表記されます。 この関係についても、上記資料から図を引用します。

“SFDR”

これを念頭に置いてデータシートのSFDRの図を見てみます。

“SFDR vs Input Level”

横軸が、入力信号のレベルになります。つまり、30MHzの正弦波の振幅を大きくしていったときのSFDRが縦軸にプロットされています。 例えば、-60[dBFS]の入力時のSFDR[dBc]は大体-40です。それで、入力信号以外で最も大きいスプリアスのスペクトルは、-60-40で-100[dB]近辺に現れていることになります(はっきりと明記はされていませんが、これも8192ポイントFFTが前提だと思います)。 この100[dB]という値は、dBFSの線の方で描かれています。

結局のところ、入力信号の振幅が大きくなっても、スプリアスの振幅はほぼ一定に保たれる(つられて大きくならない)ということを示すための図といえます。

次に、SFDRと入力信号周波数との関係を示した図を見てみます。

“SFDR vs Input Frequency”

上図から、入力信号の周波数が増すにつれて、SFDRが低下しています。すなわち、最大スプリアスがどんどん大きくなっていく、 ということが分かります。150MHzを超えたあたりで80[dBFS]を下回っています。

別のADCのデータシートから同じ内容を見てみます。

“SFDR vs Input Frequency AD9629”

FM BPFのシミュレーション(3)

前回に引き続き、トラ技の記事の回路をシミュレーションしてみます。 今回はメインとなる、LNA出力部について行いました。

まずは、1MHzから130MHzのゲインの様子です。

“FM BPF 1-130MHz”

次に、54MHzから126MHzまでを拡大してみてみます。

“FM BPF 54-126MHz”

ADC基板のBPFのシミュレーションで試したBPFと比較してみると、 狭い帯域幅で、しかも急峻なフィルタになっていることが分かります。

実際には、LNAの前段にもBPFが入るので、総合すると、 より強力に減衰するようになっています。

FM RFフロントエンドのためのLNA

現在検討しているFM受信のためのRFフロントエンド部で使用するアンプは、 トラ技にあったPSA4-5043+を使用するつもりです。

他にも手ごろで良さそうなものとして、BGU6102というのも候補になっています。こちらの方が安そうですし、しかもdigikeyで購入できるので、 中国の基板屋に頼んでも入手性に問題はなさそうです。

ただ、検討してみると、BGU6102はちょっと微妙になってしまいました。原因はパッドの大きさです。 BGU6102はパッドが小さくて、基板上はおそらく0.2mm四方のサイズになりそうです。 一方、PSA4-5043+は推奨ランドの長辺は0.95mmです。

今回検討している程度の基板なら、できれば両面2層基板で製作したいところです。わざわざ4層というのは大げさです。

でも、Microstrip Line Calculatorで計算してみるとわかりますが、 εr=4.8, h=1.6[mm], t=35[um]で計算すると、特性インピーダンス50Ωを得るには、W=2.82[mm]にもなってしまいます。 4層基板だと、GND層が近いのでhがもっと小さい(例えば0.2[mm])ため、50Ωの線幅は0.33[mm]程度になります。

ちょっと調べてみると、Fusion PCBでもElecrowでも、両面基板で基板厚0.6[mm]というのができるようです(ただ、Fusion PCBだと、0.6[mm]は料金アップで4層に近いお値段になってしまうようです。Elecrowだと料金アップはなさそうです)。

このパラメタを使って、h=0.6[mm]で計算すると、W=1[mm]となります。つまり、配線幅1[mm]で50Ω近くになりそうです。 この幅で配線すれば、PSA4-5043+の端子まで50Ωを維持できそうです。

逆にBGU6102のサイズだと、50Ωの特性インピーダンスを得るには、4層以上の基板で細い配線を使う必要が出てきます。

もっとも、GHzの高周波を扱うわけでもないので、それほどシビアになる必要は無いのかもしれませんが…