Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c0fa76d
changes
captainwerty Apr 10, 2026
7a0ea03
Automatic Clang-Format: Standardized formatting automatically
github-actions[bot] Apr 10, 2026
3ce877d
Changed default case in switch statement to set precharge to 0
captainwerty Apr 10, 2026
849122e
Merge branch 'CCU_Review' of https://github.com/Gaucho-Racing/Firmwar…
captainwerty Apr 10, 2026
5246b17
removing dma and fdcan include from main
dwilson765 Apr 10, 2026
480da9b
Removed some unnecessary comments
amysaffer Apr 10, 2026
e62f3d6
SystemClock HSI to HSE
dwilson765 Apr 10, 2026
a81153b
VCP state dump log is now functional
AnaCarthi Apr 10, 2026
5cb7dd5
Automatic Clang-Format: Standardized formatting automatically
github-actions[bot] Apr 10, 2026
77618e7
removed log for every state tick
dwilson765 Apr 10, 2026
421f2d7
changes
captainwerty Apr 10, 2026
adf0c80
Changed default case in switch statement to set precharge to 0
captainwerty Apr 10, 2026
5bdc881
Automatic Clang-Format: Standardized formatting automatically
github-actions[bot] Apr 10, 2026
6c1f2bd
removing dma and fdcan include from main
dwilson765 Apr 10, 2026
9a8b3f4
Removed some unnecessary comments
amysaffer Apr 10, 2026
74cdc3d
SystemClock HSI to HSE
dwilson765 Apr 10, 2026
68737d1
VCP state dump log is now functional
AnaCarthi Apr 10, 2026
869de01
Automatic Clang-Format: Standardized formatting automatically
github-actions[bot] Apr 10, 2026
11cb9ae
removed log for every state tick
dwilson765 Apr 10, 2026
78d19d6
Changed VCP_StateDump to CheckDebugPrint & changed softwareLatch from…
dwilson765 Apr 10, 2026
3eb7059
Changed VCP_StateDump to CheckDebugPrint & changed softwareLatch from…
dwilson765 Apr 10, 2026
3193b9c
Automatic Clang-Format: Standardized formatting automatically
github-actions[bot] Apr 10, 2026
9dfee71
Removed duplicated code and change 0/1 to false/true bool vals
dwilson765 Apr 11, 2026
99c42e5
Merge branch 'main' into CCU_Review
dchansen06 Apr 13, 2026
1a302a8
Merge branch 'main' into CCU_Review
dchansen06 Apr 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion CCU/Application/Inc/CCUStateData.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
typedef struct {
CCU_STATE state;

// name lwk might be too long
bool recv_charge_cmd;

// BCU_STATUS_2
Expand Down
3 changes: 3 additions & 0 deletions CCU/Application/Inc/StateUtils.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@
#ifndef STATE_UTILS_H
#define STATE_UTILS_H

extern volatile bool request_print_statedata;

void setSoftwareLatch(bool close, CCU_StateData *state_data);
void CheckDebuggerPrint(const CCU_StateData *state_data);
bool CriticalError(const CCU_StateData *state_data);
bool BCU_Warnings(const CCU_StateData *state_data);
#endif
2 changes: 1 addition & 1 deletion CCU/Application/Inc/can_cfg.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
#define CAN_CFG_H

#define USECAN1
#define TX_BUFFER_1_SIZE 10
#define TX_BUFFER_1_SIZE 16

#endif
5 changes: 0 additions & 5 deletions CCU/Application/Src/CANDler.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ void Read_CAN(uint32_t ID, void *data, uint32_t size)

switch (messageId) {
case GRCAN_BCU_STATUS_2:
// FIXME: if bad message do a thing

if (size != sizeof(GRCAN_BCU_STATUS_2_MSG)) {
LOGOMATIC("Bad CCU CAN Rx length! ID: %lu, Size %lu\n", ID, size);
break;
Expand Down Expand Up @@ -172,9 +170,6 @@ void SendPrechargeStatus(CCU_StateData *state_data)

msg.data[0] = (state_data->BCU_PRECHARGE_SET_TS_ACTIVE);

if (sizeof(msg) != sizeof(GRCAN_BCU_PRECHARGE_MSG)) {
LOGOMATIC("Bad CCU CAN Tx length!, Size %u\n", sizeof(msg));
}
LOGOMATIC("PRECHARGE SET: %d\n", state_data->BCU_PRECHARGE_SET_TS_ACTIVE);

can_send(primary_can, &msg);
Expand Down
25 changes: 12 additions & 13 deletions CCU/Application/Src/StateTicks.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,41 +13,40 @@
void CCU_State_Tick(CCU_StateData *state_data)
{

LOGOMATIC("CCU Current State: %d\n", state_data->state);

// FIXME:
switch (state_data->state) { // if given an error, switch state to IDLE; warnings will remain placeholders until better understood
// General checks for State Transition, if any error detected, transition back to IDLE state

case CCU_STATE_IDLE:
// TODO: Create IDLE func elsewhere & Call state IDLE function
STATE_IDLE(state_data);
break;

case CCU_STATE_CHARGING:
// TODO: Create Charging func elsewhere & Call charging func
STATE_CHARGING(state_data);
break;

default:
state_data->BCU_PRECHARGE_SET_TS_ACTIVE = false;
state_data->state = CCU_STATE_IDLE;
SendPrechargeStatus(state_data);
setSoftwareLatch(false, state_data);
break;
};
}

void STATE_IDLE(CCU_StateData *state_data)
{
bool anyErrors = 0;
bool anyErrors = false;
BCU_Warnings(state_data);
if (CriticalError(state_data)) {
anyErrors = 1;
setSoftwareLatch(0, state_data);
LOGOMATIC("Critical Error Occured; State set to IDLE \n");
anyErrors = true;
setSoftwareLatch(false, state_data);
LOGOMATIC("Critical Error Occured!\n");
};

if (!anyErrors && state_data->recv_charge_cmd) {

state_data->state = CCU_STATE_CHARGING;
state_data->BCU_PRECHARGE_SET_TS_ACTIVE = 1;
state_data->BCU_PRECHARGE_SET_TS_ACTIVE = true;
SendPrechargeStatus(state_data);

LOGOMATIC("CCU Current State: %d\n", state_data->state);
Expand All @@ -60,9 +59,9 @@ void STATE_CHARGING(CCU_StateData *state_data)
BCU_Warnings(state_data);
if (CriticalError(state_data)) {

setSoftwareLatch(0, state_data);
setSoftwareLatch(false, state_data);

state_data->BCU_PRECHARGE_SET_TS_ACTIVE = 0;
state_data->BCU_PRECHARGE_SET_TS_ACTIVE = false;
SendPrechargeStatus(state_data);

state_data->state = CCU_STATE_IDLE;
Expand All @@ -72,7 +71,7 @@ void STATE_CHARGING(CCU_StateData *state_data)

if (!(state_data->recv_charge_cmd)) {
state_data->state = CCU_STATE_IDLE;
state_data->BCU_PRECHARGE_SET_TS_ACTIVE = 0;
state_data->BCU_PRECHARGE_SET_TS_ACTIVE = false;
SendPrechargeStatus(state_data);

LOGOMATIC("CCU Current State: %d\n", state_data->state);
Expand Down
45 changes: 43 additions & 2 deletions CCU/Application/Src/StateUtils.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ void setSoftwareLatch(bool close, CCU_StateData *state_data)

if (close && !LL_GPIO_IsInputPinSet(SOFTWARE_OK_CONTROL_GPIO_Port, SOFTWARE_OK_CONTROL_Pin)) {
LL_GPIO_ResetOutputPin(SOFTWARE_OK_CONTROL_GPIO_Port, SOFTWARE_OK_CONTROL_Pin);
state_data->BCU_S2_SOFTWARE_LATCH = 1;
state_data->BCU_S2_SOFTWARE_LATCH = true;
LOGOMATIC("Software Latch: High\n");
} else if (!close && LL_GPIO_IsInputPinSet(SOFTWARE_OK_CONTROL_GPIO_Port, SOFTWARE_OK_CONTROL_Pin)) {
LL_GPIO_ResetOutputPin(SOFTWARE_OK_CONTROL_GPIO_Port, SOFTWARE_OK_CONTROL_Pin);
state_data->BCU_S2_SOFTWARE_LATCH = 0;
state_data->BCU_S2_SOFTWARE_LATCH = false;
LOGOMATIC("Software Latch: Low\n");
}
}
Expand Down Expand Up @@ -65,3 +65,44 @@ bool CriticalError(const CCU_StateData *state_data)
return false;
}
}

volatile bool request_print_statedata;

void CheckDebuggerPrint(const CCU_StateData *state_data)
{
if (!request_print_statedata) {
return;
}

LOGOMATIC("\n========== CCU STATE DUMP ==========\n");

LOGOMATIC("state: %d\n", state_data->state);
LOGOMATIC("recv_charge_cmd: %d\n", state_data->recv_charge_cmd);

LOGOMATIC("\n--- BCU_STATUS_2 ---\n");
LOGOMATIC("20V: %u\n", state_data->BCU_S2_20Volt);
LOGOMATIC("12V: %u\n", state_data->BCU_S2_12Volt);
LOGOMATIC("SDC Volt: %u\n", state_data->BCU_S2_SDC_Volt);
LOGOMATIC("Min Cell Volt: %u\n", state_data->BCU_S2_MIN_CELL_Volt);
LOGOMATIC("Max Cell Temp: %u\n", state_data->BCU_S2_MAX_CELL_TEMP);

LOGOMATIC("\n--- Errors ---\n");
LOGOMATIC("OVERTEMP: %d\n", state_data->BCU_S2_OVERTEMP_ERROR);
LOGOMATIC("OVERVOLT: %d\n", state_data->BCU_S2_OVERVOLT_ERROR);
LOGOMATIC("UNDERVOLT: %d\n", state_data->BCU_S2_UNDERVOLT_ERROR);
LOGOMATIC("OVERCURR: %d\n", state_data->BCU_S2_OVERCURR_ERROR);
LOGOMATIC("UNDERCURR: %d\n", state_data->BCU_S2_UNDERCURR_ERROR);

LOGOMATIC("\n--- Warnings ---\n");
LOGOMATIC("UNDER20V: %d\n", state_data->BCU_S2_UNDER20v_WARNING);
LOGOMATIC("UNDER12V: %d\n", state_data->BCU_S2_UNDER12v_WARNING);
LOGOMATIC("UNDERVOLT SDC: %d\n", state_data->BCU_S2_UNDERVOLTSDC_WARNING);

LOGOMATIC("\n--- State Bits ---\n");
LOGOMATIC("SOFTWARE LATCH: %d\n", state_data->BCU_S2_SOFTWARE_LATCH);
LOGOMATIC("PRECHARGE TS ACTIVE: %d\n", state_data->BCU_PRECHARGE_SET_TS_ACTIVE);

LOGOMATIC("====================================\n\n");

request_print_statedata = false;
}
2 changes: 0 additions & 2 deletions CCU/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ target_sources(
${GR_PROJECT_NAME}_USER_CODE
INTERFACE
# Core
Core/Src/dma.c
Core/Src/fdcan.c
Core/Src/gpio.c
Core/Src/main.c
Core/Src/stm32g4xx_hal_msp.c
Expand Down
51 changes: 0 additions & 51 deletions CCU/Core/Inc/dma.h

This file was deleted.

54 changes: 0 additions & 54 deletions CCU/Core/Inc/fdcan.h

This file was deleted.

51 changes: 0 additions & 51 deletions CCU/Core/Src/dma.c

This file was deleted.

Loading
Loading