I thought you were running at 5v just to get the 200ksps. If you are only sampling at 6ksps why are you running at 5v? 3.3v would have been fast enough and avoided using levelshifters,
The operating voltage and reference voltage are different things. For example you are using a 30A CT from YDHC that outputs 1v, so if you currently have vref at 5v you are only using ~20% of the ADC (at full 30A load) making the ADC operate at less than 8bits effectively.
At 3.3V you would be using just over 30% of the ADC or effectively 8.5’ish bits.
Over on the STM32 development thread we have been discussing the possibility of using a 2.0v Vref, that’s as low as the STM will allow, but the mcp’s seem to allow down to 0.25v so a 1.0v Vref to make full use of the ADC’s resolution (with a 1.0v CT) might be possible.
That can only give you apparent power, which will be fairly accurate when measuring a purely resistive load such as a kettle or immersion heater etc. To measure real power you need a more complex calculation and the timing of the voltage signal compared to the current signal becomes very important, hence the concern about phase error.
I was referring to phase error, that is not related to the RMS. The lower the burden value the less the waveform shifts and the more linear the shift across the range of the CT. Normally (with a sct-013-000 100A CT) you would select a burden to give you full use of the adc at the capacity of the CT (eg 33R at 5v or 22R at 3.3v) the lower the value, the more linear the phase error and therefore easier to correct. Since you are using voltage output CT’s, the burden is already selected and it’s probably pretty low to give a 1.0v output.
See the learn section for more info on calculating real power and correcting phase error.
[Edit - RW] … and to see how the phase error changes with burden value.