got current sense readings!
This commit is contained in:
@@ -4,83 +4,70 @@ OPAMP_HandleTypeDef hopamp1;
|
||||
OPAMP_HandleTypeDef hopamp2;
|
||||
OPAMP_HandleTypeDef hopamp3;
|
||||
|
||||
void initOPAMP(OPAMP_HandleTypeDef *hopamp, OPAMP_TypeDef *opamp)
|
||||
{
|
||||
#ifdef USE_OPAMP_PGA
|
||||
hopamp->Instance = opamp;
|
||||
hopamp->Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED;
|
||||
hopamp->Init.Mode = OPAMP_PGA_MODE;
|
||||
hopamp->Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1;
|
||||
hopamp->Init.InternalOutput = ENABLE;
|
||||
hopamp->Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE;
|
||||
hopamp->Init.PgaConnect = OPAMP_PGA_CONNECT_INVERTINGINPUT_NO;
|
||||
hopamp->Init.PgaGain = OPAMP_PGA_GAIN_16_OR_MINUS_15; // Adjust this to change the gains of the opamp.
|
||||
hopamp->Init.UserTrimming = OPAMP_TRIMMING_FACTORY;
|
||||
#else
|
||||
hopamp->Instance = opamp;
|
||||
hopamp->Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED;
|
||||
hopamp->Init.Mode = OPAMP_FOLLOWER_MODE;
|
||||
hopamp->Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1;
|
||||
hopamp->Init.InternalOutput = ENABLE;
|
||||
hopamp->Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE;
|
||||
hopamp->Init.UserTrimming = OPAMP_TRIMMING_FACTORY;
|
||||
#endif
|
||||
|
||||
if (HAL_OPAMP_Init(hopamp) != HAL_OK)
|
||||
SIMPLEFOC_DEBUG("HAL OPAMP Init failed!");
|
||||
}
|
||||
|
||||
void configureOPAMPs(void)
|
||||
{
|
||||
initOPAMP(&hopamp1, OPAMP1); // PA3
|
||||
initOPAMP(&hopamp2, OPAMP2); // PB0
|
||||
initOPAMP(&hopamp3, OPAMP3); // PA1
|
||||
hopamp1.Instance = OPAMP1;
|
||||
hopamp1.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED;
|
||||
hopamp1.Init.Mode = OPAMP_FOLLOWER_MODE;
|
||||
hopamp1.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1;
|
||||
hopamp1.Init.InternalOutput = ENABLE;
|
||||
hopamp1.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE;
|
||||
hopamp1.Init.UserTrimming = OPAMP_TRIMMING_FACTORY;
|
||||
if(HAL_OPAMP_Init(&hopamp1) != HAL_OK)
|
||||
SIMPLEFOC_DEBUG("OPAMP1 init failed.");
|
||||
|
||||
hopamp2.Instance = OPAMP2;
|
||||
hopamp2.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED;
|
||||
hopamp2.Init.Mode = OPAMP_FOLLOWER_MODE;
|
||||
hopamp2.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO2;
|
||||
hopamp2.Init.InternalOutput = ENABLE;
|
||||
hopamp2.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE;
|
||||
hopamp2.Init.UserTrimming = OPAMP_TRIMMING_FACTORY;
|
||||
if(HAL_OPAMP_Init(&hopamp2) != HAL_OK)
|
||||
SIMPLEFOC_DEBUG("OPAMP2 init failed.");
|
||||
|
||||
hopamp3.Instance = OPAMP2;
|
||||
hopamp3.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED;
|
||||
hopamp3.Init.Mode = OPAMP_FOLLOWER_MODE;
|
||||
hopamp3.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1;
|
||||
hopamp3.Init.InternalOutput = ENABLE;
|
||||
hopamp3.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE;
|
||||
hopamp3.Init.UserTrimming = OPAMP_TRIMMING_FACTORY;
|
||||
if(HAL_OPAMP_Init(&hopamp3) != HAL_OK)
|
||||
SIMPLEFOC_DEBUG("OPAMP3 init failed.");
|
||||
}
|
||||
|
||||
void HAL_OPAMP_MspInit(OPAMP_HandleTypeDef* opampHandle)
|
||||
void OPAMP_GPIO_Init(void)
|
||||
{
|
||||
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
if(opampHandle->Instance==OPAMP1)
|
||||
{
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_3;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
}
|
||||
else if(opampHandle->Instance==OPAMP2)
|
||||
{
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_0;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
}
|
||||
else if(opampHandle->Instance==OPAMP3)
|
||||
{
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_13;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
}
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_3;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_0;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_13;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
}
|
||||
|
||||
void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef* opampHandle)
|
||||
void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef *opampHandle)
|
||||
{
|
||||
|
||||
if(opampHandle->Instance==OPAMP1)
|
||||
if (opampHandle->Instance == OPAMP1)
|
||||
{
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_3);
|
||||
}
|
||||
else if(opampHandle->Instance==OPAMP2)
|
||||
else if (opampHandle->Instance == OPAMP2)
|
||||
{
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0);
|
||||
}
|
||||
else if(opampHandle->Instance==OPAMP3)
|
||||
else if (opampHandle->Instance == OPAMP3)
|
||||
{
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user