レファレンスナンバーは、リバース時に便宜上つけたもので、TXモジュール基板には、何の記載もありませんでした。発振していなかった原因は、L1のコイルが壊れていたためで、このコイルはセラミック上に導線を巻いたチップ部品で、小さすぎて手に負えませんでしたので、自作することにしました。自作といっても、0.3Φのエナメル線を、発振開始をオシロで見ながら、指で捻じって作ったものです。本来なら巻きながら測定して作っていくものですが、ブリッジやマルチメーターも値が小さすぎて測定できず、DIPメーターも上限が250Mでしたのであきらめました。この回路は、SAWフィルターを用いていますので、タンク回路の共振周波数がSAWフィルターのそれに近ければよいので、これで良しとしました。抵抗値については、現物から読取りできましたが、インダクタとコンデンサについては、現物から読み取る術をもちませんので、雑誌やネットの記事を参照して、ある程度納得のできる数値は把握しています。SAWフィルターは、現物に315の刻印がありましたので間違いありません。いつも思うのですが、商品には回路図は付けてほしいものです。アマチュア無線のリグでも昔のものは、定数入りの回路図はほとんど付いていたうえ、取説で回路動作まで懇切丁寧にされていたものもありました。今でも所有しているFT−290などは、非常によくできていると感じています。最近のものは、ブロックダイアグラムがある程度で寂しい限りです。
DATA即ちA1変調の信号が、HのときQ2がオンし、Q1,Q3の直流バイアスがかかり、Q1で発振、Q3で増幅しています。Hの時だけ電波が出ています。電源電圧は3〜12Vで、5Vのときの高周波出力は10dBmです。
PICで315MHz ASK送受信の実験
送信(TX)モジュールは、13×23mmの両面実装基板です。写真は片側の実装面で、上部に315MHzのSAWフィルターが載っていてベタアースになっています。この反対側の実装面には、トランジスタ3石の回路があり、それぞれ発振回路、増幅回路、スイッチング回路になっています。
受信(RX)モジュールは、43×15mmの両面実装基板です。写真は片側の実装面で、中央右寄りに可変インダクタが載っていてベタアースになっています。この反対側の実装面には、トランジスタ2石とOPアンプがあり、それぞれRF、LO回路、復調回路になっているようです。OPアンプは2段です。
左のTX基板のDIP_SW2をONにして、右のRX基板のLED2が点灯しています。
受信モジュール
送信モジュール
無線モジュールについて
/******************************************************************
ASK Wireless Communication TX
******************************************************************/
#include <12f683.h>
#fuses INTRC_IO,NOWDT
#use delay(CLOCK=4000000)
#define DATA PIN_A5
void main()
{
port_a_pullups(0x0f);
set_tris_a(0x07);
while(1)
{
if(input(PIN_A0)==0)
{ while((PIN_A1)&(PIN_A2)==1);
{
output_Low(DATA);
delay_ms(1);
output_High(DATA);
delay_ms(6);
}
}
if(input(PIN_A1)==0)
{ while((PIN_A0)&(PIN_A2)==1);
{
output_Low(DATA);
delay_ms(3);
output_High(DATA);
delay_ms(4);
}
}
if(input(PIN_A2)==0)
{ while((PIN_A0)&(PIN_A1)==1);
{
output_Low(DATA);
delay_ms(5);
output_High(DATA);
delay_ms(2);
}
}
if(input(PIN_A0) & input(PIN_A1) & input(PIN_A2)==1)
{ output_High(DATA);
}
}
}
RXのソースリスト
TXのDIP_SWに連動してLEDが点灯します。DATAが"H"になってから、1mS、3mS、5mSの各点でのポーリングしたレベルを読込み判定します。
/*********************************************************************
ASK Wireless Communication RX
*********************************************************************/
#include <12f683.h>
#fuses INTRC_IO,NOWDT
#use delay(CLOCK=4000000)
#define LAMP PIN_A4
#define DATA PIN_A5
#define LED1 PIN_A0
#define LED2 PIN_A1
#define LED3 PIN_A2
void main()
{
int DT;
set_tris_a(0x28);
while(1)
{
int T1=0,T2=0,T3=0; //ポーリングポイント初期化
output_Low(LAMP); //Pilot Lamp ON
output_Low(LED1); //LED1 off
output_Low(LED2); //LED2 off
output_Low(LED3); //LED3 off
DT=input(DATA);
if(DT==1)
{
output_Low(LAMP);
delay_ms(1);
DT=input(DATA);
T1=DT;
delay_ms(2);
DT=input(DATA);
T2=DT;
delay_ms(2);
DT=input(DATA);
T3=DT;
}
if(T1==1 && T2==0 && T3==0)
{output_High(LED1);
delay_ms(500);}
if(T1==1 && T2==1 && T3==0)
{output_High(LED2);
delay_ms(500);}
if(T1==1 && T2==1 && T3==1)
{output_High(LED3);
delay_ms(500);}
}
}
LEDはDATAがあるとき、即ち、電波が出ているときに点灯しますが、見た目には点灯しっぱなしです。実は、TX・RXを組合せて検討中、TXモジュールが発振しなくなってしまい、修理せざるを得なくなってしまいました。そのため、回路を確認する必要が生じ、現物照合して下の回路を再現しました。
ASKはAmplitude Shift Keingのことで、変調信号のあるときのみ電波を出す最も単純な変調形式です。いわゆるA1です。このTX・RXモジュールを入手しましたので、簡単な実験をPICを用いて行いました。TX側に3つのスイッチを、RX側に3つのLEDをつけ、スイッチを押してそれに対応するLEDを点灯させます。PICはDIP8のPIC12F683を使用し、内部発振を使いますので単純な構造になります。
TXのソースリスト
A0、A1、A2はDIP_SWにつながり、DATA出力の”H”の時間を決めています。DATAの1周期は7mSecで、”H"の時間はA0が6mS、A1が4mS,A2が2mSに設定しています。
右はTXのRF出力です。50Ω負荷(スぺアナの入力インピーダンス)で+5dBm出ています。アンテナをつなぐ場合は、微弱の規格以内にしなければ、電波法違反になってしまいます。実通テストする場合は要注意です。電波法の規格は3mで500μV/mです。
TX,RXともにPIC12F683を使用しています。ただ、手元にあったというだけです。プログラムメモリが2Kワード、内蔵クロックは最大8Mですが、プリプロセッサで4Mに設定しています。
回路説明
RXのDATAの波形です。左がTXのDIP_SW1をONした時で、”L"が約1.2mS、”H"が約6mSで、右がTXのDIP_SW2をONした時で、”L"が約3.1mS、”H"が約4mSになっています。波形はきれいです。
RX(受信)の回路図
TX側の構成、PICとTXモジュールの接続は下図のとおりです。
実験結果
モジュールを他の部品と共に実装した状態です。ユニバーサル基板ではなく、エッチングでパターンを作成しました。高周波は通らないので、この程度のラフなパターでもOKのはずです。
モジュールの実装
TX(送信)について