firmware
IEM Firmware Documentation
Loading...
Searching...
No Matches
main.h File Reference

: Header for main.c file. This file contains the common defines of the application. More...

#include "stm32f4xx_hal.h"
#include <stdbool.h>
Include dependency graph for main.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  manual_balancing_t

Macros

#define ISOADC_TIMER_IRQ   TIM1_UP_TIM10_IRQn
#define CAN_TX_TIMER_IRQ   TIM7_IRQn
#define CAN1_RX_FIF0_IRQ   CAN1_RX0_IRQn
#define DISABLE_ALL_IRQS
#define ENABLE_ALL_IRQS
#define DISABLE_CAN_TX_TIMER_IRQ   HAL_NVIC_DisableIRQ(CAN_TX_TIMER_IRQ)
#define ENABLE_CAN_TX_TIMER_IRQ   HAL_NVIC_EnableIRQ(CAN_TX_TIMER_IRQ)
#define DISABLE_CAN1_RX_FIF0_IRQ   HAL_NVIC_DisableIRQ(CAN_TX_TIMER_IRQ)
#define ENABLE_CAN1_RX_FIF0_IRQ   HAL_NVIC_EnableIRQ(CAN_TX_TIMER_IRQ)
#define DISABLE_ALL_CAN_IRQS
#define ENABLE_ALL_CAN_IRQS
#define BMS_FLT_EN_Pin   GPIO_PIN_13
#define BMS_FLT_EN_GPIO_Port   GPIOC
#define LSE_IN_Pin   GPIO_PIN_14
#define LSE_IN_GPIO_Port   GPIOC
#define LSE_OUT_Pin   GPIO_PIN_15
#define LSE_OUT_GPIO_Port   GPIOC
#define HSE_IN_Pin   GPIO_PIN_0
#define HSE_IN_GPIO_Port   GPIOH
#define HSE_OUT_Pin   GPIO_PIN_1
#define HSE_OUT_GPIO_Port   GPIOH
#define SHUTDOWN_ACTIVE_Pin   GPIO_PIN_3
#define SHUTDOWN_ACTIVE_GPIO_Port   GPIOC
#define PRECHARGE_COMPLETE_Pin   GPIO_PIN_1
#define PRECHARGE_COMPLETE_GPIO_Port   GPIOA
#define DEBUG_LED_Pin   GPIO_PIN_2
#define DEBUG_LED_GPIO_Port   GPIOA
#define SPI_UCOMM_CS_Pin   GPIO_PIN_4
#define SPI_UCOMM_CS_GPIO_Port   GPIOA
#define SPI_UCOMM_SCK_Pin   GPIO_PIN_5
#define SPI_UCOMM_SCK_GPIO_Port   GPIOA
#define SPI_UCOMM_MISO_Pin   GPIO_PIN_6
#define SPI_UCOMM_MISO_GPIO_Port   GPIOA
#define SPI_UCOMM_MOSI_Pin   GPIO_PIN_7
#define SPI_UCOMM_MOSI_GPIO_Port   GPIOA
#define LV_PWR_MONITOR_Pin   GPIO_PIN_4
#define LV_PWR_MONITOR_GPIO_Port   GPIOC
#define SPI_ADC_CS_Pin   GPIO_PIN_12
#define SPI_ADC_CS_GPIO_Port   GPIOB
#define SPI_ADC_SCK_Pin   GPIO_PIN_13
#define SPI_ADC_SCK_GPIO_Port   GPIOB
#define SPI_ADC_MISO_Pin   GPIO_PIN_14
#define SPI_ADC_MISO_GPIO_Port   GPIOB
#define SPI_ADC_MOSI_Pin   GPIO_PIN_15
#define SPI_ADC_MOSI_GPIO_Port   GPIOB
#define ADC_CLKIN_Pin   GPIO_PIN_6
#define ADC_CLKIN_GPIO_Port   GPIOC
#define ADC_DRDY_Pin   GPIO_PIN_7
#define ADC_DRDY_GPIO_Port   GPIOC
#define ADC_RST_Pin   GPIO_PIN_8
#define ADC_RST_GPIO_Port   GPIOC
#define CHARGE_EN_Pin   GPIO_PIN_8
#define CHARGE_EN_GPIO_Port   GPIOA
#define SWDIO_TC_Pin   GPIO_PIN_13
#define SWDIO_TC_GPIO_Port   GPIOA
#define SWCLK_TC_Pin   GPIO_PIN_14
#define SWCLK_TC_GPIO_Port   GPIOA
#define SPI_FERAM_CS_Pin   GPIO_PIN_15
#define SPI_FERAM_CS_GPIO_Port   GPIOA
#define SPI_FERAM_SCK_Pin   GPIO_PIN_10
#define SPI_FERAM_SCK_GPIO_Port   GPIOC
#define SPI_FERAM_MISO_Pin   GPIO_PIN_11
#define SPI_FERAM_MISO_GPIO_Port   GPIOC
#define SPI_FERAM_MOSI_Pin   GPIO_PIN_12
#define SPI_FERAM_MOSI_GPIO_Port   GPIOC
#define IMD_DIAGNOSTIC_Pin   GPIO_PIN_3
#define IMD_DIAGNOSTIC_GPIO_Port   GPIOB

Functions

void HAL_TIM_MspPostInit (TIM_HandleTypeDef *htim)
void Error_Handler (void)
 This function is executed in case of error occurrence.
void send_can_msg_from_irq ()
void send_cell_vals_polling ()

Variables

SPI_HandleTypeDef * ltc_spi
int16_t poll_cell_temps
int16_t poll_cell_voltages
TIM_HandleTypeDef htim1
TIM_HandleTypeDef htim7
TIM_HandleTypeDef htim13
int32_t fault_timer

Detailed Description

: Header for main.c file. This file contains the common defines of the application.

Attention

Copyright (c) 2024 STMicroelectronics. All rights reserved.

This software is licensed under terms that can be found in the LICENSE file in the root directory of this software component. If no LICENSE file comes with this software, it is provided AS-IS.

Macro Definition Documentation

◆ ADC_CLKIN_GPIO_Port

#define ADC_CLKIN_GPIO_Port   GPIOC

◆ ADC_CLKIN_Pin

#define ADC_CLKIN_Pin   GPIO_PIN_6

◆ ADC_DRDY_GPIO_Port

#define ADC_DRDY_GPIO_Port   GPIOC

◆ ADC_DRDY_Pin

#define ADC_DRDY_Pin   GPIO_PIN_7

◆ ADC_RST_GPIO_Port

#define ADC_RST_GPIO_Port   GPIOC

◆ ADC_RST_Pin

#define ADC_RST_Pin   GPIO_PIN_8

◆ BMS_FLT_EN_GPIO_Port

#define BMS_FLT_EN_GPIO_Port   GPIOC

◆ BMS_FLT_EN_Pin

#define BMS_FLT_EN_Pin   GPIO_PIN_13

◆ CAN1_RX_FIF0_IRQ

#define CAN1_RX_FIF0_IRQ   CAN1_RX0_IRQn

◆ CAN_TX_TIMER_IRQ

#define CAN_TX_TIMER_IRQ   TIM7_IRQn

◆ CHARGE_EN_GPIO_Port

#define CHARGE_EN_GPIO_Port   GPIOA

◆ CHARGE_EN_Pin

#define CHARGE_EN_Pin   GPIO_PIN_8

◆ DEBUG_LED_GPIO_Port

#define DEBUG_LED_GPIO_Port   GPIOA

◆ DEBUG_LED_Pin

#define DEBUG_LED_Pin   GPIO_PIN_2

◆ DISABLE_ALL_CAN_IRQS

#define DISABLE_ALL_CAN_IRQS
Value:
do{ \
HAL_NVIC_DisableIRQ(CAN_TX_TIMER_IRQ); \
HAL_NVIC_DisableIRQ(CAN1_RX_FIF0_IRQ); \
}while(0);
#define CAN1_RX_FIF0_IRQ
Definition main.h:48
#define CAN_TX_TIMER_IRQ
Definition main.h:47

◆ DISABLE_ALL_IRQS

#define DISABLE_ALL_IRQS
Value:
do{ \
HAL_NVIC_DisableIRQ(ISOADC_TIMER_IRQ); \
HAL_NVIC_DisableIRQ(CAN_TX_TIMER_IRQ); \
HAL_NVIC_DisableIRQ(CAN1_RX_FIF0_IRQ); \
}while(0);
#define ISOADC_TIMER_IRQ
Definition main.h:46

◆ DISABLE_CAN1_RX_FIF0_IRQ

#define DISABLE_CAN1_RX_FIF0_IRQ   HAL_NVIC_DisableIRQ(CAN_TX_TIMER_IRQ)

◆ DISABLE_CAN_TX_TIMER_IRQ

#define DISABLE_CAN_TX_TIMER_IRQ   HAL_NVIC_DisableIRQ(CAN_TX_TIMER_IRQ)

◆ ENABLE_ALL_CAN_IRQS

#define ENABLE_ALL_CAN_IRQS
Value:
do{ \
HAL_NVIC_EnableIRQ(CAN_TX_TIMER_IRQ); \
HAL_NVIC_EnableIRQ(CAN1_RX_FIF0_IRQ); \
}while(0);

◆ ENABLE_ALL_IRQS

#define ENABLE_ALL_IRQS
Value:
do{ \
HAL_NVIC_EnableIRQ(ISOADC_TIMER_IRQ); \
HAL_NVIC_EnableIRQ(CAN_TX_TIMER_IRQ); \
HAL_NVIC_EnableIRQ(CAN1_RX_FIF0_IRQ); \
}while(0);

◆ ENABLE_CAN1_RX_FIF0_IRQ

#define ENABLE_CAN1_RX_FIF0_IRQ   HAL_NVIC_EnableIRQ(CAN_TX_TIMER_IRQ)

◆ ENABLE_CAN_TX_TIMER_IRQ

#define ENABLE_CAN_TX_TIMER_IRQ   HAL_NVIC_EnableIRQ(CAN_TX_TIMER_IRQ)

◆ HSE_IN_GPIO_Port

#define HSE_IN_GPIO_Port   GPIOH

◆ HSE_IN_Pin

#define HSE_IN_Pin   GPIO_PIN_0

◆ HSE_OUT_GPIO_Port

#define HSE_OUT_GPIO_Port   GPIOH

◆ HSE_OUT_Pin

#define HSE_OUT_Pin   GPIO_PIN_1

◆ IMD_DIAGNOSTIC_GPIO_Port

#define IMD_DIAGNOSTIC_GPIO_Port   GPIOB

◆ IMD_DIAGNOSTIC_Pin

#define IMD_DIAGNOSTIC_Pin   GPIO_PIN_3

◆ ISOADC_TIMER_IRQ

#define ISOADC_TIMER_IRQ   TIM1_UP_TIM10_IRQn

◆ LSE_IN_GPIO_Port

#define LSE_IN_GPIO_Port   GPIOC

◆ LSE_IN_Pin

#define LSE_IN_Pin   GPIO_PIN_14

◆ LSE_OUT_GPIO_Port

#define LSE_OUT_GPIO_Port   GPIOC

◆ LSE_OUT_Pin

#define LSE_OUT_Pin   GPIO_PIN_15

◆ LV_PWR_MONITOR_GPIO_Port

#define LV_PWR_MONITOR_GPIO_Port   GPIOC

◆ LV_PWR_MONITOR_Pin

#define LV_PWR_MONITOR_Pin   GPIO_PIN_4

◆ PRECHARGE_COMPLETE_GPIO_Port

#define PRECHARGE_COMPLETE_GPIO_Port   GPIOA

◆ PRECHARGE_COMPLETE_Pin

#define PRECHARGE_COMPLETE_Pin   GPIO_PIN_1

◆ SHUTDOWN_ACTIVE_GPIO_Port

#define SHUTDOWN_ACTIVE_GPIO_Port   GPIOC

◆ SHUTDOWN_ACTIVE_Pin

#define SHUTDOWN_ACTIVE_Pin   GPIO_PIN_3

◆ SPI_ADC_CS_GPIO_Port

#define SPI_ADC_CS_GPIO_Port   GPIOB

◆ SPI_ADC_CS_Pin

#define SPI_ADC_CS_Pin   GPIO_PIN_12

◆ SPI_ADC_MISO_GPIO_Port

#define SPI_ADC_MISO_GPIO_Port   GPIOB

◆ SPI_ADC_MISO_Pin

#define SPI_ADC_MISO_Pin   GPIO_PIN_14

◆ SPI_ADC_MOSI_GPIO_Port

#define SPI_ADC_MOSI_GPIO_Port   GPIOB

◆ SPI_ADC_MOSI_Pin

#define SPI_ADC_MOSI_Pin   GPIO_PIN_15

◆ SPI_ADC_SCK_GPIO_Port

#define SPI_ADC_SCK_GPIO_Port   GPIOB

◆ SPI_ADC_SCK_Pin

#define SPI_ADC_SCK_Pin   GPIO_PIN_13

◆ SPI_FERAM_CS_GPIO_Port

#define SPI_FERAM_CS_GPIO_Port   GPIOA

◆ SPI_FERAM_CS_Pin

#define SPI_FERAM_CS_Pin   GPIO_PIN_15

◆ SPI_FERAM_MISO_GPIO_Port

#define SPI_FERAM_MISO_GPIO_Port   GPIOC

◆ SPI_FERAM_MISO_Pin

#define SPI_FERAM_MISO_Pin   GPIO_PIN_11

◆ SPI_FERAM_MOSI_GPIO_Port

#define SPI_FERAM_MOSI_GPIO_Port   GPIOC

◆ SPI_FERAM_MOSI_Pin

#define SPI_FERAM_MOSI_Pin   GPIO_PIN_12

◆ SPI_FERAM_SCK_GPIO_Port

#define SPI_FERAM_SCK_GPIO_Port   GPIOC

◆ SPI_FERAM_SCK_Pin

#define SPI_FERAM_SCK_Pin   GPIO_PIN_10

◆ SPI_UCOMM_CS_GPIO_Port

#define SPI_UCOMM_CS_GPIO_Port   GPIOA

◆ SPI_UCOMM_CS_Pin

#define SPI_UCOMM_CS_Pin   GPIO_PIN_4

◆ SPI_UCOMM_MISO_GPIO_Port

#define SPI_UCOMM_MISO_GPIO_Port   GPIOA

◆ SPI_UCOMM_MISO_Pin

#define SPI_UCOMM_MISO_Pin   GPIO_PIN_6

◆ SPI_UCOMM_MOSI_GPIO_Port

#define SPI_UCOMM_MOSI_GPIO_Port   GPIOA

◆ SPI_UCOMM_MOSI_Pin

#define SPI_UCOMM_MOSI_Pin   GPIO_PIN_7

◆ SPI_UCOMM_SCK_GPIO_Port

#define SPI_UCOMM_SCK_GPIO_Port   GPIOA

◆ SPI_UCOMM_SCK_Pin

#define SPI_UCOMM_SCK_Pin   GPIO_PIN_5

◆ SWCLK_TC_GPIO_Port

#define SWCLK_TC_GPIO_Port   GPIOA

◆ SWCLK_TC_Pin

#define SWCLK_TC_Pin   GPIO_PIN_14

◆ SWDIO_TC_GPIO_Port

#define SWDIO_TC_GPIO_Port   GPIOA

◆ SWDIO_TC_Pin

#define SWDIO_TC_Pin   GPIO_PIN_13

Function Documentation

◆ Error_Handler()

void Error_Handler ( void )

This function is executed in case of error occurrence.

Return values
None

This function is executed in case of error occurrence.

Here is the caller graph for this function:

◆ HAL_TIM_MspPostInit()

void HAL_TIM_MspPostInit ( TIM_HandleTypeDef * htim)

TIM3 GPIO Configuration PC6 ------> TIM3_CH1

Here is the caller graph for this function:

◆ send_can_msg_from_irq()

void send_can_msg_from_irq ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ send_cell_vals_polling()

void send_cell_vals_polling ( )
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ fault_timer

int32_t fault_timer
extern

◆ htim1

TIM_HandleTypeDef htim1
extern

◆ htim13

TIM_HandleTypeDef htim13
extern

◆ htim7

TIM_HandleTypeDef htim7
extern

◆ ltc_spi

SPI_HandleTypeDef* ltc_spi
extern

◆ poll_cell_temps

int16_t poll_cell_temps
extern

◆ poll_cell_voltages

int16_t poll_cell_voltages
extern