top menu

トリガ取り込み

ピークホールド回路が不発に終わったのでトリガをかけてAD変換が できるようにコンパレータを追加する。と言ってもコンパレータの手持ちが なかったのでOPアンプで代用。

回路図

パターン

EAGLE(5.11)のファイルたち
g_detector_t.sch
g_detector_t.brd

作った基板

全部作るのは面倒だったのでコンパレータの部分だけ作って二号機の出力を 入れる:

測定風景

上がコンパレータ(OPアンプだけど)の出力。

一号機

結構遅れている。ここからAD変換開始だとちょっと遅すぎるか。


トリガをかけてAD変換するためにはAD0CRのBURSTビットを0にしてソフトウェア制御 モードにし、STARTビット(3bit)を010(または011)としてトリガ用のポートを選択、 EDGEビットで立ち上がりか立ち下がりを選択すればよい。
A/D Control Register (AD0CR)
  16 BURST
    0 ソフトウェア制御モード。
  26:24 START
    001 ただちに変換を開始します。
    010 ビット27 によって選択されたエッジがPIO0_2/SSEL/CT16B0_CAP0 で発生したときに、変換を開始します。
    011 ビット27 によって選択されたエッジがPIO1_5/DIR/CT32B0_CAP0 で発生したときに、変換を開始します。
  27 EDGE
    1 選択されたCAP/MAT 信号の立ち下がりエッジで変換を開始します。
ただし選択したポートの機能をCAPにしておく必要がある( マニュアルには明示的には書いてないのでハマった)。
IOCON_PIO0_2 register (IOCON_PIO0_2)
  2:0 FUNC
    010 機能CT16B0_CAP0 を選択します。
MARYのAD変換のライブラリadc.h/adc.cはBURSTモードのみなので 少し書き換える:
adc_t.h
adc_t.c

一号機

タクマー105/2.4密着、21分積算。悪くない (ノイズによるカウント(一つ目のピーク)もそこそこ見えるように 閾値を設定してある)。
LM393を買ってきたので差し替え。オープンコレクタ出力なので少し回路を手直しする。

LM393

さすがにTL082よりはシャープに切れる。

遅れが少なくなったので立ち下がり直後にAD変換だとピークよりだいぶ手前の値が取れて しまう。立ち下がりで変換、直後にもう3回変換の計4回のデータが取れるようにした:

main.c

mtermm.c
mtermm.exe
mshowm.c
mshowm.exe


4つのタイミングでのヒストグラム

タクマー105/2.4密着、15時間くらい積算。 0がトリガ直後の変換、そのあと1、2、3と続く。1が一番良さそう。