手近な部品で周波数カウンタを作る企画の6回目です。
今までの各回の概略です。
1 siliconvalley4066 さんのブログの記事「STM32F103C8T6で192MHz周波数カウンタ」を見て、この企画がスタート。TTL レベルで 66 MHz(自作信号発生器 TTL 信号の上限)までの計測を確認
2 市販品のアンプ(20 dBm 程度)をつないで 53 Mhz まで
3 手持ちの部品でブレッドボード上に作ったアンプで 24 MHz まで
4 自作基板でプリスケーラの機能確認(1/256、1/512)
5 おじさん工房さんの RFC-5 を組み立てる。測定周波数は ~ 1.3 GHz(プリスケーラあり)
前回の記事は、下のリンクから確認してください。
今回は、動作しなかった「偽BF862」の正体を暴きながら、代替部品でアンプを作って機能確認をします。
また、MCU に使えそうな部品も購入してあるので、それが周波数カウンタに使えないか検証してみます。
BF862 アンプの確認
BF862 で作ったアンプが動作しません。
私の腕がいくらヘボくても、2つ作ったアンプがどちらも動作しないのはおかしいです。
動作しない原因を探ってみましょう。
部品の確認
アンプに使用した SMD(表面実装部品)の抵抗とコンデンサは取り付ける前にマルチメータで値を確認してから使っています。
つまり BF862 以外に動作しない原因はないと考えられます。
購入元はいつもの AliExpress です。
パッケージはこんな感じで、良く見る部品より少し立派です。(袋に手書きだけの時も良くありますから。)
中の部品の刻印は「W28U」です。
W28U で検索すると「BF862 偽物」というワードが出てきます。
良く調べると、BF862 は高性能で低ノイズの高周波用 FET(データシートでは AM ラジオ用)なのですが、すでに生産終了して久しく容易には手に入らない(大金を積めば別らしいですが・・・)です。
また、BF862 を注文して「W28U」が来たら偽物らしいです。
とりあえず、BF862 を受け取った時に嫌な予感がしたので、AliExpress の商品到着後の受け取り確認はしていないので、返金処置を行ってから作業にかかります。(その後すぐに送料込みの金額が返金されました。)
W28U の正体
マーキングが W28U で SOT-23 サイズの部品を探します。
どうやら中身と刻印が合っていれば「WNM2020」が正しいようです。(刻印偽装も多いです。)
この FET は高周波用ではなくスイッチ用ですね。足の順番も違うので BF862 のつもりで配線しても高周波アンプとして動作するはずがありません。
足の配置は、
名前 | 1 Pin | 2 Pin | 3 Pin |
BF862 | ソース | ドレイン | ゲート |
WNM2020 | ゲート | ソース | ドレイン |
代替品の確認と入手
BF862 は現在では入手が非常に困難なので、現在でも手に入る SOT-23 サイズで同等性能の FET を探します。
おじさん工房さんの掲示板でも書き込みがありましたが、2SK2394 を購入します。
(海外の情報でも動作電圧などの点以外では BF862 の代わりに 2SK2394 を使うのは悪くない選択のようです。)
通販で扱っている店を探すと、現在でもマルツエレック株式会社(旧マルツ電波)さんでは 2SK2394 の取り扱いがあります。
「2SK2394-6-TB-E」の在庫は本日現在で「9901」個です。
マルツと DigiKey
マルツエレック株式会社は DigiKey と2018年に提携しています。
同じ部品なら秋月電子さんや aitendo さん、AliExpress が安い傾向にありますが、珍しい部品の正規品を入手するなら DigiKey なら間違いがないでしょう。
DigiKey は、6000円以上で送料無料、それ以下の送料は2000円です。
この送料は、ちょっと考えちゃいますね。
しかし、マルツさんで購入すると同じ物が3000円以上で送料無料、それ以下の送料は小型部品ならネコポスが使えるので350円です!
到着までに若干時間がかかるようですが、アマチュアの電子工作なら急がないことが多いので大丈夫ですよね。
では、マルツさんに注文してみましょう。
部品の到着
注文から10日ほどでマルツさんから部品が届きました。
指定どおりのネコポスです。
右側のフタが開いているように見えますが、到着時の荷姿です。
透明のテープでかろうじて止まっています。(送料350円だとこんなものかな。)
中身はしっかりしています。
頼んだ部品は、透明なビニール袋に入った導電袋内に入っていました。
注文した他の部品(2SC3356)と共に入って来ました。
2SK2394 でアンプ作り
送られてきた部品を一応確認します。
マーキングは「YJ6」なので、2SK2394 で間違いないですね。
2SK2394 のデータシートの記載
それでは、この部品を使ってアンプを作ってみましょう。
アンプの製作
前回の2回目と同様に秋月電子の「SMDプロトタイピングユニバーサル基板」を使って SMD 部品でアンプを作ります。
前回作ったアンプの電源端子のプラスとマイナス間をマルチメータで計ってみました。前回の偽物を使ったアンプの±間の抵抗値は 5 MΩ でしたが、今回のアンプは 213 Ωです。
期待が持てますね。
アンプの動作確認
電源はデジタル系と直結で、出力も単線をブレッドボードにつなぐという高周波を扱う状態ではありませんが、簡単な動作試験なので後で直します。
こんな状態ですが、前回と同様に FRMS + FREX の出力を入れてみます。
前回のブレッドボードで作ったアンプで 97 MHz まで計測できたので、90MHz から試します。
(写真の上側に映っているのは偽アンプです。この後、切り離しました。)
100 MHz を超えても計測が出来ています。
どこまで行けるかな?
ご覧のように、いい加減な接続でも 120 MHz 程度までカウントすることが出来ました。
しっかりと作ったプリント基板上にアンプと周波数カウンタ本体を作れば、もっと上まで行けるでしょう。
他の MCU
周波数カウンタで使用する MCU の STM32G031J6M6 を注文する時に、他の MCU も AliExpress に注文していました。
「Mini Core Board STM32G031FxP6」です。
Arduino UNO R4 の互換機を調べた時に見つけた評価ボード(WeActStudio.RA4M1_64Pin_CoreBoard)と同じ販売店の商品のようです。
(Arduino UNO R4 互換機の記事は、下のリンクをご覧ください。)
この評価ボードは、STM32G031J6M6 と同じコアでピン数の多い STM32G031F6P6 を MCU に使用しています。
STM32G031J6M6(RFC-5 周波数カウンタで使用している MCU)
Flash 32k
GPIO 6
Wake Up Pin 3
ADC 6+2
pin 8
STM32G031F6P6(テストボードの MCU)
Flash 32k
GPIO 18
Wake Up Pin 4
ADC 15+2
pin 20
この MCU なら端子数が多いので、スイッチを追加したり、プリスケーラや別の高性能なアンプとの切り替えなどの機能を追加できるんじゃないかなと。
プログラムの書き込み
前回と同様に「STM32 Cube Programmer」を使い、ST-LINK/V2 で書き込みを行います。
今回はテストボード上に STLINK 用の 4 Pin 端子があるので接続は簡単です。
STM32 Cube Programmer の CONNECT を押すと問題なくつながり、NRST_MODE の変更も異常なしです。
プログラムもエラーなく書き込めました。
他の MCU で動作確認
このテストボードで周波数カウンタの動作確認を行います。
LCD が正常に表示されませんね。
この異常表示は NRST_MODE の変更が正しくされていなくても起きるので、再度 STM32 Cube Programmer で確認します。
「NRST_MODE 」はちゃんと変更されていましたが、再度変更して MCU のプログラムを消去します。
消去の指示も問題なく動作しています。
再度、プログラムを書き込みます。異常なく書き込みと検証が終了しました。
再度、LCD をつなぎますが・・・
ダメですね。豆腐が並びます。
端子を結線する
おじさん工房の掲示板に状況を書き込むと、ありがたいことにブログ主様から返答を頂きました。
パッケージが違っても内部コアは同じなのでマルチボンディングの仕方が違うのでそのせいかもしれません。 同じになるように外部で接続すると動くかも。
よし、試してみよう!
両方の MCU の違いは下図のとおりです。
STM32G031F6P6
STM32G031J6M6
周波数カウンタの配線図は、おじさん工房で公開されているものをご覧ください。
配線は、
pin | 名前 | 配線先 |
1 | PB7/PB8/PC14-OSC32_IN | TCXO |
2 | VDD | 3.3V |
3 | VSS | GND |
4 | PA0/PA1/PA2/PF2-NRST | SDA |
5 | PA8/PA11/PB0/PB1 | NC |
6 | PA12 | SCL |
7 | PA13 | 設定スイッチ、SWDIO |
8 | PB5/PB6/PA14/PA15 | 周波数IN、SWCLK |
評価ボードの配線は、IC と同様に数えて下の左を1ピンとすると、
Pin | 名前 | Pin | 名前 |
1 | GND | 11 | B7 |
2 | 5V | 12 | C14 |
3 | A4 | 13 | C15 |
4 | A5 | 14 | 3.3V |
5 | A6 | 15 | GND |
6 | A7 | 16 | NR |
7 | A8 | 17 | A0 |
8 | A11 | 18 | A1 |
9 | A12 | 19 | A2 |
10 | B6 | 20 | A3 |
この表からすると、SCL は PA12 と単独で接続されているので問題ないですね。
SDA は、「PA0/PA1/PA2/PF2-NRST」とつながっているので、評価ボードの16,17,18,19 をつないでみます。
結果は・・・ダメですね。
リセット回路の確認
さらに、うれしいことに2つ目のアドバイスを頂きました。
LCD 初期化は一番最初におこなっていますので、これが動いていないというのは、
接続ミス、
リセットしっぱなし(リセットICがついている)、
といった単純なミスのように思えます。
よし、リセット回路を確認してみよう!
評価ボードの回路図はこんな感じです。(GitHub に公開されているファイルから引用)
リセット IC は付いていないので大丈夫・・・
あれ?
SDA をつなぐ「PF2-NRST」にはリセット IC は付いてませんが、コンデンサで GND に落ちてます。
これじゃあ I2C のラインが動作しませんね。
このコンデンサを除去します。ついでに使わない部品(オシレータなど)も除去します。
必要ない部品の除去
周波数カウンタの動作確認するのに不要な部品を、ヒートガンで除去します。
(オシレータは温めても取れなかったので2つに分解して取りました。)
再度の動作確認
評価ボードから電源レギュレータなどの必要最低限の部品を除いた部品を除去した状態で、周波数カウンタの配線を行いました。
今度は端子の結線は行わず、以下のように配線してみました。
(ピン番号の P1 は STLINK 用のヘッダ番号)
配線先 | 名前 | 評価ボードのピン |
GND | VSS | 1 |
+5V | VCC | 2 |
SCL | A12 | 9 |
SDA | NR | 16 |
TCXO | C14 | 12 |
周波数IN | SWCLK | P1-3 |
スイッチ | SWDIO | P1-2 |
立ち上がりの際に、外部クリスタルの異常表示(ERROR HSE)が出ましたが LCD は正常に表示できました。
とりあえず LCD の表示までは出来ましたが、以下の不具合があり、まだ正常動作には遠い状態です。
1 周波数計測端子 SWCLK に信号を入れても計測しない。
2 設定スイッチを PA13(SWDIO)につなぐと、表示が勝手に変更される。(スイッチが常にON?)
3 TCXO を PC14(OSC32_IN)につないでも認識されない。
1番目の周波数が計測出来ないのは周波数カウンタとしては致命的ですが、LCD が表示出来たのでこの MCU でも同じように周波数カウンタのソフトが動く可能性が見えてきました。
次回の予定
次回は、MCU の検証は後回しにして元の MCU(8 Pin)に戻します。
そして、複数の入力源(プリスケーラ、高機能アンプ、ノーマル)の切り替え方法について考えます。
この機能が動作するようになれば、プリント基板化して周波数カウンタとして器材にまとめることが出来ます。
コメント