FPGA tuner 専用コントローラの製作

概要



専用コントローラ用 PIC16F886 チップの領布について

  1. hex オブジェクトを公開しています

  2. プログラム書き込み済み PIC16F886 チップの領布もします



ハードウェア仕様

  1. ハードウェアは 秋月電子通商PIC マイコン赤外線リモコン学習キット をそのまま使います。

  2. FPGA tuner のコントローラとして必要なハードウェア機能が搭載されています。

  3. FPGA tuner と接続するにはオプションの選択に若干の注意が必要です。 以下の記述はコントローラと FPGA tuner を直結する場合であって、一番最後にある「朗報かもしれない情報」のように整合回路を付加するのであれば、5V で動作させても構いません。 むしろ 5V 動作の LCD のほうが見やすいし、FPGA tuner と電源を共有できるので、5V 動作させるほうがお奨めです。

  4. ハードウェアはそのまま使えますが、PIC16F886 の制御プログラムは書き換える必要があります。



ソフトウェア仕様

  1. 通常モード

    普通に電源 ON した時にこのモードになる。

  2. スペシャルモード

    1. リモコンコード送信

      [<<] [W/N] キーの2つを押しながら電源 ON した時にこのモードになる。

      • LCD 表示

        1. LCD に以下の情報を表示する。
          
          +------------------+
          |   Send IR code   |
          |      key **      |
          +------------------+
                     **      : (1) Key No.
          
        2. 表示情報の説明

          No. 表示項目 説明
          1 Key No. 最初は [**] と表示されているが、キーを押すとそのキーコード (00〜15) を表示する。

      • 操作方法

        No. 操作項目 操作説明
        1 概要 (1) このモードは学習リモコンを FPGA tuner リモコンとして使う想定の機能である。
        (2) コントローラの各キーに対応したリモコンコードをコントローラから発信する。
        (3) リモコンコードは NEC フォーマットとし、キーコードとリモコンコードの対比は以下である。
           00 : [123400FFh] 〜 15 : [12340FF0h]
        (4) このモードではリモコンからの操作を禁止している。
        2 使いかた (1) 電源 ON 時に本スペシャルモードを起動する。
        (2) 各キーを押すと、そのリモコンコードが発信されるので、これを学習リモコンに記憶させる。
        (3) 電源 OFF → ON して [通常モード] に戻す。
        (4) これ以降、学習リモコンから FPGA tuner を操作できる。

    2. S/PDIF サンプリング周波数設定

      [<] [W/N] キーの2つを押しながら電源 ON した時にこのモードになる。

      • LCD 表示

        1. LCD に以下を表示する。
          
          +------------------+
          | S/PDIF Rate(kHz) |
          | [<] 192 [>][MEM] |
          +------------------+
                ***          : (1) サンプリング周波数
          
        2. 表示情報の説明

          No. 表示項目 説明
          1 サンプリング周波数 最初は現在のサンプリング周波数が表示されているが、[<] [>] キーを押すことで 48, 96, 192 のいずれかに変わる。

      • 操作方法

        No. 操作項目 操作説明
        1 概要 (1) S/PDIF のサンプリング周波数を 48kHz, 96kHz, 192kHz のいずれかに設定する。
        (2) このモードではリモコンからの操作を禁止している。
        2 使いかた (1) 本モードになると、現在のサンプリング周波数が表示される。
        (2) [<] キーを押すとサンプリング周波数が低くなる。最小 48 まで。
        (3) [>] キーを押すとサンプリング周波数が高くなる。最大 192 まで。
        (4) [MEM] キーを押すとサンプリング周波数がコントローラに記憶され、通常モードになる。

    3. UART ボーレート補正

      [>>] [W/N] キーの2つを押しながら電源 ON した時にこのモードになる。

      • LCD 表示

        1. LCD に以下を表示する。
          
          +------------------+
          | Baud Rate Adjust |
          | [<] -11 [>][MEM] |
          +------------------+
                ***          : (1) 補正値
          
        2. 表示情報の説明

          No. 表示項目 説明
          1 補正値 最初は現在の補正値が表示されているが、[<] [>] キーを押すことで -16〜+15 に変わる。

      • 操作方法

        No. 操作項目 操作説明
        1 概要 (1) 本コントローラでは PIC16F886 内蔵クロックを用いて 115.2kbps のボーレートを得ている。
        (2) 内蔵クロックの発振周波数を 7.3728MHz 近辺に設定すると正しいボーレートとなる。
        (3) 内蔵クロックの発振周波数は PIC16F886 の個体差や周囲温度で若干ズレる可能性がある。
        (4) 本機能は内蔵クロックの発振周波数を補正することを目的とする。
        (5) 補正値は -16〜+15 を設定でき、マイナス側は発振周波数が下がる方向、プラス側は上がる方向である。
        (6) 内蔵クロックの基本発振周波数は 8MHz で、これは補正値 00 の時である。これを中心として±12% 程度の補正が可能である。
        (7) 補正値 -11 とすると、ほぼ全ての PIC16F886 で 7.3728MHz 近辺に設定できる。
        (8) このモードではリモコンからの操作を禁止している。
        2 使いかた (1) 本モードになると、現在の補正値 (通常は -11) が表示される。
        (2) [<] キーを押すと補正値がデクリメントされる。最小 -16 まで。
        (3) [>] キーを押すと補正値がインクリメントされる。最大 +15 まで。
        (4) [MEM] キーを押すと補正値がコントローラに記憶され、通常モードになる。

  3. PIC16F886 内蔵 EEPROM のデータテーブル仕様


  4. ソフトウェアリリース履歴

  5. 将来追加(するかもしれない)機能

    1. プログラム受信機能

      • 機能概要

        1. あらかじめ、最大4つのプリセット放送局をプログラム登録する。
        2. 電源 ON ごとに、プログラムしたプリセット放送局を順に受信する。
        3. 1プログラム実行するごとに、実行済みプログラムを消去する。 (プログラムシフト)
        4. プログラムが全部実行された後の電源 ON では通常モードに戻り、イニシャルステーションを受信する。

      • 要検討事項

        1. プログラミングするユーザインタフェースの仕様検討と実装

    2. スキャンサーチ機能

      • 機能概要

        1. [<] または [>] キー長押しで周波数スキャンを開始する。
        2. 放送局が見つかると、そこでスキャン動作を停止する。

      • 要検討事項

        1. 据え置きが前提のチューナでは、この機能が本当に必要かどうか疑問
        2. 長押し検知のアルゴリズムの仕様検討と実装



接続仕様

  1. コントローラと FPGA tuner は右のように TX/RX をタスキ掛けに接続します。 GND と合わせて3本接続するだけです。

  2. 図のコントーラ側の信号は全て [J2] 端子に出ています。

  3. FPGA tuner 側の信号は基板のタイプで違うと思うので、お調べください。 我が家の FPGA tuner では [AUX1] 端子となっていました。



朗報かもしれない情報

  1. FPGA tuner 設計者の林さまから情報をいただきました

  2. コントローラを 5V 動作させる

  3. ノイズ対策