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

概要



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

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

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



ハードウェア仕様

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

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

  3. ハードウェアはそのまま使えますが、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) [W/N] キーを押すと設定操作をキャンセルして、通常モードになる。
        (5) [MEM] キーを押すとサンプリング周波数がコントローラに記憶され、通常モードになる。

    3. エリア・リクエスト と エリア・カスタマイズ

      1. エリア・リクエスト

        • LCD 表示

          1. LCD に以下を表示する。
            
            +------------------+
            | Area Request     |
            | 01 hokkaido      |
            +------------------+
              **               : (1) エリア番号
                 ************* : (2) エリア名
            
          2. 表示情報の説明

            No. 表示項目 説明
            1 エリア番号 エリアリストに記載のエリア番号
            2 エリア名 エリアリストに記載のエリア名

        • 操作方法

          No. 操作項目 操作説明
          1 概要 (1) ユーザでのプリセット登録操作の煩わしさを軽減する機能である。
          (2) コントローラにエリア別放送局リスト (エリアリストと呼ぶ。) を保存している。このエリアリストか
            らの読み込みをリクエストすることで、指定エリアに対応した一括プリセット登録ができる。
          (3) 最新のエリアリストは area_request_20150131.pdf である。
          (4) このモードではリモコンからの操作を禁止している。
          2 使いかた (1) [W/M] [>] キーを同時に押しながら電源 ON すると、このエリア・リクエストモードになる。
          (2) [<] [>] キーを操作すると、[エリア番号 エリア名] を変更できる。
          (3) 希望する [エリア番号 エリア名] を選択してから [MEM] キーを押すと、そのエリア内放送局を
            一括でプリセット登録して、通常モードに戻る。
            ・プリセット番号との対比はエリアリストに記載の通りである。
            ・リストに記載の放送局数が8局に満たない場合、残りのプリセット番号には [周波数 76.0MHz]
             [放送局名(空白)] が入る。
          (4) [W/N] キーを押すと一括プリセット登録しないで通常モードに戻る。(キャンセル)

      2. エリア・カスタマイズ

        • LCD 表示

          1. LCD に以下を表示する。
                            ** : (1) プリセットフラグ
            +------------------+
            | Area Customize   |
            | 80.4 AIR-G'      |
            +------------------+
              ****             : (2) 周波数
                   *********** : (3) 放送局名
            
          2. 表示情報の説明

            No. 表示項目 説明
            1 プリセットフラグ 通常は非表示。プリセット操作した時にだけ [Pn] の形式で表示する。
            2 周波数 エリアリスト内放送局の周波数
            3 放送局名 エリアリスト内放送局の放送局名

        • 操作方法

          No. 操作項目 操作説明
          1 概要 (1) ユーザの住んでいる場所によっては、隣接県の放送局も受信できる場合がある。この放送局も簡単にプリセッ
            トしたいユーザの要望をかなえる機能である。
          (2) 隣接県のエリアリストから放送局を選んで任意のプリセット番号に登録できる。
          (3) このモードではリモコンからの操作を禁止している。
          2 使いかた エリア・リクエストとエリア・カスタマイズは自在に行き来できる。これにより、任意エリアの放送局をプリセット可能としている。
          (1) [W/M] [>] キーを同時に押しながら電源 ON すると、エリア・リクエストモードになる。
          (2) [<] [>] キーを操作して、[エリア番号 エリア名] を選択する。
          (3) [SM] キーを押すと、このエリア・カスタマイズモードに移行する。
          (4) [<] [>] キーを操作すると、(2)で選んだ [エリア番号 エリア名] に含まれる [周波数 放送局名] を順に表示する。
          (5) [<] [>] キーで放送局を選択し [MEM] キーを押すと、プリセットフラグの1文字目が [P] となり2文字目がブリンク
            する。
            ・[W/N] キーを押すとキャンセルする。
            ・[P1]~[P8] キーのどれかを押すと、そのプリセット番号に選んだ放送局をプリセット登録し、プリセットフラグが
             [P1]~[P8] となる。これで、どのプリセット番号に書き込んだか確認できる。
            ・プリセットフラグの表示は一時的で、[<] [>] キーを操作すると消える。
          (6) [W/N] キーを押すことでエリア・リクエストモードに戻るので、(2)からの操作を繰り返すことができる。
          (7) (6)でエリア・リクエストモードに戻った時に [MEM] キーを押すと一括プリセット登録してしまうので、(5)で入れた
            プリセット登録は無効になる。注意すること。

      3. (マニュアル受信操作で放送局名をクリアしない) 特殊モード

          No. 操作項目 操作説明
          1 概要 (1) 例えば、北海道の [NORTH WAVE] 放送は北海道全域放送だが、北海道は面積が広いので、各所で異なる
            周波数で送信されている。この場合の「プリセット登録された放送局名はそのままで、周波数だけ変更したい」
            要望をかなえる機能である。
          (2) 通常のマニュアル受信操作 ([<<] [<] [>] [>>] キー) では放送局名を強制的に消去する。この特殊モードでは
            マニュアル受信操作しても放送局名はそのままとする。
          (3) 特殊モードで周波数変更して再プリセットすることで、放送局名はそのままで周波数だけ変更可能となる。
          2 使いかた (1) [W/M] キーだけを押しながら電源 ON とすると、この特殊モードになる。
          (2) マニュアル受信操作 ([<<] [<] [>] [>>] キー) しても放送局名を消去しないだけで、それ以外は通常モードと
            変わらない。
          (3) 以下の使い方を想定している。
            1. この特殊モードを立ち上げる。
            2. 周波数変更したい放送局が入っている [P1]~[P8] キーのどれかを押す。
            3. マニュアル受信操作 ([<<] [<] [>] [>>] キー) して周波数を変更する。(放送局名はそのまま残る。)
            4. [MEM] キーを押してプリセットモードにする。
            5. 2で押したのと同じ [P1]~[P8] キーを押すと、周波数だけが変更されてプリセット登録される。
              ・ここで、2で押したのと違う [P1]~[P8] キーを押すと、そのプリセット番号にプリセット登録される。
               特に問題ない。こういう使い方もあるだろう。
              ・ここで、[MEM] キーを押すとイニシャルステーション登録されるが、そもそもイニシャルステーション情報
               には放送局名がないので意味がない。

    4. 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) [W/N] キーを押すと設定操作をキャンセルして、通常モードになる。
        (5) [MEM] キーを押すと補正値がコントローラに記憶され、通常モードになる。

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


  4. 各モードとキー操作のサマリ

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



接続仕様

  1. コントローラを 3.3V 動作させる場合

  2. コントローラを 5V 動作させる場合 ・・・ こちらがお奨めです



ノイズ対策

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

  2. ノイズ対策