mirror of
https://gitea.ecohim.ru:3000/RS485_BSV/RS485_BSV_fw.git
synced 2025-08-04 15:37:06 +03:00
Migrated to a new HAL version; FW now works; Adress is 38, board type is 12
This commit is contained in:
66
Core/Inc/board_logic.h
Normal file
66
Core/Inc/board_logic.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* board_logic.h
|
||||
*
|
||||
* Created on: Jul 25, 2024
|
||||
* Author: User
|
||||
*/
|
||||
|
||||
#ifndef INC_BOARD_LOGIC_H_
|
||||
#define INC_BOARD_LOGIC_H_
|
||||
|
||||
#define MODBUS_FIRMWARE_VERSION ( /*major*/ 10 + /*minor*/ 0 * 0x100)
|
||||
#define MODBUS_BOARD_TYPE (12) //BSV Module board ID
|
||||
|
||||
#define HVS_U_LIMIT 30.0 //[kV]
|
||||
#define HVS_I_LIMIT 11500 //[uA]
|
||||
|
||||
#define K_ADC_CURRENT 0.272
|
||||
#define K_ADC_VOLTAGE 124.666
|
||||
#define K_ADC_15V 160.0 // Really should be 161.8972 (but 160 gives a number closer to reality)
|
||||
#define K_ADC_24V 111.0 // Really should be 112.8193 (but 111 gives a number closer to reality)
|
||||
|
||||
#define K_DAC_CURRENT 0.302
|
||||
#define K_DAC_VOLTAGE 124.533
|
||||
|
||||
#define CONF_BIT_HVS_EN (1u<<0)
|
||||
|
||||
// ADC channels
|
||||
#define ADC_CH_VOLTAGE 6
|
||||
#define ADC_CH_CURRENT 7
|
||||
#define ADC_CH_15V 14
|
||||
#define ADC_CH_24V 15
|
||||
|
||||
#define ADC_BUFF_LENGTH 20 // ADC buffer length (to smooth the result). 1 per ms
|
||||
|
||||
|
||||
// PIN macros
|
||||
#define GET_HVS_ENABLE (HAL_GPIO_ReadPin(HVS_ENABLE_GPIO_Port, HVS_ENABLE_Pin) == GPIO_PIN_SET)
|
||||
#define GET_HVS_CONN (HAL_GPIO_ReadPin(HVS_CONN_GPIO_Port, HVS_CONN_Pin) == GPIO_PIN_RESET)
|
||||
#define GET_HVS_READY (HAL_GPIO_ReadPin(HVS_READY_GPIO_Port, HVS_READY_Pin) == GPIO_PIN_SET)
|
||||
#define GET_HVS_XRAYON (HAL_GPIO_ReadPin(HVS_XRAYON_GPIO_Port, HVS_XRAYON_Pin) == GPIO_PIN_SET)
|
||||
#define GET_HVS_NOLINK (HAL_GPIO_ReadPin(HVS_NOLINK_GPIO_Port, HVS_NOLINK_Pin) == GPIO_PIN_SET)
|
||||
#define GET_HVS_OVERHEAT (HAL_GPIO_ReadPin(HVS_OVERHEAT_GPIO_Port, HVS_OVERHEAT_Pin) == GPIO_PIN_SET)
|
||||
#define GET_HVS_OVERLOAD (HAL_GPIO_ReadPin(HVS_OVERLOAD_GPIO_Port, HVS_OVERLOAD_Pin) == GPIO_PIN_SET)
|
||||
|
||||
#define SET_HVS_ON HAL_GPIO_WritePin(HVS_ENABLE_GPIO_Port, HVS_ENABLE_Pin, GPIO_PIN_SET)
|
||||
#define SET_HVS_OFF HAL_GPIO_WritePin(HVS_ENABLE_GPIO_Port, HVS_ENABLE_Pin, GPIO_PIN_RESET)
|
||||
|
||||
|
||||
|
||||
typedef struct hvs_t {
|
||||
float voltage; //[kV]
|
||||
float current; //[uA]
|
||||
float v_24; //[V]
|
||||
float v_15; //[V]
|
||||
float set_voltage; //[kV]
|
||||
float set_current; //[uA]
|
||||
uint8_t update_voltage_flag; //Need update voltage DAC flag
|
||||
uint8_t update_current_flag; //Need update current DAC flag
|
||||
} hvs_t;
|
||||
|
||||
void board_init(void);
|
||||
void loop_iterate();
|
||||
void update_service_indication(void);
|
||||
|
||||
|
||||
#endif /* INC_BOARD_LOGIC_H_ */
|
Reference in New Issue
Block a user