Skip to content

Commit 361ea6d

Browse files
committed
fix
1 parent b6d7ab3 commit 361ea6d

5 files changed

Lines changed: 28 additions & 26 deletions

File tree

.cubemx-manifest.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"boards": {
55
"BMS": {
66
"ioc_checksum": "08670b75875f2feedea3280eecc4821f36b742ccf7680976ae6f87bc3937ebfc",
7-
"generated_at": "2026-04-07T04:31:24Z",
7+
"generated_at": "2026-04-08T20:26:54Z",
88
"files": {
99
"Core/Inc/FreeRTOSConfig.h": "363755b7a21dd5a790f0bafbfd68f00abe141fd8691720b3604bc84b7dbaa81b",
1010
"Core/Inc/adc.h": "0ac97025a4065f07b7b65a906bd0c45ea800215434ed43c287c1685507f3f612",
@@ -20,7 +20,7 @@
2020
"Core/Src/adc.c": "e6351e04830c932155617799c4a53104b7c413c09cfb1e4448242d550042fbfa",
2121
"Core/Src/can.c": "f5e04678eadb76f6d822b060057362085c98d93b76b176dd249d0a86fcd6c8f6",
2222
"Core/Src/dma.c": "f4e0e37c96eb641193fda73df20c30bc1977cdb8fa419cd2892aacdbe5bdf78b",
23-
"Core/Src/freertos.c": "4c7697a29c0878015a1c0afa039f52ad6ff587e01ce001ff055d2755a389a2ca",
23+
"Core/Src/freertos.c": "2863f13e59f92c380f5012e5ba06221ed92ae41da5a34d12fba6f2c1dc69212c",
2424
"Core/Src/gpio.c": "9067f79d80bf4c169b51c12a357fb5f56d8aff27ed23815d9e42ac2fe87e4705",
2525
"Core/Src/i2c.c": "d616e686a119d6a1cfad6eee39d81b9245743036d643477d1fb9a3a2b588a157",
2626
"Core/Src/main.c": "fad0e58d62b91861f7c9252e01664e7ec54c89e0e60f72157168a302fbb140ff",
@@ -75,7 +75,7 @@
7575
},
7676
"DASH": {
7777
"ioc_checksum": "e95ffc17bdded4d5b6be3894345d7149e5c93fd84b09279cd8888540662ce95e",
78-
"generated_at": "2026-04-07T04:31:26Z",
78+
"generated_at": "2026-04-08T20:26:56Z",
7979
"files": {
8080
"Core/Inc/FreeRTOSConfig.h": "692168cbc9c915133ce3f329cec850c5372c1759ec0412ced61fc14741de14be",
8181
"Core/Inc/can.h": "d9c82c8382c196a76d472a6b82a292a0384a086536ca280ce701ebbba9f5c682",
@@ -177,7 +177,7 @@
177177
},
178178
"DART": {
179179
"ioc_checksum": "ec3c85c2c8b4e4d94362ddb58b54f6882bbe337678213a16363428dc83171245",
180-
"generated_at": "2026-04-07T04:31:26Z",
180+
"generated_at": "2026-04-08T20:26:57Z",
181181
"files": {
182182
"Core/Inc/gpio.h": "e2d62f964a0b7f238384ed6a20a181d09df9647240a268dc547acf5b35099f74",
183183
"Core/Inc/main.h": "e07a43ebc634ce451e2f80884378d112e048e06235fb49fdc2d9a2b5057d28c5",
@@ -197,7 +197,7 @@
197197
},
198198
"DCU": {
199199
"ioc_checksum": "75f4a1174af99a72596dd7f739c38e22b0459b215bc0ddb3e22a6cfd49a8e736",
200-
"generated_at": "2026-04-07T04:31:26Z",
200+
"generated_at": "2026-04-08T20:26:57Z",
201201
"files": {
202202
"Core/Inc/gpio.h": "e2d62f964a0b7f238384ed6a20a181d09df9647240a268dc547acf5b35099f74",
203203
"Core/Inc/main.h": "e07a43ebc634ce451e2f80884378d112e048e06235fb49fdc2d9a2b5057d28c5",
@@ -217,7 +217,7 @@
217217
},
218218
"LVPDB": {
219219
"ioc_checksum": "35fab767f9e0e1027a136ca482edf00568850e7bd941f793ae156215fec1ca33",
220-
"generated_at": "2026-04-07T04:31:27Z",
220+
"generated_at": "2026-04-08T20:26:58Z",
221221
"files": {
222222
"Core/Inc/can.h": "17611aeff90b90e352bc2ace2749644663492ecb10c71539567ef9b1441fd5d9",
223223
"Core/Inc/dma.h": "7cf6f7450a29d26303cbba5a3ca8c6cb24a02635d6a5ba4d05141fdfc75c4c49",
@@ -245,7 +245,7 @@
245245
},
246246
"PCU": {
247247
"ioc_checksum": "dd91de27d45363f02d89b5341de246826cc4d72a9f77d219c6bf4ac072c24126",
248-
"generated_at": "2026-04-07T04:31:27Z",
248+
"generated_at": "2026-04-08T20:26:58Z",
249249
"files": {
250250
"Core/Inc/adc.h": "e36acfe1b822eff1de7e9f93073b8da32c94dd5b09484b716e190c6aa63eb3d0",
251251
"Core/Inc/can.h": "98925d7f4010f054e17d240116244377377c15248a5413a09ff811cdc23084e5",
@@ -275,7 +275,7 @@
275275
},
276276
"Sensor_Nodes": {
277277
"ioc_checksum": "8c69b14e19d1dd61e329967ee4aad14fac48a8c30fc502bc9055c4a5eb52e5ab",
278-
"generated_at": "2026-04-07T04:31:28Z",
278+
"generated_at": "2026-04-08T20:26:59Z",
279279
"files": {
280280
"Core/Inc/adc.h": "0ac97025a4065f07b7b65a906bd0c45ea800215434ed43c287c1685507f3f612",
281281
"Core/Inc/can.h": "98925d7f4010f054e17d240116244377377c15248a5413a09ff811cdc23084e5",
@@ -303,7 +303,7 @@
303303
},
304304
"UART_TEST": {
305305
"ioc_checksum": "06c9618835096e44e3f73cd158bbc2e3fcf76e65dc9a29db68fe607180843efd",
306-
"generated_at": "2026-04-07T04:31:29Z",
306+
"generated_at": "2026-04-08T20:27:00Z",
307307
"files": {
308308
"Core/Inc/FreeRTOSConfig.h": "773dad076864ff18d5d85603d348d4931d29dde9925486e58f95a97ac98b8404",
309309
"Core/Inc/app_freertos.h": "6229601c2ebf192d40ceef377f3c1785571eaf6407f10bc87be5b06357dd3515",

BMS/Core/Src/freertos.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,8 @@ void MX_FREERTOS_Init(void) {
267267
/* USER CODE END RTOS_THREADS */
268268

269269
/* USER CODE BEGIN RTOS_EVENTS */
270-
/* add events, ... */
270+
/* Initialize FEB libraries after FreeRTOS objects are created */
271+
FEB_Init();
271272
/* USER CODE END RTOS_EVENTS */
272273

273274
}

BMS/Core/User/Inc/FEB_Const.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,10 @@
7474
// ********************************** Voltage and Temperature Limits *************
7575

7676
// Cell voltage limits (in millivolts)
77-
#define FEB_CELL_MAX_VOLTAGE_MV 4200 // Maximum safe cell voltage (Li-ion typical)
78-
#define FEB_CELL_MIN_VOLTAGE_MV 2500 // Minimum safe cell voltage (Li-ion typical)
79-
#define FEB_CELL_BALANCE_THRESHOLD_MV 10 // Start balancing if cell is >10mV above minimum
77+
#define FEB_CELL_MAX_VOLTAGE_MV 4200 // Maximum safe cell voltage (Li-ion typical)
78+
#define FEB_CELL_MIN_VOLTAGE_MV 2500 // Minimum safe cell voltage (Li-ion typical)
79+
#define FEB_CELL_BALANCE_THRESHOLD_MV 10 // Start balancing if cell is >10mV above minimum
80+
#define FEB_CELL_BALANCE_INTERVAL_MS 1000 // Balancing cycle interval (1 second)
8081

8182
// Cell temperature limits (in deci-Celsius, 1 dC = 0.1°C)
8283
#define FEB_CELL_MAX_TEMP_DC 600 // 60.0°C maximum cell temperature

BMS/Core/User/Src/FEB_ADBMS6830B.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -700,11 +700,6 @@ void FEB_Cell_Balance_Start()
700700

701701
void FEB_Cell_Balance_Process()
702702
{
703-
// if (FEB_SM_Get_Current_State() != FEB_SM_ST_BALANCING) {
704-
// return;
705-
// }
706-
707-
FEB_Stop_Balance();
708703
determineMinV();
709704

710705
if (balancing_cycle == 3)

BMS/Core/User/Src/FEB_Task_ADBMS.c

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ void StartADBMSTask(void *argument)
7676
uint32_t voltage_tick = osKernelGetTickCount();
7777
uint32_t temp_tick = osKernelGetTickCount();
7878
uint32_t print_tick = osKernelGetTickCount();
79+
uint32_t balance_tick = osKernelGetTickCount();
7980

8081
for (;;)
8182
{
@@ -106,14 +107,18 @@ void StartADBMSTask(void *argument)
106107
print_tick = now;
107108
}
108109

109-
/* Cell balancing (only in BALANCE state) */
110-
// FEB_SM_State_t current_state = FEB_SM_Get_Current_State();
111-
// if (current_state == FEB_SM_ST_BALANCING)
112-
// {
113-
// osMutexAcquire(ADBMSMutexHandle, osWaitForever);
114-
// FEB_Cell_Balance_Process();
115-
// osMutexRelease(ADBMSMutexHandle);
116-
// }
110+
/* Cell balancing (only in BALANCE or BATTERY_FREE state) */
111+
BMS_State_t current_state = FEB_SM_Get_Current_State();
112+
if (current_state == BMS_STATE_BALANCE || current_state == BMS_STATE_BATTERY_FREE)
113+
{
114+
if (now - balance_tick >= pdMS_TO_TICKS(FEB_CELL_BALANCE_INTERVAL_MS))
115+
{
116+
osMutexAcquire(ADBMSMutexHandle, osWaitForever);
117+
FEB_Cell_Balance_Process();
118+
osMutexRelease(ADBMSMutexHandle);
119+
balance_tick = now;
120+
}
121+
}
117122

118123
/* Task runs at 10ms period (100 Hz) */
119124
osDelay(pdMS_TO_TICKS(10));

0 commit comments

Comments
 (0)