This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

InstaSpin的采样比例因子的问题



    在user.h中    USER_VOLTAGE_SF=USER_ADC_FULL_SCALE_VOLTAGE_V/USER_IQ_FULL_SCALE_VOLTAGE_V

   USER_ADC_FULL_SCALE_VOLTAGE_V是硬件决定的最大采样电压

   USER_IQ_FULL_SCALE_VOLTAGE_V 相当于额定工作电压

   那么,USER_VOLTAGE_SF反应一个什么物理意义?

   因为在hal.h中的电压读取程序static inline void HAL_readAdcData(HAL_Handle handle,HAL_AdcData_t *pAdcData)中有一段:

 value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_7)

  value = _IQ12mpy(value,voltage_sf);   

  从结果寄存器中读取的二进制数,直接乘以这个USER_VOLTAGE_SF,物理意义有点搞不明白了

  • Jesse,

    1. 程序中使用到的ADC的值都是以Q24的格式,即模拟信号左移24位。

    2. USER_VOLTAGE_SF我认为并没具体的物理意义,它只是一个比例系数,用于程序内部计算转换而已。

    3. 程序中ADC信号是以USER_IQ_FULL_SCALE_VOLTAGE_V这个参数来标幺化的,它并不是额定电压。

    例如:USER_IQ_FULL_SCALE_VOLTAGE_V   = 400V

    USER_ADC_FULL_SCALE_VOLTAGE_V = 600V

    如果输入电压为200V ,即为 600*adcResult /4096, 如果不除以4096,那么就是输入电压的Q12格式:600*adcResult;

    所以600*adcResult / 400(标幺) * 2^12 = value (Q24格式)  = adcresult * sf

    Eric

     

     

     

     

     

     

  • Eric Ma 3Q,明白了……