Dialog DA14531 — ADC

(Gowtham TS)

A アナログから

D igital C onverterは、アナログ信号をデジタル形式に変換します。デジタル形式は、任意の計算要素で使用/操作できます。アナログ信号は定期的にサンプリングされ、デジタルで再作成されます。

DA14531には、4入力シングルエンドチャネル(または2つの差動チャネル)を備えた10ビットADCがあります。 4つの入力チャネルは、4つのGPIO、温度センサー、VBAT_HIGHレール、VBAT_LOWレール、およびVDDから選択できます。また、1x、2x、3x、4xの4つのオプションを備えた構成可能な減衰器があります。減衰器を4倍にすると、-3.45V〜 + 3.45Vの最大電圧範囲をサンプリングできます。

プロジェクトのセットアップ

このチュートリアルのコードを含むプロジェクトは、Githubの httpsで入手できます。 ://github.com/vicara-hq/da14531-tutorials

プロジェクトをダウンロードしてコピーします。プロジェクトは、DialogSDK6フォルダー内に配置する必要があります。 / projects / target_apps / template に移動し、このフォルダーに貼り付けます。このプロジェクトは、Dialogが提供する empty_peripheral_template プロジェクトの修正バージョンです。ただし、このチュートリアルシリーズを可能な限りオープンソースに保つために、次のすべての手順ではSmartSnippetsStudioを使用します。

ハードウェアの概要

DA14531Tinyモジュールを備えたDA145xxProマザーボードを使用します。ドーターボード、いくつかのジャンパー、ブレッドボード。また、同じ値の2つの抵抗が必要になるか、ポテンショメータを使用することもできます(出力を確認するにはマルチメータが必要です)。

DA14531マザーボードの2つの4.7kOhm抵抗と3VレールをVCCとして使用しました。

コードの概要

このチュートリアルの目的は、電圧をサンプリングし、DA14531でのADCの基本的な使用法を示すことです。

最初に、P0_7をADCピンとして構成する必要があります。これはuser_periph_setup.cファイルで行われます。

以下のコードブロックは、ADCを構成します。

adc_config_t adc_cfg = {
.input_mode = ADC_INPUT_MODE_SINGLE_ENDED,
.input = ADC_INPUT_SE_P0_7,
.smpl_time_mult = 2,
.continuous = false,
.interval_mult = 0,
.input_attenuator = ADC_INPUT_ATTN_2X,
.chopping = false,
.oversampling = 0
};adc_offset_calibrate(ADC_INPUT_MODE_SINGLE_ENDED);adc_init( &adc_cfg);

構成構造では、モードをシングルエンドに設定し、予想される電圧が約1.5Vであるため、減衰を2倍に設定します。 ADCを初期化する前に、ADCも調整する関数が呼び出されます。

この関数を呼び出して、カスタムの app_on_init コールバックで電圧をサンプリングします。カスタムコールバックの詳細については、(GPIO、ボタン、LED)に関するチュートリアルをご覧ください。

テスト

これをテストする最も簡単な方法は、デバッガーを実行し、変数 adc_sample をExpressionsウォッチウィンドウに追加することです。式ウォッチウィンドウに変数を追加してその値を確認するには:

  • 変数を選択します
  • 変数を右クリックして、[ウォッチ式の追加]を選択します。
  • 開いたウィンドウで[OK]をクリックします
  • 数秒後にデバッガーを一時停止し、変数の値を確認します。

取得した値は0x3A0でした。 ADCの基準電圧は0.9Vであり、10ビットADCであるため、値は次のようになります。

0x3A0 = 928 (in decimal)2 * 928 * (0.9/1024) = 1.63V 

取得した値はより少し高い期待されます。このエラーは、オーバーサンプリングなどの手法を使用することで減らすことができますが、これは別のチュートリアルの高度なトピックです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です