● 実験テーマ49
「自作オシロ_V5の実験」
(64pinの、PIC24HJ64GP206と、背の高い軸付BCD SW(JA1WBYさんのHPで知りました)を使って、2現象オシロの実験を行いました)
■ 2014.3.21
・自作オシロネタも、これでV5まできました。
2現象オシロとしては、2号機(JA1WBYさんの基板を使用したオシロは含まず)になります。
・今日は、これからの作業計画案を検討しようと思います。
<作業案等>
@ 以前作った、自作オシロ_V2(PIC24HJ64GP206使用)を、2現象にグレードアップ
する形で進める。
A 液晶に、測定条件(AC/DC・時間軸レンジ・電圧レンジ・トリガスロープ)を、2CH分
表示させる。
B トリガCHは、1CHオンリーとするが、立上り/立下りを選べるようにする。
C 上記に伴い、AC/DC, TRIGスロープの、キャラクタを、font.hに追加する。
これは、2現象表示した場合の視覚性を考慮し、測定条件表示を、最下位行へ
集中させる考えなので、文字で表示すると、表示スペースの制限を受け全て表示
不可能なための対策です。
D シングルトリガとホールド機能も盛り込む。
E トリガレベルを与える方式は、デジタル式でなくアナログのままにする。
F AF帯(1Hz〜20kHz)が観測できれば良しとする。
G 入力インピーダンスは、1MΩとする。
入力の配線は極力最短になるように部品配置を考慮する。
H アナログ回路は、自作オシロ_V4と同等にする。
・とりあえず、1STステップとして、キャラクタ等の液晶画面レイアウトを確認するために
2現象オシロ_1号機のハードを使って、液晶表示のみのデモプログラムを作成することに
しました。
■ 2014.3.22
・まず、font.hの空エリアに、追加キャラクタのコードを追加します。
追加に際しては、以前から使っている簡単にEXCELで作成したツールを使いました。
以下に追加したキャラクタを示します。
・以下に最初の表示デモ結果を示します。
■ 2014.3.26
・水魚堂CADでの回路図作成終了
・ソフトで一番懸念している、DMAでの、2現象記述を検討する。
<確認事項>
@ 28pin PIC24FJ12GP202の時の、4CH同時サンプル設定と同じでよいか?
→ 同じでよさそう
A 28pin PIC24Hでは、ADC1Interruptで記述していたが、64pin
PIC24Hでは、DMAで
記述することになる。
記述そのものを変える必要がある。
■ 2014.3.29
・消費税が上がる前に、RSコンポーネント分の部品を先行手配した。
BCD_SW:FR01-AR10PB-ST等
・DMAで2現象を実現するDMA割込みルーチンの記述が今一、マニュアルだけでは理解
できない。
自分なりの考えもあるので、現自作オシロ_V2のハードに、プログラムをロードして実際
動かしながら、DMAバッファの内容を確認してみようと思う。
現ハードは、AN1ピンはオープンにしてあるので、そこに何らかの方法で信号入力してやれば
2現象の動作確認ができるはず。
・ソフトの大元は、「Scope_V2」を利用
一応ソフト変更済、コンパイルもOK
動かしてみたが、DMA割込みにジャンプしてこない?
■ 2014.3.30
・ADC及び、DMAの設定を、いろいろ変えてみたが、相変わらずDMA割込みにジャンプしてこない?
■ 2014.4.1
・どうしても、DMA割込みにジャンプしてこない?
DMAによる4CH同時サンプルが上手く行かない。
DMAを使わなくても、複数のADCBUFを備える、多ピンのPIC32MXに乗り換えようかなとかも
思ったりした。
ところが、PIC32MXでは、同時サンプル設定できないことが判明!!
PIC32MXの、AD1CON1レジスタの、bit3(64pinPIC24Hでは、同時サンプル選択ビットであった)
には機能付がなく同時サンプル設定には出来ないのである。
しょうがないので、乗り換えは断念し、最初の64pinPIC24Hで進めることにした。
■ 2014.4.2
・いろいろ調べているのだが上手く行かない。
そもそも、4CH同時サンプルで、DMA割込み関数を使っている例が、マニュアルにも、WEB上
にも見当たらない。
ちょっと行き詰まりぎみ。
※ まだ気になる点が無いわけではない。
DMA記述は、PIC24Hのマニュアルのコード例を参考に記述したが、どういう訳か、
マニュアルのそれは、DMAコントローラ・ブロックに用意されている7個のDMAチャンネル
の内、DMA5を使っていて、私もそれに従って記述した。
まあ、単チャンネルでのDMA割込みはそれでも動いていたのだが、同時サンプルでは
上手くいかない。
そこで、DMAチャンネルを、DMA5から、DMA0に変更したら何と動き出したではないか!!
■ 2014.4.3
・実験用のソフトが、基本動いたので、本番ハードの準備を始めることにした。
まずは、パーツ手配から行うつもり。
■ 2014.4.4
・秋月・マルツ分のパーツ手配の前に、気になっていた画面レイアウトを、ちょっと
変更することにした。
<変更案>
@ 全て、最下位行に測定条件の情報を表示する。
A それに伴い、液晶への「HOLD」表示はやめ、HOLDは黄LEDに置換える。
また、「TRIG」の最上位行の表示もやめ、追加したTRGキャラクタを
最下位行に表示させることにする。
・秋月・マルツ分のパーツを手配した。
■ 2014.4.5
・マルツに、PIC24HJ64GP206を、ダイセン電子の変換基板:QFP64に実装する
実装依頼を済ませる。
・本番ソフトの検討開始
→ たぶん、単CHの時(自作オシロ_V2)のソフト(Scope_V2_Soft_Ver1.02プロジェクト)
基本そのままで、ポート設定等変えるだけで、2現象も動くはず。
→ とりあえず部品が揃うまでは、Scope_V2のハードで上記の確認をしてみる。
プロジェクト名は、「Scope_V5_TEST2」とした。
→ ソースを見ると、Oscillo_single_trigger()
のみ、1CH波形表示から、2CH波形表示に修正すればよさそう。
・実験用ソースをまとめ、コンパイル〜動作確認まで大方OKだった。
■ 2014.4.7
・本番ソフトは、ポート割付、内部プルアップ設定など変えなくてはいけないので
今日はこの辺の作業を行った。
・今現在は、電圧レンジ切替用BCD_SWのリードと、それに連動する、ATT切替用の
アナログSW_IC(4051)への、BCDコード出力は、Scope_V2の時と同じに、MPUの
ポートで個別に行うことにしている。
この考えでポート割付をしようとすると、MPUからのBCDコード出力の、出力ポートは
O.D(オープン・ドレイン)設定(+5V出力にするため)にする必要がある。
全ポートがO.D設定可能なわけではないので、その制限下でポート割付をしようと
すると、なかなか上手いポート割付ができない。
.■ 2014.4.8
・よくよく考えてみれば、別にアナログSW_IC(4051)への、BCDコード出力を、
MPUのポートでコントロールする必要はないと思われる。
そもそもこれにしたのは、電圧レンジを、BCD
SWでなく、UP, DOWN SWで行って
いる例を見て、そのなごりでこうしているだけだ。
(引いて言えば、ソフト上で入れ替えが出来る程度だが今回はその必要はない)
例えば、MPUのデジタル専用ピンの、5Vトレラント仕様を利用すれば、
電圧レンジ切替用、BCD SWのMPUへの取込みは、3本(BCD3bit)のみでよいこと
になる。
アナログSWへの、BCDコード出力は、MPUの出力ポートでなく、BCD
SWダイレクト
(プルダウンは必要だが)でよいのである。
またこうすることによって、ソフト上での出力デコードのプログラムが不要になる。
さらに、MPUのO.D設定も必要なくなる。
この方法でやってみることにした。
ここまでの回路図修正を済ませ、この日(140408)を、初期図面作成日とした。
・本番の画面キャラクタレイアウトは、最もキャラクタ数が多くなる測定条件の
ケースを配慮し、以下の通りにした。
.■ 2014.4.9
・本番ソースまとまる。
・次に、ユニバーサル基板サイズと部品配置の検討を行った。
■ 2014.4.11〜 2014.4.19
・基板加工〜 配線まで済ませる。
配線量が多いので、1Wほど掛ってしまいました。
■ 2014.4.20
・配線完了後(素子未実装状態)の、チェックを行った。
@ ショート・チェック
VCC-GND, AVCC-GND, -AVCC-GND, +5V-GND, -5V-GNDの各間、ショートしてないことを確認。
A 無負荷時電源電圧チェック(LTC1144とGLCD実装してバックライトON、IC未実装)
VCC=+3.28V, AVCC=+3.24V, -AVCC=-3.24V
+5V=+5.02V, -5V=-5.21V
(全ての、ICピン等、供給点で、電源電圧確認を行った。)
・ここで、PIC(QFP64)を、ピンコネクタにハンダ付した。
その他のICも全て実装
まずは、バックライトOFFにて各電源電圧をチェック
VCC=+3.28V, AVCC=+3.17V, -AVCC=-2.99V
+5V=+5.10V, -5V=-5.21V
バックライトONでも確認→ バックライトは大飯くらい(約300mA流している)なので+5Vが結構低下している。
VCC=+3.28V, AVCC=+3.17V, -AVCC=-2.99V
+5V=+4.82V, -5V=-5.21V
ちょっと、-AVCCが、-3Vギリギリなのが気になるが・・・・
もちろんLTC1144出力を無負荷にした場合は、-3.28Vで安定している。
また、1CHと2CHのバッファアンプのみ実装の場合は、-3.04Vで安定している。
ファイナルOPアンプ(単電源:AVCCのみ供給)を実装すると、-2.99Vまで下がり暫くは安定しなく
徐々に低下していくように見える。まあテスターでの話だが・・・
まだ、PICにHEXを書込んでなく、ポート設定が不定なこともあるのかなと思い、ここでHEXを書込む
ことにした。
ところがPICkit2がチップを認識せず。
これは配線ミスだった。
RESET入りっぱなし。
RESET SWの向きが違っていた。
狭いピン間ピッチの方が、接点側なのに広い方にして置いてしまった。
これを直して、HEX書込みOKとなった。
これでも-AVCCが低めで不安定なのは同じだった。
この問題を置いといても、動作がおかしい。
AUTOモードであれば、P_ON後、最初の座標画面が表示され、測定条件が下段に表示
されるはずが、AC/DCキャラクタ・時間軸レンジが表示されない。
これは、内部プルアップ(CNPU1)の設定が、CN割込みを使用するSWのみのプルアップ
設定になっていたためで、それ以外のレベルセンスSWのプルアップ設定も追加した。
これで測定条件は正しく表示されるようになった。
その他、入力ZEROにて、ZEROポテンショを回しても、輝線(アナログ的な言い回しだが・・)
が動かない。
・ここで、-AVCCを、自作オシロ_V4で観測してみた。
不安定なわけだ、約0.2Vp-pのリップルが発生している。
■ 2014.4.21
・昨日の件、いろいろ試行してみることにした。
@ バッファアンプの負電源(-AVCC)を、-3.3Vから取るのをやめ、ツェナーの-5Vから取ってみる。
→ これはダメ。電圧が下がる。(-5Vが、-3V位まで低下)
A -AVCC今のままの供給で、LTC1144の出力コンデンサを、10uから100uに交換してみる。
→ リップルは低下するが、電圧が、-2.8Vまで落ちるので却下。
・上記の通りダメなので、バッファアンプの負電源(-AVCC)は、-3.3Vでなく-5Vから取る修正
が必要になる。
(リップル除去しきれない場合でも、3V領域まで、2Vのマージンがあるので有利)
ただ、正電源は、AVCC(+3.3V)のままでも問題ない。
(レギュレーションされている電源なので下がらない。)
・-5Vから取る修正を行う。
この時点では、ツェナーによる-5V電源はやめて、LTC1144の入力を、+3.3Vから+5Vに変更
し、その出力の-5Vを、2つのバッファアンプ+アナログSW_IC(4051)の負電源に供給する
ように改造を進めた。
■ 2014.4.22
・昨日の結果、-5Vは、-4.56Vまで低下し、リプルは約30mVp-p
負電圧発生ICの、LTC1144は、スイッチド・キャパシタ方式の電源なので、そもそも
数10mA程度の小容量負荷にしか使えない。
ちょっとLTC1144に対して負荷が重いようである。
まあ、今回2CHあるアナログアンプのブロックを、出来るだけ干渉なしに、素直な流れの
配線にしようという考えで進めてきたせいで、バッファアンプで使っているOPアンプ:LMC6482の、
1パッケージ2個入りのアンプの内、1個のアンプはスペア(未使用)とした。
LMC6482 1個使いでも2CH分のバッファアンプとすることは出来るのだが、
それを承知で、1個はスペアとしたため、負荷が1個増えていることも要因の一つかもしれないが
今回は、最初からの考えは変えないでこのまま行くことにした。
LTC1144の負荷として重そうなので、この供給法は却下し、
せっかく、GLCDのコントラスト電源:-6Vを利用してツェナーで作っている-5Vもあるので、
この電源をアナログSW_IC(4051)の負電源として使い、バッファアンプの負電源のみ
LTC1144出力から取ることにし改造を行うことにした。
つまり、-5V負荷の分散をさせたわけだ。(-5V-1, -5V-2)
一方、アナログ・アンプの動きもおかしい(ZEROポテンショが効かない・アナログSWの動きがあやしい等)
ので、誤配線の可能性もある。
正しくアナログ・アンプの動作が確認できてから、負電源改造を行い、評価をしてみたいと考えた。
今回は、アナログアンプ単体のチェックを省いてしまったのが、アダとなっている感がある。
まず、4051の動きがあやしいので、
4051入力ピン間のATT抵抗値をテスターのΩレンジで確認してみた。
→ この静的チェック(ATT部分の抵抗の配線)は問題なかった。
ここで、ちょっとはやいが、予定していた負電源の負荷分担の改造を行った。
改造後、負電圧は上がったが、まだ動作がおかしい。
バッファアンプを抜くと、50mV/Dレンジでは、4051出力にスルーレベルが出るようになった。
バッファアンプを実装すると出なくなる。
もう配線しかないと思い、4051出力3pin→バッファアンプ入力3pin付近の配線を確認したところ
配線ミス発見!!(おばかさん・・・)
ミスの内容は、次の通り
@ 4051出力3pinが、バッファアンプ出力1pin(と−入力の2pin)につながっていた。
A そして、つながるべきバッファアンプの+入力3pinはオープンになっていた。
このミス配線を直したら、波形を表示できるようになったが、まだおかしい。
波形に細かいノイズが重畳しているし、ZEROポテンショがクリチカル過ぎる。
<調査>
@ 電源電圧とリップル確認
4051-VDD:5.03V
4051-VEE:-5.12V(リップル:5mVp-p以下)
バッファアンプ+AVCC:3.02V
バッファアンプーAVCC:4.79V(リップル:20mVp-p)
ここまでの結果を写真にまとめました。
A ZEROポテンショがクリチカルすぎるのは、後段アンプのゲインが配線ミス等によって異常に
高くなっていることも考えられるので、アンプ部各ステージのレベルを確認してみた。
オシロ入力に、3Vp-pサイン波を入力し、2.5V/D,
ACモードにセット
まず、初段のバッファ出力は、0.06Vp-pでOK(ATT比:x0.02)
2ndアンプ出力は、1.5Vのオフセットを中心に、0.06Vp-pのサイン波が出力されているので
この段もOK
ところが、終段アンプ出力は、オフセットの1.5Vは出力されているが、波形が、3Vp-pにならず
飽和している。(但し、2CHアナログ部はOKだった。1CHのみNG)
※ ここで配線をチェックした。
やはり誤配線が原因だった。(今回、2個目の誤配線発見)
2ndアンプの出力:1pinと、終段反転アンプの入力:6pinを、テスターで確認すると、
1kΩのはずが、0Ωになっていた。
これでは、ゲインが∞になり、飽和するのも当然である。
これは抵抗不良でなく配線ミスによるものである。
入力抵抗:1kΩは、アンプの−ピン(6pin)につながるべきが、フィードバック抵抗に
つながっていた。(2ndアンプ出力:1pinと終段アンプ入力:6pinが直接つながっていた。)
配線ミスを詳細に説明するのは気が引けるが、そこは「顛末記」、ありのままを書いてみた。
これを直し、やっと基本動作はOKになる。
ところが、ノイズ多し。気になるレベルである。
今一度、電源コンディションを確認した。
+5V: 5.04V
-5V-1(バッファアンプ用): -4.81V(リップル:20mVp-p)
-5V-2(4051用): -5.21V(リップル:5mVp-p以下)
AVCC: 3.01V
VCC: 3.28V
リップルノイズの表示への影響は殆どなくなった。
バックライトノイズ(まあ陰極管でなくLEDなのでインバータノイズの影響はないのだが?・・)
なのか、バックライトをOFFにするとノイズは極めて少なくなる。
また、ACアダプタの、5V出力に余裕のあるものを使うと、バックライトONでも、ノイズは極めて
少なくなる。
■ 2014.4.23
・昨日の結果を写真で、まとめてみました。
(ACアダプタの違いによる、+5Vラインのノイズも確認してみました。)
参考までに、使用しているACアダプタの仕様は次の通りです。
@ 容量の大きい方
Linkman: 「STD-05040U」
スペック: DC5V 4A出力
リップル:100mVp-p(max)
その他; 秋月のHPには、安定化出力のスイッチングACアダプタと書いてありました。
A 容量の小さい方
Go Forward Enterprise Corp.: 「NP12-1S0523」
スペック: DC5V 2.3A出力
リップル:150mVp-p(max)
その他; 秋月のHPには、スイッチングACアダプタと書いてありました。
・ACアダプタの違いによる、+5Vラインのノイズレベルの差は顕著ではないが、
容量の少ないACアダプタの方が、若干ではあるが、ノイズレベルは高い。
またノイズの周波数も高く見える。
この辺の差と、AD入力に乗ってくる輻射ノイズ又は、電源グランドノイズの影響が表示に現れるものと思われる。
通常は容量の大きいACアダプタ(5V4A)を使用し、容量の小さいACアダプタ(5V2.3A)
で使う時は、バックライトOFFにして使うことにした。
(この時点ではこのように考えたが、
先々気になり後日:140503、5V入力に、π型LCフィルタを追加する実験を行いました。)
容量の大きいACアダプタ(5V4A)を使用した場合の
電源コンディション(バックライトON時)を確認した。
+5V: 5.18V(リップル:5mVp-p以下)
-5V-1(バッファアンプ用): -4.95V(リップル:20mVp-p)
-5V-2(4051用): -5.21V(リップル:5mVp-p以下)
AVCC: 3.01V
VCC: 3.28V
これで、大方OKなので残る、GAINトリマの正式アジャスト(いつもの電池式DC電圧源治具にて2.5Vを
入力してアジャスト)と、SINGLE MODEチェック(波形取り)を行った。
SINGLE MODEの波形取りサンプルとしては、自作オシロ_V2の、LTC1144の入出力特性を
測定した。
見出しの写真(140428付)を参照してください。
■ 2014.4.24〜 2014.4.25
・2tのアクリル板を使い、前後パネルの加工を行った。
今回も、後パネルには、タカチの、T型チルトスタンド「TI-70S」を取付けました。
部品の高さの都合で、液晶の出っ張り部は、前アクリル板に開口部を設けて
外へ露出する形を取りました。
■ 2014.4.26〜 2014.4.28
・前後アクリル板の加工が済み、基板を前後パネルでスタッド越しにサンドイッチしてケーシングも無事完了。
前回のHP更新から、1ヶ月以上経ってしまったのでとりあえず、今回のテーマの、
見出し部用の、外観写真と、サンプル波形をアップすることにした。
まだやるべきことは残っている。
今までのドキュメント整理もそうだが、やはり、ACアダプターによってノイズの受け方が異なることが
気になってしょうがない。
■ 2014.5.3
・HP更新に向けて、記事を編集中だが、やはりノイズ対策をもう少しやってみたい気があり。
5Vラインのノイズ(ACアダプタの、スイッチング・ノイズと思われる)を、π型LCフィルタで減衰させる
ことが出来るのか?
まあ、手持ちの部品で、その辺の実験を行おうと思っているので、部品定数は限られてしまうが・・・
インダクタは、47uHで容量は不明(大きさから想像するとたぶん、1A以上)なのが手持ちにあるので
これを使ってみることにした。
より減衰させるには、1段より2段の方がよいに決まっているが、実際基板に実装する場合、P_ON
SW
付近にスペースが殆ど無いため、1段のπ型フィルタとした。
定数は、1次側:100u+0.1u/ L=47u/ 2次側:33u+0.1uとした。
実験は、基板の外で測定できるように、まずは、チューブラ配線のバラックにて行った。
以下に実験の様子と結果を示した。
・結果的には、π型LCフィルタを挿入することにより、2.3Aアダプタでも、ZERO入力時の、ZERO輝線表示
は、OKになった。(表示上、時々1dot変化するのは良しとした。)
やはり、この改造前の実験でも確認した通り、ノイズ周波数が低い方が、ノイズの表示への影響が
少なくなるようである。
今回のLCフィルタ追加実験でも、それが明らかになった。
2.3Aアダプタは、4Aアダプタと比較すると、その出力ノイズの周波数が高いのである。
それを、LCフィルタに通すと、レベルは殆ど同じだが、ノイズ周波数は低くなる。
その辺のところを、もうちょっと理論的に考察してみた。
表示上の電圧分解能を計算してみた。(あくまでも自分の考えです)
64dotある液晶画面の電圧軸の分解能からしても、表示上は、1目盛:3V/4=
0.75V と考えられるので、
ノイズで表示上、1dot動いた場合、電圧変化では、0.75V/(64/4)=
0.047Vに相当することになる。
つまり、47mV変化しないと、表示上、1dot動かない計算になる。
問題になっている、5V2.3Aアダプタでも、帯域不足で自作及び中華オシロでも見えないスパイクノイズの
レベルを除いた、リップル・ノイズレベル自体は、10mVp-p以下なので、表示上、1dot動く電圧変化と
比べて十分小さい。
ならば、何故動くのか?
高速オシロを持合せてないので、確認できなかったが、たぶんスイッチング・ACアダプタ特有の
スイッチング・ノイズ(リップルノイズに重畳するスパイクノイズ(いわゆる髭ノイズ))
のピーク・レベルが、47mVを超え、それをたまたまADCがサンプリングした時、1dot動いてしまうのではと考える。
先ほども述べたが、リップルノイズレベルは十分小さいのだが、その周波数が問題になっているように見える。
LCフィルタを追加する前でも、ZERO入力時の輝線が1dot以上変動する、2.3Aアダプタ使用時と変動しない、
4Aアダプタ使用時を比較すると、変動しないアダプタのリップルノイズ周波数の方が低く、
他方のアダプタ(2.3A)の方は高い。
たぶん、周波数が高い方が、ノイズがサンプルされる確率が高いからだと思われる。
ACアダプタ入力に、LCフィルタを追加すると、そのローパス(ハイカット)効果から、高い周波数成分(スパイクノイズ)
はある程度除去され、通過域の低い周波数のみ通過されるので、たとえスパイクノイズが乗っていたとしても、
そのレベルは小さくなっていてさらに、アダプターに関係なく、LCフィルタ通過後の、リップル周波数は下がるので
ノイズがサンプルされる確率が下がると考えられる。
現に、取得した波形でLCフィルタ通過後、リップル周波数が下がることは確認済である。
・実験が上手く行ったので、この部品のまま、ユニバーサル基板上に追加実装することにした。
P_ON SW周辺に、殆どスペースが無かったので、改造は大変だった。
以下に、改造の様子と、改造後の電源コンディションの再測定・波形表示・ノイズ波形等
示します。
・これでなんとか、ノイズ対策をFIXすることが出来たので、最後に回路図を整備してアップ
しようと思う。
<最終回路図>
・こちらから、どうぞ→ 「自作オシロ_V5(1/2)」 (デジタル部)
「自作オシロ_V5(2/2)」 (アナログ部)
<最終ソース及び、ヘッダファイル>
・こちらから、どうぞ→ Scope_V5.c
glcd_lib1_pic24hj64.c
glcd_lib_pic24hj64.h
font.h
← 実験テーマ1に戻る TOP PAGEに戻る 実験テーマ50へ →