ee152 green electronics - stanford...
TRANSCRIPT
EE152 Green Electronics
Embedded Software9/28/16
Prof. William DallyComputer Systems Laboratory
Stanford University
Logistics• Class is NOT full. See me for “permission numbers”• Lab group assignments
– Sign up. Tentative assignments will be announced next week.• Sign up for Lab signoff time
– Lab 1 must be signed off next week - individually• Homework 1 due next Monday 10/3• Sign up for Piazza
– piazza.com/stanford/fall2016/ee155• Discussion sections
– Fridays 4:30-5:50PM– Herrin T185
2EE155/255 F15 L2
Course to Date• We need sustainable energy systems• At the core they are voltage converters• Periodic steady-state analysis, buck and boost• Intelligent control + power path
EE155/255 Lecture 3 - Power Devices
Today• Logicstics• Brief Review• Embedded software• Power Devices
EE155/255 F15 L2 4
EE155/255 F15 L2 5
Review of Monday– PSSA, Buck, Boost• Green energy systems are made from voltage converters
– PV systems, electric/hybrid cars, wind power, etc…– Power path + intelligent control
• Separate behavior into fast and slow– Fast – within switching cycle– Slow – f << fcy
• Within cycle solve for periodic steady state– State variables the same at start and end of cycle.
• For slow transient response– Write difference equations
• Buck/Boost Topologies
L
V2
+-
iLV1
+-
a
b
L
V2+-
V1+-
a
b
iL
V1 =V2Da
=V2
1−Db( )V2 =V1Da
0 5 10 15 20 25 30 35 400
0.5
1
1.5
2
2.5
3
3.5
time (µs)
V 2 (V)
ω =1e+06ζ =0.2
f = 1.59e+05Q = 2.5
0 5 10 15 20 25 30 35 40
−0.1
−0.05
0
0.05
0.1
0.15
I L (V)
ip
i0
t0 tb tcy
iL
b/a
tb ta
6EE155/255 F15 L2
How Does This Work?
EE155/255 F15 L2 7
VS
+
- vC Load
+
C
a b
iLoadLiL
Another View
EE155/255 F15 L2 8
VS
+
-
vC Load
+
C
a b
iLoad
LiL
Embedded Software
9EE155/255 F15 L2
Embedded Software• Most software is embedded
– 50 microprocessors in the average car– Several in many appliances– At the heart of most green electronic systems
• Embedded software forms the “slow” but “complex” part of most control loops– The fast, simple parts are in hardware (analog or digital)
10EE155/255 F15 L2
Embedded System
Microcontroller
Fast Hardware
Sensors Actuators
11EE155/255 F15 L2
Example: PV Maximum Power Point Tracker
MicrocontrollerPanel Voltage
PWM to Boost ConverterPanel Current
12EE155/255 F15 L2
Sometimes Embedded Systems Interact with Humans
Microcontroller
Fast Hardware
Sensors Actuators
User Interface Debug Log
13EE155/255 F15 L2
UI Design• It should be obvious how it works• Minimum number of “modes” (1 is best)• Display clearly indicates
– Current mode– Relevant data– Progress indicator if “waiting”– “Button” labels
• If the user needs to read the manual it’s a bad UI• Refresh display every 50ms• Check buttons and update “state machine” every 50ms
EE155/255 F15 L2 14
Event Driven• Embedded systems execute code in response to events
– A real-time clock interrupt (e.g., every 1ms)– An I/O device completes an operation (e.g., A/D converter)– An input transitions (logic low-high, or analog threshold)
• Code is of the form– When trigger, do action– When 1ms clock tick, refresh display– When A/D completes, process data & start next conversion– When current over limit, shut down PWM
15EE155/255 F15 L2
Embedded vs Conventional Software
Embedded• Event driven
– Most code runs in response to interrupts
• Real-world I/O– A/D in, D/A and PWM out
• Real-time– Update PWM within one cycle
Conventional• Run code in program order
– In response to user input (e.g. mouse click)
• User Interface I/O• No hard time constraints
EE155/255 F15 L2 16
Real-Time Clock• Microcontroller has a counter-timer that can be programmed to interrupt
the processor periodically (e.g., every 1ms).
17EE155/255 F15 L2
STM32 Timers
EE155/255 F15 L2 18
Advanced-control timers (TIM1) RM0364
381/1121 DocID025177 Rev 1
Figure 106. Advanced-control timer block diagram
1. The internal break event source can be:- A clock failure event generated by CSS. For further information on the CSS, refer to Section 7.2.7: Clock security system (CSS)- A PVD output- SRAM parity error signal- Cortex-M4 LOCKUP (Hardfault) output.- COMPx output, x = 1,2,3,5 and 6.
Library Code
void my_callback1();timer_init();timer_id_t my_timer1 = timer_register(1, &my_callback1, GE_PERIODIC);timer_start(my_timer1);
19EE155/255 F15 L2
Make sure to check my_timer1 for error code
/** * @brief Registers a callback function to an internal Timer* @details Sets up a timer based on the required period. The* function will then assign the callback function to the* appropriate timer interrupt. The function uses TIM3 to generate* the interrupts.* * @param ms Period in milliseconds (int)* @param function Callback function* @param type SINGLE_SHOT or PERIODIC* @return Timer ID of associate timer or error code.*/
timer_id_t timer_register(uint32_t period, void (*function)(void), uint8_t type) {
EE155/255 F15 L2 20
Timer Interrupt
rtc
RTC interrupt
Every 1ms
Every 3ms
Every 50ms
rtc rtc rtc
rd rd
tick50()
rtc
21EE155/255 F15 L2
I/O Completion• I/O devices interrupt when they complete an operation• Handler should
– Process input data (if an input device)– Start next operation
22EE155/255 F15 L2
EE155/255 F15 L2 23
Analog-to-digital converters (ADC) RM0316
220/1037 DocID022558 Rev 3
13.4 ADC functional description
13.4.1 Block diagram of a single ADCFigure 28 shows the ADC block diagram and Table 36 gives the ADC pin description.
Figure 28. ADC block diagram
A/Dvoid my_adc_callback(uint16_t *buf) ;
adc_set_fs(10000); // 10kHz sample frequencyadc_callback(&my_adc_callback); // register callbackadc_enable_channels(chan_to_conv, NUM_ADC); // specify channels adc_initialize_channels(); adc_start();
24EE155/255 F15 L2
A/D Timing
25EE155/255 F15 L2
ADC Start Clk
ADC1ADC2
Convert VConvert I
compute_power()
20us100us
• What happens if timer interrupt handler is still running when ADC interrupt occurs?
EE155/255 F15 L2 26
• Make sure your interrupt driven code runs quickly!!!
• You can toggle a GPIO pin at entry and exit of your code to see how long it takes on a scope.
EE155/255 F15 L2 27
Volatile Variables• If you run code with “interrupts enabled” other code may run “at the same
time”.– And long running code (more than 200us) should not disable interrupts– Enable interrupts after “critical section”.
• That “other code” may change variables• Don’t expect variables to be stable while “background” code runs!
28EE155/255 F15 L2
Integer Arithmetic• Much embedded code uses fixed-point arithmetic. • Floating-point takes too long (on an integer uC)
– Some modern uCs (e.g., STM32F3) have fast FP• Fixed point has plenty of precision for typical control values
– int (16 bits) [-32,768, 32,767]– long (32 bits) [-2,147,483,648, 2,147,483,647]
• But you need to scale your variables and check for overflow– Example – 16b represents voltage in mV, current in mA– Multiply mV and mA to get 32b power in uW– Divide by 1,000 and truncate to get 16b power in mW
• Shift and multiply – don’t really divide – its expensive• Multiply by 1.024 and shift right 10
EE155/255 F15 L2 29
Fixed-Point Arithmetic• Scale numbers to be in [-1,1)• Binary point is just to the right of the sign bit
– s.bbbbbbb…• On multiply retain high half of result• General fixed-point representation
– saaaaaaaaa.bbbbbb…– Represents a value to 1/64– Need to shift after a multiply to put binary point in the correct place
• Need to think about the range and precision of your variables
EE155/255 F15 L2 30
Floating Point• ST32F3 has fast 32-bit floating point• Max value of ~ +/-3 x 1038
• Min non-zero value of ~ 1.2 x 10-38
• Represents numbers to better than six sigfigs
• Scale inputs and outputsfloat_volts = (float) int_volts * VOLTS_PER_DIV ;
– 12b ADC with 3V range – 3V/4096 = 0.000732 volts/div
• Always check for range, never equality
EE155/255 F15 L2 31
Organization of Code• Control• User Input• Display• Monitoring• Housekeeping
32EE155/255 F15 L2
Layered Control: Example Battery Charger
State Selection
Target Selection
State
Current 3A
PWM Control PWM to Buck
Battery V, IInput V
Battery V, I
Driver I
User Interface
Mode Status
33EE155/255 F15 L2
Layered Control: Example Battery Charger
State Selection50ms
Target Selection1ms
State
Current 3A
PWM Control10us FPGA
100ns - ComparatorPWM to Buck
Battery V, IInput V
Battery V, I
Driver I
User Interface50ms (or foreground)
Mode Status
34EE155/255 F15 L2
Example Photovoltaic Controller• Mode selection
– Line test, Panel test, MPPT, etc…• Monitors
– Line (current, voltage, frequency, …) (anti-islanding)– Internal operation (voltages, currents, temps) – Panels (current, voltage)
• Maximum Power-Point Tracking– Search algorithm for peak power point
• Inverter control– Convert 400V DC to 240V AC – in sync with line
• User interface– Display status, serial output, network connections, …
35EE155/255 F15 L2
Summary – Embedded Software• Embedded software consists of event handlers
– When trigger do action• Timer is used to perform periodic tasks
– Schedule A/D converter every 20us– Report status on serial port every 10ms– Update mode every 50ms– Etc…
• I/O devices trigger handler on completion– Process input data– Start next I/O operation
• Layered Control– High-level control loop sets parameters of lower level control loops– Fastest loops may be in hardware
36EE155/255 F15 L2
Power ElectronicsPart 1 – Power Devices
EE155/255 F15 L2 37
Real Switches
EE155/255 F15 L2 38
L
V2
iLV1
+-
a
b
R
C
+
_
M1
M2
V1
High-SideGate Drive
Low-SideGate Drive
VGL
VGH
inH
inL
GND
X
G1
G2
Real Switches• Finite switching time• Finite voltage blocking• Non-zero on resistance• Parasitic L and C
EE155/255 F15 L2 39
L
V2
iLV1
+-
a
b
R
C
+
_
M1
M2
V1
High-SideGate Drive
Low-SideGate Drive
VGL
VGH
inH
inL
GND
X
G1
G2
Quick Summary in a Few Pictures
DC I-V Characteristics of On Switches
V(d)0.0V 0.1V 0.2V 0.3V 0.4V 0.5V 0.6V 0.7V 0.8V 0.9V 1.0V 1.1V 1.2V 1.3V 1.4V 1.5V 1.6V 1.7V 1.8V 1.9V 2.0V
0A
5A
10A
15A
20A
25A
30A
35A
40A
45A
50AIx(m:1) Ix(h:2) Ix(i:C) I(Dd)
600V FETFCB36N60
600V IGBTFGH40N60
400V DiodeSTTH20R04
60V FETIRLB3036
FETs CharacterizedBy RON
IGBT Like a DiodeLittle Current Until ~0.7V
HV FET has high RONR ~ kV2
Diode and IGBTResistive at high Current
Transient Response of FET and IGBT
0ns 40ns 80ns 120ns 160ns 200ns 240ns 280ns 320ns0V
50V
100V
150V
200V
250V
300V
350V
400V
450V
500V
550V
0A
5A
10A
15A
20A
0V
50V
100V
150V
200V
250V
300V
350V
400V
450V
500V
550V
0A
5A
10A
15A
20A
0KW
1KW
2KW
3KW
4KW
5KW
6KW
7KW
8KW
9KW
10KW
V(di) Ix(i:C)
V(dm) Ix(h:2)
ix(i:c)*v(di) ix(h:2)*V(dm)
600V FETFCB36N60
InstantaneousPower
Turn On Turn Off
600V IGBTFGH40N60
36µJ 36µJ92µJ 428µJ
Boost Configuration for Transient Test
Diode Reverse Recovery
EE155/255 F15 L2 44
I1
IRM
ta tb
trr
Qrr
iD
(Amps)
t(sec)t1
t2
t3
Diode Reverse Recovery
0ns 3ns 6ns 9ns 12ns 15ns 18ns 21ns 24ns 27ns 30ns-220A
-200A
-180A
-160A
-140A
-120A
-100A
-80A
-60A
-40A
-20A
0A
20A
40AI(D1) I(D2) I(D3) I(D4)
0ns 10ns 20ns 30ns 40ns 50ns 60ns 70ns 80ns 90ns 100ns 110ns 120ns-810A
-720A
-630A
-540A
-450A
-360A
-270A
-180A
-90A
0A
90A
180AI(D1) I(D2) I(D3) I(D4) I(D5) I(D6) I(D7)
400V DiodeSTTH20R04
Medium Speed Diode
Area under curve (Charge)is approximately constant QRR
Power MOSFETs
Power MOSFETs are your friends
MOSFET Properties• Fast switching time 10-50ns
– Low switching losses• Low conduction losses at low voltages
– V2/R of 1-2MW • e.g., at 20V R = 0.4mOhm (4mV drop at 10A)
– Typically better than IGBT up to ~400V• Easily paralleled for lower Ron, More I, or easier cooling• Integral body diode in DMOS FET• Avalanche breakdown can be used to “snub” overshoot
MOSFETs are Switches
Gate
Drain
Source
Drain
Source
GateRon
Dbody
(a) (b)
(a)
gaten n
p
VDS
(b)
gaten n
p
VDS
- - - - -
IDS
g=0 g=1
IDSg
s d
g
s dIDS=0
+
−
+
−
How do they Work
VGS
Power MOSFET (DMOS) Structure
n+
p+n+
n-
p+n+
gatesource source
drain
channel
Gate Charge vs VGS
EE155/255 F15 L2 52
0 10 20 30 40 50 60 70 80 900
1
2
3
4
5
6
7
8
9
10
QG (nC)
V GS (V
)
CDG
LS
LGRG
LD
CDS
CGS
source
gate
drain
Parasitics
EE155/255 F15 L2 53
130 Green Electronics
CDG
LS
LGRG
LD
CDG
CGS
source
gate
drain
Figure 17.4: MOSFET parasitic circuit elements. At high operating frequen-cies these parasitic circuit elements have a large e↵ect on the performance andswitching losses of a MOSFET.
Symbol Value Units DescriptionCDS 200 pF Drain-source capacitanceCDG 70 pF Drain-gate (Miller) capacitanceCGS 3600 pF Gate-source capacitanceQG 86 nC Total gate turn-on chargeQGD 35 nC Gate-drain turn-on chargeLS 7 nH Source inductanceLD 3 nH Drain inductanceLG 7 nH Gate inductanceRG 1.5 ⌦ Gate resistance
Table 17.1: Values of parasitic circuit elements for a typical 600V 100m⌦ powerMOSFET in a TO-220 package.
600V 0.1W FET TO220 Package
CDG
LS
LGRG
LD
CDS
CGS
source
gate
drain
Parasitics
EE155/255 F15 L2 54
CDS – CV2 energyLD, LS – I2L energy
slows switching, overshoot,corrupts gate drive
CDG – slows turn onRG, LG – slow device turn-on
EE155/255 F15 L2 55
Typical MOSFETs
EE155/255 F15 L2 56
Copyright
(c)
2011-15
by
W.J
Dally,allrights
reserved
133
Device 20V IRLB3036 IRFB4227 FCB36N60N EPC2010 C2M0025120 Units DescriptionVDSmax
20 60 200 600 200 1200 V Maximum VDS
Ron
1.9 20 81 18 25 m⌦ On resistanceQG 91 70 86 5 161 nC Gate chargeCoss 1020 460 80 270 220 pF Output capacitance CSD + CGD
IDmax
195 65 36 12 90 A Maximum continuous drain currentIDM 1100 260 108 60 250 A Maximum pulsed drain currentEAS 290 140 1800 mJ Single-event avalanche energyP
max
380 330 312 463 W Maximum power dissipationV 2/R 1.9 2.0 4.4 2.2 58 MW Figure of meritV 2/RQG 21 29 52 440 360 mV/s Figure of merit
Table 17.2: Key parameters of six field-e↵ect transistors.
GaN SiC
Power MOSFETs should be ON or OFFThey are not happy in between
• IRLB3036 • Can handle 60V (when its off)• Can handle 195A (when its on – if you can cool it)
– I2R = (195)2(0.002) = 76W• But it can’t handle 60V and 195A at the same time
– P = VI = (60)(195) = 11.7kW– At least not for very long
• Turn them on and off quickly• Best circuits are “soft switching”
– Zero-current switching (ZCS) or zero-voltage switching( ZVS) or both.
Power Diodes
Diode Properties• Self-controlling switch
– Allows current in one direction– Turns off when current reaches zero (in theory)
• Relatively fixed voltage drop independent of current– 0.5 to 2.0V– High losses at low voltages
• Care required to operate in parallel– Current hogging
• Turn-off delay– Must clear space charge out of junction
• Turn-on delay– Negligible for most fast diodes, but some are problematic
Key Parameters• Reverse breakdown voltage
• Maximum current
• Reverse recovery time
• Junction capacitance
Diode Reverse Recovery
EE155/255 F15 L2 61
I1
IRM
ta tb
trr
Qrr
iD
(Amps)
t(sec)t1
t2
t3
Diode Forward Recovery
EE155/255 F15 L2 62
VFP
VF
tfr
vD
(Volts)
t(sec)
1.1VF
Diode Forward Recovery
Good Diode Bad Diode
Two 2A Diodes < One 4A Diode
EE155/255 F15 L2 64
0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 1.05 1.10
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
25°C
75°C
125°C
VD (Volts)
i D (A
mps
)
CDG
LS
LGRG
LD
CDS
CGS
source
gate
drain
Summary – Power Devices• Finite, non-zero
– Switching time– Blocking voltage– On-voltage (resistance)
• Parasitics – L and C• MOSFETs – switches
– Turn on/off as fast as gate can be charged
– R = kV2
• Diodes– Self-controlled switches– Reverse recovery loss QRR
EE155/255 F15 L2 65
Gate
Drain
Source
Drain
Source
Gate RonDbody
(a) (b)
I1
IRM
ta tb
trr
Qrr
iD
(Amps)
t(sec)t1
t2
t3
No Date Topic HWout HWin Labout Labck Lab HW1 9/26/16Intro(basicconverters) 1 1 IntrotoST32F3 PeriodicSteadyState2 9/28/16EmbeddedProg/PowerElect.3 10/3/16PowerElectronics- 1(switches) 2 1 2 1 ACEnergyMeter PowerDevices4 10/5/16PowerElectronics- 2(circuits)5 10/10/16Photovoltaics 3 2 3 2 PVMPPT PVSPICE6 10/12/16FeedbackControl7 10/17/16ElectricMotors 4 3 4 3 MotorcontrolMatlab Feedback8 10/19/16IsolatedConverters9 10/24/16SolarDay 5/PP 4 5 4 Motorcontrol- Lab/ IsolatedConverters
10 10/26/16Magnetics11 10/31/16SoftSwitching 6 5/PP 6 5 PS MagneticsandInverters12 11/2/16ProjectDiscussions13 11/7/16Inverters,Grid,PF,andBatteries 6 P 6 Project14 11/9/16Thermal&EMI15 11/14/16QuizReview C116 11/16/16Grounding,andDebuggingQ 11/16/16Quiz- intheevening C2
11/21/16ThanksgivingBreak11/23/16ThanksgivingBreak
17 11/28/1618 11/30/16 C319 12/5/1620 12/7/16Wrapup
TBD Projectpresentations PTBD Projectwebpagedue EE155/255 F15 L1 66
In Upcoming Lectures