616336 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

工作工房

工作工房

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2009年02月03日
XML
カテゴリ:カテゴリ未分類
AD12-0V-Global Resources.jpg

AD12-0V-User Module Parameters.jpg

PSOCのADCINC12を使う方法ですが、なかなか思ったようにいきません。
A/Dの電圧は0~5Vの範囲ではなく約0~2.6Vの範囲です。しかも0Vに相当する値は-2048で、2.6Vは2047です。0~2.6Vの範囲のAD変換はGlobal ResourcesのRef Muxを(BandGap+/-BandGap)にしなければいけません。デフォルトは([Vdd/2]+/-BandGap)になっています。([Vdd/2]+/-BandGap)はPSOC電源の1/2の電圧がADのゼロとなり5Vの電圧を使用しているのであれば1.2V~3.8VがAD変換の電圧の範囲となり、0V~1.2Vの範囲はAD変換できなく、勘違いに、注意です(^^;)。Ref Muxの設定は8種類ありますが、この2種類を知っていれば、良いのではないかと思います。

初期化のプログラム例
// ---- ADCINC12 setup
ADCINC12_1_Start(ADCINC12_1_HIGHPOWER); // set power
ADCINC12_1_GetSamples(0); // set ADC to continuous sampling

// ---- PGA setup
PGA_1_Start(PGA_1_HIGHPOWER);

M8C_EnableGInt; //CPU ALL Interrupt Enable

AD変換の例
void adc12(void) //ADC 12bit disp
{
int ad;

while(ADCINC12_1_fIsDataAvailable() == 0); // Wait for ready
ADCINC12_1_ClearFlag(); // ADC clear flag
ad = ADCINC12_1_iGetData()+2048; // Get ADC result(Ref Mux : Band Gap +/- Band Gap)
}





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2009年02月04日 00時49分25秒
コメント(2) | コメントを書く



© Rakuten Group, Inc.