DSPラジオモジュール「M6951」を使ったラジオ番組自動録音装置の製作 2013.12.17


    1.はじめに

     以前に紹介しました「ラジオ番組自動録音装置の製作」では、ジャンクのミニコンポから取り外したチューナーユニットを使用していました。そのため、再現性に今一つ欠けることから、 バックアップの目的も兼ねて、新たにラジオ受信用のICを使ったものを今回作成しましたので紹介してみたいと思います。

     使用したマイコンは、前回同様、PIC32MX695F512H を使いましたが、自作基板ではなく、ランニングエレクトロニクスから販売されている「SBDBT32」マイコンボードを使用しました。

     これに、アイテンドーから販売されているDSPラジオICを搭載したDSPラジオモジュール「M6951」を組み合わせてみました。

    このモジュールのラジオICは、マイコンからI2Cインタフェースで、受信周波数や音量を制御することができます。

     I2Cによる制御のサンプルプログラムが商品サイトには、アップロードされていますが、PIC用のものではありません。今回PIC用のドライバプログラムを作成しましたので、その紹介もしてみたいと思います。


    2.機器構成
    DSPラジオモジュール「M6951」とマイコンボード「SBDBT32」を使ったラジオ番組自動録音装置

     今回は、市販のマイコンボードやラジオモジュールを使用しましたので、前回作成したものよりは、よりシンプルな構成となりました。

     音声取込やSDカードへの記録、カレンダー機能の組み込み等は、前回の作例と全く同じです。今回は、オペアンプによる音声信号の増幅回路や、時報信号を検出するためのオペアンプによるコンパレータ回路は省略し部品点数を減らしました。

     マイコンボード、ラジオモジュール以外の部品としては、2kΩ の抵抗2本と、受信モニター回路用の抵抗1本と電解コンデンサ1個、それとステレオミニジャック、ならびにACアダプタ接続用のDCジャック、FMアンテナ接続端子だけです。


    DSPラジオICとマイコンボードとの接続

     DSPラジオモジュール「M6951」の詳細については、商品サイトに簡単な外部接続回路図とともにICのデータシートがアップされていますのでそちらを参照してください。

     このモジュールとマイコンボードとの接続は、モジュールの電源制御であるPONと、I2CインタフェースのCLKDAT、さらに、音声信号の出力であるLOUTROUTの5ピンのみの接続となります。

     マイコンボード「SBDBT32」は、電源供給端子やPICkit3の接続用端子を含め、わずか10本しかありません。 そこで次のようにピンを割り当てました。

      コネクタ J4
      端子番号回路図信号名今回使用信号名備考
      1
      MCLR
      ---
      2
      +5V
      +3V3
      ラジオモジュールの電源電圧に合わせた
      3
      GND
      GND
      GND
      4
      PGED
      AN0
      ラジオモジュール LOUT
      5
      PGEC
      AN1
      ラジオモジュール ROUT

      コネクタ J3
      端子番号回路図信号名今回使用信号名備考
      6
      RTS
      U4TX
      パソコンと接続
      7
      TX
      SCL3
      ラジオモジュール CLK
      8
      RX
      SDA3
      ラジオモジュール DAT
      9
      CTS
      U4RX
      パソコンと接続
      10
      STO
      RB9
      ラジオモジュール PON

    図-1 シンプルな回路になった。

     ラジオモジュールの音声出力端子のLOUT、ROUTは、電源電圧の1/2の電圧がバイアスされています。マイコンボードとラジオモジュールともに電源電圧+3.3Vで使用すると、LOUTやROUTをそのままPICのA/D入力に接続することができます。前回の作例では、オペアンプでバイアスをかけていましたが今回は不要です。

     LOUT/ROUTとマイコンのA/D入力との接続は、直結ではなく一応2kΩの抵抗を間に入れておきました。さらに、LOUTとROUTは、受信モニター用としてイヤフォンが 接続出来るように、ラジオICのデータシートの回路図に沿った音声出力回路を組み込んでみました。

     ラジオモジュールの外部接続回路図にある音量制御用のボリューム回路は、I2Cでマイコンから音量制御しますので省略しました。 また、LEDも基板に搭載済みのものをチューニングの目印として使用しました。

     LED-Kを使用し、LED-Aは使用していません。AMは受信しませんのでAM用のバーアンテナは接続していません。

     「SBDBT32」マイコンボードには、microSDカードのインタフェースが実装済ですのでそれを使います。USBコネクタは今回使用しません。


    前回作った装置はプラ板で自作したケースに収納した。 前回と今回の装置を並べてみる。コンパクトな仕上がりになっている。

    3.ソフトウエア

     MPLAB IDEの上で、C32コンパイラを使ってC言語で開発しました。出来上がったプロジェクトファイル一式は、以下のとおりです。

     主な処理について、前回との変更点を中心に説明します。詳細については、ソースファイルを参照してください。


     SDカードの制御(ff.c mmc.c)

     自作基板では、SPI3を使ってSDカードにアクセスしていましたが、SBDBT32では、SPI2を使います。SPIモジュールの違いだけでプログラムの内容は変更ありません。

     チューナーの制御(akc6951.c)

     DSPラジオICであるAKC6951のデータシートに従って作成したドライバープログラムです。PIC32MXのI2C処理を後半部分に収めています。

     前回の作例に倣って、周波数を引数にしてTuned()関数を呼び出せば、目的の周波数が設定できるようにしました。


     録音スケジュール(schedule.c)

     前回と変更はありません。


     録音処理(record.c)

     こちらも処理内容に変更はありません。前回は、アナログ入力にAN2/AN3を使いましたが、今回は、AN0/AN1を使いますので、AD変換モジュールの設定のみ変更しました。


     時報による時刻補正(jiho.c)

     今回は、オペアンプによるコンパレータ回路を省略しましたので、それに代わる処理が必要となりました。デジタル入力に代わって、AN0(ROUT)のアナログ入力を読み取り、0.05ボルトを境に、上なら1、以下なら0と判断する処理を加えました。

     今回、電波時計による受信プログラムを削除しました。それに伴いファイル名を変更しました。