Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
9c54146
New cmake lists for vscode
romi2002 Feb 28, 2024
0fcf080
Initial stepper lib version
romi2002 Mar 6, 2024
38cf6c1
Removed old tasks from main
romi2002 Mar 6, 2024
7793e5b
Tested basic step functionality
romi2002 Mar 7, 2024
bb06ce1
Added new encoder task
romi2002 Mar 7, 2024
54bd8f8
CAN interface re-write
romi2002 Mar 7, 2024
af0e8cd
Updated CANLib
romi2002 Mar 7, 2024
f844538
Working encoder tests
romi2002 Mar 8, 2024
861cf81
Updated canlib
romi2002 Mar 8, 2024
05d5237
Fixed some can message lengths
romi2002 Mar 8, 2024
5448aab
Working! Still needs CAN testing
romi2002 Mar 8, 2024
9a14066
Initial stepper can bus testing
romi2002 Mar 13, 2024
84fda88
Reverted incorrect can bus byte order
romi2002 Mar 13, 2024
5ce749e
vscode convertion (steering)
saucesaft Mar 15, 2024
4c81060
17 de marzo
saucesaft Mar 17, 2024
f1b3f91
ya funciona el joystick
saucesaft Mar 18, 2024
621d099
better motor period
saucesaft Mar 19, 2024
a3fdbd0
mode change on pcb
saucesaft Mar 21, 2024
8527714
Now works
romi2002 Mar 27, 2024
3ff5d7e
error in mode setting
saucesaft Apr 2, 2024
2f2f691
configured to work with st-util
saucesaft May 30, 2024
5a68f32
updated gitignore
saucesaft May 30, 2024
fee2195
updated to new filters library
saucesaft May 30, 2024
2f4fdc4
updated canlib version
saucesaft May 30, 2024
e070452
brake almost there
saucesaft Jun 3, 2024
99ec8e8
pre timer change
saucesaft Jun 5, 2024
7836b27
post timer change (needs testing)
saucesaft Jun 5, 2024
aeb7845
timer change successful
saucesaft Jun 5, 2024
4f43efc
Just to check changes for Debug, not really relevant
katzgo Jun 15, 2024
504c7db
NOW WORKING: Changed function files from branch brake_test into this …
katzgo Jun 17, 2024
a8079d8
Now brake actually works with no oscillation in pedal
katzgo Jun 19, 2024
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
2 changes: 1 addition & 1 deletion SteeringVanttec/.mxproject

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions SteeringVanttec/Core/Inc/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ void Error_Handler(void);
#define DEBUG_2_GPIO_Port GPIOA
#define DEBUG_1_Pin GPIO_PIN_1
#define DEBUG_1_GPIO_Port GPIOA
#define STP2_STEP_Pin GPIO_PIN_6
#define STP2_STEP_GPIO_Port GPIOA
#define BAT_TEMP_Pin GPIO_PIN_4
#define BAT_TEMP_GPIO_Port GPIOC
#define STP2_FLT_Pin GPIO_PIN_1
Expand All @@ -79,8 +81,6 @@ void Error_Handler(void);
#define STP2_DIR_GPIO_Port GPIOB
#define STP2_EN_Pin GPIO_PIN_10
#define STP2_EN_GPIO_Port GPIOB
#define STP2_STEP_Pin GPIO_PIN_11
#define STP2_STEP_GPIO_Port GPIOB
#define ID_0_Pin GPIO_PIN_12
#define ID_0_GPIO_Port GPIOB
#define ID_1_Pin GPIO_PIN_13
Expand Down
1 change: 1 addition & 0 deletions SteeringVanttec/Core/Inc/stm32l4xx_it.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ void MemManage_Handler(void);
void BusFault_Handler(void);
void UsageFault_Handler(void);
void DebugMon_Handler(void);
void TIM1_BRK_TIM15_IRQHandler(void);
void TIM1_UP_TIM16_IRQHandler(void);
void TIM2_IRQHandler(void);
/* USER CODE BEGIN EFP */
Expand Down
82 changes: 72 additions & 10 deletions SteeringVanttec/Core/Src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ CAN_HandleTypeDef hcan1;

TIM_HandleTypeDef htim1;
TIM_HandleTypeDef htim2;
TIM_HandleTypeDef htim16;

UART_HandleTypeDef huart1;

Expand Down Expand Up @@ -101,6 +102,7 @@ static void MX_TIM2_Init(void);
static void MX_TIM1_Init(void);
static void MX_ADC1_Init(void);
static void MX_CAN1_Init(void);
static void MX_TIM16_Init(void);
void default_task(void *argument);

/* USER CODE BEGIN PFP */
Expand Down Expand Up @@ -144,6 +146,7 @@ int main(void)
MX_TIM1_Init();
MX_ADC1_Init();
MX_CAN1_Init();
MX_TIM16_Init();
/* USER CODE BEGIN 2 */
int filters[] = {0x01A0, 0x0410, 0x0013};
int filters_size = sizeof(filters) / sizeof(filters[0]);
Expand Down Expand Up @@ -176,8 +179,8 @@ int main(void)
}

create_default_stepper_config(&braking_stepper.config);
braking_stepper.config.step_timer = &htim2;
braking_stepper.config.step_timer_channel = TIM_CHANNEL_4;
braking_stepper.config.step_timer = &htim16;
braking_stepper.config.step_timer_channel = TIM_CHANNEL_1;
braking_stepper.config.enable_pin = STP2_EN_Pin;
braking_stepper.config.enable_port = STP2_EN_GPIO_Port;
braking_stepper.config.direction_pin = STP2_DIR_Pin;
Expand All @@ -187,8 +190,9 @@ int main(void)
braking_stepper.config.gear_reduction = 1.0f;
braking_stepper.config.degs_per_step = 1.8f;
braking_stepper.config.step_deadband = 1;
braking_stepper.config.pulse_length = 100;
braking_stepper.config.enable_soft_limit = false;
__HAL_TIM_ENABLE_IT(&htim2, TIM_IT_CC4);
__HAL_TIM_ENABLE_IT(&htim16, TIM_IT_CC1);
if(stepper_initialize(&braking_stepper, 0) != HAL_OK){
Error_Handler();
}
Expand Down Expand Up @@ -528,17 +532,75 @@ static void MX_TIM2_Init(void)
{
Error_Handler();
}
if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM2_Init 2 */

/* USER CODE END TIM2_Init 2 */
HAL_TIM_MspPostInit(&htim2);

}

/**
* @brief TIM16 Initialization Function
* @param None
* @retval None
*/
static void MX_TIM16_Init(void)
{

/* USER CODE BEGIN TIM16_Init 0 */

/* USER CODE END TIM16_Init 0 */

TIM_OC_InitTypeDef sConfigOC = {0};
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};

/* USER CODE BEGIN TIM16_Init 1 */

/* USER CODE END TIM16_Init 1 */
htim16.Instance = TIM16;
htim16.Init.Prescaler = 80-1;
htim16.Init.CounterMode = TIM_COUNTERMODE_UP;
htim16.Init.Period = 5000-1;
htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim16.Init.RepetitionCounter = 0;
htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim16) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_Init(&htim16) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
if (HAL_TIM_PWM_ConfigChannel(&htim16, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
sBreakDeadTimeConfig.DeadTime = 0;
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
if (HAL_TIMEx_ConfigBreakDeadTime(&htim16, &sBreakDeadTimeConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM16_Init 2 */

/* USER CODE END TIM16_Init 2 */
HAL_TIM_MspPostInit(&htim16);

}

/**
* @brief USART1 Initialization Function
* @param None
Expand Down Expand Up @@ -662,15 +724,15 @@ void default_task(void *argument)
/* Infinite loop */
for(;;)
{
canlib_send_byte(VANTTEC_CAN_ID_HB, 0x444);
canlib_send_byte(VANTTEC_CAN_ID_HB, (uint8_t)0x444);
osDelay(5000);
}
/* USER CODE END 5 */
}

/**
* @brief Period elapsed callback in non blocking mode
* @note This function is called when TIM16 interrupt took place, inside
* @note This function is called when TIM15 interrupt took place, inside
* HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
* a global variable "uwTick" used as application time base.
* @param htim : TIM handle
Expand All @@ -681,7 +743,7 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
/* USER CODE BEGIN Callback 0 */

/* USER CODE END Callback 0 */
if (htim->Instance == TIM16) {
if (htim->Instance == TIM15) {
HAL_IncTick();
}
/* USER CODE BEGIN Callback 1 */
Expand Down
3 changes: 0 additions & 3 deletions SteeringVanttec/Core/Src/requirements.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,9 @@ const osThreadAttr_t hbTaskAttributes = {

void hb_task(void *args)
{
uint8_t data = 0;
for (;;)
{
// canlib_send_byte(VANTTEC_CAN_ID_HB, data);
HAL_GPIO_TogglePin(DEBUG_2_GPIO_Port,DEBUG_2_Pin);
data++;
osDelay(1000);
}
}
Expand Down
81 changes: 69 additions & 12 deletions SteeringVanttec/Core/Src/stm32l4xx_hal_msp.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
/* USER CODE END 0 */

void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
/**
/**
* Initializes the Global MSP.
*/
void HAL_MspInit(void)
Expand Down Expand Up @@ -241,7 +241,9 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
/* Peripheral clock enable */
__HAL_RCC_TIM1_CLK_ENABLE();
/* TIM1 interrupt Init */
HAL_NVIC_SetPriority(TIM1_UP_TIM16_IRQn, 15, 0);
HAL_NVIC_SetPriority(TIM1_BRK_TIM15_IRQn, 15, 0);
HAL_NVIC_EnableIRQ(TIM1_BRK_TIM15_IRQn);
HAL_NVIC_SetPriority(TIM1_UP_TIM16_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(TIM1_UP_TIM16_IRQn);
/* USER CODE BEGIN TIM1_MspInit 1 */

Expand All @@ -261,6 +263,20 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)

/* USER CODE END TIM2_MspInit 1 */
}
else if(htim_base->Instance==TIM16)
{
/* USER CODE BEGIN TIM16_MspInit 0 */

/* USER CODE END TIM16_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_TIM16_CLK_ENABLE();
/* TIM16 interrupt Init */
HAL_NVIC_SetPriority(TIM1_UP_TIM16_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(TIM1_UP_TIM16_IRQn);
/* USER CODE BEGIN TIM16_MspInit 1 */

/* USER CODE END TIM16_MspInit 1 */
}

}

Expand Down Expand Up @@ -293,19 +309,10 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)

/* USER CODE END TIM2_MspPostInit 0 */

__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/**TIM2 GPIO Configuration
PB11 ------> TIM2_CH4
PA15 (JTDI) ------> TIM2_CH1
*/
GPIO_InitStruct.Pin = STP2_STEP_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
HAL_GPIO_Init(STP2_STEP_GPIO_Port, &GPIO_InitStruct);

GPIO_InitStruct.Pin = STP1_STEP_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
Expand All @@ -317,6 +324,27 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)

/* USER CODE END TIM2_MspPostInit 1 */
}
else if(htim->Instance==TIM16)
{
/* USER CODE BEGIN TIM16_MspPostInit 0 */

/* USER CODE END TIM16_MspPostInit 0 */

__HAL_RCC_GPIOA_CLK_ENABLE();
/**TIM16 GPIO Configuration
PA6 ------> TIM16_CH1
*/
GPIO_InitStruct.Pin = STP2_STEP_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF14_TIM16;
HAL_GPIO_Init(STP2_STEP_GPIO_Port, &GPIO_InitStruct);

/* USER CODE BEGIN TIM16_MspPostInit 1 */

/* USER CODE END TIM16_MspPostInit 1 */
}

}
/**
Expand All @@ -336,7 +364,15 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
__HAL_RCC_TIM1_CLK_DISABLE();

/* TIM1 interrupt DeInit */
HAL_NVIC_DisableIRQ(TIM1_UP_TIM16_IRQn);
HAL_NVIC_DisableIRQ(TIM1_BRK_TIM15_IRQn);
/* USER CODE BEGIN TIM1:TIM1_UP_TIM16_IRQn disable */
/**
* Uncomment the line below to disable the "TIM1_UP_TIM16_IRQn" interrupt
* Be aware, disabling shared interrupt may affect other IPs
*/
/* HAL_NVIC_DisableIRQ(TIM1_UP_TIM16_IRQn); */
/* USER CODE END TIM1:TIM1_UP_TIM16_IRQn disable */

/* USER CODE BEGIN TIM1_MspDeInit 1 */

/* USER CODE END TIM1_MspDeInit 1 */
Expand All @@ -355,6 +391,27 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)

/* USER CODE END TIM2_MspDeInit 1 */
}
else if(htim_base->Instance==TIM16)
{
/* USER CODE BEGIN TIM16_MspDeInit 0 */

/* USER CODE END TIM16_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM16_CLK_DISABLE();

/* TIM16 interrupt DeInit */
/* USER CODE BEGIN TIM16:TIM1_UP_TIM16_IRQn disable */
/**
* Uncomment the line below to disable the "TIM1_UP_TIM16_IRQn" interrupt
* Be aware, disabling shared interrupt may affect other IPs
*/
/* HAL_NVIC_DisableIRQ(TIM1_UP_TIM16_IRQn); */
/* USER CODE END TIM16:TIM1_UP_TIM16_IRQn disable */

/* USER CODE BEGIN TIM16_MspDeInit 1 */

/* USER CODE END TIM16_MspDeInit 1 */
}

}

Expand Down
Loading