PER Firmware
Loading...
Searching...
No Matches
main.c File Reference

"Abox" node source code More...

#include "main.h"
#include <stdint.h>
#include "adbms.h"
#include "common/can_library/faults_common.h"
#include "common/can_library/generated/A_BOX.h"
#include "common/freertos/freertos.h"
#include "common/phal/can.h"
#include "common/phal/gpio.h"
#include "common/phal/rcc.h"
#include "common/phal/adc.h"
#include "common/heartbeat/heartbeat.h"

Functions

void HardFault_Handler (void)
 
void bms_task (void)
 
void check_faults (void)
 
void report_telemetry (void)
 
 DEFINE_TASK (bms_task, 200, osPriorityHigh, STACK_2048)
 
 DEFINE_TASK (CAN_rx_update, 0, osPriorityHigh, STACK_2048)
 
 DEFINE_TASK (CAN_tx_update, 2, osPriorityNormal, STACK_2048)
 
 DEFINE_TASK (check_faults, 10, osPriorityNormal, STACK_512)
 
 DEFINE_TASK (fault_library_periodic, A_BOX_FAULT_SYNC_PERIOD_MS, osPriorityNormal, STACK_1024)
 
 DEFINE_TASK (report_telemetry, PACK_STATS_PERIOD_MS, osPriorityLow, STACK_512)
 
 DEFINE_HEARTBEAT_TASK (nullptr)
 
int main (void)
 

Variables

SPI_InitConfig_t bms_spi_config
 
ADCInitConfig_t adc_config
 
uint16_t isense_raw = 0
 
ADCChannelConfig_t adc_channel_config []
 
dma_init_t adc_dma_config = ADC1_DMA_CONT_CONFIG((uint32_t)&isense_raw, 1, 0b01)
 
GPIOInitConfig_t gpio_config []
 
ClockRateConfig_t clock_config
 
uint32_t APB1ClockRateHz
 
uint32_t APB2ClockRateHz
 
uint32_t AHBClockRateHz
 
uint32_t PLLClockRateHz
 
adbms_bms_t g_bms = {0}
 
uint8_t g_bms_tx_buf [ADBMS_SPI_TX_BUFFER_SIZE] = {0}
 

Detailed Description

"Abox" node source code

Author
Irving Wang (irvin.nosp@m.gw@p.nosp@m.urdue.nosp@m..edu), Millan Kumar (kumar.nosp@m.798@.nosp@m.purdu.nosp@m.e.ed.nosp@m.u)

Variable Documentation

◆ adc_channel_config

ADCChannelConfig_t adc_channel_config[]
Initial value:
= {
{.channel = ISENSE_ADC_CHANNEL, .rank = 1, .sampling_time = ADC_CHN_SMP_CYCLES_480},
}

◆ adc_config

ADCInitConfig_t adc_config
Initial value:
= {
.prescaler = ADC_CLK_PRESC_2,
.resolution = ADC_RES_12_BIT,
.data_align = ADC_DATA_ALIGN_RIGHT,
.cont_conv_mode = true,
.dma_mode = ADC_DMA_CIRCULAR,
.periph = ADC1,
}

◆ bms_spi_config

SPI_InitConfig_t bms_spi_config
Initial value:
= {
.data_len = 8,
.nss_sw = false,
.nss_gpio_port = SPI1_CS_PORT,
.nss_gpio_pin = SPI1_CS_PIN,
.rx_dma_cfg = nullptr,
.tx_dma_cfg = nullptr,
.periph = SPI1,
.cpol = 0,
.cpha = 0,
.data_rate = 500'000,
}

◆ clock_config

ClockRateConfig_t clock_config
Initial value:
= {
.clock_source = CLOCK_SOURCE_HSE,
.use_pll = false,
.system_clock_target_hz = TargetCoreClockrateHz,
.ahb_clock_target_hz = (TargetCoreClockrateHz / 1),
.apb1_clock_target_hz = (TargetCoreClockrateHz / (1)),
.apb2_clock_target_hz = (TargetCoreClockrateHz / (1)),
}