2025-05-14 12:57:39 -05:00
|
|
|
/*
|
|
|
|
|
* utils.h
|
|
|
|
|
*
|
|
|
|
|
* Created on: Jun 9, 2022
|
|
|
|
|
* Author: Keith.Lloyd
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef UTILS_H_
|
|
|
|
|
|
|
|
|
|
#define UTILS_H_
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "arm_math.h"
|
|
|
|
|
#include "spi.h"
|
|
|
|
|
//#define CLAMP 1 // Todo Fix later
|
|
|
|
|
#define DDC 2
|
|
|
|
|
#define MAX_CLAMP_VOLTAGE 170.0f
|
|
|
|
|
|
|
|
|
|
#define MAX_DC_VOLTAGE 90.0
|
|
|
|
|
#define CLAMP_MIN 100 //Todo Calculate correct limit values
|
|
|
|
|
#define CLAMP_MAX 200
|
|
|
|
|
#define DC_MIN 220
|
|
|
|
|
#define DC_MAX 250
|
|
|
|
|
#define DDC_MIN 270
|
|
|
|
|
#define DDC_MAX 300
|
|
|
|
|
#define TGT_NOT_USED 330
|
2025-08-26 16:10:47 -05:00
|
|
|
//#define OUT_RELAY_OFF_MASK 0b11100111
|
2025-05-14 12:57:39 -05:00
|
|
|
|
|
|
|
|
#define XFRMR_HF_ON 0b00000010
|
|
|
|
|
#define HF_AMP_ON 0b01000000
|
|
|
|
|
|
|
|
|
|
#define PORT_LE 5
|
2025-06-11 10:55:00 -05:00
|
|
|
//#define BYPASS_ON 0b00000001 //
|
2025-05-14 12:57:39 -05:00
|
|
|
#define HFDC_ON 0b00000010
|
|
|
|
|
#define LFDC_ON 0b00000000
|
|
|
|
|
#define LFANT_ON 0b00000100
|
|
|
|
|
#define HFANT_ON 0b10000100
|
|
|
|
|
#define PWR_CTL 16
|
|
|
|
|
#define PWR_ON 1
|
|
|
|
|
#define PWR_OFF 0
|
|
|
|
|
//#define MAX_VOLTS 800 // RAW ADC VALUE for Maximum Voltage on DConnect output
|
|
|
|
|
#define MAX_OP_VOLTS 180 //220.0 //1.68 Maximum VOLTS
|
|
|
|
|
#define MAX_BYPASS_VOLTS 95.0//0.84
|
|
|
|
|
#define MAX_BYPASS_VOLTS2 110.0
|
|
|
|
|
#define MAX_CURRENT 950.0 // RAW ADC VALUE for Maximum Current on DConnect output
|
|
|
|
|
#define MAX_HF_CURRENT 300.0
|
|
|
|
|
#define VOLTAGE 7 // ADC address of voltage measurement
|
|
|
|
|
#define CURRENT 0 // ADC address of current measurement
|
|
|
|
|
#define ALL_RELAYS_OFF_UPPER 0 //ToDo
|
|
|
|
|
#define ALL_RELAYS_OFF_LOWER 0 // Todo
|
|
|
|
|
#define POT_CS 7 // Todo
|
|
|
|
|
#define ERROR 8 // Bit position of ERROR Signal
|
|
|
|
|
#define DAMP_EN_ON 0b00100000
|
|
|
|
|
#define SLCT_AMPD_ON 0b00000010
|
|
|
|
|
#define AMP_PSU_ON 0b11111011
|
|
|
|
|
#define XFRMR_LF_ON 0b00000010 // Bit position of Xfrmr Mux.
|
|
|
|
|
#define SLCT_XFMR XFRMR_LF_ON
|
|
|
|
|
#define SLCT_AMP 0b01000000 // Matches Correct Xfrmr to Correct amplifier.
|
|
|
|
|
#define MUX_AB_AMP 0b00000001
|
|
|
|
|
#define ANT_AMP_EN 0b10000000
|
|
|
|
|
#define ANT_AMP_SW 0b00000010
|
|
|
|
|
#define BC_CLK 0
|
|
|
|
|
#define DC_CLK 1
|
|
|
|
|
#define I_GAIN 0b01000000
|
|
|
|
|
#define SENTINAL 180
|
|
|
|
|
#define MIN_POT 5
|
|
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
|
EMPTY,
|
|
|
|
|
CLAMP,
|
|
|
|
|
CONNECT_LEAD,
|
|
|
|
|
DUAL_DC
|
|
|
|
|
}OUT_CONNECT_t;
|
|
|
|
|
|
|
|
|
|
typedef enum{
|
|
|
|
|
LFA_LFX,
|
|
|
|
|
HFA_LFX,
|
|
|
|
|
HFA_HFX
|
|
|
|
|
} AMP_XFRMR_SLCT_t;
|
|
|
|
|
|
|
|
|
|
|
2025-06-11 10:55:00 -05:00
|
|
|
typedef enum {
|
|
|
|
|
CONNECTED,
|
|
|
|
|
ISOLATED
|
|
|
|
|
} ESTOP_SELECT_t;
|
|
|
|
|
|
2025-05-14 12:57:39 -05:00
|
|
|
typedef enum {
|
|
|
|
|
OFF,
|
|
|
|
|
ON
|
2025-06-11 10:55:00 -05:00
|
|
|
} RELAY_SELECT_t;
|
2025-05-14 12:57:39 -05:00
|
|
|
|
|
|
|
|
|
2025-08-26 16:10:47 -05:00
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
ACCY_PORT_INDUCTION = 0,
|
|
|
|
|
ACCY_PORT_1 = 1,
|
|
|
|
|
ACCY_PORT_2 = 2,
|
|
|
|
|
NUM_PORTS
|
|
|
|
|
} AccessoryPortId_t;
|
|
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
CHANNEL_A = 0,
|
|
|
|
|
CHANNEL_B,
|
|
|
|
|
NUM_CHANNELS
|
|
|
|
|
} AccyChannelId_t;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
AccyChannelId_t id;
|
|
|
|
|
bool connected;
|
|
|
|
|
} AccessoryChannel_t;
|
|
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
|
LOW_FREQ = 0,
|
|
|
|
|
HIGH_FREQ,
|
|
|
|
|
NUM_FREQ_RANGES,
|
|
|
|
|
} FrequencyRange_t;
|
|
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
POWER_LEVEL_0 = 0,
|
|
|
|
|
POWER_LEVEL_1,
|
|
|
|
|
POWER_LEVEL_2,
|
|
|
|
|
POWER_LEVEL_3,
|
|
|
|
|
POWER_LEVEL_4,
|
|
|
|
|
POWER_LEVEL_COUNT
|
|
|
|
|
} PowerLevel_t;
|
|
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
SIGNAL_PATH_NONE = 0,
|
|
|
|
|
SIGNAL_PATH_ANT,
|
|
|
|
|
SIGNAL_PATH_AMP,
|
|
|
|
|
} SignalPath_t;
|
|
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
AMPLIFIER_NONE = 0,
|
|
|
|
|
AMPLIFIER_D,
|
|
|
|
|
AMPLIFIER_AB,
|
|
|
|
|
} Amplifier_t;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
TAP_1 = 1,
|
|
|
|
|
TAP_2,
|
|
|
|
|
TAP_3,
|
|
|
|
|
TAP_4,
|
|
|
|
|
} TransformerTap_t;
|
2025-05-14 12:57:39 -05:00
|
|
|
|
2025-06-11 10:55:00 -05:00
|
|
|
void Select_Estop(ESTOP_SELECT_t);
|
2025-05-14 12:57:39 -05:00
|
|
|
void Send_Pot_Data(uint16_t Data, SPI_MODE_t destination);
|
|
|
|
|
void Send_Update_Port(void);
|
|
|
|
|
void Clear_Relays(void);
|
|
|
|
|
|
|
|
|
|
uint8_t Check_Output_Status(char Connector);
|
|
|
|
|
void Power_Down(void);
|
|
|
|
|
void Power_ON_OFF(RELAY_SELECT_t Power);
|
|
|
|
|
void Check_Over_Current();
|
|
|
|
|
void Check_Live_Voltage();
|
|
|
|
|
//void Check_Over_Voltage();
|
|
|
|
|
|
|
|
|
|
void Check_PSU_Short(void);
|
|
|
|
|
void Estop_Mode(void);
|
|
|
|
|
void Select_Transformer(void);
|
|
|
|
|
void Select_Amp_Xfrmr_Rly(AMP_XFRMR_SLCT_t Amp2xfrmr);
|
|
|
|
|
void Select_Bypass(RELAY_SELECT_t Bypass); // Bypass allows transmitting w/o full protection
|
|
|
|
|
void Chk_Gain(void);
|
|
|
|
|
void Check_Over_Power(void);
|
|
|
|
|
void Check_Clamp_OverVoltage(void);
|
|
|
|
|
void Adjust_Clamp_Volts(void);
|
|
|
|
|
bool Compare_Voltage(float32_t source,float32_t limit);
|
|
|
|
|
void Check_Over_Voltage(void);
|
|
|
|
|
void Controlled_Pwr_Dwn(void);
|
|
|
|
|
void Update_Amp_Pot(void);
|
|
|
|
|
void Check_For_Clamp_On_Pwr_Up(void);
|
|
|
|
|
void Adjust_Output_Power(float32_t New_Power_Limit);
|
|
|
|
|
float Get_Max_Current(void);
|
|
|
|
|
void Reduce_Kick_Back(void);
|
|
|
|
|
float32_t Convert_Pot2_Volts(uint8_t value);
|
|
|
|
|
void Cut_Signal_To_Min(void);
|
|
|
|
|
bool Check_For_Clamp();
|
|
|
|
|
void freq_key_process(void);
|
|
|
|
|
void Init_LD_Sync(void);
|
|
|
|
|
void Leica_Patch(void);
|
|
|
|
|
void Umag_Patch(void);
|
|
|
|
|
float32_t Get_Power_Limit(void);
|
|
|
|
|
bool Check_For_Clamp_New();
|
|
|
|
|
|
2025-06-20 18:02:50 -05:00
|
|
|
void delayms(uint32_t msec);
|
2025-08-26 16:10:47 -05:00
|
|
|
bool isUsbConnected(void);
|
2025-05-14 12:57:39 -05:00
|
|
|
|
|
|
|
|
#endif /* UTILS_H_ */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|