Sunday, June 9, 2013

MPPT solar panel controller

PIC16F1782 has got built in almost all components needed to build a switching regulator. I've already tested a possibility of building step down regulator utilizing a microcontroller with "advanced analog peripherals". This time I would like to build a true maximum power point tracking converter for a solar panel. 
My monocrystalline test solar panel is rated with:
Peak Power (Pm) 10W
Open Circuit Voltage (Voc) 21.67V
Short Circuit Current (Isc) 0.61A
Maximum Power Voltage (Vmp) 17.49V
Maximum Power Current (Imp) 0.57A
Maximum power voltage is lower than voltage needed to charge a 12V lead battery so I need a step-down converter:

I found it difficult to arrange which pins should be connected to which signals. There are some alternatives on which pins periferals are connected and it is rather difficult to notice the best arrangement looking only at schematic. It is much easier to notice every possibilities and clashes on a spreadshit like this:

pin






1st 2nd
RA0 2 AN0 CxIN0-




COMP_I
RA1 3 AN1 CxIN1- OPA1OUT



PV_I_SHUNT
RA2 4 AN2 CxIN0+




COMP_I
RA3 5 AN3 C1IN+




PV_I_FBK
RA4 6
C1OUT OPA1IN+



PV_I_SHUNT
RA5 7 AN4 C2OUT OPA1IN-



PV_I_SHUNT
RA6 10
C2OUT




COMP_I
RA7 9


PSMCxCLK




RB0 21 AN12 C2IN1+
PSMCxIN CCP1(2)

STOP_SWITCHING
RB1 22 AN10 CxIN3- OPA2OUT



COMP_V
RB2 23 AN8
OPA2IN-



PV_U_FBK
RB3 24 AN9 CxIN2- OPA2IN+
CCP2(2)

OUT_V_FBK
RB4 25 AN11 C3IN+




COMP_V
RB5 26 AN13 C3OUT




COMP_V
RB6 27




TX(2) ICSPCLK PROG TX
RB7 28




RX(2) ICSPDAT PROG RX
RC0 11


PSMC1A




RC1 12


PSMC1B CCP2(1)

PV_I_SET_PWM
RC2 13


PSMC1C CCP1(1)

PV_V_SET_PWM
RC3 14


PSMC1D




RC4 15


PSMC1E


LED2
RC5 16


PSMC1F


LED1
RC6 17


PSMC2A
TX(1)
DRIVE_HS
RC7 18


PSMC2B
RX(1)
DRIVE_LS
RE3 1






PROG
VDD 20








VSS 8








VSS 19