Professional Documents
Culture Documents
MPPT Charger 20A
MPPT Charger 20A
DCDC_OUT mcu.sch
Analog
DCDC_OUT
interfaces.sch
1
J5 2
CONN_01X03 analog_frontend.sch
3
GND
C C
LOGO1 LOGO2
Main Specifications
- 12V or 24V battery voltage
LIBRE_SOLAR OPEN_HARDWARE
- 20A max. charge current
- 55V max. solar input
- External temperature sensor input
- 32bit ARM MCU (STM32F072)
- CAN communication interface RJ45 jacks incl. bus power supply
- Expandable via Olimex Universal Extension Connector (UEXT) featuring
I2C, Serial and SPI interface (e.g. used for display, WIFI communication, etc.)
MPPT Charger 20A
- Prepared for Hammond Mfg. 1591XXCFL enclosure
(light pipe of 30.5 mm length should be used for SMD LEDs, e.g. Bivar PLP2-1200)
MK1
Mounting_Hole Libre Solar
MK2
Website: http://libre.solar
D Mounting_Hole Sheet: / D
MK3 File: MPPT_charger_20A.sch
Mounting_Hole Author: Martin Jäger
Size: A4 Date: 2018-01-18 Rev: 0.10
KiCad E.D.A. kicad (2017-11-18 revision ff5ee05de)-makepkg Page: 1/6
1 2 3 4 5 6
1 2 3 4 5 6
DCDC_IN
A
DC/DC power stage A
MKDS_5/2-9,52
SOLAR
DCDC_OUT
D
2 SOLAR+
CSD18540Q5B
C8 C1 C2 C3 C4 R1 Q1
HS_DRV
1 SOLAR- G CSD18540Q5B
1u 1000u 1000u 4.7u 4.7u 3.3
S
L1
J1 F1
SW_NODE BAT+
Q2
22uH 25A
Solar Panel BAT
Voltage: 16-55 V
2.2
R4
D S
D
2
LS_DRV R3 Q4 C5 C7
1M
R2
G
GND G CSD18540Q5B 1
D1 3.3 C6 820u 1u
S
NP0/C0G
1n J3
1N4148 R6 MKDS_5/2-9,52
2m
B B
DCDC-
BAT-
GND
56k 1 8 3.3
R12 VDD HB C10
2
C12 PWM_HS HI
2.2k 3 7 HS_DRV 100n
PWM_LS LI HO
3
2.2u 6 SW_NODE
C R13 T1 HS C
4 5 LS_DRV
LOAD_EN MMBT3904 VSS LO
1
2.2k DCDC_OUT
C28 LM5107
2
R16
10k
J2
D5 C27 1 GND
10n
G
SMBJ36A 1u
R17 LOAD- 2
BAT-
S D
2m
LOAD
Q3
CSD18540Q5B
LOAD-SW
MKDS_5/2-9,52
Libre Solar
Website: http://libre.solar
D Sheet: /DCDC power stage/ D
File: dcdc.sch
Author: Martin Jäger
If not stated otherwise, all MLCC 50V X7R
Size: A4 Date: 2018-01-18 Rev: 0.10
KiCad E.D.A. kicad (2017-11-18 revision ff5ee05de)-makepkg Page: 2/6
1 2 3 4 5 6
1 2 3 4 5 6
OSC_IN
3 OSC_OUT
L4
600R +3.3V
C34 U2
+3.3V
Y1
1
100n 9 6 OSC_OUT
VDDA PD1-OSC_OUT 8MHz
R39
24 2 +3.3V
1M
VDD_1 PC13-TAMPER-RTC SSEL
36 3 Tight tolerance
2
VDD_2 PC14-OSC32_IN UEXT_EN
GND 48 4 for CAN interface BOOT0
VDD_3 PC15-OSC32_OUT V_BUS_EN
R40
1 7 RESET
1M
VBAT NRST
GND
R41
2.2k
10
PA0-WKUP TEMP_BAT
OSC_IN 5 RESET Equations:
PD0-OSC_IN C36 tau = R39 * C36 = 2.2 s
BOOT0 44 18 V(t) = Vmax * (1-exp(-t/tau))
BOOT0 PB0 I_LOAD
3
19 2.2u --> t = -tau * ln(1-V/Vmax)
PB1 I_DCDC C29 R45 T2
11 20
SW1
TEMP_INT PA1 PB2 LOAD_EN MMBT3904 Normal startup:
12 39 1
USART2_TX PA2 PB3 SPI1_SCK 100n 56k BOOT0 < 0.69 V
2
13 40 Press SW1 < 0.51 s
USART2_RX PA3 PB4 SPI1_MISO
14 41
DAC PA4 PB5 SPI1_MOSI USB bootloader:
V_REF 15 42 BOOT0 > 1.61 V
PA5 PB6 I2C1_SCL
B 16 43 GND GND GND GND Press SW1 > 1.47 s B
V_BAT PA6 PB7 I2C1_SDA
17 45
V_SOLAR PA7 PB8 CAN_RX
29 46
TIM1_CH1 PA8 PB9 CAN_TX
USART1_TX 30 21 I2C2_SCL
PA9 PB10
USART1_RX 31 22 I2C2_SDA
PA10 PB11
32 25
USB_DM PA11 PB12 5V_OUT_EN
33 26
USB_DP PA12 PB13 TIM1_CH1N
SWDIO 34 27 LED1
PA13 PB14
SWCLK 37 28 LED2
PA14 PB15
38
CAN_STB PA15
Voltage reference Status LEDs
8 +3.3V +3.3V +3.3V +3.3V
VSSA
23
VSS_1
35 +3.3V
VSS_2 min. 65 uA
LED1
LED2
47 C30 C31 C32 C33
VSS_3 operating
100n 100n 100n 2.2u current
STM32F072CB
R37
10k
GND
R42
R43
330
330
GND GND GND GND V_REF
C D6 LED1 LED2 C
LM4040CYM3-2.5 LED_red LED_green
+3.3V
+3.3V SWD1
U6
R31
2.2k
R32
2.2k
1
VCC
CONN_01X02
24AA01 P1
SWCLK 2
SWCLK
I2C2_SCL 1 4 3 USART1_TX 1
I2C2_SDA 3
SCL
SDA
VCC
WP
5 C22 SWDIO 4
GND
SWDIO
USART1_RX 2 MPPT Charger 20A
2 100n RESET 5
GND NRST
GND 6
SWO
Libre Solar
ST_Nucleo_SWD Website: http://libre.solar
GND
D Sheet: /MCU/ D
File: mcu.sch
Author: Martin Jäger
If not stated otherwise, all MLCC 50V X7R
Size: A4 Date: 2018-01-18 Rev: 0.10
KiCad E.D.A. kicad (2017-11-18 revision ff5ee05de)-makepkg Page: 3/6
1 2 3 4 5 6
1 2 3 4 5 6
A A
PWR_FLAG
100n
U4
C19
L2 PWR_FLAG +10V
5 1
DCDC_IN Vin CB
4.7uH
L3 DCDC_IN chosen as input
4 6
C14 C15 EN SW in to stay alive if solar
47uH goes down for boost mode
SS16FP
120k
R28
1u 4.7u 2 3 operation (battery on high side)
D2
GND FB
LMR16006X
GND GND GND C20 C21
GND
R29
10k
10u 10u
25V 25V
B B
+5V +3.3V
+10V +5V U5
1 5
IN OUT
U3
3 2 3 4
IN OUT C23 EN BP C38
C C24 C35 C
1 2.2u 2 2.2u
GND GND
10u 100p
AZ1117 25V AP2210-3.3
Libre Solar
Website: http://libre.solar
D Sheet: /Power Supply/ D
File: power_supply.sch
Author: Martin Jäger
If not stated otherwise, all MLCC 50V X7R
Size: A4 Date: 2018-01-18 Rev: 0.10
KiCad E.D.A. kicad (2017-11-18 revision ff5ee05de)-makepkg Page: 4/6
1 2 3 4 5 6
1 2 3 4 5 6
+5V
CAN_H
+3.3V +5V
F2
+5V +3.3V U8
P3 5 3
200mA VIO VCC
1 D4
JP3
VBUS
USB Micro B
R36
2 CAN_L 2
120
Shield
D-
GND
GND
4 VBUS GND 8 2
ID CAN_STB STB GND
5 2 GND GND NUP2105L GND
CAN_L
100k
TJA1042T/3
6
5
R46
IO2 IO2
USB_DM
4 3 GND
C25 USBLC6-2SC6Y
100n
GND
GND GND
JP1 RJ45_NS JP2 RJ45_NS
CAN_H 1 CAN_H 1
B CAN_L 2 CAN_L 2 B
CAN_GND 3 CAN_GND 3
RJ45_4 4 RJ45_4 4
RJ45_5 5 RJ45_5 5
CAN_SHLD 6 CAN_SHLD 6
+3.3V CAN_GND 7 CAN_GND 7
CAN_V+ 8 CAN_V+ 8
R5
Extension connector I2C pull-ups
100k
2
BSS84
+3.3V +3.3V
Q6
UEXT_EN
1
J4 UEXT Bus power supply
3
R34
2.2k
R35
2.2k
1 2
3V3 GND
3 4 Q7
UEXT_TX TXD RXD UEXT_RX
5 6 BSS84
UEXT_SCL SCL SDA UEXT_SDA F3 D9
7 8 GND CAN_V+
UEXT_SDA
UEXT_SCL
UEXT_MISO MISO MOSI UEXT_MOSI DCDC_OUT
9 10 2 3
UEXT_SCK SCK SSEL UEXT_SSEL 200mA 1N4148
R49
56k
D8
1
MM3Z12VT1G
C R30 D10 C
CAN_GND
56k 1N4148
3
R48 T3 GND
V_BUS_EN MMBT3904
1
10k
5V signal output
2
+5V Q5
BSS84 GND
5V_OUT
2 3
100k
R33
R38
R47 T4
5V_OUT_EN MMBT3904
1
100k
2
Website: http://libre.solar
D Sheet: /Communication Interfaces/ D
File: interfaces.sch
GND
Author: Martin Jäger
If not stated otherwise, all MLCC 50V X7R
Size: A4 Date: 2018-01-18 Rev: 0.10
KiCad E.D.A. kicad (2017-11-18 revision ff5ee05de)-makepkg Page: 5/6
1 2 3 4 5 6
1 2 3 4 5 6
A REF_DIFF_AMP A
+5V
R14
Load current R21
DCDC current
REF_DIFF_AMP REF_DIFF_AMP
U7B U7A
150k 150k
LM258 LM258
R8 R19
5 3
8
LOAD_SHUNT+ + R11 DCDC_SHUNT+ + R20
2.2k 7 2.2k 1
V+
C42 C9 R7 I_LOAD_ADC R18 I_DCDC_ADC
U7C 6 2.2k 2 2.2k
LOAD_SHUNT- - DCDC_SHUNT- -
100n 100n LM258 2.2k 2.2k
V-
C11 C13
4 10n
GND R22 10n
R15
150k
Diff. amp. reference 150k GND GND
defined by DAC pin
GND
instead of GND: variable
zero current set point
B B
V_SOLAR
V_BAT
+3.3V +3.3V
R23
R44
10k
10k
100k
100k
R24
R25
TEMP_INT TEMP_BAT
C V_SOLAR_ADC V_BAT_ADC C
C16
RT1
10k
C40
C17 C18
R26
R27
5.6k
10k
100n
100n
10n 10n
Libre Solar
Website: http://libre.solar
D Sheet: /Analog Frontend/ D
File: analog_frontend.sch
Author: Martin Jäger
If not stated otherwise, all MLCC 50V X7R
Size: A4 Date: 2018-01-18 Rev: 0.10
KiCad E.D.A. kicad (2017-11-18 revision ff5ee05de)-makepkg Page: 6/6
1 2 3 4 5 6