Darkside(https対応しました)

2014年8月8日(金) 21:27

簡単な方クリア

 dsPIC の A/D 変換に関しては、ネット上に作例がいろいろ転がっている。
 しかしそのまま流用しても動かないというのが厄介なところで、PIC16F88 内蔵フラッシュの読み書きでも非常に苦労させられた。
 外付け回路の状態によっては、不適切な初期設定でも動いてしまう場合があるのかもしれない。

 いくつもサンプルを試し、ようやく単一チャンネルでの変換が可能となった。予想通り、極めて高速に下位桁の値が変化しまくっている。10ビットだから最大値は03FFであり、それが電源電圧の5Vに相当する。分母が1024ではなく1023だというのはアセンブラーだと厄介だが、Cを使う分には大して問題ではない。

 問題は、この次だ。
 バッテリー電圧モニターはのんびりやれるが、スピーカー電圧変化は高速処理したい。そもそも12ビットではなく10ビット A/D を選択したのは、サンプリングが高速だからである。しかし、普通に単一チャンネルを処理したのでは、サンプルホールドと変換という2段階が必要になって最高速が出ない。2つのチャンネルを交互に使い、一方がサンプルホールドやっている最中にもう一方が変換を行うという並列処理にして、倍速を出さねばならない。

 dsPIC30F4012 はそれができるはずだが、自分の思い違いでそういう機能は実現できないのかもしれない。できるとしても、膨大なパラメーターのどこをどう設定すれば良いのか。ダブルバッファー交互変換による高速サンプリング、というのはなかなか実例がない。

written by higashino [高度測定装置] [この記事のURL] [コメントを書く] [コメント(1)] [TB(0)]

この記事へのトラックバックPingURL

Comments

『タイミングチャート』

S/HとADCのタイミングチャートを見ると、ADCが変換中はS/Hが動かないようにも見えるのですが、単にタイミングチャート上そうなっているだけなのか?
ブロック図からすれば別々に動いても良さそうなものですけど。

written by GAMA

TrackBacks

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4