I am trying to boost voltage from 3V battery to 200V but i have a problem. I still have not implemented voltage control in my code. I am trying to boost voltage as much as i can, and I still haven't check voltage on analog pin. In attachment there is a schematic.Resistor R1 is not 750R its 270R. My duty cycle must be about 98% but when i go with that duty cycle i got lower voltage than when i put 80% duty cycle. I use PIC16F722-SO. I have done experiments and got these results for various frequency at 80% duty cycle:
30khz - 98V
33khz - 123V
35khz - 122V
40khz - 110V
If i increase duty cycle i got only lower voltage. Why is this happening? Why is my converter frequency dependent and why is duty cycle not working as it should in theory? Also when i plug it in (i use PICkit3 as 3V source, but same happens with battery), it goes up to some voltage, stays there for 3-4 seconds top and than starts dropping, than sometimes nothing happens sometimes jumps again to top value and again fall down. I have not plugged any load (it will be huge resistance anyway). Is there any way to get more than 123V out of 3V battery with 1 stage? I need to have as small pcb as passable.
Here is code if needed but it simple put PWM signal out, nothing else.

30khz - 98V
33khz - 123V
35khz - 122V
40khz - 110V
If i increase duty cycle i got only lower voltage. Why is this happening? Why is my converter frequency dependent and why is duty cycle not working as it should in theory? Also when i plug it in (i use PICkit3 as 3V source, but same happens with battery), it goes up to some voltage, stays there for 3-4 seconds top and than starts dropping, than sometimes nothing happens sometimes jumps again to top value and again fall down. I have not plugged any load (it will be huge resistance anyway). Is there any way to get more than 123V out of 3V battery with 1 stage? I need to have as small pcb as passable.
Here is code if needed but it simple put PWM signal out, nothing else.
Code:
[INDENT]void main() {
OSCCON = 0b00110000;
while(OSCCON.ICSS == 0);
TRISA = 0;
TRISB = 0;
TRISC = 0;
TRISC.RC2 = 1;
//PWM Init
PR2 = 0b01111000 ;
CCPR1L= 0b01100001;
CCP1CON=0b00001100 ;
PIR1.TMR2IF = 0;
T2CON = 0b00000100;
T2CON.TMR2ON = 1;
while(PIR1.TMR2IF == 0);
TRISC.RC2= 0;
while(1){
}
}[/INDENT]
