Skip to content

nimaltd/pmeter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

power meter

AC power meter based on STM32 ADC

  • Setlect a ADC and enable 2 channel, v and i.
  • Set number of conversion to 2.
  • Set enable scan conversion.
  • Set disable continous conversion.
  • Set disable discontinous conversion.
  • Set disable DMA continous conversion.
  • Set end of single conversion.
  • Select trigger out event a timer for external trigger.
  • Select trigger rising edge.
  • Select both ranks with correct channel.
  • Set enable DMA normal mode.
  • Set internal clock for selected timer.
  • Set update event on trigger evnet selection on timer configuration menu.
  • Add library on project.
  • Configure "pmeterConfig.h".
  • Put "pmeter_callback()" in adc dma callback.
  • Call "pmeter_init(timer freq: ex:32, calibration data from eeprom)".
  • Put "pmeter_loop()" in infinite loop.
  • before using, you should be calibrate.
  • Call "pmeter_calib_step1_..." to "pmeter_calib_step4_..." and store the calibration data "pmeter.calib".
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
{
  pmeter_callback();
}

void main()
{
  pmeter_calib_t calib;
  ...
  // load calibration data from eeprom to calib struct
  ...
  pmeter_init(32, calib);
  while(1)
  {
    pmeter_loop();
  }
}