アンペロメトリー測定 ******************** アンペロメトリー測定パラメータ ============================== 測定波形と、対応するパラメータを :numref:`am_waveforms` に示します。青字で示されているパラメータをホストから指定します。 標準モードでは、基準電圧が 1.1V 固定となり、-1.1V から +1.1V までの電圧を出力することができます。詳細モードでは、基準電圧と端子電圧を個別に 0V から 2.2V までの範囲で任意に設定可能です。例えば、基準電圧を 0.44V に設定すると、端子間電圧範囲を -0.44V から +1.76V にできます。この場合でも、端子電圧として設定する値は 0V から 2.2V です。 | .. figure:: resources/am_waveforms.svg :name: am_waveforms :align: center :width: 680px アンペロメトリー測定波形 アンペロメトリー測定シーケンス ================================== アンペロメトリー測定での、動作シーケンスを :numref:`am_measure_seq` に示します。標準モード、詳細モードともに同じ動作シーケンスで測定が実行されます。 .. figure:: resources/am_measure_seq.png :name: am_measure_seq :align: center :width: 600px アンペロメトリー測定シーケンス 測定開始後、パラメータで指定された測定間隔で測定値を送信します。最終測定値は、必ず測定時間で指定されたタイミングの測定値を送信します。測定時間によっては、測定間隔未満に送信されることがあります。 | .. note:: サンプリングポイント 測定プロトコルでは、指定時間経過後の電流値を最終測定値としています。測定時間内のサンプリングポイントは、途中経過の表示を意図しています。 コマンドの完了時に、OK(0x4f, 0x4b)またはNG(0x4e, 0x47)を送信します。 測定開始コマンドから、OK/NG が送信されるまでの間、他のコマンドは受け付けません。 | | .. important:: * 最小測定間隔の決定 * 測定開始前に、キャリブレーションが実行されているかの確認をシーケンス図に追加 | 微分パルスボルタンメトリー測定 (DPV) ************************************ DPV 測定パラメータ ================== 測定波形と、対応するパラメータを下図に示します。青字で示されているパラメータをホストから指定します。サンプリング遅延比を除いたパラメータは、測定開始コマンドで一括して指定します。サンプリング遅延比は、専用の設定コマンドを使用します。 | .. note:: 現時点ではサンプリング遅延比は 0.9 で固定です。専用の設定コマンドは未実装です。 | .. figure:: resources/dpv_waveform.svg :name: dpv_waveform :alt: 微分パルスボルタンメトリー測定波形 :align: center :width: 650px 測定波形とパラメータ DPV 測定シーケンス ====================== 測定シーケンスを :numref:`dpv_std_measure_seq` に示します。 .. figure:: resources/Potentiostat_Control.png :name: dpv_std_measure_seq :alt: 通信シーケンス :width: 500px :align: center 標準モード測定シーケンス 測定開始直後、平衡化処理が実行されます。この間測定器は応答を返しません。平衡化時間に指定する時間は、秒単位になることがあるためタイムアウトに注意してください。 平衡化時間が経過すると、測定データを、ステップ時間間隔で送信します。 コマンドの完了時に、OK(0x4f, 0x4b)またはNG(0x4e, 0x47)を送信します。 測定開始コマンドから、OK/NG が送信されるまでの間、他のコマンドは受け付けません。 | | .. important:: * パルス幅、ステップ周期、平衡化時間の最小値を決定しなければなりません。 * 測定開始前に、キャリブレーションが実行されているかの確認をシーケンス図に追加する必要があります。 通信コマンド ************ 概要 ==== 通信コマンドの一覧を :numref:`comm_cmds_list` に示します。 .. table:: 通信コマンド一覧 :name: comm_cmds_list +--------+------------------------------+ | コード | 名称 | +========+==============================+ | C | キャリブレーションコマンド | +--------+------------------------------+ | A | アンペロメトリー測定 | +--------+------------------------------+ | D | DPV 測定 | +--------+------------------------------+ | コマンドの通信フォーマットの詳細を記述します。フォーマット図は、一つの枠が 1 バイトを示します。また、下記のような背景色による区別をしています。 * コマンド文字と終端文字は青色の背景色です。 * 緑色の背景色のパラメータは固定長です。 * 赤色の背景色のパラメータは可変長に対応します。フォーマット図では、固定長として記載されていますが、ゼロフィルなどは必要ありません。 * 数値パラメータに関して、フォーマット図のバイト範囲の下に指定可能な数値範囲を示しています。ここに符号文字が含まれる場合は、先頭に符号文字を付加できます。正の数値の場合は省略できます。 * 区切り文字はカンマ(0x2c)です。 キャリブレーション ================== キャリブレーションを実行します。キャリブレーションは、測定開始直前に実行して下さい。このとき、測定プローブがチップに接触していない状態で行う必要があります。測定方法によって、実行しなければならないキャリブレーションが異なります。フラグは同時に複数設定可能です。 | .. wavedrom:: resources/calibration.json .. table:: キャリブレーションコマンドフォーマット :name: cal_cmd_format +--------+------------------------------+------------------------------------------------------------------+ | バイト | 名称 | 説明 | +========+==============================+==================================================================+ | 0 | キャリブレーションコマンド | | +--------+------------------------------+------------------------------------------------------------------+ | 1 | フラグ | | 実行するキャリブレーションを指定します。 | | | | * bit[0]: 低電力TIAゲイン抵抗 (LPRTIA) | | | | * bit[1]: A/Dコンバータプリゲインアンプ (ADCPGA) | | | | * bit[2]: 低周波発振器 (LFOSC) | +--------+------------------------------+------------------------------------------------------------------+ | アンペロメトリー測定では、次のキャリブレーションを測定開始直前に実行して下さい。 * A/Dコンバータプリゲインアンプ (bit[1]) | DPV測定では、次のキャリブレーションを測定開始直前に実行して下さい。 * 低電力TIAゲイン抵抗 (bit[0]) * 低周波発振器 (bit[2]) | | キャリブレーションの応答フォーマット ------------------------------------ キャリブレーションコマンドの応答フォーマットを示します。指定されたフラグのキャリブレーションが順次実行され、それぞれに対して結果が返されます。パラメータがどのキャリブレーションに対応するものかは、先頭のフラグを参照して下さい。実行されたキャリブレーションに対応する応答が、全て送信されたあとに OK または NG が送信されます。 | .. wavedrom:: resources/calibration_reply.json .. table:: キャリブレーションパラメータ :name: cal_reply_param +----------+------------------------------------------------------------------+ | 名称 | 説明 | +==========+==================================================================+ | LPRTIA | ゲイン抵抗値をオーム単位で返します。 | +----------+------------------------------------------------------------------+ | ADCPGA | アンプのゲインを返します。 | +----------+------------------------------------------------------------------+ | LSOSC | 低周波発振器の周波数を Hz 単位で返します。 | +----------+------------------------------------------------------------------+ | .. note:: 現時点では応答フォーマットに含まれるパラメータを使用する必要はありませんが、測定データのエクスポート機能を実装する場合、パラメータを含めて下さい。 .. important:: キャリブレーションが失敗した時の応答と、その対処方法を確立すること。ホストからリセットをかける方法が必要か。 アンペロメトリー測定 ==================== アンペロペトリー測定を開始します。標準モードと詳細モードでコマンドフォーマットが異なります。 | .. note:: 測定開始コマンドを受け付けてから、一定時間経過後から測定値を送信する動作は、HRP 活性測定プロトコルの記述に基づいています。 標準モードのコマンドフォーマット -------------------------------- .. wavedrom:: resources/apm_std_measure.json .. table:: アンペロメトリー測定開始コマンドフォーマット :width: 100% +--------+--------------------+------------------------------------------------------------------+ | バイト | 名称 | 説明 | +========+====================+==================================================================+ | 0 | アンペロトリー測定 | 基準電圧を 1.1V として、端子電圧を指定する標準モード | +--------+--------------------+------------------------------------------------------------------+ | 1 | モード | * 0: 標準モードで測定を開始します。 | | | | * 1: 詳細モードで測定を開始します。 | +--------+--------------------+------------------------------------------------------------------+ | 3:8 | 平衡化電圧 | 測定値の送信を開始するまでの時間をミリ秒単位で指定します。 | +--------+--------------------+------------------------------------------------------------------+ | 10:13 | 端子電圧 | 端子電圧をミリボルト単位で指定します。 | +--------+--------------------+------------------------------------------------------------------+ | 15:18 | 測定間隔 | 測定値をサンプリング、送信する間隔をミリ秒単位で指定します。 | | | | | +--------+--------------------+------------------------------------------------------------------+ | 20:24 | 測定時間 | 最終測定値をサンプリング、送信する時間をミリ秒単位で指定します。 | +--------+--------------------+------------------------------------------------------------------+ 詳細モードのコマンドフォーマット -------------------------------- .. wavedrom:: resources/apm_adv_measure.json .. table:: アンペロメトリー測定開始コマンドフォーマット :width: 100% +--------+--------------------+------------------------------------------------------------------+ | バイト | 名称 | 説明 | +========+====================+==================================================================+ | 0 | アンペロトリー測定 | 基準電圧と端子電圧を個別に指定する詳細モード | +--------+--------------------+------------------------------------------------------------------+ | 1 | モード | * 0: 標準モードで測定を開始します。 | | | | * 1: 詳細モードで測定を開始します。 | +--------+--------------------+------------------------------------------------------------------+ | 3:8 | 平衡化電圧 | 測定値の送信を開始するまでの時間をミリ秒単位で指定します。 | +--------+--------------------+------------------------------------------------------------------+ | 10:13 | 基準電圧 | 基準電圧をミリボルト単位で指定します。 | +--------+--------------------+------------------------------------------------------------------+ | 15:18 | 端子電圧 | 端子電圧をミリボルト単位で指定します。 | +--------+--------------------+------------------------------------------------------------------+ | 20:23 | 測定間隔 | 測定値をサンプリング、送信する間隔をミリ秒単位で指定します。 | | | | | +--------+--------------------+------------------------------------------------------------------+ | 25:29 | 測定時間 | 最終測定値をサンプリング、送信する時間をミリ秒単位で指定します。 | +--------+--------------------+------------------------------------------------------------------+ 測定データの応答フォーマット ---------------------------- 測定値は、測定コマンドが送信され、平衡化時間経過後から送信されます。最終測定値は、OK が送信される直前の応答になります。標準モード、詳細モードともに同じ応答フォーマットです。送信される測定データは、次のような形式送信されます。 | .. wavedrom:: resources/apm_reply.json .. table:: 標準モード測定値フォーマット +--------+--------------------+------------------------------------------------------------------+ | バイト | 名称 | 説明 | +========+====================+==================================================================+ | 0:3 | インデックス | 測定順序を示す、1から始まる連続した番号です。 | +--------+--------------------+------------------------------------------------------------------+ | 5:14 | 測定値 | 測定値をナノアンペア単位で送信します。 | +--------+--------------------+------------------------------------------------------------------+ DPV 測定 ======== 微分パルスボルタンメトリー (DPV) 測定を開始します。 | .. wavedrom:: resources/dpv_std_measure.json .. table:: 測定開始コマンドフォーマット :width: 100% +--------+--------------------+------------------------------------------------------------------+ | バイト | 名称 | 説明 | +========+====================+==================================================================+ | 0 | 測定開始コマンド | | +--------+--------------------+------------------------------------------------------------------+ | 1 | モード | * 0: 標準モードで測定を開始します。 | | | | * 1: 詳細モードで測定を開始します。 | +--------+--------------------+------------------------------------------------------------------+ | 3:7 | 開始電圧 | 開始電圧をミリボルト単位で指定します。 | +--------+--------------------+------------------------------------------------------------------+ | 9:13 | 終了電圧 | 開始電圧をミリボルト単位で指定します。 | +--------+--------------------+------------------------------------------------------------------+ | 15:18 | 平衡化電圧 | 測定開始時に一定時間出力する電圧値をミリボルト単位で指定します。 | | | | | +--------+--------------------+------------------------------------------------------------------+ | 20:25 | 平衡化時間 | 測定開始時に指定された時間一定の電圧を出力します。 | +--------+--------------------+------------------------------------------------------------------+ | 27:30 | ステップ周期 | 一つの測定を取得する動作の周期をミリ秒単位で指定します。 | +--------+--------------------+------------------------------------------------------------------+ | 32:35 | パルス幅 | パルス幅をミリ秒単位でで指定します。 | +--------+--------------------+------------------------------------------------------------------+ | 37:42 | ステップ電圧 | ステップ電圧をマイクロボルト単位でで指定します。 | +--------+--------------------+------------------------------------------------------------------+ | 44:49 | ステップ電圧 | パルス電圧をマイクロボルト単位でで指定します。 | +--------+--------------------+------------------------------------------------------------------+ 測定データの応答フォーマット ---------------------------- 測定値の送信数は、次のようになります。送信間隔はステップ周期とほぼ同じになります。ポテンショスタットが何らかの理由で停止し、測定値が必要数に満たない可能性があります。測定値の受信期間は、タイムアウト処理を行ってください。 .. math:: \mathrm{データ送信数 = \frac{終了電圧 - 開始電圧}{ステップ電圧}} 標準モード """""""""" 送信される測定データは、次のような形式送信されます。 .. wavedrom:: resources/dpv_std_reply.json .. table:: 標準モード測定値フォーマット +--------+--------------------+------------------------------------------------------------------+ | バイト | 名称 | 説明 | +========+====================+==================================================================+ | 0:3 | インデックス | 測定順序を示す、1から始まる連続した番号です。 | +--------+--------------------+------------------------------------------------------------------+ | 5:14 | 測定値 | 測定値をナノアンペア単位で送信します。 | +--------+--------------------+------------------------------------------------------------------+ 詳細モード """""""""" 送信される測定データは、次のような形式送信されます。詳細モードは、変換処理を行なっていない測定値と、検証に必要な追加のパラメータを送信します。 .. wavedrom:: resources/dpv_adv_reply.json .. table:: 詳細モード測定値フォーマット +--------+--------------------+------------------------------------------------------------------+ | バイト | 名称 | 説明 | +========+====================+==================================================================+ | 0:3 | インデックス | 測定順序を示す、1から始まる連続した番号です。 | +--------+--------------------+------------------------------------------------------------------+ | 5:14 | 測定値1 | パルス期間の測定値です。 | +--------+--------------------+------------------------------------------------------------------+ | 16:25 | 測定値2 | パルス立ち下がり後の測定値です。 | +--------+--------------------+------------------------------------------------------------------+ | 27:31 | DACコード1 | パルス期間の D/A コンバータの出力設定値です。 | +--------+--------------------+------------------------------------------------------------------+ | 33:37 | DACコード2 | パルス立ち下がり後の D/A コンバータの出力設定値です。 | +--------+--------------------+------------------------------------------------------------------+