ma2.electronのブログ

電子回路とかアマチュア無線機の修理とか

ICOM IC-27 修理

ICOM IC-27がやってきた。

動作チェックしてないジャンクとのことでしたので、電源をつないでみると表示は出た。

スケルチが開いたままになっているが、内蔵スピーカーからの音がものすごく小さい。

スケルチボリュームを回してもスケルチが閉じない、VOLを回しても音の大きさが変わらない。

送信はしている(パワーは未確認)し、受信も真横で送信した電波はフルスケールで受信し、小さな音で聞こえてくる。

 

早速分解してみた。

 

f:id:ma2electron:20190916102051j:plain

VR基板

f:id:ma2electron:20190916102509j:plain

VR基板裏

 

VOLはスイッチ付きVR、で、SQLは2連VR、なんで??。

 

回路図を見て納得、回路は追ってないけど2連VRスケルチ制御。

f:id:ma2electron:20190916102627p:plain

VOL/SQL

 

見た感じでは定番のALPS製VRの接点外れのようで、テスターで端子間の抵抗値を測定すると、真ん中の端子の導通なし。

 

IC-27のサービスマニュアルはネット上に落ちていないようで、2か月ほど前にヤフオクで1000円で売っていたのを買っておけばよかったと後悔。

 

VRを分解して端子を接着剤で固定するだけとググった先にチラホラ見受けられるが、そんなに簡単なのかなと、練習で手持ちのALPS製VR(これも端子が浮いたもの)をバラしてみた。

f:id:ma2electron:20190916103125j:plain

ALPSVR分解1

ヤスリで圧着ピンを削るだけで、ここまでは簡単に分解できる。

 

中を見るとCリングがシャフトへ嵌めてあり、上の写真でいうところの白い樹脂部分を固定し、その下にある摺動バネを抵抗体へ接触させる構造。

樹脂のリブがあり、Cリングはリブに囲まれていてそのままでは抜けそうにない。

Cリングが外れないので、某所で相談したら白い樹脂を押さえながらCリングを外すと回答をもらい、もう一度トライ。

 

f:id:ma2electron:20190916103525j:plain

バラバラVR

分解できた。

銅板のバネの向きとか裏表をチェックする前に外れてしまった・・。

もう一度組む練習もせずに捨ててしまった。

 

ALPSのメーカーサイトを見ると、似たVRはいくつか発見でき、購入も可能なことが分かったが、シャフトの径と形状が違う。

それぞれ分解して組み替えたら新品同様のVRがかんせいできそうだが、そこまで手間をかけるほどの無線機かなと思い始め、分解したIC-27を組み立て始める。

 

このころのICOM機にありがちな、フロントパネル周りを外すと、どこかの配線が切れているのに気づき、3本ほど回路図を見ながら元に戻す。

 

そうこうしているうちに某所から似たVRを持ってるので譲りますと声がかかり、ありがたく売って頂く事にしたが、VOL側しかそのまま使えそうにない。

届いたら、チェックしてみよう。

 

水晶シンセサイザー式CB無線機の改造(スプリアス測定)

Si5351Aを発振回路にしたManix46(RCB-470D)のスプリアスを測定してみました。

改造したのは6月ごろで、しばらく放置し思い出して測定しています。

構成されていない古いスペアナに40dB程度の外部アッテネーターを挟んでいます。

 

近接が若干出ているようですが、なんとか-60dB。

f:id:ma2electron:20190816152838j:plain

 

逓倍は3倍が少し見えます。

f:id:ma2electron:20190816152908j:plain

 

スペアナのフィルターとスパン幅はこれが限界のようです。

f:id:ma2electron:20190816152939j:plain

 

Mixer段~ドライバー段調整でほぼOKでしたが、ファイナル段のコイルも調整するともう少し改善できそうでした。

 

親石の発振回路とMixerの間に1個コイルがあり、これがいい仕事をしているようで、Si5351Aの出力は方形波なのでスプリアスが出やすい、という点については効果があるようです。

また、Mixer段~ドライバー段のコイルも効いているようです。

 

 

 

水晶シンセサイザー式CB無線機の改造(組み立て)

実際にManix46(RCB-470D)へ組んでみるとこうなりました。

f:id:ma2electron:20190813123402j:plain

RCB470D+Si5351a

 

 

もともとは、テストピンにラッピングされたChセレクターの親水晶のコモン(オレンジ色の電線)が繋がっていましたが、それを外してSi5351Aの出力(オレンジ色の電線)をここへ接続。

 

Si5351aのGNDは近くのコイルのシールドケースへはんだ付け(黄色の電線)。

f:id:ma2electron:20190813123619j:plain

Si5351a出力

Chセレクターの親石のコモンへ3.3Vをつなぎます。

Si5351aが乗った基板から3.3V(白色の電線)を引き出し、Chセレクターのコモン(オレンジ色の線)へ接続。指で握って見えにくいですね(^^;。

ここからもう1本分岐させます。

これを、Lo/Hiバンド切り替えスイッチのコモンへつなぎます。

f:id:ma2electron:20190813123835j:plain

 

バンド切り替えのコモンは緑色の電線がGNDへ接続されますが、これを切り離して先ほどの分岐した3.3Vを接続。

f:id:ma2electron:20190813125743j:plain

 

Arduinoの入力端子への配線は、基板のはんだ面側で行いました。

f:id:ma2electron:20190813130146j:plain

茶色~青色の6本がArduinoの入力端子(Chセレクト入力)へ、紫と灰色の2本もAruduinoの入力端子(バンド切り替え)へ接続。

 

ArduinoとSi5351aを乗せた基板はこんな感じで組みました。

チップ抵抗で入力端子をプルダウンさせ、3.3Vは3端子レギュレータを使いました。

使ったレギュレータの規格上、12V入力までとなっていたので、RCB470Dの8V回路を探し、そこから電源を供給しています。

f:id:ma2electron:20190813130633j:plain

f:id:ma2electron:20190813130649j:plain

 

プログラムは基板完成時に書き込みをしましたが、PCのUSB端子からFT232RL基板経由でArduinoへ電源が供給できるので、RCB470Dに組み込んでもプログラム書き込み可能です。(基板はFriskの空き容器に入れて、ビニールテープでぐるぐる巻き)

f:id:ma2electron:20190813130926j:plain

 

水晶シンセサイザー式CB無線機の改造(プログラム)

Arduino IDEをPCへインストールが必要となります。

Arduinoha無料で使えますし、インストール方法や使い方などはネット検索することで情報はほぼ得られます。

 

プログラム内のコメントにあるように、JH7UBCさんのサイトのプログラムを流用しております。

 

”oya-xtal”の左側にある数字が発振周波数です。

3Band分の設定をしていますが、バンド切り替えスイッチがない場合はBand0の周波数を出力します。

”0 dummy or error”左側の数字も発振周波数になっていますが、無線機側のローターリースイッチ不良や配線不良が起きても、変な周波数で送信状態にならないように設定しています。

 

このプログラムは、Manix-46(RCD-470D)用に書いていますが、NASA72GXなどにも使えるかもしれません。

f:id:ma2electron:20190805082434j:plain

 

 プログラムは、下記Yahoo Boxに保存しています。

https://yahoo.jp/box/G6XW_Y

ファイル名は、”EX-2-manix.ino” としています。

テキストファイルですので、テキストエディターやWindowsのメモ帳で開けます。

 

 

 

 

水晶シンセサイザー式CB無線機の改造(回路)

回路は前回のエントリーのように、秋月電子のSi5351A基板と、Arduino Pro-mini 3.3V版を使用しています。

Pro-mini 3.3V版を選んだのは、Si5351Aが3.3V動作ICであることと、極力小型にしたい思いがありました。

バラックで組んでみると結構場所を取りますので、これって組み込むスペースに入るのかなと、ちょっと不安になります。

 

回路図はこんな感じです。

Ki-Cad Ver5のライブラリーにある回路図には、Arduinoの必要なピンが登録されておらず、間に合わせで書き加えていますので、ちょっと見にくいと思います。

 

f:id:ma2electron:20190803124438j:plain

Si5351A+Arduino

Arduinoの端子をプルダウンしてHiアクティブ(電圧をかけて”1”、無接続で”0”)としています。

 

回路はここのサイトを参考にしています。

jh7ubc.web.fc2.com

 

プログラムのほぼ流用に近い状態ですが、次回のエントリーで公開します。

 

水晶シンセサイザー式CB無線機の改造

 フリーダムの方は、いったんお休みして、別の製作記事を。

 

ここ2年ほど、ヤフオクから古いCB無線機(日本国内では使用できないもの)を買っては、28MHz AM専用機へ改造をして遊んでおります。

 

PLL式のCB機は、Mixerへ入力する水晶発振子を変更したり、PLLの分周比設定を変えたりして、あまり費用も掛からずに28MHz用のアマチュア無線機として転用できますが、水晶式で23ch(46chとか72chとかもありますが)の場合、6個の親石と呼ばれる水晶発振子と送信用と受信用の小石と呼ばれる水晶発振子がそれぞれ4個ずつあり、6x4の組み合わせで24chの周波数を作ります。

 

28MHz AM化にあたり、親石を28MHzのアマチュアバンド帯に使えるものへ交換すればいいのですが、1個か2個くらいはなんとか流用などで用意できるみたいですが、それ以上となると特注で作ってもらうしかありません。

 

そうすると、1個1000~1500円くらいの金額で、あと4個と特注すると6000円必要で、格安で手に入れたCB機にそこまでの投資をするかはちょっと思いとどまります。

 

何かいい方法はないかと考えていたところ、知人がVHFの受信機を設計している最中で、PLLをSi5351AというICを使っていました。

3ch出力プログラマブル周波数ジェネレーターモジュール: 組立キット 秋月電子通商-電子部品・ネット通販

 

200MHzまで1Hz程度の分解能で使えるようで、ちょっと面白そうなので、フリーダムロガーの部品購入時に購入してみました。

中華サイトにも結構出回っているようですが、秋月電子のものとは違い、5V入力でも動作するようですが、詳細は分かりません。

 

 

確認用の回路

モニターの回路はできましたが、ソフトの変更の度に車に乗り、PCと書き込み機を車内で動かしてというのも面倒だったので、一定のアンサーバックしかしない回路も作りました。

 

回路は先日アップした回路図から液晶を外しただけのものですが、Port B5にLEDをつなぎ、この回路からのデータ送信中に点灯するようにしています。

BASCOM-AVRの試用版でコンパイルできます。

----------------------------------
' $sim

Rem Chip config

$regfile = "m328def.dat"
$prog &HFF , &HFF , &HD6 , &HFD ' generated. Take care that the chip supports all fuse bytes.
$crystal = 16000000 '16Mhz


$hwstack = 64 'ハードウェア・スタックの容量を設定。
$swstack = 64 'ソフトウェア・スタックの容量を設定
$framesize = 32 'フレーム領域の容量を設定。

Config Com1 = 9600 , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 7 , Clockpol = 0

Echo Off 'Input echo off

' Echo On 'for simuration


Config Portb.5 = Output
Config Aci = Off

Dim Recive As String * 5
Dim Dat(14) As String * 56
Dim Hos(14) As String * 56
Dim Count As Byte

Raw_dat:

rem 0000000001111111111222222222223333333334444444444555555
rem 1234567890123456789012345678901234567890123456789012345
Dat(1) = "0141304680019700208078000021440301006816010240000035220"
Dat(2) = "0138804730020100208078000011450310007116010240000034196"
Dat(3) = "0142704700020200208078000021440303006916010240000033428"
Dat(4) = "0140104730020500205078000011440311006916010240000032660"
Dat(5) = "0129104760027500198078000021420305006916010240000030868"
Dat(6) = "0126504770028200195078100021440304007216010240000031124"
Dat(7) = "0130604730028700197078000021450299007016010240000030868"
Dat(8) = "0120804550037100194078000021440268007016010240000032660"
Dat(9) = "0124504490038400194078000011450264007016010240000032916"
Dat(10) = "0121204490039700194078000011430261007216010240000032916"
Dat(11) = "0104404440083065535076600101400221007620010240025632896"
Dat(12) = "0104404440100001000076600101400221007620010240025632896"
Dat(13) = "0000000006553565535000000000000000000000000000000000000"
Dat(14) = "0000000000000000000000000000000000000000000000000000000"

Raw_hos:

rem 0000000001111111111222222222223333333334444444444555555
rem 1234567890123456789012345678901234567890123456789012345
Hos(1) = "0099901227010920100001000010000100101000010000000000000"
Hos(2) = "0100101154010690100001000010000099901000010000000000000"
Hos(3) = "0100001212010880100001000010000100001000010000000000000"
Hos(4) = "0100001204010860100001000010000100001000010000000000000"
Hos(5) = "0100001195010850100001000010000100001000010000000000000"
Hos(6) = "0100101185010810100001000010000099601000010000000000000"
Hos(7) = "0100101149010660100001000010000099801000010000000000000"
Hos(8) = "0100101146010640100001000010000099901000010000000000000"
Hos(9) = "0100101141010620100001000010000099601000010000000000000"
rem 1234512345123451234512345123451234512345123451234512345
Hos(10)= "1000001100012000130001400015000160001700018000190002000"
hos(11) = "0000000000000000000000000000000000000000000000000000000"
hos(12) = "0000000000000000000000000000000000000000000000000000000"
hos(13) = "0000000000000000000000000000000000000000000000000000000"
hos(14) = "0000000000000000000000000000000000000000000000000000000"


Count = 1

Jusin1:

Reset Portb.5

Input Recive

If Count = 15 Then Count = 1

If Recive = "?DAT" Then Goto Send_dat
If Recive = "?HOS" Then Goto Send_hos Else Goto Jusin1


Send_dat:
Set Portb.5

Print Dat(count);

Goto Cc

Send_hos:

Set Portb.5

Print Hos(count) ;

Goto Cc

Cc:
Count = Count + 1

Goto Jusin1

 

-------------------------------------------------