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を買ってきたので差し替え。オープンコレクタ出力なので少し回路を手直しする。
さすがにTL082よりはシャープに切れる。
遅れが少なくなったので立ち下がり直後にAD変換だとピークよりだいぶ手前の値が取れて
しまう。立ち下がりで変換、直後にもう3回変換の計4回のデータが取れるようにした:
main.c
mtermm.c
mtermm.exe
mshowm.c
mshowm.exe
タクマー105/2.4密着、15時間くらい積算。
0がトリガ直後の変換、そのあと1、2、3と続く。1が一番良さそう。