added current monitoring to pcb, many code fixes for the protocol / feed control logic, completely reworked diagnostic tool
This commit is contained in:
@@ -65,6 +65,12 @@ void Error_Handler(void);
|
||||
#define PEEL1_GPIO_Port GPIOA
|
||||
#define PEEL2_Pin GPIO_PIN_3
|
||||
#define PEEL2_GPIO_Port GPIOA
|
||||
#define ONEWIRE_Pin GPIO_PIN_6
|
||||
#define ONEWIRE_GPIO_Port GPIOA
|
||||
#define IPROP_PEEL_Pin GPIO_PIN_7
|
||||
#define IPROP_PEEL_GPIO_Port GPIOA
|
||||
#define IPROP_DRIVE_Pin GPIO_PIN_12
|
||||
#define IPROP_DRIVE_GPIO_Port GPIOB
|
||||
#define DRIVE1_Pin GPIO_PIN_8
|
||||
#define DRIVE1_GPIO_Port GPIOA
|
||||
#define DRIVE2_Pin GPIO_PIN_9
|
||||
@@ -73,8 +79,6 @@ void Error_Handler(void);
|
||||
#define QUAD_A_GPIO_Port GPIOC
|
||||
#define QUAD_B_Pin GPIO_PIN_7
|
||||
#define QUAD_B_GPIO_Port GPIOC
|
||||
#define ONEWIRE_Pin GPIO_PIN_10
|
||||
#define ONEWIRE_GPIO_Port GPIOA
|
||||
#define LED_R_Pin GPIO_PIN_3
|
||||
#define LED_R_GPIO_Port GPIOB
|
||||
#define LED_B_Pin GPIO_PIN_4
|
||||
|
||||
@@ -82,8 +82,8 @@ static inline pid_motor_cmd_t pid_update_motor(pid_i32_t *pid,
|
||||
|
||||
int32_t error = setpoint - position;
|
||||
|
||||
// Deadband: if within ±3 counts, hold position and reset integrator
|
||||
if (error >= -3 && error <= 3) {
|
||||
// Deadband: if within ±1 count (~0.005mm), hold position and reset integrator
|
||||
if (error >= -1 && error <= 1) {
|
||||
pid->integrator = 0;
|
||||
pid->prev_error = 0;
|
||||
pid->last_output = 0;
|
||||
|
||||
@@ -35,7 +35,7 @@ extern "C" {
|
||||
* @brief This is the list of modules to be used in the HAL driver
|
||||
*/
|
||||
#define HAL_MODULE_ENABLED
|
||||
/* #define HAL_ADC_MODULE_ENABLED */
|
||||
#define HAL_ADC_MODULE_ENABLED
|
||||
/* #define HAL_CRC_MODULE_ENABLED */
|
||||
/* #define HAL_CRYP_MODULE_ENABLED */
|
||||
/* #define HAL_I2C_MODULE_ENABLED */
|
||||
|
||||
@@ -57,6 +57,7 @@ void DMA1_Channel2_3_IRQHandler(void);
|
||||
void TIM14_IRQHandler(void);
|
||||
void TIM16_IRQHandler(void);
|
||||
void TIM17_IRQHandler(void);
|
||||
void USART2_IRQHandler(void);
|
||||
/* USER CODE BEGIN EFP */
|
||||
|
||||
/* USER CODE END EFP */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -82,6 +82,89 @@ void HAL_MspInit(void)
|
||||
/* USER CODE END MspInit 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ADC MSP Initialization
|
||||
* This function configures the hardware resources used in this example
|
||||
* @param hadc: ADC handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
|
||||
if(hadc->Instance==ADC1)
|
||||
{
|
||||
/* USER CODE BEGIN ADC1_MspInit 0 */
|
||||
|
||||
/* USER CODE END ADC1_MspInit 0 */
|
||||
|
||||
/** Initializes the peripherals clocks
|
||||
*/
|
||||
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
|
||||
PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_SYSCLK;
|
||||
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_ADC_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
/**ADC1 GPIO Configuration
|
||||
PA7 ------> ADC1_IN7
|
||||
PB12 ------> ADC1_IN22
|
||||
*/
|
||||
GPIO_InitStruct.Pin = IPROP_PEEL_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(IPROP_PEEL_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
GPIO_InitStruct.Pin = IPROP_DRIVE_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(IPROP_DRIVE_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN ADC1_MspInit 1 */
|
||||
|
||||
/* USER CODE END ADC1_MspInit 1 */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ADC MSP De-Initialization
|
||||
* This function freeze the hardware resources used in this example
|
||||
* @param hadc: ADC handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
||||
{
|
||||
if(hadc->Instance==ADC1)
|
||||
{
|
||||
/* USER CODE BEGIN ADC1_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END ADC1_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_ADC_CLK_DISABLE();
|
||||
|
||||
/**ADC1 GPIO Configuration
|
||||
PA7 ------> ADC1_IN7
|
||||
PB12 ------> ADC1_IN22
|
||||
*/
|
||||
HAL_GPIO_DeInit(IPROP_PEEL_GPIO_Port, IPROP_PEEL_Pin);
|
||||
|
||||
HAL_GPIO_DeInit(IPROP_DRIVE_GPIO_Port, IPROP_DRIVE_Pin);
|
||||
|
||||
/* USER CODE BEGIN ADC1_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END ADC1_MspDeInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM_Base MSP Initialization
|
||||
* This function configures the hardware resources used in this example
|
||||
@@ -413,6 +496,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
||||
|
||||
__HAL_LINKDMA(huart,hdmatx,hdma_usart2_tx);
|
||||
|
||||
/* USART2 interrupt Init */
|
||||
HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(USART2_IRQn);
|
||||
/* USER CODE BEGIN USART2_MspInit 1 */
|
||||
|
||||
/* USER CODE END USART2_MspInit 1 */
|
||||
@@ -464,6 +550,9 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
||||
/* USART2 DMA DeInit */
|
||||
HAL_DMA_DeInit(huart->hdmarx);
|
||||
HAL_DMA_DeInit(huart->hdmatx);
|
||||
|
||||
/* USART2 interrupt DeInit */
|
||||
HAL_NVIC_DisableIRQ(USART2_IRQn);
|
||||
/* USER CODE BEGIN USART2_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END USART2_MspDeInit 1 */
|
||||
|
||||
@@ -60,6 +60,7 @@ extern TIM_HandleTypeDef htim16;
|
||||
extern TIM_HandleTypeDef htim17;
|
||||
extern DMA_HandleTypeDef hdma_usart2_rx;
|
||||
extern DMA_HandleTypeDef hdma_usart2_tx;
|
||||
extern UART_HandleTypeDef huart2;
|
||||
/* USER CODE BEGIN EV */
|
||||
|
||||
/* USER CODE END EV */
|
||||
@@ -229,6 +230,20 @@ void TIM17_IRQHandler(void)
|
||||
/* USER CODE END TIM17_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles USART2 interrupt.
|
||||
*/
|
||||
void USART2_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN USART2_IRQn 0 */
|
||||
|
||||
/* USER CODE END USART2_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart2);
|
||||
/* USER CODE BEGIN USART2_IRQn 1 */
|
||||
|
||||
/* USER CODE END USART2_IRQn 1 */
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
|
||||
Reference in New Issue
Block a user