● 実験テーマ126

「CQ_DDSスタンドアロン化」
CQ出版社:「すぐ使えるデジタル周波数シンセサイザ基板」のスタンドアロン化の記事(「はじめてのPIC」サイト)を参考にしました。)

■ 2020.9.4
   ・以前からこの基板は、自作オシロ等のチェック時に活用してきたが、最初からPICに書込まれていた
   ファームウエアが、USBに、PCターミナル:Tera Termを接続して、そこからのコマンドによって
   DDSを制御するものだったので、セッティングが面倒で使い勝手は良いとは言えなかった。

   以前から気には止めていたのだが、「はじめてのPIC」サイトで、これをスタンドアロン化する記事が
   載っているので、これを参考に私も作ってみようと思い立った。

  ・今回は、サイトに添付されている、HEXファイルを、そのまま使用させて頂くことにする。
   ただ何時のように、PICkit2を使って書込むのではなく、ブートローダを書込んだ後、PCアプリの「
HIDBootloader (Windows).exe」を実行
   して、プロジェクトのHEXファイルを、USB経由でPICに書込むスタイルになり、ちょっと面倒な感じ。


■ 2020.9.5
   ・書込み方法の詳細な説明はサイトにあるが、私なりに手順を整理してみた。

  <付属DDS基板の、スタンドアロン化の手順整理>
   (1) デジタル周波数シンセサイザ基板のPICに、
      あらかじめ、PIC18F14K50用のブートローダのHEXファイル:HID_BL_PIC.hexを、PICkit2を使って次の手順で書込む。
      @ PICkit2 アプリケーション を起動し、BootloaderのHEXコード「 HID_BL_PIC.hex」をインポートする。
      A PICkit2 でPIC18F14K50にコードを書き込む。

      ※ 一度、書き込めは、2度目からは、
         ブートローダを同じICに再書き込みする必要はない。
         ユーザーソフトを何度書きなおしても、ブートローダープログラムは、変更されないため、
         新規にPIC ICを購入したときに一度たけ、実施する作業

      ※ 付属DDS基板には出荷時に、ファームウエアが書込まれている。
         → PICkit2で、ICPSピン経由で、Readしてみた。(ピンはランドに差込んだがハンダ付けはしてない。基板を斜めにして接触させている。)

           何やら、0x0000〜 0x0FFFに、コードが見える。
           そして、0x1000以降にも、コードが見える。これが実行コードと思われる。
           なので、0x0000〜 0x0FFF間のコードが、ブートローダと思われるが、これがPIC18F14K50用のブートローダ
           かは?
           とにかくこのことは無視して、HID_BL_PIC.hexを書込んでみる。
           ダンプリストは取ってあるので、後で比較してみる。→ フリーのダンプソフトで比較したが異なる物と判明:200907
            ↑
      ※ 後、これからいじることによって、最悪、出荷時のファームが書込まれた状態に戻らないとまずいので
         Read後に、hexファイル:CQ_DDS.hexにエクスポートしておく。まあZIPファイルが残っているので何とかなるかとは
         思っているが・・・      200907

   (2)  ここから、ユーザ・ソフトウエアの書込み
      @ まず、PCアプリ HIDBootloader (Windows).exe を起動。
         「Device not detected」というメッセージが表示される。
      A PICの4pin:MCLR/RA3に接続されているSW(このSWは用意必要)を押しながら、
         USBケーブルをPCのUSBソケットに挿入。尚、4pinは、RA4入力として機能。
      B ケーブル挿入後にSWを離すと、「Device attached」と表示される。 
      C ブートアプリ左上の「Import Firmeware Image」ボタンをクリック。
         「Open Hex File」ダイアログが開くので、PICに書き込むユーザープログラムのHEXファイル:DDS_MNL_Only.hexを 
         HIDBootLoaderに読み込む。
         読み込みに成功すると読み込んだファイル名が表示され、
         「Program/Verify」ボタンがアクティブになる。
      D 「Program/Verify」ボタンをクリックすると書き込みが開始され, PICの書き込みに成功すると
         「Completed Successfully」と表示される。
      E 「Reset Device」ボタンをクリックするか、USBケーブルを外すとDevice Detachedと表示されブートローダが切り離される。


■ 2020.9.8
   ・ハードは少しだがオリジナルと変えてある。
  <オリジナルと異なる主な箇所>
   @ LCDの電源は素直に、手持ちにあった、3.3V出力の3端子レギュレータを使った。→ オリジナルはRB4を"Hi"にしたのを印加
   A オリジナルには電源SWが無いので追加した。
   B ロータリエンコーダ
であるが、私の手配ミスで、プッシュSW内蔵でない、LEDのみ内蔵タイプを購入してしまった為、
      ON/OFFのプッシュSWは別付けした。
   C オリジナルの回路図と、ソース・ファイルを見ていて気が付いたのだが、
      UP/DWN SWのポート接続が、ソースの定義と逆になっていたので直した。(別段たいした問題では無いが・・・)
      ソースの定義は、UP_SW→ RB5/DWN_SW→ RB7に対し、回路図は、UP_SW→ RB7/DWN_SW→ RB5になっていた。

   ※ ソースに、内部プルアップの設定が無いのを見て最初、回路図上に外部プルアップを追加したが、よくよくボードの
      回路図を見ると、I2Cを含め全ての入力に10Kの抵抗(SMTタイプの抵抗アレー)が接続されていたのでユニバーサル(UNV)基板製作前に
      UNV基板の回路図を直した。

   ※ I2C液晶は、以前実験テーマで作ったモジュールを使い回した。(これにはプルアップが付いているが、ハンダを外した。)

  ・9月5日に整理した手順で、ブートローダ:HID_BL_PIC.hexと、ユーザ・ソフトウエア:DDS_MNL_Only.hexを、PICに書込んだ。
   ブートローダのHEXファイルは、何時もの様に、ICPSピンより、PICkit2で書込んだ。
   以下に、ユーザユーザ・ソフトウエアのHEXファイルをUSB経由で、PCPCアプリ HIDBootloader(Windows).exeによって
   書込んだ時の、スクリーン・ショットをアップした。
      @ まず、PCアプリ HIDBootloader (Windows).exe を起動。
         「Device not detected」というメッセージが表示される。

      A PICの4pin:MCLR/RA3(ICPS-1pin)に接続したSW(このSWは手持ちのスライドSWにした。)をON側:Loにセットし
         USBケーブルをPCのUSBソケットに挿入。尚、4pinは、RA4入力として機能。

      B ケーブル挿入後にSWをOFF側:Hiにすると、「Device attached」と表示される。



      C ブートアプリ左上の「Import Firmeware Image」ボタン をクリック。
         「Open Hex File」ダイアログが開くので、PICに書き込むユーザープログラムのHEXファイル:DDS_MNL_Only.hexを 
         HIDBootLoaderに読み込む。



         読み込みに成功すると読み込んだファイル名が表示され、
         「Program/Verify」ボタンがアクティブになる。

      D 「Program/Verify」ボタンをクリックすると書き込みが開始され, PICの書込みに成功すると
         「Completed Successfully」と表示される。

      E 「Reset Device」ボタン をクリックするか、USBケーブルを外すとDevice Detachedと表示されブートローダが切り離される。


■ 2020.9.10
   ・UNV基板の実装が完了した。


■ 2020.9.11
   ・動作確認を行った。
   稼働時の電源電圧は、5.22V・3.32Vだった。
   問題無く動いているようである。
    @ 周波数設定は、最小0Hzまで出来るが、低域は、50Hzからフラットの仕様になっている。
    A 最大設定は、20MHzで、ここまでフラットの仕様。
    B P_ON時は、800Hz・出力:OFFになっているので、ON/OFF SWを押して、ONにする。
       以下に、その時の出力を自作Fカウンタで確認している写真を示した。

    C その他、いくつかサンプルを撮ったので、以下に示しました。

  ・<感想・所感>
    @ 周波数可変最小ステップは、1Hzで可変出来ました。
       チャタリング処理は効いていますが、速めにロータリエンコーダ
を回すと、4Hzほど飛ぶことがあります。
       ゆっくりと逆回しで戻せば問題無く、-1Hz出来ました。
    A 液晶画面の表示構成が、分かり易くて良いと思います。
       特に、単位の"M"と、"K"を、対応する桁の下に入れてあるのは読み易くて良いと思います。
    B カーソルの移動処理もスムースで問題ないです。


<回路図>
 ・こちらからどうぞ 「CQ_DDSスタンドアロン化」
 


← 実験テーマ1に戻る   TOP PAGEに戻る   実験テーマ127へ →