mirror of
https://gitea.ecohim.ru:3000/RS485_BSV/RS485_BSV_fw.git
synced 2025-08-04 07:27: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_ */
|
37
Core/Inc/modbus_logic.h
Normal file
37
Core/Inc/modbus_logic.h
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* modbus_logic.h
|
||||
*
|
||||
* Created on: Jul 25, 2024
|
||||
* Author: User
|
||||
*/
|
||||
|
||||
#ifndef INC_MODBUS_LOGIC_H_
|
||||
#define INC_MODBUS_LOGIC_H_
|
||||
#include <stdint.h>
|
||||
|
||||
#define BOARD_ADRESS 38 //BSV Module 1
|
||||
//#define BOARD_ADRESS 39 //BSV Module 2
|
||||
|
||||
#define BUS_IDLE_TIME 3
|
||||
|
||||
#define MODBUS_PROTOCOL_VERSION (1)
|
||||
#define MODBUS_HEADER_SIZE (13)
|
||||
#define BUFFERS_SIZE (100 + 9)
|
||||
#define MAX_REGS_PER_QUERY (32)
|
||||
#define ADDRESS_UNDEFINED (0xff)
|
||||
|
||||
enum recv_state {RECV_IDLE, RECV_READ_HEADER, RECV_READ_DATA, RECV_READ_COMPLETE, RECV_ERROR};
|
||||
enum send_state {SEND_IDLE, SEND_BUSY};
|
||||
|
||||
#define TXEN_ON HAL_GPIO_WritePin(TXEN_GPIO_Port, TXEN_Pin, GPIO_PIN_SET)
|
||||
#define TXEN_OFF HAL_GPIO_WritePin(TXEN_GPIO_Port, TXEN_Pin, GPIO_PIN_RESET)
|
||||
|
||||
void UART_RxCpltCallback(void);
|
||||
void UART_TxCpltCallback(void);
|
||||
void process_incoming_packet();
|
||||
void modbus_loop_iterate();
|
||||
uint8_t read_register(uint16_t address, uint16_t* value);
|
||||
uint8_t write_register(uint16_t address, uint16_t value);
|
||||
|
||||
|
||||
#endif /* INC_MODBUS_LOGIC_H_ */
|
@@ -64,7 +64,7 @@
|
||||
/*#define HAL_SMARTCARD_MODULE_ENABLED */
|
||||
/*#define HAL_SPI_MODULE_ENABLED */
|
||||
/*#define HAL_SRAM_MODULE_ENABLED */
|
||||
/*#define HAL_TIM_MODULE_ENABLED */
|
||||
#define HAL_TIM_MODULE_ENABLED
|
||||
#define HAL_UART_MODULE_ENABLED
|
||||
/*#define HAL_USART_MODULE_ENABLED */
|
||||
/*#define HAL_WWDG_MODULE_ENABLED */
|
||||
|
@@ -55,9 +55,11 @@ void SVC_Handler(void);
|
||||
void DebugMon_Handler(void);
|
||||
void PendSV_Handler(void);
|
||||
void SysTick_Handler(void);
|
||||
void DMA1_Channel1_IRQHandler(void);
|
||||
void DMA1_Channel4_IRQHandler(void);
|
||||
void DMA1_Channel5_IRQHandler(void);
|
||||
void USART1_IRQHandler(void);
|
||||
void TIM6_IRQHandler(void);
|
||||
/* USER CODE BEGIN EFP */
|
||||
|
||||
/* USER CODE END EFP */
|
||||
|
Reference in New Issue
Block a user