2026年11月14日土曜日

自作FMラジオ調整手順メモ

 自作FMラジオの調整手順メモです。

 作成した回路図や基板、LTSpiceなどは GitHub にあげてあります。 

 

回路修正

 実際に組み立てて調整をした結果、部品の個体差によりいくつかの部品定数を変更しました。

 

部品

値

役割

備考

C59

4.7 pF(C0G)

AFC用可変容量ダイオードD1(FV1043)と局発の結合

2 pFでは感度12 kHz/Vで不足だった

C2

8.2 pF(C0G)

局発タンクの固定容量

C59を増やした分を相殺

C14

33 pF(C0G)

RFタンクの容量タップ(GND側)

C15 33 pFと直列で16.5 pF

R67

未実装

フィルタ出力の終端

終端はR30(330 Ω)だけにする。当初調整用に実装したが不要になった。

 実装するコンデンサのうち、最低でも以下のものはC0G特製のものを実装してください。

C0G必須の部品:C2、C10、C11、C59(局発)、C14、C15(RFタンク)、C25(T2同調)、C13、C5(検波タンク)。

 

コイル製作データ

部品

用途

線材・巻枠

巻数

寸法・ピン

最終状態

L1

局発 56 nH

φ0.5 mm、空芯、内径5 mm

3 T

長さ約2.3 mmから開始、縦置き

STEP 1で伸縮して調整

L2

RF 82 nH

φ0.5 mm、空芯、内径5 mm

4 T

長さ約3.3 mmから開始、横置き(リードを外側に開く)

約3.0 mm

T1

検波タンク 2.21 µH(C13 100 pF)

φ0.21 mm、IFTボビン

17 T

AA=GND、AB=Q_TANK

実装前にLCメータで2.21 µH

T2 一次 L3

ミキサ出力IFT 4.7 µH(C25 47 pF)

φ0.21 mm、IFTボビン

27 T

AA=冷側(+5 V)、AB=Q5ドレイン

実装前にLCメータで4.7 µH

T2 二次 L4

フィルタ駆動

φ0.21 mm、L3の冷側に重ね巻き

9 T

SA=GND、SB=フィルタ入力、SC未使用

約0.75 µH、k ≈ 0.68

  • L1とL2にフェライトコアは使わない(10.7 MHz用の材質でVHFでは損失が大きい)。
  • L4は直列法で求めた:加極性La 8.0 µH、減極性Lo 2.9 µH → L4 = (La + Lo)/2 − L3。LCメータで直接測ると0.20 µHと読めたが、1 µH未満はメータの誤差が大きく使えない。
  • L1とL2は100 nH以下でLCメータが使えないので、寸法で作り、周波数と受信状態で合わせる。

コイル調整 

 まずはL1,L2ともにコイルデータ通りに巻きます。Lの値が低いのでLCRメータでの測定ができません。回路に接続後実機にて測定・調整を行います。

L4はL1次側(L3)を密巻きで巻いた後、2次巻線をその上に同じ方向で重ねて巻きます。

 L3の巻初めは+5V側になるようにします。

T2のインダクタンス測定は直接LCRメータで測定した場合正しくなかったので以下の方法で測定します。コアの位置はL3が4.7uHになる位置にします。

  1. L3とL4を直列につないで測ります(La)。
  2. L4の両端を入れ替えて、もう一度測ります(Lo)。
  3. L4 = (La + Lo)/2 − L3、k = (La − Lo) / (4√(L3·L4)) で求めます。

実測の結果、Laは8uH、Loは2.9uHでした。 

計算結果は以下の通り

項目値
L3 + L4 = (La + Lo)/25.45 µH
L4 = 5.45 − 4.7約0.75 µH
M = (La − Lo)/41.275 µH
k = M / √(L3·L4)約0.68

 前回の実測値(La 7.93 µH、Lo 2.93 µH、L4は約0.65 µH、kは約0.71)とほぼ同じなのでOKとします。

 

準備

AD3のSpectrumは100 MS/sで動くので、局発(86〜106 MHz)は折り返して見えます。またSpectrumのdBV表示にはプローブの10Xが反映されません。この2点を前提に読みます。

機材

  • Analog Discovery 3(WaveForms)と×10プローブ(1 kHz方形波で補正しておく)
  • DMM、LCメータ(µH帯のみ信頼できる)、金属でない調整ドライバ
  • アンテナ(1〜2 mのビニール線)、音を聞く手段(MPXデコーダ基板、またはPCのライン入力)

AD3の設定(実績)

測るもの

計測器

設定と読み方

局発の周波数

Spectrum

Start 0 Hz、Stop 50 MHz(画面下の「Scope: 100 MHz」がサンプリングレート)。局発 < 100 MHzなら「100 − 読み値」、局発 > 100 MHzなら「100 + 読み値」

10.7 MHzの大きさ(相対値)

Spectrum

Markerを10.700 MHzに固定。FM波を見るときはTraceのTypeをAverage。実際の値 = 表示 + 20 dB

波形と振幅

Scope

Probe 10X、Range 200 mV/div、Base 100 ns/div、TriggerのSourceをWavegen C1、Mode Normal、MeasurementsでPeak2Peak

19 kHzパイロット

Spectrum

Start 0 Hz、Stop 100 kHz、Marker 19 kHz

検波の中心ズレ

DMM

+をTP12(DA)、−をTP11(DB)に当て、DA − DBをmVで読む

信号源

Wavegen W1

STEP 2:Sine 10.700 MHz 50 mVpp、STEP 3:Sine 10.700 MHz 10 mVpp、STEP 5:DC 1.5/2.5/3.5 V

調整前の初期状態

  • JP1 Open、JP2 Open、JP3 1-2、R67未実装、SW1はAFC OFF(可変容量ダイオードを2.5 Vに固定)
  • RV1は中央。ポリバリコンの内蔵トリマは、RF側も局発側も羽根の重なり90°(中央)
  • T1とT2のコアは、実装前にLCメータで2.21 µH、4.7 µHに合わせた位置
  • 電源5 V(電流制限150 mA)。GNDはJ2、J5、J8のどれかから取る

通電時チェック

  1. SW1をAFC OFF側にします。 AFC_Vが固定バイアス(AFC_BIAS、2.5 V)につながる側で、ピン2とピン1がつながる位置です。調整中は可変容量ダイオードのバイアスを固定しておかないと、局発の周波数が決まりません。
  2. RV1を中央にします。
  3. JP3は初期状態(1-2短絡)のままにします。
  4. ポリバリコンの内蔵トリマを、RF側と局発側とも中央付近にします。
  5. 電源は電流制限付きで入れます。 制限は150 mA程度です。概算の消費電流は50〜70 mAで、100 mAを超えたらすぐに切ってください。
  6. GNDはJ2、J5、J8のどれかを使います。 プローブは×10にしてください。

STEP 0:DC動作点(無信号、アンテナなし)

期待値は抵抗値からの計算値(概算)です。±10 %程度なら問題ありません。

測定点期待値備考
電源電流50〜70 mALEDの点灯状態で±10 mA程度変わる
TP9 AFC_BIAS2.50 V10 kΩ/10 kΩの分圧
TP6 VBU約2.38 V検波上段のバイアス
TP7 VBL約1.60 V検波下段のバイアス
TP8 VBias約2.1 VQ6エミッタフォロア(ベース2.75 V − Vbe)
TP3 SF約1.5 V以前の基板の実測は1.53 V
TP12 DA / TP11 DB約1.7 Vで、DAとDBがほぼ同じ差が大きければRV1で寄せられるか確認
TP4 LPF_OUT約2.6 VQ12エミッタ
TP10 AFC_V(JP3-C)2.5 V前後AFCアンプの出力。TP9との差を記録
JFETのソース電圧(Q1〜Q5のソース抵抗の上端)

 

実機での値は以下の通りでした。

TP9:2.498v
TP6:2.336v
TP7:1.567v
TP8:2.120v
TP3:1.518v
TP12/TP11:1.753v/1.757v
TP4:2.687v
TP10:2.546v
Q1ソース:0.363v
Q2ソース:0.544v
Q3ソース:0.696v
Q4ソース:0.542v
Q5ソース:0.589v

STEP 1 局発の周波数合わせ

バリコン全閉で局発86.5〜86.7 MHz、全開で105.8〜106.0 MHzに合わせ、受信範囲を76.0〜95.3 MHzにします。低い端はコイル(L1)、高い端はトリマで合わせます。

条件: JP1 Open、JP2 Open、 R67実装、SW1はAFC OFF。アンテナはつながない。

接続: CH1(×10)をTP1(OSC、局発バッファ出力)。Spectrumは0〜50 MHz。

バリコン

Spectrumの読み値

局発

受信範囲の端

調整する部品

全閉(容量最大)

13.3〜13.5 MHz

86.5〜86.7 MHz

75.8〜76.0 MHz

L1の巻き幅

全開(容量最小)

5.8〜6.0 MHz(0 Hz付近を通過した後の値)

105.8〜106.0 MHz

95.1〜95.3 MHz

局発側トリマ

  1. 全閉でL1を合わせる。読み値が大きい(局発が低い)ときは巻きを伸ばし、小さいときは詰める。0.1 mmずつ動かす。
  2. 全開でトリマを合わせる。読み値が小さい(局発が低い)ときはトリマを減らし、大きいときは増やす。
  3. 1と2を2〜3回繰り返す。

バリコンを全閉から開いていくと、読み値は下がり、局発が100 MHzを通る位置で0 Hz付近に埋もれて消え、その後ふたたび上がります。発振が止まったわけではありません。

結果: 全閉13.268 MHz(局発86.732 MHz、受信下限76.03 MHz)、全開6.016 MHz(局発106.016 MHz、受信上限95.32 MHz)。局発側トリマは羽根の重なり90°で、可動範囲の中央。
万能基板で自作した時は調整できたが、専用基板で調整がギリギリだったのは、専用基板の場合GNDが強化されたので浮遊容量が低くなったことが原因と思われる。

STEP 2 検波部(T1、RV1、Sカーブ)

T1は、TP3の10.7 MHzが最大になる位置に合わせます。実機では、チューニングLEDの中央が点く位置と一致しました。その後RV1でDA − DBを0にし、Sカーブを測ります。

条件: JP1 Open、JP2 Open(フィルタとリミッタを切り離す)、SW1はAFC OFF、アンテナなし。

接続:

  • W1(Sine 10.700 MHz、50 mVpp)をTP5(IF_OUT、リミッタ入力。R30で330 Ω終端)へ
  • CH1(×10)をTP3(SF、検波タンクのソースフォロア出力)へ。タンク(Q_TANK)には直接当てない
  • DMMの+をTP12(DA)、−をTP11(DB)へ
  1. SpectrumのMarkerを10.700 MHzに置き、値が最大になるようにT1のコアを回す。中央のLEDが点いていることを確かめる。
  2. ScopeでTP3のPeak2Peakを読む。
  3. 10.700 MHzのまま、DA − DBを0 mVに近づけるようにRV1を回す。DAとDBは時定数があるので、1〜2秒待ってから読む。
  4. W1の周波数を10.55〜10.90 MHzで変え、各点のDA − DBと点灯したLEDを記録する(Sカーブ)。
  5. 終わったらW1を外し、JP2をCloseにする。

結果: TP3は282 mVpp(Spectrum表示は−41.6 dBV、実際は約−21.6 dBV)。10.700 MHzでDA − DB = 5.3 mV。Sカーブの中心は約10.7014 MHz、傾きは−4.38 mV/kHz。

TP3はリミッタの後ろなので、W1を5 mVppにしても100 mVppにしても振幅は変わりません。T2やRF側の調整には使えません。

手順4の実測値は以下の通り。本機はセラミックフィルターの精度頼みなのでT1の調整がラフでもなんとかなる。


W1の周波数(MHz)    DA − DB(mV)    点灯しているLED
10.550    386.2    left    
10.600    330.3    left
10.625    280.1    left
10.650    213.0    left
10.675    116.2    left
10.700    5.3    center
10.725    -102.7    right
10.750    -196.4    right
10.775    -261.1    right
10.800    -312.7    right
10.850    -379.4    right
10.900    -404.0    right

STEP 3 ミキサ出力IFT(T2)

T2は、W1の10.7 MHzをミキサQ5のゲートに直接入れて合わせます。放送波ではTP2やTP5の信号がAD3の検出下限より小さく、合わせられませんでした。Q5はゲートに入った10.7 MHzをそのまま増幅してT2に出します。

条件: JP1 Close、JP2 Close、SW1はAFC OFF、アンテナは外す。

接続:

  • W1(Sine 10.700 MHz、10 mVpp)をR11のGNDでない側のパッド(Q5ゲート。C14とC15の間のパッドも同じネット)へ
  • CH1(×10)をTP2(T2の二次側、フィルタ入力)へ
  1. SpectrumのMarkerを10.700 MHzに置き、値が最大になるようにT2のコアを回す。最大を越えたら少し戻す。
  2. 合ったらコアをロウかワニスで固定する。
  3. W1を外す。つないだままだとW1がRFのタップをGNDに落とし、放送が入らない。

結果: TP2はSpectrum表示で−53.8 dBV(実際は約−33.8 dBV、20 mVrms程度)。W1の10 mVppに対して約6倍。

STEP 4 RFタンク(L2、RF側トリマ)

RFタンクは、帯域の低い端の局でL2、高い端の局でRF側トリマを合わせます。指標は、検波出力に出る19 kHzパイロットの強さです。

条件: JP1 Close、JP2 Close、SW1はAFC OFF、アンテナ(1〜2 m)をJ1につなぐ。

接続: CH1(×10)をTP4(LPF_OUT、検波出力)へ。Spectrumは0〜100 kHz、Marker 19 kHz。

局

帯域内の位置

調整する部品

78.2 MHz

低い端

L2の巻き幅

94.6 MHz

高い端

RF側トリマ

  1. 78.2 MHzを受信し、中央のLEDが点く位置にバリコンを合わせる。
  2. 19 kHzが最大になるようにL2を伸縮する。
  3. 94.6 MHzを受信し、同じようにRF側トリマで最大にする。
  4. 1〜3を2〜3回繰り返す。

結果: L2は約3.0 mm。RF側トリマはわずかに回した程度。78.2、88.3、94.6 MHzの3局とも、MPXデコーダ基板をつないで十分な感度と音質で受信できた。

強い電波のままだとリミッタが振り切れ、パイロットの強さはほとんど変わりません。より厳密に合わせるときは、受信音に「サー」という雑音が混じるまでアンテナを短くしてから同じ手順で行います。

STEP 5 AFC

AFCに調整箇所はなく、JP3を1-2にしてSW1をONにすれば動作します。可変容量ダイオードの感度は、全開側で約53 kHz/Vでした。

感度の測り方

条件: アンテナを外し、SW1をON。バリコンは全開(局発は100 MHzより上で、読み値 = 局発 − 100 MHz)。

  1. W1をDCにしてTP10(AFCアンプ出力、約25 kΩ)につなぎ、AFC_Vを外から上書きする。
  2. CH1をTP1に当て、W1を1.5 V、2.5 V、3.5 Vにして局発を読む。
  3. W1を外す。

実機での測定結果は以下の通り

AFC_V(V)

Spectrumの読み値(MHz)

局発(MHz)

2.5 V基準の変化(kHz)

1.5

5.974

105.974

−60

2.5

6.034

106.034

0

3.5

6.080

106.080

+46

 

引き込みの確認

アンテナをつなぎ、94.6 MHzと78.2 MHzで、左LEDが点く位置と右LEDが点く位置からSW1をONにします。中央のLEDに戻れば正常です。

結果: 両局とも左右から中央に引き込んだ。78.2 MHz側は戻りが弱い。可変容量ダイオードによる周波数の変化は局発の約3乗に比例するためで、全閉側の感度は約29 kHz/Vの見込み(計算値)。

調整が終わったら、通常使用ではSW1をAFC ONにします。

なお、AFCは低い周波集では効きが悪い。R80,R81のエミッタ抵抗をショートさせることで改善可能。 



 

 

2026年11月3日火曜日

MPX デコーダ V4 実機調整手順

 試作したMPXデコーダ基板V4の調整メモ

 GitHubのDoc配下にあるtest_signalsにあるCSVをAnalogDiscovery3のWaveGenに入力しテスト用MPX信号を生成し、調整をする。

 作成した回路図や基板、LTSpiceなどは GitHub にあげてあります。

 フェーズ1:準備

  • 外部電源に安定したDC5Vを供給。この電圧がずれると以降の調整が全部ずれる
  • 電源を切った状態でRV1を約20kに、RV2を約0.5kに調整をしておく

フェーズ2:DC電圧チェック

各部の電圧が設計値に入っているかチェックする 

  •  VREF_2.5v(U2 14pin) (U7 8pin): 2.5v
  • TP11(COMP): 約2.5v 
  •  MONO (U4 1pin): Highレベル(約5v) STEREO_LEDは消灯していること
  • TP12(VCTL): 2.1~2.9v
  • TP6(VCO-IN): 2.50v +-0.07v
  • TP5(VCO): 76KHz +-数%
  • TP3/TP10: 38KHz/19KHz 矩形波

実機で測定したところ、TP5の周波数が70.2KHzと想定より7.6%低い結果となった。

これは使用した74HC4046の個体差によるもの。 

TP3、TP10の周波数は35.1/17.6KHzとなり、分周比は設計通り。

R1の値を120Kから100Kに下げることでTP5を76.0KHzに調整した。 

フェーズ3:ロック電圧調整 

 AnalogDiscovery3を以下の条件でセットアップします。

測定にはDiscoveryBNC基板とx10のプローブが2本。BNCーワニ口が1本必要になります。

接続

 W1(Wavegenの出力)を終端抵抗なし(0オーム)にジャンパーをセット。BNCーワニ口を接続し、MPX入力端子(J1)に接続する。

Ch1にx10のプローブを接続。TP11に接続する

Ch2にx10のプローブを接続。TP5に接続する

WaveGenの設定

 TypeをCustomにする。

 Importをクリックし、mpx_L1k.csvを読み込む

 

 Frequencyを1KHz、Amplitudeを400mVに設定する

Scopeの設定

Ch1

Attenuation: 10x

Coupling: DC (ボード上のジャンパもDCにする)

Range: 500mV/div

Offset: -2.5v

Ch2

Attenuation: 10x

Coupling: DC

Range: 1V/div

Offset: -2.5v

 

 Time: 20us/div

Trigger: Source: WavegenC1, Normal

Measurements: CH1: Peak2Peak,Average CH2: Frequency

 

 

 

 

 測定手順

  1. 電源を入れて10分ほど待つ。(VCOが安定するまで)WaveGenはまだ停止したまま。
  2. プローブの配線をした後、ScopeをRUNしたあと、WaveGenをRUNする。
  3. ロックを確認する
    1. STEREO_LEDが点灯すること
    2. CH2のFrequencyが76.00KHzになって止まっていること。
    3. CH1のPeak2Peakが約2.0v、Averageが約2.48vであること。
  4. TP12(VCTL)の電圧が2.5v +- 0.2vであること
    1. 電圧が範囲外だった場合はRV1で調整をする
  5. TP8とTP7の間の電圧を測定。約+0.11vであること。
  6. WaveGenのRUNー>STOPを数回繰り返し、毎回確実にロックしてSTEREO_LEDが点灯すること。CH2が76KHzでロックされることを確認 

実際の測定結果は以下の通りとなった。

 STEREO_LED: 点灯
CH2: 76.000KHzでロック
CH1のPP:1.820v
CH1のAverage:2.453v
TP12: 2.53v

TP8-TP7 = 0.113v

5回とも再ロックOK

 フェーズ4:セパレーション調整

接続

W1:フェーズ3と同じくMPX入力に接続

CH1: x1プローブでJ2(OUT-L)に接続

CH2: x1プローブでJ4(OUT-R)に接続

WaveGenの設定

フェーズ3とおなじ

Scopeの設定

レンジ確認用

Ch1,Ch2ともに同じ設定

Attenuation: 1x

Coupling: DC

Range: 200mV/div

Offset: 0v

この状態でScopeをRUNし、WaveGenもRUNして、出力波形が約1.1Vppで波形が画面からはみ出していないことを確認。(Lchだけの信号なので片Chのみ1KHzのサイン波がでればOK

Spectrumの設定

有効チャンネル:Ch1,Ch2

Start/Stop: 0Hz/200KHz

Window: Flat Top (ch毎に設定がある)

 

Scale: dBV

 Phaseを有効化する (Degree)

 XCursorをクリックし、1KHzのマーカーを設定する。

 測定方法

  1. 電源を入れて10分まつ
  2. ScopeをRUNしたあと、WaveGenをRUNする
  3. STEREO_LEDが点灯することを確認
  4.  RV2をゆっくり調整し、-60dBV付近になるようにする。

OKなら、mpx_R1k.csvでLRを入れ替えた信号を入力し、反対側のdBVが同じく-60dBV付近になっていることを確認する。

位相のチェックは画面上からはできなかったので結果をCSVでExportし、生成AIに分析させた。

分析の結果MPX入力カップリングコンデンサC10の値が予想より悪化していることが判明。原因は子のコンデンサに秋月の古いF特性のものを使用したためDCバイアスにより容量がほぼ半分になったこと。
なのでC10をX7R特性の50v10uFのものに交換。

再度CSVをExportし、分析の結果改善されたことを確認。

ーーー

残課題

部品の個体差により、PDが非対称になっているため200Hz高調波が出ているらしい。

対策としてR61に200kを並列に接続する。

実際の放送を受信し、ステレオで受信できるか確認する→FM受信機作成後に実機テスト。
 

 


 

 

 

 

 

 

2026年10月4日日曜日

生成AIを使用した電子工作を研究中・・・

 昨今の生成AIの進化は凄いですね!

「生成AIを電子工作に活用できないか? 」を個人的研究テーマとしてここ数年あれこれやっています。

生成AIを使用した電子工作というともっぱらArduidnoやラズパイなどプログラム用途が多いでのですが、私がやっているのは回路設計や動作検証支援です。

 

現時点で以下の点において生成AIの有用性を感じています。

* ふわっとした概要や要求事項をまとめ、機能ブロックや具体的な仕様に落とす

* 機能ブロック単位で具体的な回路構成を提案させる

* Digikeyや秋月電子から要求仕様を満たす部品を探させる

* LTSpiceやKiCadで作成した回路図、ネットリストを基に評価させる

* オシロスコープの波形スクショを提示し、回路図や制御プログラムのバグ取りをする

* Analog Discovery など各種ツールの使い方支援

* 基板上の部品配置のたたき台作成 

 

現時点では単一の生成AIですべてを網羅することは難しいようで、複数のAIに第三者レビューをさせながら詰めていく方法が有用です。

 あと画像認識能力はかなり高いので、ポケットオシロの写真をスマホでとってそのままアップロードレベルでも十分実用になります。

 また、アナログ回路、デジタル回路ともに今のところ設計自体に大きな支障は感じていません。


https://speakerdeck.com/akira345/hui-lu-she-ji-nobaibukodeingu

現在、アナログ回路の中でも難易度の高い高周波回路について生成AIを用いて設計、作成しています。

作成した回路図や基板、LTSpiceなどは GitHub にあげてあります。