functional LED code, first untested implementation
This commit is contained in:
34
Software/Core/Inc/can.h
Normal file
34
Software/Core/Inc/can.h
Normal file
@ -0,0 +1,34 @@
|
||||
#ifndef __CAN_H
|
||||
#define __CAN_H
|
||||
|
||||
#include "scs_sdc.h"
|
||||
|
||||
#define CAN_ID_SLAVE_PANIC 0x009
|
||||
#define CAN_ID_AMS_STATUS 0x00A
|
||||
#define CAN_ID_AMS_IN 0x00B
|
||||
#define CAN_ID_AMS_ERROR 0x00C
|
||||
#define CAN_ID_SLAVE_STATUS_BASE 0x080
|
||||
#define CAN_ID_AMS_SIGNALS 0x090
|
||||
#define CAN_ID_DCDC_INFO 0x313
|
||||
|
||||
// TEMPORARY!!
|
||||
#define CAN_ID_AMS_DETAILS 0x091
|
||||
#define CAN_ID_AMS_DETAILS_FC 0x092
|
||||
|
||||
#define CAN_ID_SLAVE_LOG 0x4F4
|
||||
#define CAN_ID_SHUNT_BASE 0x520
|
||||
#define CAN_ID_SHUNT_CURRENT 0x521
|
||||
#define CAN_ID_SHUNT_VOLTAGE1 0x522
|
||||
#define CAN_ID_SHUNT_VOLTAGE2 0x523
|
||||
#define CAN_ID_SHUNT_VOLTAGE3 0x524
|
||||
#define CAN_ID_SHUNT_TEMP 0x525
|
||||
#define CAN_ID_SHUNT_POWER 0x526
|
||||
#define CAN_ID_SHUNT_CURRENT_COUNTER 0x527
|
||||
#define CAN_ID_SHUNT_ENERGY_COUNTER 0x528
|
||||
|
||||
void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data);
|
||||
|
||||
HAL_StatusTypeDef can_init(FDCAN_HandleTypeDef* handle);
|
||||
HAL_StatusTypeDef can_change_ts_state(TSState state);
|
||||
|
||||
#endif
|
||||
20
Software/Core/Inc/led.h
Normal file
20
Software/Core/Inc/led.h
Normal file
@ -0,0 +1,20 @@
|
||||
#ifndef __LED_H
|
||||
#define __LED_H
|
||||
|
||||
#include "stm32h7xx_hal.h"
|
||||
|
||||
#define LED_TIM TIM3
|
||||
#define LED_CH_R TIM_CHANNEL_1
|
||||
#define LED_CH_G TIM_CHANNEL_2
|
||||
#define LED_CH_B TIM_CHANNEL_3
|
||||
#define DUTY_CYCLE_R LED_TIM->CCR1
|
||||
#define DUTY_CYCLE_G LED_TIM->CCR2
|
||||
#define DUTY_CYCLE_B LED_TIM->CCR3
|
||||
|
||||
#define COLOR_HEARTBEAT 0x0000FFFF
|
||||
#define COLOR_ERROR 0x00FF0000
|
||||
|
||||
HAL_StatusTypeDef led_init(TIM_HandleTypeDef* htim);
|
||||
HAL_StatusTypeDef led_blink(TIM_HandleTypeDef* htim, int32_t color, int16_t blink_period);
|
||||
|
||||
#endif
|
||||
@ -49,6 +49,8 @@ extern "C" {
|
||||
|
||||
/* USER CODE END EM */
|
||||
|
||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||
|
||||
/* Exported functions prototypes ---------------------------------------------*/
|
||||
void Error_Handler(void);
|
||||
|
||||
@ -57,9 +59,28 @@ void Error_Handler(void);
|
||||
/* USER CODE END EFP */
|
||||
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
#define TS_ON_Pin GPIO_PIN_8
|
||||
#define TS_ON_GPIO_Port GPIOI
|
||||
#define TS_ON_EXTI_IRQn EXTI9_5_IRQn
|
||||
#define SDC_ON_Pin GPIO_PIN_0
|
||||
#define SDC_ON_GPIO_Port GPIOI
|
||||
#define SDC_ENABLE_Pin GPIO_PIN_1
|
||||
#define SDC_ENABLE_GPIO_Port GPIOI
|
||||
#define ENC_PUSH_ON_Pin GPIO_PIN_15
|
||||
#define ENC_PUSH_ON_GPIO_Port GPIOA
|
||||
#define ENC_PUSH_ON_EXTI_IRQn EXTI15_10_IRQn
|
||||
#define ENC_B_ON_Pin GPIO_PIN_10
|
||||
#define ENC_B_ON_GPIO_Port GPIOC
|
||||
#define ENC_A_ON_Pin GPIO_PIN_11
|
||||
#define ENC_A_ON_GPIO_Port GPIOC
|
||||
#define AMS_ERROR_Pin GPIO_PIN_6
|
||||
#define AMS_ERROR_GPIO_Port GPIOI
|
||||
#define IMD_ERROR_Pin GPIO_PIN_7
|
||||
#define IMD_ERROR_GPIO_Port GPIOI
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
#define AMS_TIMEOUT 150
|
||||
#define TRY(call) {if (call) return HAL_ERROR;}
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
51
Software/Core/Inc/scs_sdc.h
Normal file
51
Software/Core/Inc/scs_sdc.h
Normal file
@ -0,0 +1,51 @@
|
||||
#ifndef __SCS_SDC_H
|
||||
#define __SCS_SDC_H
|
||||
|
||||
typedef enum {
|
||||
TS_INACTIVE,
|
||||
TS_ACTIVE,
|
||||
TS_PRECHARGE,
|
||||
TS_DISCHARGE,
|
||||
TS_ERROR,
|
||||
TS_CHARGING_CHECK,
|
||||
TS_CHARGING,
|
||||
} TSState;
|
||||
|
||||
typedef struct {
|
||||
TSState current_state;
|
||||
TSState target_state;
|
||||
uint16_t error_source; // TSErrorSource (bitmask)
|
||||
uint16_t error_type; // TSErrorKind
|
||||
} TSStateHandle;
|
||||
|
||||
typedef enum {
|
||||
IMD_STATE_UNKNOWN,
|
||||
IMD_STATE_SHORTCIRCUIT_SUPPLY,
|
||||
IMD_STATE_SHORTCIRCUIT_GND,
|
||||
IMD_STATE_NORMAL,
|
||||
IMD_STATE_UNDERVOLTAGE,
|
||||
IMD_STATE_SST,
|
||||
IMD_STATE_DEV_ERROR,
|
||||
IMD_STATE_GND_FAULT,
|
||||
} IMDState;
|
||||
|
||||
typedef struct {
|
||||
int ok;
|
||||
|
||||
IMDState state;
|
||||
uint32_t r_iso;
|
||||
|
||||
uint32_t freq;
|
||||
uint32_t duty_cycle;
|
||||
uint32_t last_high;
|
||||
} IMDData;
|
||||
|
||||
extern TSStateHandle ts_state;
|
||||
|
||||
extern IMDData imd_data;
|
||||
|
||||
void error_led_init();
|
||||
void sdc_init();
|
||||
void ts_handle_ams_status(const uint8_t* data);
|
||||
|
||||
#endif
|
||||
@ -44,14 +44,14 @@
|
||||
/* #define HAL_CRYP_MODULE_ENABLED */
|
||||
/* #define HAL_DAC_MODULE_ENABLED */
|
||||
/* #define HAL_DCMI_MODULE_ENABLED */
|
||||
/* #define HAL_DMA2D_MODULE_ENABLED */
|
||||
#define HAL_ETH_MODULE_ENABLED
|
||||
#define HAL_DMA2D_MODULE_ENABLED
|
||||
/* #define HAL_ETH_MODULE_ENABLED */
|
||||
/* #define HAL_ETH_LEGACY_MODULE_ENABLED */
|
||||
/* #define HAL_NAND_MODULE_ENABLED */
|
||||
/* #define HAL_NOR_MODULE_ENABLED */
|
||||
/* #define HAL_OTFDEC_MODULE_ENABLED */
|
||||
/* #define HAL_SRAM_MODULE_ENABLED */
|
||||
/* #define HAL_SDRAM_MODULE_ENABLED */
|
||||
#define HAL_SDRAM_MODULE_ENABLED
|
||||
/* #define HAL_HASH_MODULE_ENABLED */
|
||||
/* #define HAL_HRTIM_MODULE_ENABLED */
|
||||
/* #define HAL_HSEM_MODULE_ENABLED */
|
||||
@ -59,13 +59,12 @@
|
||||
/* #define HAL_JPEG_MODULE_ENABLED */
|
||||
/* #define HAL_OPAMP_MODULE_ENABLED */
|
||||
/* #define HAL_OSPI_MODULE_ENABLED */
|
||||
/* #define HAL_XSPI_MODULE_ENABLED */
|
||||
/* #define HAL_I2S_MODULE_ENABLED */
|
||||
/* #define HAL_SMBUS_MODULE_ENABLED */
|
||||
/* #define HAL_IWDG_MODULE_ENABLED */
|
||||
/* #define HAL_LPTIM_MODULE_ENABLED */
|
||||
#define HAL_LTDC_MODULE_ENABLED
|
||||
/* #define HAL_XSPI_MODULE_ENABLED */
|
||||
/* #define HAL_QSPI_MODULE_ENABLED */
|
||||
/* #define HAL_RAMECC_MODULE_ENABLED */
|
||||
/* #define HAL_RNG_MODULE_ENABLED */
|
||||
/* #define HAL_RTC_MODULE_ENABLED */
|
||||
@ -75,13 +74,13 @@
|
||||
/* #define HAL_SPDIFRX_MODULE_ENABLED */
|
||||
/* #define HAL_SPI_MODULE_ENABLED */
|
||||
/* #define HAL_SWPMI_MODULE_ENABLED */
|
||||
/* #define HAL_TIM_MODULE_ENABLED */
|
||||
/* #define HAL_UART_MODULE_ENABLED */
|
||||
#define HAL_TIM_MODULE_ENABLED
|
||||
#define HAL_UART_MODULE_ENABLED
|
||||
/* #define HAL_USART_MODULE_ENABLED */
|
||||
/* #define HAL_IRDA_MODULE_ENABLED */
|
||||
/* #define HAL_SMARTCARD_MODULE_ENABLED */
|
||||
/* #define HAL_WWDG_MODULE_ENABLED */
|
||||
/* #define HAL_PCD_MODULE_ENABLED */
|
||||
#define HAL_PCD_MODULE_ENABLED
|
||||
/* #define HAL_HCD_MODULE_ENABLED */
|
||||
/* #define HAL_DFSDM_MODULE_ENABLED */
|
||||
/* #define HAL_DSI_MODULE_ENABLED */
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
#define __STM32H7xx_IT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
@ -55,6 +55,8 @@ void SVC_Handler(void);
|
||||
void DebugMon_Handler(void);
|
||||
void PendSV_Handler(void);
|
||||
void SysTick_Handler(void);
|
||||
void EXTI9_5_IRQHandler(void);
|
||||
void EXTI15_10_IRQHandler(void);
|
||||
/* USER CODE BEGIN EFP */
|
||||
|
||||
/* USER CODE END EFP */
|
||||
|
||||
Reference in New Issue
Block a user