fix opamp instance
fix voltage scale in utils.cpp fix switch case for pins in _readADCVoltageInline added commented out lines for my motor config, changed PID values, added global monitor variables near loop
This commit is contained in:
@@ -26,6 +26,10 @@ void MX_ADC1_Init(void)
|
||||
hadc1.Init.DMAContinuousRequests = ENABLE;
|
||||
hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
||||
hadc1.Init.OversamplingMode = DISABLE;
|
||||
hadc1.Init.Oversampling.Ratio = ADC_OVERSAMPLING_RATIO_16;
|
||||
hadc1.Init.Oversampling.RightBitShift = ADC_RIGHTBITSHIFT_4;
|
||||
hadc1.Init.Oversampling.TriggeredMode = ADC_TRIGGEREDMODE_SINGLE_TRIGGER;
|
||||
hadc1.Init.Oversampling.OversamplingStopReset = ADC_REGOVERSAMPLING_CONTINUED_MODE;
|
||||
if (HAL_ADC_Init(&hadc1) != HAL_OK)
|
||||
SIMPLEFOC_DEBUG("HAL ADC1 Init fail.");
|
||||
|
||||
@@ -74,6 +78,10 @@ void MX_ADC2_Init(void)
|
||||
hadc2.Init.DMAContinuousRequests = ENABLE;
|
||||
hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
||||
hadc2.Init.OversamplingMode = DISABLE;
|
||||
hadc2.Init.Oversampling.Ratio = ADC_OVERSAMPLING_RATIO_16;
|
||||
hadc2.Init.Oversampling.RightBitShift = ADC_RIGHTBITSHIFT_4;
|
||||
hadc2.Init.Oversampling.TriggeredMode = ADC_TRIGGEREDMODE_SINGLE_TRIGGER;
|
||||
hadc2.Init.Oversampling.OversamplingStopReset = ADC_REGOVERSAMPLING_CONTINUED_MODE;
|
||||
if (HAL_ADC_Init(&hadc2) != HAL_OK)
|
||||
SIMPLEFOC_DEBUG("HAL ADC2 init failed!");
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ void configureOPAMPs(void)
|
||||
if(HAL_OPAMP_Init(&hopamp2) != HAL_OK)
|
||||
SIMPLEFOC_DEBUG("OPAMP2 init failed.");
|
||||
|
||||
hopamp3.Instance = OPAMP2;
|
||||
hopamp3.Instance = OPAMP3;
|
||||
hopamp3.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED;
|
||||
hopamp3.Init.Mode = OPAMP_FOLLOWER_MODE;
|
||||
hopamp3.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1;
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
#include "opamp.h"
|
||||
|
||||
float adcResolution = 4096.0f; // 12 bit ADC
|
||||
float voltageScale = 3.3f; // full scale voltage range of ADC
|
||||
float adcSens = adcResolution * voltageScale;
|
||||
float voltageScale = 2.9f; // full scale voltage range of ADC
|
||||
float adcSens = voltageScale / adcResolution;
|
||||
|
||||
volatile uint16_t adc1Result[3] = {0};
|
||||
volatile uint16_t adc2Result[2] = {0};
|
||||
@@ -28,24 +28,24 @@ void MX_GPIO_Init(void)
|
||||
float _readADCVoltageInline(const int pin, const void *cs_params)
|
||||
{
|
||||
// SIMPLEFOC_DEBUG("READ ADC VOLTAGE");
|
||||
uint32_t rawResult;
|
||||
uint16_t rawResult;
|
||||
switch (pin)
|
||||
{
|
||||
case PA2:
|
||||
rawResult = adc1Result[1];
|
||||
case PA3:
|
||||
rawResult = adc1Result[0];
|
||||
break;
|
||||
|
||||
case PA3:
|
||||
rawResult = adc1Result[0]; // ADC1 CH13 -> Vopamp1 internal output
|
||||
case PB13:
|
||||
rawResult = adc2Result[0]; // ADC1 CH13 -> Vopamp1 internal output
|
||||
break;
|
||||
|
||||
case PB0:
|
||||
rawResult = adc2Result[0]; // ADC2 CH16 -> Vopamp2 internal output
|
||||
rawResult = adc2Result[1]; // ADC2 CH16 -> Vopamp2 internal output
|
||||
break;
|
||||
|
||||
case PA13:
|
||||
rawResult = adc2Result[2]; // ADC2 CH18 -> Vopamp3 internal output
|
||||
break;
|
||||
// case PA13:
|
||||
// rawResult = adc2Result[2]; // ADC2 CH18 -> Vopamp3 internal output
|
||||
// break;
|
||||
|
||||
// case PA2:
|
||||
// rawResult = adc1Result[1]; // ADC1 CH16 -> not sure what pin should represent this?
|
||||
|
||||
Reference in New Issue
Block a user