|
@@ -0,0 +1,201 @@
|
|
|
+```cpp
|
|
|
+#define CONFIG_BASE ((uint16_t)0x0000)
|
|
|
+#define CONFIG_LEN 18 //32 // CONFIG_LEN в словах по 16 бит
|
|
|
+#define CONFIG_VER_SOFT CONFIG_BASE + 1
|
|
|
+#define CONFIG_VER_FPGA CONFIG_BASE + 2
|
|
|
+#define CONFIG_UREF CONFIG_BASE + 16
|
|
|
+
|
|
|
+
|
|
|
+#define UART_BASE 0x0012
|
|
|
+#define UART_BAUDRATEL UART_BASE
|
|
|
+#define UART_BAUDRATEH UART_BASE + 1
|
|
|
+#define UART_DATA_BITS UART_BASE + 2
|
|
|
+#define UART_STOP_BITS UART_BASE + 3
|
|
|
+#define UART_PARITY UART_BASE + 4
|
|
|
+
|
|
|
+#define UART_NREG 5
|
|
|
+
|
|
|
+#define MODBUS_ADDR 0x0017
|
|
|
+
|
|
|
+#define PRESET_BASE 0x0100
|
|
|
+#define PRESET_LEN 32 //с резервом
|
|
|
+#define PRESET_MODE PRESET_BASE
|
|
|
+// 0 - без остановки
|
|
|
+// 1 - по реальному времени (RTIME)
|
|
|
+// 2 - по живому времени (LTIME)
|
|
|
+// 3 - по счету (SUM)
|
|
|
+// 4 - по пику в ROI (PRESET_SUM_ROI)
|
|
|
+#define PRESET_RTIME PRESET_BASE + 1
|
|
|
+#define PRESET_LTIME PRESET_BASE + 3
|
|
|
+#define PRESET_SUM PRESET_BASE + 5
|
|
|
+#define PRESET_SUM_ROI PRESET_BASE + 7
|
|
|
+#define PRESET_ROIL PRESET_BASE + 9
|
|
|
+#define PRESET_ROIH PRESET_BASE + 10
|
|
|
+
|
|
|
+
|
|
|
+// -------------------------------------------------------------------------- //
|
|
|
+
|
|
|
+#define HV_BASE 0x0200
|
|
|
+
|
|
|
+#define HV_STATE HV_BASE + 0 // состояние/команда hvState
|
|
|
+
|
|
|
+#define HV_CUR_VOLT_L HV_BASE + 1 // Текущее напряжение в вольтах Float, 4 байта
|
|
|
+#define HV_CUR_VOLT_H HV_BASE + 2 // Текущее напряжение в вольтах Float, 4 байта
|
|
|
+
|
|
|
+#define HV_RISE_TIME HV_BASE + 3 // время подъёма в секундах
|
|
|
+
|
|
|
+#define HV_PRESET_L HV_BASE + 4 // уставка, напряжение в вольтах Float, 4 байта
|
|
|
+#define HV_PRESET_H HV_BASE + 5 // уставка, напряжение в вольтах Float, 4 байта
|
|
|
+
|
|
|
+#define HV_PRESET_MIN_L HV_BASE + 6 // минимальная уставка, напряжение в вольтах Float, 4 байта
|
|
|
+#define HV_PRESET_MIN_H HV_BASE + 7 // минимальнаяуставка, напряжение в вольтах Float, 4 байта
|
|
|
+
|
|
|
+#define HV_PRESET_MAX_L HV_BASE + 8 // максимальная уставка, напряжение в вольтах Float, 4 байта
|
|
|
+#define HV_PRESET_MAX_H HV_BASE + 9 // максимальная уставка, напряжение в вольтах Float, 4 байта
|
|
|
+
|
|
|
+#define HV_K0_L HV_BASE + 10 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта
|
|
|
+#define HV_K0_H HV_BASE + 11 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта
|
|
|
+#define HV_K1_L HV_BASE + 12 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта
|
|
|
+#define HV_K1_H HV_BASE + 13 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта
|
|
|
+
|
|
|
+#define HV_DELAY HV_BASE + 14 // время задержки после установки HV перед началом набора
|
|
|
+
|
|
|
+#define HV_NREG 16
|
|
|
+
|
|
|
+// -------------------------------------------------------------------------- //
|
|
|
+
|
|
|
+//"FPGA"
|
|
|
+#define FPGA_BASE 0x300
|
|
|
+#define FPGA_NREG 32
|
|
|
+
|
|
|
+// -------------------------------------------------------------------------- //
|
|
|
+
|
|
|
+//Мониторинг
|
|
|
+#define MON_BASE 0x500
|
|
|
+#define MON_BASE_RAW 0x600
|
|
|
+
|
|
|
+#define MON_BAT_VOLTAGE MON_BASE + 0x014 // напряжение АКБ
|
|
|
+#define MON_BAT_CHARGE_ST MON_BASE + 0x016 // статус заряда АКБ (есть/нет)
|
|
|
+#define MON_FLASH_SIZE MON_BASE + 0x018 // объем флеш-памяти (байты)
|
|
|
+#define MON_FLASH_FREE MON_BASE + 0x01A // объем свободной флеш-памяти (байты)
|
|
|
+
|
|
|
+
|
|
|
+// -------------------------------------------------------------------------- //
|
|
|
+// Автономный режим работы
|
|
|
+
|
|
|
+#define AUTO_BASE 0x700
|
|
|
+#define AUTO_NREG 12
|
|
|
+#define AUTO_STATE AUTO_BASE + 0 // статус автономного режима
|
|
|
+#define AUTO_DELAY_L AUTO_BASE + 1 // задержка перед началом цикла измерений (сек.)
|
|
|
+#define AUTO_DELAY_H AUTO_BASE + 2 // задержка перед началом цикла измерений (сек.)
|
|
|
+#define AUTO_CNT_DW_L AUTO_BASE + 3 // осталось до начала цикла (сек.)
|
|
|
+#define AUTO_CNT_DW_H AUTO_BASE + 4 // осталось до начала цикла (сек.)
|
|
|
+#define AUTO_PERIOD_L AUTO_BASE + 5 // период начала набора каждого спектра
|
|
|
+#define AUTO_PERIOD_H AUTO_BASE + 6 // период начала набора каждого спектра
|
|
|
+#define AUTO_NBR_SP AUTO_BASE + 7 // количество набираемых спектров (0 без остановки)
|
|
|
+#define AUTO_NBR_SP_ALR AUTO_BASE + 8 // количество уже набранных спектров
|
|
|
+#define AUTO_STNB_MODE AUTO_BASE + 9 // режим сна
|
|
|
+#define AUTO_STNB_DELAY_L AUTO_BASE + 10// время до перехода в режим сна (сек.)
|
|
|
+#define AUTO_STNB_DELAY_H AUTO_BASE + 11// время до перехода в режим сна (сек.)
|
|
|
+
|
|
|
+
|
|
|
+// -------------------------------------------------------------------------- //
|
|
|
+
|
|
|
+//Сохранение настройек прибора
|
|
|
+#define SAVE_LOAD_BASE 0x800
|
|
|
+#define SAVE_LOAD_LOAD (SAVE_LOAD_BASE + 0)
|
|
|
+#define SAVE_LOAD_SAVE (SAVE_LOAD_BASE + 1)
|
|
|
+#define SAVE_LOAD_LOAD_SP_PARAM (SAVE_LOAD_BASE + 2)
|
|
|
+#define SAVE_LOAD_SAVE_SP_PARAM (SAVE_LOAD_BASE + 3)
|
|
|
+
|
|
|
+// -------------------------------------------------------------------------- //
|
|
|
+
|
|
|
+// Режимы работы
|
|
|
+#define KEY_REBOOT 0x2031 // перезагрузка в режиме бутлоадера (DFU)
|
|
|
+#define KEY_RESET 0x2032 // перезагрузка
|
|
|
+#define REBOOT_OK 0x3120
|
|
|
+#define REBOOT_0 0x840
|
|
|
+
|
|
|
+#define BLAST_FPGA 0x841
|
|
|
+#define BLAST_MODE_ON 0x1
|
|
|
+#define BLAST_MODE_OFF 0x0
|
|
|
+#define WORK_MODE_N_REG 2
|
|
|
+
|
|
|
+// specter
|
|
|
+// Состояние набора
|
|
|
+#if 0
|
|
|
+enum spState
|
|
|
+{
|
|
|
+ SP_CLEAR = 0, // очистка, нет спектра
|
|
|
+ SP_STOP = 1, // останов, есть спектр
|
|
|
+ SP_ACQ = 2, // набор спектра
|
|
|
+};
|
|
|
+#endif
|
|
|
+
|
|
|
+// -------------------------------------------------------------------------- //
|
|
|
+
|
|
|
+#define SPECTER_INFO_BASE 0x900
|
|
|
+#define SPECTER_INFO_NREG 15
|
|
|
+
|
|
|
+#define SPECTER_FORMAT 0x0900
|
|
|
+#define SPECTER_ACQ_STATE 0x0901
|
|
|
+#define SPECTER_NCHANNELS 0x0902
|
|
|
+#define SPECTER_EN_K0 0x0903
|
|
|
+#define SPECTER_EN_K1 0x0905
|
|
|
+#define SPECTER_REGRATE 0x0907
|
|
|
+#define SPECTER_INPRATE 0x0909
|
|
|
+#define SPECTER_RTIME 0x090B
|
|
|
+#define SPECTER_LTIME 0x090D
|
|
|
+#define SPECTER_LOCALTIME 0x090F
|
|
|
+#define GPS_STATUS 0x0911
|
|
|
+#define GPS_LON 0x0912
|
|
|
+#define GPS_LAT 0x0914
|
|
|
+#define GPS_ALT 0x0916
|
|
|
+#define SP_OFFSET 0x0918
|
|
|
+
|
|
|
+// -------------------------------------------------------------------------- //
|
|
|
+// Для считывания заголовка спектра из файла.
|
|
|
+
|
|
|
+#define SPECTER_FILE_INFO_BASE 0xB000
|
|
|
+#define SPECTER_FILE_INFO_NREG 255
|
|
|
+
|
|
|
+#define SPECTER_FORMAT_F 0xB000
|
|
|
+#define SPECTER_ACQ_STATE_F 0xB001
|
|
|
+#define SPECTER_NCHANNELS_F 0xB002
|
|
|
+#define SPECTER_EN_K0_F 0xB003
|
|
|
+#define SPECTER_EN_K1_F 0xB005
|
|
|
+#define SPECTER_REGRATE_F 0xB007
|
|
|
+#define SPECTER_INPRATE_F 0xB009
|
|
|
+#define SPECTER_RTIME_F 0xB00B
|
|
|
+#define SPECTER_LTIME_F 0xB00D
|
|
|
+#define SPECTER_LOCALTIME_F 0xB00F
|
|
|
+#define GPS_STATUS_F 0xB011
|
|
|
+#define GPS_LON_F 0xB012
|
|
|
+#define GPS_LAT_F 0xB014
|
|
|
+#define GPS_ALT_F 0xB016
|
|
|
+#define SP_OFFSET_F 0xB018
|
|
|
+
|
|
|
+#define SPECTER_FILE_BASE 0xB100
|
|
|
+
|
|
|
+
|
|
|
+#define SPECTER_BASE 0x1000
|
|
|
+#define SPECTER_CNL 4096
|
|
|
+#define SPECTER_NREG (SPECTER_CNL * 2)
|
|
|
+
|
|
|
+#define N_REGS_BIG_FRAME ((64 + 2)*2)
|
|
|
+
|
|
|
+// осциллограф
|
|
|
+#define N_SCOPE_FRAME 4
|
|
|
+#define SCOPE_BASE 0xA000
|
|
|
+#define SCOPE_NREG (N_REGS_BIG_FRAME * N_SCOPE_FRAME)
|
|
|
+
|
|
|
+// fifo
|
|
|
+#define N_FIFO_FRAME 8
|
|
|
+#define FIFO_BASE 0xA400
|
|
|
+#define FIFO_NREG (N_REGS_BIG_FRAME * N_FIFO_FRAME)
|
|
|
+
|
|
|
+// Обмен текстовыми сообщениями
|
|
|
+#define STR_BASE 0x7F00
|
|
|
+#define STR_NREG 125
|
|
|
+
|
|
|
+```
|