Cosmo-Z Library
2.0.5
|
Cosmo-Z library headder [詳解]
#include <stdio.h>
#include <stdint.h>
#include <time.h>
データ構造 | |
struct | ADC_INFO |
ADCの情報を調べた結果が入る構造体 [詳解] | |
struct | ANALOG_CH_INFO |
アナログチャネルの情報 [詳解] | |
struct | CAPTURE_INFO |
波形キャプチャの実行結果 [詳解] | |
struct | EVHEADER_STR |
マクロ定義 | |
#define | FIRMWARE_VERSION 0x02000301 |
#define | FIRMWARE_DATE 0x20171025 |
#define | MAX_REGS 64 |
#define | MAX_EXTCH 4 |
#define | NULL ((void *)0) |
ぬるぽ | |
#define | BOOL int |
C言語ではBOOLがないのでintでtypedefしておく | |
#define | TRUE 1 |
C言語ではBOOL型がないので1に定義しておく | |
#define | FALSE 0 |
C言語ではBOOL型がないので0に定義しておく | |
型定義 | |
typedef struct ADC_INFO | ADC_INFO |
ADCの情報を調べた結果が入る構造体 | |
typedef struct ANALOG_CH_INFO | ANALOG_CH_INFO |
アナログチャネルの情報 [詳解] | |
typedef struct CAPTURE_INFO | CAPTURE_INFO |
波形キャプチャの実行結果 | |
typedef struct EVHEADER_STR | EVHEADER_STR |
typedef BOOL(* | CALLBACK_EVENTCAP) (uint16_t *data, int datacount) |
列挙型 | |
enum | CAPTURE_STATUS { CAPSTAT_IDLE, CAPSTAT_TRIGWAIT, CAPSTAT_RUN } |
波形キャプチャの現在の状態 [詳解] | |
enum | CAPTURE_RESULT { CAPRESULT_SUCCESS, CAPRESULT_ABORTED, CAPRESULT_ERROR, CAPRESULT_ANOTHERRUN, CAPRESULT_TRIGGER_TIMEOUT } |
波形キャプチャの実行結果 [詳解] | |
enum | CAPTURE_TRIGGER { CAPTRIG_AUTO, CAPTRIG_NORMAL, CAPTRIG_IMMEDIATE, CAPTRIG_LONG } |
波形キャプチャの方法を示す [詳解] | |
enum | TRIGTYPE { TRIGTYPE_OFF, TRIGTYPE_UPPER, TRIGTYPE_LOWER, TRIGTYPE_CROSS, TRIGTYPE_DISCRI, TRIGTYPE_RISE, TRIGTYPE_FALL, TRIGTYPE_LINKAGE, TRIGTYPE_USER, TRIGTYPE_ERROR } |
トリガの方法を示す [詳解] | |
enum | EXTTRIGTYPE { EXTTRIGTYPE_OFF, EXTTRIGTYPE_RISE, EXTTRIGTYPE_FALL, EXTTRIGTYPE_HIGH } |
ディジタル入力トリガの方法を示す [詳解] | |
enum | COSMOZ_ERROR { CSZERR_ILLEGAL_REGNUM, CSZERR_MEMRANGE_OVERFLOW, CSZERR_MEMADDR_ALIGNMENT, CSZERR_UNSUPPORTED_FREQ, CSZERR_ILLEGAL_CHNUM, CSZERR_TRIGRANGE_OVER } |
エラーの定義 [詳解] | |
関数 | |
BOOL | csz_open () |
ドライバをオープンし、その他の雑多な初期化処理を行う。 [詳解] | |
uint32_t | csz_firmware_version () |
ファームウェアのバージョンを返す | |
uint32_t | csz_firmware_date () |
ファームウェアの日付を返す | |
uint32_t | csz_driver_version () |
ドライバのバージョンを返す | |
uint32_t | csz_fpga_version () |
FPGAのバージョンを返す | |
void | csz_close () |
CosmoZライブラリをクローズする関数 [詳解] | |
uint64_t | csz_time48 () |
48bitタイムスタンプの値を返す [詳解] | |
uint32_t | csz_reg_read (int regnum) |
FPGA内蔵レジスタの読み出し [詳解] | |
BOOL | csz_reg_write (int regnum, uint32_t val) |
FPGA内蔵レジスタへ書き込み [詳解] | |
int | csz_mem_read (uint32_t addr, int len, void *buf) |
DMA用メモリのリード [詳解] | |
int | csz_mem_write (uint32_t addr, int len, void *buf) |
DMA用メモリのライト [詳解] | |
void | csz_mem_info (uint32_t *base_addr, ssize_t *size) |
メモリの情報を調べる | |
void | csz_mem_dump (int offset, int len) |
メモリの内容をダンプする | |
BOOL | csz_mem_test () |
メモリのテストを行う | |
char * | csz_get_error () |
最終エラーの内容をテキストで受け取る | |
uint32_t | csz_adc_val (int ch) |
現在のADCの値を取得する [詳解] | |
void | csz_adc_reset () |
ADCをソフトリセットし、同期を取り直す [詳解] | |
BOOL | csz_adc_freq (int freq) |
ADCの周波数を設定し、同期をリセットする。 [詳解] | |
int | csz_adc_getfreq () |
現在のADCのサンプリング周波数を取得する [詳解] | |
void | csz_adc_getinfo (ADC_INFO *info) |
ADCに関する情報を取得する [詳解] | |
void | csz_adc_testmode (BOOL on, int option) |
ADをがテストモードにする [詳解] | |
BOOL | csz_adc_is_testmode () |
ADCがテストモードかどうかを調べる [詳解] | |
int | csz_adc_maxch () |
ADCのチャンネル数を取得する [詳解] | |
void | csz_adc_calstat () |
キャリブレーションの結果を表示(テスト用) | |
void | csz_adc_enumerate (int *adcnum, char partnum[8][32]) |
どのようなADCが接続されているか調べ上げる | |
void | csz_adc_regdump () |
ADCのレジスタを表示 | |
CAPTURE_INFO | csz_capture_execute (uint32_t chmask, int length, CAPTURE_TRIGGER type) |
波形キャプチャを実行する [詳解] | |
void | csz_capture_datacopy (CAPTURE_INFO info, int ch, uint16_t *result) |
キャプチャされた波形データをユーザバッファにコピーする [詳解] | |
void | csz_capture_datacopy32 (CAPTURE_INFO info, int ch, uint32_t *result) |
キャプチャされた波形データを32bitとしてユーザバッファにコピーする [詳解] | |
void | csz_capture_timeout (int ms) |
タイムアウトを指定する [詳解] | |
int | csz_capture_get_timeout () |
キャプチャのタイムアウト時間を取得する | |
void | csz_capture_abort () |
現在の波形キャプチャを中断する | |
CAPTURE_STATUS | csz_capture_status () |
現在のキャプチャの状態(RUNか、IDLEか、TRIGWAITか)を返す | |
CAPTURE_INFO | csz_evcap_execute (uint32_t chmask, int count, CALLBACK_EVENTCAP func) |
BOOL | csz_evcap_get_next (CAPTURE_INFO *info, EVHEADER_STR *hdr, uint16_t *data) |
void | csz_trig_ortrig (BOOL ortrig) |
トリガをORトリガ(全チャネルのうちの1つでもヒットしたら、全体のトリガをかける)に設定する | |
BOOL | csz_trig_is_ortrig () |
現在ORトリガが適用されているかを調べる | |
BOOL | csz_trig_set (int ch, TRIGTYPE type, int val) |
トリガをセットする [詳解] | |
BOOL | csz_trig_set_voltage (int ch, TRIGTYPE type, double voltage) |
電圧でトリガをセットする [詳解] | |
TRIGTYPE | csz_trig_gettype (int ch) |
トリガのタイプを取得する [詳解] | |
int | csz_trig_getadcval (int ch) |
トリガのタイプを取得する [詳解] | |
double | csz_trig_getvoltage (int ch) |
トリガの値を電圧として取得する [詳解] | |
const char * | csz_trig_tostr (TRIGTYPE type) |
トリガの値を電圧で取得する [詳解] | |
int | csz_trig_rate (int ch) |
トリガのカウントレートを調べる | |
int | csz_trig_pulseheight (int ch) |
トリガがかかっているパルスハイトを調べる | |
int | csz_trig_pedestal (int ch) |
トリガがかかっていない状態のADC値を調べる | |
BOOL | csz_pretrig_set (int pre) |
プレトリガ(トリガ点より前に何ポイント取るか)を設定する | |
void | csz_pretrig_type (BOOL extend) |
プレトリガのタイプを指定 [詳解] | |
int | csz_pretrig_get () |
現在のプレトリガを取得する | |
int | csz_pretrig_max () |
FPGAに設定可能なプレトリガの最大値を調べる [詳解] | |
BOOL | csz_posttrig_set (int pre) |
ポストトリガの長さを設定する | |
int | csz_posttrig_get () |
ポストトリガの長さを取得する | |
void | csz_posttrig_fixed (BOOL fixed) |
ポストトリガのタイプを固定長にする | |
BOOL | csz_posttrig_is_fixed () |
ポストトリガのタイプが固定長であるか調べる | |
BOOL | csz_exttrig_set (int extch, EXTTRIGTYPE type) |
外部トリガを設定 [詳解] | |
const char * | csz_exttrig_tostr (EXTTRIGTYPE type) |
外部トリガのタイプを文字列にする | |
EXTTRIGTYPE | csz_exttrig_get (int extch) |
外部トリガの状態を取得 [詳解] | |
BOOL | csz_gps_time (uint32_t *gps_time, uint32_t *gps_10ns, uint32_t *gps_maxcount) |
GPSに同期した時刻を得る [詳解] | |
void | csz_gps_settime (time_t time) |
GPS時刻を設定する [詳解] | |
double | csz_xadc_tempe () |
FPGAの温度を返す | |
double | csz_xadc_vccint () |
FPGAのコア電圧を返す | |
double | csz_xadc_vccaux () |
FPGAのAUX電圧を返す | |
double | csz_xadc_vccddro () |
FPGAのDDR電圧を返す | |
void | csz_set_error (COSMOZ_ERROR err) |
エラーのセット | |
double | csz_point2us (int point) |
現在のADCのサンプリング速度の設定で、データ点数を時間に変換する [詳解] | |
int | csz_us2point (double us) |
現在のADCのサンプリング速度の設定で、時間をデータ点数に変換する [詳解] | |
void | disable_ctrlc () |
CTRL+Cを無効にする | |
BOOL | is_crtlc_pushed () |
ctrlcが押されたことを知る | |
Cosmo-Z library headder
Cosmo-Z Firmware Library
typedef struct ANALOG_CH_INFO ANALOG_CH_INFO |
アナログチャネルの情報
enum CAPTURE_RESULT |
enum CAPTURE_STATUS |
enum CAPTURE_TRIGGER |
enum COSMOZ_ERROR |
エラーの定義
enum EXTTRIGTYPE |
enum TRIGTYPE |
トリガの方法を示す
BOOL csz_adc_freq | ( | int | freq | ) |
ADCの周波数を設定し、同期をリセットする。
freq | サンプリング周波数
|
int csz_adc_getfreq | ( | ) |
現在のADCのサンプリング周波数を取得する
ADCに与えているクロックの周波数ではなく、デシメーション後の周波数
void csz_adc_getinfo | ( | ADC_INFO * | info | ) |
ADCに関する情報を取得する
BOOL csz_adc_is_testmode | ( | ) |
ADCがテストモードかどうかを調べる
int csz_adc_maxch | ( | ) |
ADCのチャンネル数を取得する
void csz_adc_reset | ( | ) |
ADCをソフトリセットし、同期を取り直す
void csz_adc_testmode | ( | BOOL | on, |
int | option | ||
) |
ADをがテストモードにする
実際にADCをテストモードにするのではなく、FPGA内でテストデータを発生させる。
Cosmo-Zでは、FPGA内の演算によって、指数関数的に減衰する波形「exp(-t/τ)」をLPFでなまらせたような波形を発生させる。
on | TRUEならばテストモードにする。 FALSEならば通常動作モードにする |
option | テストモードのオプション設定(通常は0にする) |
uint32_t csz_adc_val | ( | int | ch | ) |
現在のADCの値を取得する
ch | 調べたいADCのチャネル番号。1~32の範囲で指定すること。 |
関数を呼び出したタイミングでサンプリングされる。チャネルの同期などは行われない。
チャネル番号が範囲外のときには-1が返され、エラーコード CSZERR_ILLEGAL_CHNUM がセットされる。
void csz_capture_datacopy | ( | CAPTURE_INFO | info, |
int | ch, | ||
uint16_t * | result | ||
) |
キャプチャされた波形データをユーザバッファにコピーする
csz_capture_execute()で得られた実行結果構造体 | ||
ch | 取得したいチャネルの番号 (1-32) | |
[out] | result | データがコピーされるユーザバッファ。uint16_tである。 |
void csz_capture_datacopy32 | ( | CAPTURE_INFO | info, |
int | ch, | ||
uint32_t * | result | ||
) |
キャプチャされた波形データを32bitとしてユーザバッファにコピーする
csz_capture_execute()で得られた実行結果構造体 | ||
ch | 取得したいチャネルの番号 (1-32) | |
[out] | result | データがコピーされるユーザバッファ。uint32_tである。 |
CAPTURE_INFO csz_capture_execute | ( | uint32_t | chmask, |
int | length, | ||
CAPTURE_TRIGGER | type | ||
) |
波形キャプチャを実行する
chmask | キャプチャしたいチャネルを2進数のビットマスクで指定する。 例えば、CH1とCH3とCH7,8をキャプチャしたい場合には0xc5とする。 |
length | キャプチャしたい長さを、データ点数で指定する。 |
type | キャプチャの方法を指定する |
void csz_capture_timeout | ( | int | ms | ) |
タイムアウトを指定する
キャプチャを開始してもトリガが入らない場合にタイムアウトする時間を設定する。
タイムアウトすると csz_capture_execute() は CAPRESULT_TRIGGER_TIMEOUT を返す
ms | タイムアウト時間。ms単位。 |
void csz_close | ( | ) |
CosmoZライブラリをクローズする関数
ドライバをクローズし、その他の雑多なメモリの開放や環境の復元を行います。
EXTTRIGTYPE csz_exttrig_get | ( | int | extch | ) |
外部トリガの状態を取得
extch | 0-3 チャネル番号 |
BOOL csz_exttrig_set | ( | int | extch, |
EXTTRIGTYPE | type | ||
) |
外部トリガを設定
extch | 0-3 チャネル番号 |
type | 外部トリガタイプ |
void csz_gps_settime | ( | time_t | time | ) |
GPS時刻を設定する
現在のGPS時刻。Unix時刻形式で与える |
BOOL csz_gps_time | ( | uint32_t * | gps_time, |
uint32_t * | gps_10ns, | ||
uint32_t * | gps_maxcount | ||
) |
GPSに同期した時刻を得る
[out] | gps_time | GPSの1pps信号で数えた時刻 |
[out] | gps_10ns | 1pps間の10nsクロックの現在のカウント数 |
[out] | gps_maxcount | 10nsクロックが何個でGPSの1ppsとなるか |
int csz_mem_read | ( | uint32_t | addr, |
int | len, | ||
void * | buf | ||
) |
DMA用メモリのリード
FPGAが計測したデータが入るメモリ(DMAバッファ)の内容を読み出す。 Cosmo-Zでは物理アドレス0x20000000~0x3fffffffがDMAバッファであるが、 引数で指定する値は0~0x1fffffffとする。 自動的にオフセットとして0x20000000が加わる。
addr | 読み込みたいアドレス(Cosmo-Zでは0~0x1fffffff) バイト単位 | |
len | 読み込むサイズ。バイト単位 | |
[out] | buf | 読み込んだ値が格納されるバッファ |
int csz_mem_write | ( | uint32_t | addr, |
int | len, | ||
void * | buf | ||
) |
DMA用メモリのライト
addr | 書き込みたいアドレス(Cosmo-Zでは0~0x1fffffff) | |
len | 書き込むサイズ。バイト単位 | |
[in] | buf | 書き込むデータが格納されているバッファ |
BOOL csz_open | ( | ) |
ドライバをオープンし、その他の雑多な初期化処理を行う。
double csz_point2us | ( | int | point | ) |
現在のADCのサンプリング速度の設定で、データ点数を時間に変換する
point | データ点数 |
int csz_pretrig_max | ( | ) |
FPGAに設定可能なプレトリガの最大値を調べる
void csz_pretrig_type | ( | BOOL | extend | ) |
プレトリガのタイプを指定
extend | FALSEならばトリガがかかった時点から |
uint32_t csz_reg_read | ( | int | regnum | ) |
FPGA内蔵レジスタの読み出し
regnum | レジスタ番号0~(MAX_REGS - 1)。デフォルトのFPGAでは63まで。 |
BOOL csz_reg_write | ( | int | regnum, |
uint32_t | val | ||
) |
FPGA内蔵レジスタへ書き込み
regnum | レジスタ番号0~(MAX_REGS - 1)。デフォルトのFPGAでは63まで。 |
val | 書き込む値 |
uint64_t csz_time48 | ( | ) |
48bitタイムスタンプの値を返す
int csz_trig_getadcval | ( | int | ch | ) |
トリガのタイプを取得する
ch | チャネル番号 (1-32) |
TRIGTYPE csz_trig_gettype | ( | int | ch | ) |
トリガのタイプを取得する
ch | チャネル番号 (1-32) | |
[out] | type | トリガの種類 |
[out] | voltage | トリガをかかる値。ADC値で示される。 |
ch | チャネル番号 (1-32) |
double csz_trig_getvoltage | ( | int | ch | ) |
トリガの値を電圧として取得する
ch | チャネル番号 (1-32) |
トリガをセットする
ch | チャネル番号 (1-32) |
type | トリガのかけ方 |
val | トリガをかける値。ADC値で設定する。LinkageとOffの場合は、値は設定されるが動作には関係ない。 |
電圧でトリガをセットする
ch | チャネル番号 (1-32) |
type | トリガのかけ方 |
voltage | トリガをかける値。電圧で設定する。LinkageとOffの場合は、値は設定されるが動作には関係ない。 |
const char* csz_trig_tostr | ( | TRIGTYPE | type | ) |
トリガの値を電圧で取得する
ch | チャネル番号 (1-32) | |
[out] | type | トリガの種類 |
[out] | voltage | トリガをかかる値。電圧で示される。 |
int csz_us2point | ( | double | us | ) |
現在のADCのサンプリング速度の設定で、時間をデータ点数に変換する
us | 時間[us]単位 |