● 実験テーマ35

「PIC32MX_自作オシロ_V3:第2章」 (Scope_V3のソフトバージョンアップ版)

■ 2013.7.15
  ・ソフトバージョンを、Ver.1.02とし、以下の機能を追加しました。
   @ HOLD機能
      最初、外付のタクトSWにてこの機能を予定していましたが、結局タッチ・ボタン化しました。
      なので、このタクトSWは外しました。
   A SINGLEトリガモード機能
      画面デザイン等の関係で、この機能の為に増設した、READY_SWは、外部タクトSWにし
      ました。

  ※ 詳細は、自作オシロ_V3_Soft_Ver.1.02の、仕様を参照してください。
     こちらからどうぞ→ 「自作オシロ_V3_Soft_Ver.1.02_仕様_130719」

  ・まず、HOLD機能追加だけやってみた。
   難なくOK!!

  ・次に、SINGLEトリガ機能を追加したが、これが思うように行かなかった。
  <調査>
   ・AUTO/SINGLE切替SWを、SINGLEにすると、シングルモード関数の、whileループに
    入ってくることを確認
   → ここで、READY_SWを押すと、このループを抜けるはずだが抜けないで、何故か
      HOLD_SWを押すと(この時点では、未だタクトSW使用)抜ける??
   → HOLD_SWとREADY_SWの、ポート配線は間違ってないことを確認
      またソフトでの割付もOK
      → ただ、電気的には、READY_SWが押されて無い時の、Hi電圧が、他のSWよりも
      若干低い。
      プルアップは、全てPIC内部のプルアップ設定にしてあるが、READY_SWの
      Hi電圧だけ、2.08Vと低目である。
      もしこのポートがTTL入力でないとすると、Hiと認識されないレベルであり、ちょっと
      気になるところである。

   ・どうもダメな、READY_SW入力に使っている、RC13ポートは、OSC(RTC用の水晶)入力
    とのマルチ機能ピンになっているので、そこら辺に影響されてレベルが十分上がらない
    のかもしれない?
    まあ、外部プルアップにすればよいのかもしれないが、全て内部プルアップで済ませたい
    ので、試しに空きピンのRG7を使ってみることにする。
    (同じRGグループの、RG6は、TRIG_MODE_SWで使っており、問題なく動いているので・・)
   → このポート変更で、Hi電圧が若干上がり、READY_SWを押すと、whileループを抜ける
      ようになった。

 

 

 

 

 

 

 

 

 

 


■ 2013.7.16
  ・どうも、CN割込み処理を増やすと、(SW追加等)
   ADC(T3)割込み(レベル7)
   タッチ用T1割込み(レベル2)
   CN割込み(レベル1)
   の、3レベルの多重割込みが、うまく行かないようで、プログラムが正しくRUNしないようである。
   (READY_SWが読めなかったことを別にすれば、昨日からこの兆候があった。)

  ・ここで決めた。
   HOLD_SWは、タッチボタン化することにした。
   また、READY_SWもタッチ化したいところだが、画面上に丁度良い置き場所が見当たらない
   ので、READY_SWだけは、そのまま外部のタクトSWのままにした。
   但し、READY_SW ON待ちの時の、READY_SW読込は、何もCN割込みでやる必要は無い
   ので、単純なレベルセンス読みにした。
   これが実現すれば、レベルセンスSW以外は、全てタッチ操作になる。
   多重割込みは、2レベルまでにした方がよさそうである。

  ・早速タッチ化のため、ボタンレイアウトを決めた。
   原則として、隣り合わせのボタン配置にはしないようにした。
   ボタンが小さいので、ダブルタッチの可能性があるからだ。


■ 2013.7.18
  ・HOLD_SWのタッチ化は問題なく行った。

  ・次に、READY_SWをレベルセンス読みに変更してみた。
  <試行結果等>
   @ READY_SWのリードは、単純ループの中でのレベルセンスでも当然うまく行く。
   A ただ、やはり単純高速ループの中で、割込みが頻繁に入ると、誤動作するようなので、SINGLEモード時
      は、タッチ禁止(T1 OFF)にすることにした。
      前回のオシロ_V2の時と同じで、
AUTO時の設定で、SINGLEモード実行という仕様にした。
   B そしてAUTOモードに戻した時に、T1 ONにするようにした。
   C あと、
トリガレベル設定範囲を上下広げないと、0V付近からの現象が見られないので変更することにした。
   → ソフト修正し、現行:612〜412 (5STEP)を、712〜312  ( 5STEP)にした。

  結局このような修正で、SINGLEトリガも動くようになった。


■ 2013.7.24 (更新)
  ・アナログアンプ部の、GAIN校正の手順を簡単にまとめてみました。

  <簡易GAIN校正手順>
   ・校正は、ACモードで行う。
    入力は、1kHzサイン波とする。

    @ まず、入力をAGNDに落とし、0V入力とし、ZEROポテンショにて、画面中央に輝線合わせる。
    A 電圧軸レンジを、1.5V/Dにし、3Vp-pサイン波入力にて、振幅が、2目盛フルになるように、
       VR3を回して調整する。


    B
 電圧軸レンジを、0.75V/Dにし、3Vp-pサイン波入力にて、振幅が、4目盛フルになるように、
       VR4を回して調整する。

    C 電圧軸レンジを、0.5V/Dにし、1Vp-pサイン波入力にて、振幅が、2目盛フルになるように、
       VR5を回して調整する。

    D 電圧軸レンジを、0.25V/Dにし、1Vp-pサイン波入力にて、振幅が、4目盛フルになるように、
       VR6を回して調整する。

        尚、GAINポテンショの位置は以下の通りです。


<最終回路図>
 ・こちらから、どうぞ→ 「Scope_V3_Soft_Ver.1.02回路図 1/2(デジタル部)」

  (尚、シート2/2:アナログ部の回路は、実験テーマ34と同じなので、そちらを参照してください)

<最終ソース>
 ・こちらから、どうぞ→ Scope_V3_Soft_Ver1.02.c

  ※ 尚、この他に、QVGAグラフィックライブラリ(colorlcd_libdsPICVH.c, colorlcd_libdsPICVH.h, ASCII12dot.h)
     と、タッチパネルライブラリ(Touch_XT2046_Lib.c, Touch_XT2046_Lib.h)が必要ですが、
     それらは、実験テーマ31、33に公開済なので、そちらを参照してください。


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