SWRMeter/firmware/globals.h

120 lines
4.4 KiB
C

/*****************************************************************************/
#define WF_FREQ_MAX_HZ 8000
/*****************************************************************************/
#define MCP4725_I2C_ADDRESS 0x62
#define MCP4725_CMD_WRITEDAC 0x40
#define MCP4725_CMD_WRITEDACEEPROM 0x60
#define DAC_MAX_VOLTAGE 0xfff
/*****************************************************************************/
#define PWM_PIN 5 // PWM-Pin für DAC0 auf dem Arduino Nano 328
#define PWM_BIT_WIDTH 12
#define PWM_MAX_VALUE ((1 << PWM_BIT_WIDTH)-1)
/*****************************************************************************/
#define MEAS_LOOP_CNT 20
#define MAIN_LOOP_DELAY_US 63 // 1/63us = ~16kHz
/*****************************************************************************/
/* Message byte definitions: */
#define MSG_SOM1 0x3c
#define MSG_SOM2 0x3e
#define MSG_EOM1 0x0d
#define MSG_EOM2 0x0a
#define MSG_TYPE_ANSWER_OK 0x01
#define MSG_TYPE_ANSWER_NOK 0x02
#define MSG_TYPE_MEAS_FREQ_INFO 0x03
#define MSG_TYPE_MEAS_END_INFO 0x04
#define MSG_TYPE_CONFIG 0x05
/*****************************************************************************/
#define CC_STATE_READ_SOM1 20
#define CC_STATE_READ_SOM2 30
#define CC_STATE_READ_CMD 40
#define CC_STATE_READ_DATA 50
#define CC_STATE_READ_EOM1 60
#define CC_STATE_READ_EOM2 70
/*****************************************************************************/
#define CC_CMD_NO_CMD 0
#define MSG_INCOMPLETE 10
#define MSG_COMPLETE 20
/*****************************************************************************/
#define CC_CMD_SET_START_FREQ 0x01
#define CC_CMD_SET_END_FREQ 0x02
#define CC_CMD_SET_INTERVALL 0x03
#define CC_CMD_SET_DRIVE_STRENGTH 0x04
#define CC_CMD_SET_FREQ_STEP 0x05
#define CC_CMD_START_MEASUREMENT 0x06
#define CC_CMD_GET_CONFIG 0x10
#define CC_CMD_EN_CLK 0x20
#define CC_CMD_DIS_CLK 0x21
#define CC_CMD_SAV_DFLT 0x22
#define CC_CMD_SET_CLK_CORR 0x23
#define CC_CMD_GET_CLK_CORR 0x24
#define CC_CMD_SET_WF_FREQ 0x30
#define CC_CMD_SET_WF 0x31
#define CC_CMD_SET_WF_DC 0x32
#define CC_CMD_EN_WF 0x33
/*****************************************************************************/
#define CC_CMD_SET_START_FREQ_FUNC &cc_setStartFreq
#define CC_CMD_SET_END_FREQ_FUNC &cc_setEndFreq
#define CC_CMD_SET_INTERVALL_FUNC &cc_setIntervall
#define CC_CMD_SET_DRIVE_STRENGTH_FUNC &cc_setDriveStrength
#define CC_CMD_SET_FREQ_STEP_FUNC &cc_setFreqStep
#define CC_CMD_START_MEASUREMENT_FUNC &cc_startMeasurement
#define CC_CMD_GET_CONFIG_FUNC &cc_getConfig
#define CC_CMD_EN_CLK_FUNC &cc_enableClk
#define CC_CMD_DIS_CLK_FUNC &cc_disableClk
#define CC_CMD_SAV_DFLT_FUNC &cc_saveDefaults
#define CC_CMD_SET_CLK_CORR_FUNC &cc_setClkCorrection
#define CC_CMD_GET_CLK_CORR_FUNC &cc_getClkCorrection
#define CC_CMD_SET_WF_FREQ_FUNC &cc_setWFFreq
#define CC_CMD_SET_WF_FUNC &cc_setWF
#define CC_CMD_SET_WF_DC_FUNC &cc_setWFDC
#define CC_CMD_SET_EN_WF_FUNC &cc_enableWF
/*****************************************************************************/
#define CC_CMD_SET_START_FREQ_DATA_TO_READ 4 // up to 32 bit = 4 byte => 2 ** 32 = >500000000Hz
#define CC_CMD_SET_END_FREQ_DATA_TO_READ 4 // up to 32 bit = 4 byte => 2 ** 32 = >500000000Hz
#define CC_CMD_SET_INTERVALL_DATA_TO_READ 2
#define CC_CMD_SET_DRIVE_STRENGTH_DATA_TO_READ 1
#define CC_CMD_SET_FREQ_STEP_DATA_TO_READ 4
#define CC_CMD_START_MEASUREMENT_DATA_TO_READ 0
#define CC_CMD_GET_CONFIG_DATA_TO_READ 0
#define CC_CMD_EN_CLK_DATA_TO_READ 1
#define CC_CMD_DIS_CLK_DATA_TO_READ 1
#define CC_CMD_SAV_DFLT_DATA_TO_READ 0
#define CC_CMD_SET_CLK_CORR_DATA_TO_READ 4
#define CC_CMD_GET_CLK_CORR_DATA_TO_READ 0
#define CC_CMD_SET_WF_FREQ_DATA_TO_READ 2
#define CC_CMD_SET_WF_DATA_TO_READ 1
#define CC_CMD_SET_WF_DC_DATA_TO_READ 1
#define CC_CMD_SET_EN_WF_DATA_TO_READ 1
/*****************************************************************************/
#define CC_READ_DATA_MAX 64
/*****************************************************************************/