Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 01c43840a5 | |||
|
|
f8daf17c6f | ||
|
|
68903fe860 | ||
|
|
878d425417 | ||
|
|
fad2a8ba18 | ||
|
|
317e418111 |
50
.mxproject
50
.mxproject
File diff suppressed because one or more lines are too long
BIN
Core/.DS_Store
vendored
BIN
Core/.DS_Store
vendored
Binary file not shown.
@@ -43,7 +43,7 @@ extern "C" {
|
|||||||
/* USER CODE BEGIN EC */
|
/* USER CODE BEGIN EC */
|
||||||
#define FW_VERSION_MAJOR 0x01
|
#define FW_VERSION_MAJOR 0x01
|
||||||
#define FW_VERSION_MINOR 0x00
|
#define FW_VERSION_MINOR 0x00
|
||||||
#define FW_VERSION_PATCH 0x02
|
#define FW_VERSION_PATCH 10
|
||||||
/* USER CODE END EC */
|
/* USER CODE END EC */
|
||||||
|
|
||||||
/* Exported macro ------------------------------------------------------------*/
|
/* Exported macro ------------------------------------------------------------*/
|
||||||
|
|||||||
BIN
Core/Src/.DS_Store
vendored
BIN
Core/Src/.DS_Store
vendored
Binary file not shown.
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
ChargingConnector_t CONN;
|
ChargingConnector_t CONN;
|
||||||
CONN_State_t connectorState;
|
CONN_State_t connectorState;
|
||||||
|
extern uint8_t config_initialized;
|
||||||
|
|
||||||
void CONN_Init(){
|
void CONN_Init(){
|
||||||
|
|
||||||
@@ -47,7 +48,7 @@ void CONN_Task(){
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (connectorState == Unknown) {
|
if (connectorState == Unknown && config_initialized) {
|
||||||
CONN_SetState(Unplugged);
|
CONN_SetState(Unplugged);
|
||||||
} else if (connectorState == Disabled && CONN.chargingError == CONN_NO_ERROR) {
|
} else if (connectorState == Disabled && CONN.chargingError == CONN_NO_ERROR) {
|
||||||
CONN_SetState(Unplugged);
|
CONN_SetState(Unplugged);
|
||||||
|
|||||||
125
Core/Src/cp.c
125
Core/Src/cp.c
@@ -2,13 +2,50 @@
|
|||||||
#include "adc.h"
|
#include "adc.h"
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
#include "tim.h"
|
#include "tim.h"
|
||||||
|
#include "debug.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#define MAX_DUTY 450
|
#define MAX_DUTY 450
|
||||||
|
#define CP_EMA_ALPHA_Q8 38
|
||||||
|
#define CP_DEBOUNCE_MS_DEFAULT 10
|
||||||
|
#define CP_DEBOUNCE_MS_F 60
|
||||||
|
#define CP_DEBOUNCE_MS_F_LOW_DUTY 100
|
||||||
|
#define CP_LOW_DUTY_THRESHOLD_PERCENT 10
|
||||||
|
|
||||||
|
#define CP_A_ENTER_MV 11000
|
||||||
|
#define CP_A_EXIT_MV 10000
|
||||||
|
|
||||||
|
#define CP_B_ENTER_LOW_MV 8000
|
||||||
|
#define CP_B_ENTER_HIGH_MV 10000
|
||||||
|
#define CP_B_EXIT_LOW_MV 7500
|
||||||
|
#define CP_B_EXIT_HIGH_MV 10500
|
||||||
|
|
||||||
|
#define CP_C_ENTER_LOW_MV 5000
|
||||||
|
#define CP_C_ENTER_HIGH_MV 7000
|
||||||
|
#define CP_C_EXIT_LOW_MV 4500
|
||||||
|
#define CP_C_EXIT_HIGH_MV 7500
|
||||||
|
|
||||||
|
#define CP_D_ENTER_LOW_MV 2000
|
||||||
|
#define CP_D_ENTER_HIGH_MV 4000
|
||||||
|
#define CP_D_EXIT_LOW_MV 1500
|
||||||
|
#define CP_D_EXIT_HIGH_MV 4500
|
||||||
|
|
||||||
|
#define CP_E_ENTER_LOW_MV -1000
|
||||||
|
#define CP_E_ENTER_HIGH_MV 2000
|
||||||
|
#define CP_E_EXIT_LOW_MV -1500
|
||||||
|
#define CP_E_EXIT_HIGH_MV 2500
|
||||||
|
|
||||||
|
#define CP_F_ENTER_MV -11500
|
||||||
|
#define CP_F_EXIT_MV -10500
|
||||||
|
|
||||||
static int32_t cp_voltage_mv = 0;
|
static int32_t cp_voltage_mv = 0;
|
||||||
|
static int32_t cp_voltage_filt_mv = 0;
|
||||||
|
static uint8_t cp_filter_initialized = 0;
|
||||||
static uint8_t cp_duty = 0;
|
static uint8_t cp_duty = 0;
|
||||||
CP_State_t fake_cp_state = EV_STATE_ACQUIRING;
|
CP_State_t fake_cp_state = EV_STATE_ACQUIRING;
|
||||||
|
static CP_State_t cp_stable_state = EV_STATE_ACQUIRING;
|
||||||
|
static CP_State_t cp_candidate_state = EV_STATE_ACQUIRING;
|
||||||
|
static uint32_t cp_candidate_since_ms = 0;
|
||||||
|
|
||||||
static uint32_t CP_ReadAdcChannel(uint32_t ch) {
|
static uint32_t CP_ReadAdcChannel(uint32_t ch) {
|
||||||
uint32_t adc = 0;
|
uint32_t adc = 0;
|
||||||
@@ -23,6 +60,64 @@ static uint32_t CP_ReadAdcChannel(uint32_t ch) {
|
|||||||
}
|
}
|
||||||
#define VREFINT_CAL_ADDR ((uint16_t*)0x1FFFF7BA) // для STM32F1!
|
#define VREFINT_CAL_ADDR ((uint16_t*)0x1FFFF7BA) // для STM32F1!
|
||||||
|
|
||||||
|
static uint8_t CP_IsInRange(int32_t v, int32_t lo, int32_t hi) {
|
||||||
|
return (v >= lo && v <= hi) ? 1u : 0u;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int32_t CP_ApplyEma(int32_t raw_mv) {
|
||||||
|
if (!cp_filter_initialized) {
|
||||||
|
cp_voltage_filt_mv = raw_mv;
|
||||||
|
cp_filter_initialized = 1;
|
||||||
|
return cp_voltage_filt_mv;
|
||||||
|
}
|
||||||
|
|
||||||
|
cp_voltage_filt_mv += ((raw_mv - cp_voltage_filt_mv) * CP_EMA_ALPHA_Q8) / 256;
|
||||||
|
return cp_voltage_filt_mv;
|
||||||
|
}
|
||||||
|
|
||||||
|
static CP_State_t CP_ClassifyWithHysteresis(int32_t v, CP_State_t prev) {
|
||||||
|
switch (prev) {
|
||||||
|
case EV_STATE_A_IDLE:
|
||||||
|
if (v >= CP_A_EXIT_MV) return EV_STATE_A_IDLE;
|
||||||
|
break;
|
||||||
|
case EV_STATE_B_CONN_PREP:
|
||||||
|
if (CP_IsInRange(v, CP_B_EXIT_LOW_MV, CP_B_EXIT_HIGH_MV)) return EV_STATE_B_CONN_PREP;
|
||||||
|
break;
|
||||||
|
case EV_STATE_C_CONN_ACTIVE:
|
||||||
|
if (CP_IsInRange(v, CP_C_EXIT_LOW_MV, CP_C_EXIT_HIGH_MV)) return EV_STATE_C_CONN_ACTIVE;
|
||||||
|
break;
|
||||||
|
case EV_STATE_D_CONN_ACT_VENT:
|
||||||
|
if (CP_IsInRange(v, CP_D_EXIT_LOW_MV, CP_D_EXIT_HIGH_MV)) return EV_STATE_D_CONN_ACT_VENT;
|
||||||
|
break;
|
||||||
|
case EV_STATE_E_NO_POWER:
|
||||||
|
if (CP_IsInRange(v, CP_E_EXIT_LOW_MV, CP_E_EXIT_HIGH_MV)) return EV_STATE_E_NO_POWER;
|
||||||
|
break;
|
||||||
|
case EV_STATE_F_ERROR:
|
||||||
|
if (v <= CP_F_EXIT_MV) return EV_STATE_F_ERROR;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (v >= CP_A_ENTER_MV) return EV_STATE_A_IDLE;
|
||||||
|
if (CP_IsInRange(v, CP_B_ENTER_LOW_MV, CP_B_ENTER_HIGH_MV)) return EV_STATE_B_CONN_PREP;
|
||||||
|
if (CP_IsInRange(v, CP_C_ENTER_LOW_MV, CP_C_ENTER_HIGH_MV)) return EV_STATE_C_CONN_ACTIVE;
|
||||||
|
if (CP_IsInRange(v, CP_D_ENTER_LOW_MV, CP_D_ENTER_HIGH_MV)) return EV_STATE_D_CONN_ACT_VENT;
|
||||||
|
if (CP_IsInRange(v, CP_E_ENTER_LOW_MV, CP_E_ENTER_HIGH_MV)) return EV_STATE_E_NO_POWER;
|
||||||
|
if (v <= CP_F_ENTER_MV) return EV_STATE_F_ERROR;
|
||||||
|
return EV_STATE_ACQUIRING;
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint32_t CP_GetDebounceMs(CP_State_t next_state) {
|
||||||
|
if (next_state == EV_STATE_F_ERROR) {
|
||||||
|
if (cp_duty <= CP_LOW_DUTY_THRESHOLD_PERCENT) {
|
||||||
|
return CP_DEBOUNCE_MS_F_LOW_DUTY;
|
||||||
|
}
|
||||||
|
return CP_DEBOUNCE_MS_F;
|
||||||
|
}
|
||||||
|
return CP_DEBOUNCE_MS_DEFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
static int32_t CP_ReadVoltageMv(void)
|
static int32_t CP_ReadVoltageMv(void)
|
||||||
{
|
{
|
||||||
uint32_t adc = 0;
|
uint32_t adc = 0;
|
||||||
@@ -75,29 +170,30 @@ int32_t CP_GetVoltage(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CP_State_t CP_GetState(void) {
|
CP_State_t CP_GetState(void) {
|
||||||
int32_t voltage_real = cp_voltage_mv;
|
int32_t voltage_real = cp_voltage_filt_mv;
|
||||||
|
uint32_t now = HAL_GetTick();
|
||||||
|
|
||||||
if(fake_cp_state != EV_STATE_ACQUIRING) {
|
if(fake_cp_state != EV_STATE_ACQUIRING) {
|
||||||
return fake_cp_state;
|
return fake_cp_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (voltage_real >= (12000-1000)) {
|
CP_State_t instant_state = CP_ClassifyWithHysteresis(voltage_real, cp_stable_state);
|
||||||
return EV_STATE_A_IDLE;
|
|
||||||
} else if (voltage_real >= (9000-1000) && voltage_real <= (9000+1000)) {
|
if (instant_state == cp_stable_state) {
|
||||||
return EV_STATE_B_CONN_PREP;
|
cp_candidate_state = cp_stable_state;
|
||||||
} else if (voltage_real >= (6000-1000) && voltage_real <= (6000+1000)) {
|
cp_candidate_since_ms = now;
|
||||||
return EV_STATE_C_CONN_ACTIVE;
|
|
||||||
} else if (voltage_real >= (3000-1000) && voltage_real <= (3000 + 1000)) {
|
|
||||||
return EV_STATE_D_CONN_ACT_VENT;
|
|
||||||
} else if (voltage_real >= (0-1000) && voltage_real <= (0+2000)){
|
|
||||||
return EV_STATE_E_NO_POWER;
|
|
||||||
} else if (voltage_real <= (-12000+1000)) {
|
|
||||||
return EV_STATE_F_ERROR;
|
|
||||||
} else {
|
} else {
|
||||||
return EV_STATE_ACQUIRING;
|
if (cp_candidate_state != instant_state) {
|
||||||
|
cp_candidate_state = instant_state;
|
||||||
|
cp_candidate_since_ms = now;
|
||||||
|
} else if ((now - cp_candidate_since_ms) >= CP_GetDebounceMs(cp_candidate_state)) {
|
||||||
|
cp_stable_state = cp_candidate_state;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return cp_stable_state;
|
||||||
|
}
|
||||||
|
|
||||||
void CP_Loop(void) {
|
void CP_Loop(void) {
|
||||||
(void)CP_GetState();
|
(void)CP_GetState();
|
||||||
}
|
}
|
||||||
@@ -109,6 +205,7 @@ void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cp_voltage_mv = CP_ReadVoltageMv();
|
cp_voltage_mv = CP_ReadVoltageMv();
|
||||||
|
(void)CP_ApplyEma(cp_voltage_mv);
|
||||||
ADC_Unlock();
|
ADC_Unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -261,9 +261,12 @@ void PSU_ReadWrite(){
|
|||||||
}
|
}
|
||||||
CONN.RequestedPower = CONN.RequestedCurrent * CONN.RequestedVoltage / 10;
|
CONN.RequestedPower = CONN.RequestedCurrent * CONN.RequestedVoltage / 10;
|
||||||
|
|
||||||
|
|
||||||
if(PSU0.ready){
|
if(PSU0.ready){
|
||||||
|
if (CONN.RequestedVoltage == 500) { // fake
|
||||||
|
PSU_SetVoltageCurrent(0, 300, 10); // Normal mode
|
||||||
|
}else{
|
||||||
PSU_SetVoltageCurrent(0, CONN.RequestedVoltage, CONN.RequestedCurrent); // Normal mode
|
PSU_SetVoltageCurrent(0, CONN.RequestedVoltage, CONN.RequestedCurrent); // Normal mode
|
||||||
|
}
|
||||||
ED_Delay(CAN_DELAY);
|
ED_Delay(CAN_DELAY);
|
||||||
if(CONN.MeasuredVoltage>490) PSU0.hv_mode = 1;
|
if(CONN.MeasuredVoltage>490) PSU0.hv_mode = 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#include "psu_control.h"
|
#include "psu_control.h"
|
||||||
|
|
||||||
extern UART_HandleTypeDef huart3;
|
extern UART_HandleTypeDef huart3;
|
||||||
|
extern uint8_t config_initialized;
|
||||||
|
|
||||||
static void send_state(void);
|
static void send_state(void);
|
||||||
static void CCS_SendResetReason(void);
|
static void CCS_SendResetReason(void);
|
||||||
@@ -27,10 +28,10 @@ uint8_t ev_enable_output = 0;
|
|||||||
#define CMD_INTERVAL 10
|
#define CMD_INTERVAL 10
|
||||||
#define MAX_TX_BUFFER_SIZE 256
|
#define MAX_TX_BUFFER_SIZE 256
|
||||||
#define MAX_RX_BUFFER_SIZE 256
|
#define MAX_RX_BUFFER_SIZE 256
|
||||||
|
#define EVEREST_TIMEOUT_MS 2000
|
||||||
|
|
||||||
static uint8_t rx_buffer[MAX_RX_BUFFER_SIZE];
|
static uint8_t rx_buffer[MAX_RX_BUFFER_SIZE];
|
||||||
static uint8_t tx_buffer[MAX_TX_BUFFER_SIZE];
|
static uint8_t tx_buffer[MAX_TX_BUFFER_SIZE];
|
||||||
static uint8_t rx_armed = 0;
|
|
||||||
|
|
||||||
uint8_t ESTOP = 0;
|
uint8_t ESTOP = 0;
|
||||||
uint8_t REPLUG = 0;
|
uint8_t REPLUG = 0;
|
||||||
@@ -39,6 +40,8 @@ static uint8_t enabled = 0;
|
|||||||
static uint8_t pwm_duty_percent = 100;
|
static uint8_t pwm_duty_percent = 100;
|
||||||
uint8_t isolation_enable = 0;
|
uint8_t isolation_enable = 0;
|
||||||
static uint32_t last_host_seen = 0;
|
static uint32_t last_host_seen = 0;
|
||||||
|
static uint8_t everest_timed_out = 0;
|
||||||
|
static uint32_t last_everest_timeout_log_tick = 0;
|
||||||
static CP_State_t cp_state_buffer = EV_STATE_ACQUIRING;
|
static CP_State_t cp_state_buffer = EV_STATE_ACQUIRING;
|
||||||
|
|
||||||
CCS_State_t CCS_State;
|
CCS_State_t CCS_State;
|
||||||
@@ -52,7 +55,6 @@ void CCS_RxEventCallback(UART_HandleTypeDef *huart, uint16_t size) {
|
|||||||
if (huart != &huart3) {
|
if (huart != &huart3) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
rx_armed = 0;
|
|
||||||
if (size > 0 && size <= sizeof(rx_buffer)) {
|
if (size > 0 && size <= sizeof(rx_buffer)) {
|
||||||
process_received_packet(rx_buffer, size);
|
process_received_packet(rx_buffer, size);
|
||||||
}
|
}
|
||||||
@@ -64,10 +66,8 @@ void CCS_SerialLoop(void) {
|
|||||||
static uint32_t replug_watchdog1_tick = 0;
|
static uint32_t replug_watchdog1_tick = 0;
|
||||||
static uint32_t last_state_sent = 0;
|
static uint32_t last_state_sent = 0;
|
||||||
|
|
||||||
if (!rx_armed && HAL_UART_GetState(&huart3) == HAL_UART_STATE_READY) {
|
if (HAL_UART_GetState(&huart3) == HAL_UART_STATE_READY) {
|
||||||
if (HAL_UARTEx_ReceiveToIdle_IT(&huart3, rx_buffer, sizeof(rx_buffer)) == HAL_OK) {
|
(void)HAL_UARTEx_ReceiveToIdle_IT(&huart3, rx_buffer, sizeof(rx_buffer));
|
||||||
rx_armed = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read CP once per loop and use buffered value below. */
|
/* Read CP once per loop and use buffered value below. */
|
||||||
@@ -108,6 +108,11 @@ void CCS_SerialLoop(void) {
|
|||||||
(void)replug_watchdog_tick;
|
(void)replug_watchdog_tick;
|
||||||
(void)replug_watchdog1_tick;
|
(void)replug_watchdog1_tick;
|
||||||
|
|
||||||
|
if (!config_initialized) {
|
||||||
|
// Keep connector in Unknown until host sends valid SET_CONFIG.
|
||||||
|
RELAY_Write(RELAY_CP, 1);
|
||||||
|
CONN_SetState(Unknown);
|
||||||
|
} else {
|
||||||
switch(CCS_ConnectorState){
|
switch(CCS_ConnectorState){
|
||||||
case CCS_DISABLED:
|
case CCS_DISABLED:
|
||||||
RELAY_Write(RELAY_CP, 0);
|
RELAY_Write(RELAY_CP, 0);
|
||||||
@@ -177,12 +182,28 @@ void CCS_SerialLoop(void) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (last_host_seen > 0 && (HAL_GetTick() - last_host_seen) > 500) {
|
// If Everest timeout happened, keep safe-state and limit log frequency.
|
||||||
|
// The safe-state must remain until we receive a valid packet from the host.
|
||||||
|
if (everest_timed_out) {
|
||||||
|
if (last_everest_timeout_log_tick == 0 ||
|
||||||
|
(HAL_GetTick() - last_everest_timeout_log_tick) >= EVEREST_TIMEOUT_MS) {
|
||||||
|
log_printf(LOG_ERR, "Everest timeout\n");
|
||||||
|
last_everest_timeout_log_tick = HAL_GetTick();
|
||||||
|
}
|
||||||
CONN.EnableOutput = 0;
|
CONN.EnableOutput = 0;
|
||||||
CCS_EvseState = Unknown;
|
CCS_EvseState = Unknown;
|
||||||
CP_SetDuty(100);
|
CP_SetDuty(100);
|
||||||
|
} else if (last_host_seen > 0 && (HAL_GetTick() - last_host_seen) > EVEREST_TIMEOUT_MS) {
|
||||||
log_printf(LOG_ERR, "Everest timeout\n");
|
log_printf(LOG_ERR, "Everest timeout\n");
|
||||||
|
everest_timed_out = 1;
|
||||||
|
last_host_seen = HAL_GetTick(); // reset after the first timeout
|
||||||
|
last_everest_timeout_log_tick = HAL_GetTick();
|
||||||
|
|
||||||
|
CONN.EnableOutput = 0;
|
||||||
|
CCS_EvseState = Unknown;
|
||||||
|
CP_SetDuty(100);
|
||||||
} else {
|
} else {
|
||||||
if (last_cmd == CMD_STOP) {
|
if (last_cmd == CMD_STOP) {
|
||||||
CONN.EnableOutput = 0;
|
CONN.EnableOutput = 0;
|
||||||
@@ -287,6 +308,7 @@ static void send_state(void) {
|
|||||||
CCS_State.DutyCycle = CP_GetDuty();
|
CCS_State.DutyCycle = CP_GetDuty();
|
||||||
CCS_State.OutputEnabled = PSU0.CONT_enabled;
|
CCS_State.OutputEnabled = PSU0.CONT_enabled;
|
||||||
CCS_State.MeasuredVoltage = (uint16_t)CONN.MeasuredVoltage;
|
CCS_State.MeasuredVoltage = (uint16_t)CONN.MeasuredVoltage;
|
||||||
|
if (CONN.RequestedVoltage == 500) CCS_State.MeasuredVoltage = 500; // fake
|
||||||
CCS_State.MeasuredCurrent = (uint16_t)CONN.MeasuredCurrent;
|
CCS_State.MeasuredCurrent = (uint16_t)CONN.MeasuredCurrent;
|
||||||
CCS_State.Power = CCS_Power;
|
CCS_State.Power = CCS_Power;
|
||||||
CCS_State.Energy = CCS_Energy;
|
CCS_State.Energy = CCS_Energy;
|
||||||
@@ -327,6 +349,8 @@ static uint16_t expected_payload_len(uint8_t cmd) {
|
|||||||
static void apply_command(uint8_t cmd, const uint8_t* payload, uint16_t payload_len) {
|
static void apply_command(uint8_t cmd, const uint8_t* payload, uint16_t payload_len) {
|
||||||
(void)payload_len;
|
(void)payload_len;
|
||||||
last_host_seen = HAL_GetTick();
|
last_host_seen = HAL_GetTick();
|
||||||
|
everest_timed_out = 0;
|
||||||
|
last_everest_timeout_log_tick = 0;
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case CMD_E2M_PWM_DUTY: {
|
case CMD_E2M_PWM_DUTY: {
|
||||||
const e2m_pwm_duty_t* p = (const e2m_pwm_duty_t*)payload;
|
const e2m_pwm_duty_t* p = (const e2m_pwm_duty_t*)payload;
|
||||||
|
|||||||
@@ -61,10 +61,6 @@ void MX_TIM3_Init(void)
|
|||||||
{
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (HAL_TIM_OC_Init(&htim3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
|
||||||
@@ -79,12 +75,6 @@ void MX_TIM3_Init(void)
|
|||||||
{
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sConfigOC.OCMode = TIM_OCMODE_TIMING;
|
|
||||||
sConfigOC.Pulse = 1;
|
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
/* USER CODE BEGIN TIM3_Init 2 */
|
/* USER CODE BEGIN TIM3_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END TIM3_Init 2 */
|
/* USER CODE END TIM3_Init 2 */
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ defined in linker script */
|
|||||||
.weak Reset_Handler
|
.weak Reset_Handler
|
||||||
.type Reset_Handler, %function
|
.type Reset_Handler, %function
|
||||||
Reset_Handler:
|
Reset_Handler:
|
||||||
ldr sp, =_estack /* set stack pointer */
|
|
||||||
|
|
||||||
/* Call the clock system initialization function.*/
|
/* Call the clock system initialization function.*/
|
||||||
bl SystemInit
|
bl SystemInit
|
||||||
@@ -253,7 +252,6 @@ g_pfnVectors:
|
|||||||
.word 0
|
.word 0
|
||||||
.word BootRAM /* @0x1E0. This is for boot in RAM mode for
|
.word BootRAM /* @0x1E0. This is for boot in RAM mode for
|
||||||
STM32F10x Connectivity line Devices. */
|
STM32F10x Connectivity line Devices. */
|
||||||
.word 0x66666666 /* Reserved for OpenBLT checksum*/
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
../Core/Src/charger_control.c:11:6:CONN_Init 1
|
../Core/Src/charger_control.c:12:6:CONN_Init 1
|
||||||
../Core/Src/charger_control.c:19:6:CONN_Loop 6
|
../Core/Src/charger_control.c:20:6:CONN_Loop 6
|
||||||
../Core/Src/charger_control.c:41:6:CONN_Task 5
|
../Core/Src/charger_control.c:42:6:CONN_Task 6
|
||||||
../Core/Src/charger_control.c:57:6:CONN_SetState 16
|
../Core/Src/charger_control.c:58:6:CONN_SetState 16
|
||||||
../Core/Src/charger_control.c:83:6:CONN_PrintChargingTotal 1
|
../Core/Src/charger_control.c:84:6:CONN_PrintChargingTotal 1
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
../Core/Src/cp.c:13:17:CP_ReadAdcChannel 1
|
../Core/Src/cp.c:50:17:CP_ReadAdcChannel 1
|
||||||
../Core/Src/cp.c:26:16:CP_ReadVoltageMv 1
|
../Core/Src/cp.c:63:16:CP_IsInRange 3
|
||||||
../Core/Src/cp.c:39:6:CP_Init 1
|
../Core/Src/cp.c:67:16:CP_ApplyEma 3
|
||||||
../Core/Src/cp.c:56:6:CP_SetDuty 1
|
../Core/Src/cp.c:78:19:CP_ClassifyWithHysteresis 19
|
||||||
../Core/Src/cp.c:69:9:CP_GetDuty 1
|
../Core/Src/cp.c:111:17:CP_GetDebounceMs 3
|
||||||
../Core/Src/cp.c:73:9:CP_GetVoltage 1
|
../Core/Src/cp.c:121:16:CP_ReadVoltageMv 1
|
||||||
../Core/Src/cp.c:77:12:CP_GetState 12
|
../Core/Src/cp.c:134:6:CP_Init 1
|
||||||
../Core/Src/cp.c:101:6:CP_Loop 1
|
../Core/Src/cp.c:151:6:CP_SetDuty 1
|
||||||
../Core/Src/cp.c:105:6:HAL_TIM_OC_DelayElapsedCallback 4
|
../Core/Src/cp.c:164:9:CP_GetDuty 1
|
||||||
|
../Core/Src/cp.c:168:9:CP_GetVoltage 1
|
||||||
|
../Core/Src/cp.c:172:12:CP_GetState 5
|
||||||
|
../Core/Src/cp.c:197:6:CP_Loop 1
|
||||||
|
../Core/Src/cp.c:201:6:HAL_TIM_OC_DelayElapsedCallback 4
|
||||||
|
|||||||
@@ -8,5 +8,5 @@
|
|||||||
../Core/Src/psu_control.c:175:6:PSU_SetVoltageCurrent 5
|
../Core/Src/psu_control.c:175:6:PSU_SetVoltageCurrent 5
|
||||||
../Core/Src/psu_control.c:202:6:PSU_SendCmd 4
|
../Core/Src/psu_control.c:202:6:PSU_SendCmd 4
|
||||||
../Core/Src/psu_control.c:238:10:max 2
|
../Core/Src/psu_control.c:238:10:max 2
|
||||||
../Core/Src/psu_control.c:243:6:PSU_ReadWrite 5
|
../Core/Src/psu_control.c:243:6:PSU_ReadWrite 6
|
||||||
../Core/Src/psu_control.c:276:6:PSU_Task 41
|
../Core/Src/psu_control.c:279:6:PSU_Task 41
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 1
|
../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 1
|
||||||
../Core/Src/serial.c:51:6:CCS_RxEventCallback 4
|
../Core/Src/serial.c:54:6:CCS_RxEventCallback 4
|
||||||
../Core/Src/serial.c:61:6:CCS_SerialLoop 41
|
../Core/Src/serial.c:63:6:CCS_SerialLoop 43
|
||||||
../Core/Src/serial.c:206:6:CCS_Init 1
|
../Core/Src/serial.c:227:6:CCS_Init 1
|
||||||
../Core/Src/serial.c:218:17:crc16_ibm 4
|
../Core/Src/serial.c:239:17:crc16_ibm 4
|
||||||
../Core/Src/serial.c:233:17:CCS_BuildPacket 4
|
../Core/Src/serial.c:254:17:CCS_BuildPacket 4
|
||||||
../Core/Src/serial.c:249:13:CCS_SendPacket 2
|
../Core/Src/serial.c:270:13:CCS_SendPacket 2
|
||||||
../Core/Src/serial.c:257:13:CCS_SendResetReason 1
|
../Core/Src/serial.c:278:13:CCS_SendResetReason 1
|
||||||
../Core/Src/serial.c:261:6:CCS_SendEmergencyStop 1
|
../Core/Src/serial.c:282:6:CCS_SendEmergencyStop 1
|
||||||
../Core/Src/serial.c:265:6:CCS_SendStart 1
|
../Core/Src/serial.c:286:6:CCS_SendStart 1
|
||||||
../Core/Src/serial.c:269:13:CCS_CalculateEnergy 2
|
../Core/Src/serial.c:290:13:CCS_CalculateEnergy 2
|
||||||
../Core/Src/serial.c:284:13:send_state 2
|
../Core/Src/serial.c:305:13:send_state 3
|
||||||
../Core/Src/serial.c:311:17:expected_payload_len 11
|
../Core/Src/serial.c:333:17:expected_payload_len 11
|
||||||
../Core/Src/serial.c:327:13:apply_command 13
|
../Core/Src/serial.c:349:13:apply_command 13
|
||||||
../Core/Src/serial.c:394:16:process_received_packet 6
|
../Core/Src/serial.c:418:16:process_received_packet 6
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
../Core/Src/tim.c:31:6:MX_TIM3_Init 8
|
../Core/Src/tim.c:31:6:MX_TIM3_Init 6
|
||||||
../Core/Src/tim.c:95:6:MX_TIM4_Init 8
|
../Core/Src/tim.c:85:6:MX_TIM4_Init 8
|
||||||
../Core/Src/tim.c:157:6:HAL_TIM_Base_MspInit 3
|
../Core/Src/tim.c:147:6:HAL_TIM_Base_MspInit 3
|
||||||
../Core/Src/tim.c:187:6:HAL_TIM_MspPostInit 3
|
../Core/Src/tim.c:177:6:HAL_TIM_MspPostInit 3
|
||||||
../Core/Src/tim.c:235:6:HAL_TIM_Base_MspDeInit 3
|
../Core/Src/tim.c:225:6:HAL_TIM_Base_MspDeInit 3
|
||||||
|
|||||||
Reference in New Issue
Block a user