JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

PIC16F18326 MCC DSMテスト

2024-01-31 12:31:06 | MPLAB X MCC
 PIC16F18326のDSMのテストをします。

 DSMとは、Data Signal Modulatorのことで、データ信号と搬送波(キャリア)を混合(AND)して変調出力を作成する機能のことです。説明書では次の図で説明されています。キャリアはCARHとCARLの2種類で、MOD信号がHの時、CARHが出力され、MOD信号がLの時、CARLが出力されます。


 DSMモジュールを簡単に表現すると下の図のようになります。(本当は論理回路で示すべきですが、スイッチで簡略化しました)
 MOD信号がHighの時CARHがDSMoutに出力され、MOD信号がLowの時、CARLがDSMoutに出力されます。
 CARH,CARL,MODについては、下の図の項目から選択することができます。



 さて、DSMのテストで最初に思い浮かんだのが、アマチュア無線家としては、CW通信(モールス通信)でした。搬送波に信号波で変調をかける、まさにCW信号です。

 そこで、モールス練習機を作ってみることにしました。電鍵(キー)を押したときにピーという音が聞こえるようにします。周波数は800Hzとします。この信号はNCOで発生させてCARLとし、MODがLの時に出力します。CARHはVSSとして,MODがHの時は何も出力しません。

 モールス練習機の回路図です。

 DSMの出力は、RC3としてスピーカーを接続します。電鍵はRA4に接続し、RA4はウィークプルアップし、プルアップ抵抗はつけません。

 MPLAB X でprojectを作成し、MCCを立ち上げます。systemモジュールです。デフォルトの状態で、クロックは1MHzです。


 NCOモジュールとDSMモジュールを導入し設定します。
 NCOモジュールは、周波数を800Hzとしました。

 DSMモジュールです。High CarrierはVSS,Low CarrierはNCO1_outに設定します。また、Modulation SourceはMDMIN_pinに設定します。


 Pinモジュールです。
 DSM outuputはRC4に設定します。MDMIN inputはRA4に設定し、ウィークプルアップWPUにチェックを入れます。


 電鍵(KEY)をON/OFFして、モールス符号Vを送出してみました。
 その時のDSM outの波形です。

 800HzのキャリアがKEYの信号で変調され、モールス符号として送出されました。
 プログラムです。MCCの設定以外はプログラム上には何も書いていません。
----------------------------------------------
#include "mcc_generated_files/mcc.h"

void main(void)
{
     // initialize the device
     SYSTEM_Initialize();

     while (1)
    {
    }
}
----------------------------------------------

 ブレッドボードにスピーカーと電鍵をつけてテストをしています。

 音が大きいので、出力に直列に100Ωの抵抗を入れています。

 下の写真は、10年前に製作したモールス練習機です。製作記事は、こちら
 ランド方式電で製作し、ツインT回路とNJM386アンプの2つの基板で構成されています。これらが、1個のPICでできるわけですからすごいですね。