Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Trabajo 2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

AN216

DC/DC Converter Controller Using a PICmicro Microcontroller


Author: Hartono Darmawaskita Microchip Technology Inc. In any type of DC/DC Converter circuit, the power device selections are very important. The key parameters to look for in the transistor Q1 are the switching time and current rating. These two parameters greatly affect the maximum switching frequency of the converter, and also how much current the converter can be designed for. The diode D1 should either be a Schottky, or ultra fast diode, in order to minimize switching losses in the converter. The type of capacitor C1 is also very important to minimize the ripple on the converter output. An electrolytic capacitor with a low ESR (Equivalent Series Resistance) is desirable for capacitor C1. In some cases, the output ripple of the converter may still be higher than desired, even with the proper inductor and capacitor selections. In this case, an additional inductor and capacitor may be used as a low pass filter at the converter output. A DC/DC Converter is normally chosen because of its high efficiency in converting the input power to output power. Unlike a linear regulator, the efficiency measure of a DC/DC Converter generally increases as its load increases. A properly designed DC/DC Converter can yield an efficiency measure of greater than 90% at full load. The efficiency of a DC/DC Converter is expressed as the ratio of output power and input power. The following equations can be used to determine efficiency.

INTRODUCTION
In many applications, a DC/DC Converter is used to produce a regulated voltage or current, derived from an unregulated power supply, or from a battery. Examples of these applications include battery chargers, electronic air purifiers, emergency exit signs, and distributed power systems. In some of those applications, a dedicated Switched Mode Power Supply (SMPS) Controller IC is used in conjunction with a microcontroller. In other applications, however, a dedicated SMPS Controller IC may be overkill. An alternative approach is to generate a low cost SMPS function in a smart microcontroller, such as the PIC16C620A. This Application Note shows a method of using the microcontroller to perform simple SMPS control functions. Two circuits were built for evaluation. One circuit provides a Constant Voltage output, the other a Constant Current output.

DC/DC CONVERTER
There are several popular DC/DC Converter topologies, such as the Boost and Fly-back Converter topologies. The DC/DC Converter used in this example is a Buck (or step down) Converter, which is also a popular topology. In Figure 3, the Buck Converter consists of transistor Q1, diode D1, inductor L1, and capacitor C1. Transistor Q2 is used as a level translator for the PICmicro device PORTB output to turn Q1 on or off. Application Note AN701 explains how a Buck Converter works. It also provides a general guideline on component selection.

Efficiency = POUT/PIN * 100% or Efficiency = VOUT * IOUT/(VIN * IIN) * 100%


The selection of the DC/DC Converter components, in many cases, is a trade-off between cost, performance, and size. In this Application Note, the component selections were made to simply provide a DC/DC Converter that can be used to demonstrate the PIC16C620A capability to perform SMPS controller function. The DC/DC Converter discussed here is not optimized for any particular parameter.

2000 Microchip Technology Inc.

Preliminary

DS00216A-page 1

AN216
SMPS CONTROLLER FUNCTION
The DC/DC Converter circuit is merely a power processor. It transforms the available input voltage and current into the output voltage and current, based on the command of the SMPS controller. The SMPS controller looks at the converter output, compares the output to a set point, performs a control algorithm and finally, applies the algorithm output to a modulator. The modulator output is then used to drive the DC/DC Converter. Figure 1 shows a simplified block diagram of a complete DC/DC Converter system. In this Application Note, the PIC16C620A is used to implement the SMPS controller function, which includes the following functions: set point generation, error amplifier, control algorithm, and the modulator. These functions are shown inside the dashed box in Figure 1.

FIGURE 1:

DC/DC CONVERTER SYSTEM


Input Voltage

PIC16C620A (SMPS Controller Function) Set Point + Error Control Signal Modulator PSM Signal

Control Algorithm

DC/DC Converter

Output Load

Feedback Circuit

DS00216A-page 2

Preliminary

2000 Microchip Technology Inc.

AN216
MODULATOR - PULSE SKIPPING MODULATION (PSM)
One of the simplest modulation techniques used for controlling a DC/DC Converter is Pulse Skipping Modulation (PSM), which is also known as Pulsed Frequency Modulation. In a PSM system, the modulator generates a train of pulses to turn the converter power switch on and off. The pulses have a fixed pulse width, as well as period. As long as the converter output is below the desired target, the PSM pulses continue to run the converter switch. Once the converter output reaches or exceeds the target, the next PSM pulse is skipped. This operation will result in decreasing pulse density as the converter output reaches its target, or as the output loading decreases. When the converter output falls below the target, or as the output loading increases, the PSM pulse density will increase. The theoretical limit of the maximum output voltage is determined by the input voltage to the DC/DC Converter and the maximum duty cycle of the PSM signal, which is the duty cycle of the PSM signal when it is continuously running (not skipping pulses). This relationship can be expressed as follows:

FEEDBACK CIRCUIT
For the SMPS controller to work properly, the DC/DC Converter system must include a feedback circuit. The feedback circuit provides information to the SMPS controller of the converter output.

Feedback Circuit for Constant Voltage DC/DC Converter


The first circuit is a Constant Voltage DC/DC Converter. The feedback requirement for a Constant Voltage control is a voltage proportional to the output voltage. In Figure 3, this feedback circuit consists of R5 and R6. The output of the R5-R6 divider is applied to the AN1 input pin of the C2 comparator in the PIC16C620A. The two resistors simply scale down the output voltage to equal the reference voltage. The formula to calculate R5 and R6 is shown below.

R6 = R5 * VREF/(VOUT-VREF)
The parallel combination value of R5 and R6 should be less than 10 k to minimize errors due to input leakage current from the AN1 pin. Some applications require that the feedback voltage can be trimmed to compensate for the VREF variations over process. If this capability is required, then a potentiometer can be added to allow trimming. To get the most accurate results, the adjustment of the trim potentiometer should be performed when the system is running.

VOUTMAX = VIN * dmax


This formula does not take into account the conduction and switching losses of the converter components. The discussion of non-ideal DC/DC Converter is beyond the scope of this Application Note. However, many papers and text books are available on this subject. In this application, the PIC16C620A microcontroller performs the modulator function in firmware. This firmware modulator generates the PSM pulses on the RB7 pin (PORTB, bit 7), to drive transistor Q2 of the DC/DC Converter. When the DC/DC Converter output is below the desired value, the firmware continuously sends out PSM pulses to increase the converter output. Once the DC/DC Converter output exceeds the target, the controller will skip the PSM pulses until the output voltage, or current, falls below the threshold and the control cycle repeats. Timer0 of the microcontroller is used to generate a time base for the firmware modulator. Timer0 is enabled and the TMR0 register is loaded with a reload value. When Timer0 overflows, an interrupt occurs. In the interrupt routine, TMR0 is again loaded with the reload value. The reload value determines the time base of the PSM signal. In this application, the TMR0 reload value is chosen to produce a time base of 50 microseconds when the microcontroller runs from a 16 MHz crystal. Other crystal frequencies may be used; however, the 16 MHz was selected to give plenty of instruction cycles in between Timer0 interrupts, for the firmware execution. When the actual application requirements are well defined, the operating frequency can be adjusted to a lower frequency to save power.

Feedback Circuit for Constant Current DC/DC Converter


The second circuit is a Constant Current DC/DC Converter. The feedback requirement for this circuit is a voltage proportional to the output current. For the Constant Current circuit in Figure 4, the feedback consists of simply R6. The voltage on R6 is then presented to the AN1 input pin of the C2 comparator in the PIC16C620A. Resistor R7 is added to provide ESD protection to the AN1 pin, since the load will be connected to R6 directly. The formula to calculate R6 is:

R6 = VREF/IOUT Power dissipation on R6 = VREF * IOUT


For applications where the output current is high, a very small current sense resistor, R6, is required to minimize power dissipation. In this case, an operation amplifier may be required to amplify the small voltage on R6 to the size of VREF.

2000 Microchip Technology Inc.

Preliminary

DS00216A-page 3

AN216
Similar to the Constant Voltage applications, depending on the need, a trimming potentiometer may be required in the Constant Current application as well. Since potentiometers are generally not designed to dissipate power, it is very important to make sure that the potentiometer does not carry the load current, for reliability and control drift minimization reasons. Output Load Connections for the Constant Current DC/DC Converter For the circuit shown in Figure 4, the load connections for the Constant Current circuit can not be grounded. If the load is grounded, then the current sense resistor R6 is shorted to ground and the SMPS controller can not sense the load current. If a grounded load is required in the system, the method for current sensing must be modified. The following are possible solutions to allow a ground referenced load: 1. 2. Ground the load and float the PICmicro microcontroller ground. Move the current sense resistor to the output of the DC/DC Converter and use an op-amp to level shift the voltage on R6 to a ground referred signal.

SET POINT AND VOLTAGE CONTROL ALGORITHM


The PIC16C620A has an on-board voltage reference, VREF, and two comparators, C1 and C2 (see Figure 2 for illustration). The VREF module is used to provide a set point to the system. If so desired, the set point voltage can be adjusted via firmware. In this application, the VREF set point is set to VDD/2. The comparators have several configurations, some of which allow the comparators to compare external voltage(s) to the VREF voltage. The configuration that is used for this application example is shown in Figure 2. To select this configuration, the comparator control register CMCON must be set to b00000010.

FIGURE 2:

PIC16C620A COMPARATOR AND VREF SELECTED CONFIGURATION


PIC16C620A AN0 C1 C1OUT(1)

AN1 C2

C2OUT(1)

VDD

VREF

CMCON Register = 00000010

Note 1: C1OUT and C2OUT can be read by the firmware in the CMCON Register.

DS00216A-page 4

Preliminary

2000 Microchip Technology Inc.

AN216
In this application, only the C2 comparator of the PIC16C620A is used to compare the feedback voltage on the AN1 pin to the internal voltage reference VREF. If the DC/DC Converter output is lower than the desired value, then the feedback voltage presented on AN1 is lower than VREF. In this case, the comparator output, C2OUT, is high. If the DC/DC Converter output is higher than the desired value, then the comparator output is low. The firmware uses the comparator output state to determine whether the DC/DC Converter output needs to be increased or not. The Voltage Control Algorithm performed in firmware becomes very simple: If the voltage on AN1 pin is lower than VREF, then produce PSM output pulse Else (voltage on AN1 pin is higher than VREF), then skip PSM output pulse Because the PIC16C620A and the firmware monitors and controls the voltage on the AN1 pin, regardless of whether the voltage is derived from either the Constant Voltage or Constant Current feedback circuit, this firmware can be used for either the Constant Voltage or Constant Current circuit implementation without any changes.

Integrating the Voltage Control and Modulator


The Voltage Control Algorithm is executed every time Timer0 interrupts. After the firmware reloads TMR0, it checks the comparator output to determine whether the output pulse should be active or not, on the next PSM cycle. Once this decision is made, a flag bit is set or cleared depending on the decision, and the output pulse is turned off. After several microseconds delay, before leaving the interrupt routine, the output pulse is activated again, depending on the status of the flag bit. If the output is set, this pulse will stay active until the next Timer0 interrupt occurs. If the output is clear, then the PSM pulse is skipped until the next Timer0 interrupt occurs, and the control sequence repeats. Figure 5 shows the flowchart of the Firmware SMPS Controller.

FIGURE 3:

VOLTAGE SOURCE DC/DC CONVERTER USING PIC16C620A


DC/DC Converter

VIN Q1 1 F 35V 100F 25V R1 200

Scope Channel 1 L1, 80H D1 1N5821 C1 100F 16V + R5 VOUT LOAD

R2 270 R3 470 Q2 R4 470

R6

Scope Channel 2

22pF

U1
+5V
1 2 3 4 5 6 7 8 9

RA2/AN2/VREF RA3/AN3 RA4/T0CKI MCLR VSS RB0/INT RB1 RB2 RB3

RA1/AN1 RA0/AN0 OSC1/CLKIN OSC2/CLKOUT VDD RB7 RB6 RB5 RB4

18 17 16 15 14 13 12 11 10

16 MHz 22pF

+5V 0.1F

PIC16C620A

2000 Microchip Technology Inc.

Preliminary

DS00216A-page 5

AN216
FIGURE 4: CURRENT SOURCE DC/DC CONVERTER USING PIC16C620A
DC/DC Converter VIN Q1 1 F 35V 100F 25V R1 200 L1, 80H D1 1N5821 C1 100F 16V + VOUT LOAD

R2 270 R3 470 Q2 R4 470 R7 100

R6 27

22pF

U1
+5V
1 2 3 4 5 6 7 8 9

RA2/AN2/VREF RA3/AN3 RA4/T0CKI MCLR VSS RB0/INT RB1 RB2 RB3

RA1/AN1 RA0/AN0 OSC1/CLKIN OSC2/CLKOUT VDD RB7 RB6 RB5 RB4

18 17 16 15 14 13 12 11 10

16 MHz 22pF

+5V 0.1F

PIC16C620A

DS00216A-page 6

Preliminary

2000 Microchip Technology Inc.

AN216
FIGURE 5: FIRMWARE SMPS CONTROLLER FLOW CHART

MAIN

ISR

INITIALIZE PORTS

SAVE W & STATUS REGISTERS

INITIALIZE COMPARATORS AN0 PIN IS INPUT TO C1 COMPARATOR

RELOAD TMR0

FLAG = 1 ENABLE VREF VREF = VDD/2 VAN0 > VREF ? Y FLAG = 0 N

INITIALIZE Timer0 ENABLE Timer0 INTERRUPT

WAIT FOR Timer0 INTERRUPT

TURN OFF PULSE

CLEAR Timer0 INTERRUPT FLAG

FLAG = 1 ? Y TURN ON PULSE

RESTORE W & STATUS REGISTERS

RETURN

2000 Microchip Technology Inc.

Preliminary

DS00216A-page 7

AN216
WAVEFORMS FROM THE VOLTAGE SOURCE CIRCUIT
To see how the DC/DC Converter circuit works, voltage waveforms of the PSM output on RB7 and the Q1 switch output are captured for 3 different input voltage levels, while the output load is kept constant at 4.2 V, 100 mA. The RB7 PSM output voltage is shown as Channel 1, while the Q1 switch output voltage is shown as Channel 2. The waveforms are captured at the following input voltage levels: 1. 2. 3. VIN = 8.8 V. See Figure 6. VIN = 10.8 V. See Figure 7. VIN = 12.8 V. See Figure 8. switch drops to approximately -0.7V. At this time, the voltage across the inductor reverses its polarity, causing the inductor current to drop. When the inductor current reaches zero, diode D1 turns off, and the voltage on the inductor collapses to zero. This can be seen by the Q1 switch output going from -0.7V to the DC/DC Converter output voltage. Note that although the waveform seems repetitive, the frequency is not constant. Once in a while, the distance between pulses changes. This change happens when the Voltage Control Algorithm determines that additional pulses should be skipped for that PSM cycle. The waveforms on Figure 6, Figure 7 and Figure 8, were taken with the same voltage and time scales. It is obvious from looking at the three plots, as the ratio of VIN/VOUT increases, the pulse density on the RB7 pin decreases. At higher input voltages, each switching of the Q1 transistor will deliver higher charge to the DC/ DC Converter output. For a constant input voltage, the PSM pulse density on the RB7 pin will also vary as a function on the output load. In the Constant Voltage circuit, as the output current decreases, the PSM pulse density on the RB7 pin also decreases.

When the RB7 output is high, the Q1 switch turns on. The switch output voltage immediately rises to the input voltage, i.e., 8.8 V on Figure 6. At this time, the inductor current increases. The inductor current is flowing to the capacitor C1 and the DC/DC Converter load. Once the RB7 output goes low, the Q1 switch turns off. The inductor current, however, needs a low impedance path to continue its flow. This causes the switch output voltage to fall until diode D1 turns on. The inductor current now flows through the diode from the system ground. Figure 6 shows that the voltage at the output of the

FIGURE 6:

WAVEFORMS OF RB7 AND Q1 SWITCH OUTPUT VOLTAGES, VIN = 8.8 V, VOUT = 4.2 V, IOUT = 100 mA

DS00216A-page 8

Preliminary

2000 Microchip Technology Inc.

AN216
FIGURE 7: WAVEFORMS OF RB7 AND Q1 SWITCH OUTPUT VOLTAGES, VIN = 10.8 V, VOUT = 4.2 V, IOUT = 100 mA

2000 Microchip Technology Inc.

Preliminary

DS00216A-page 9

AN216
FIGURE 8: WAVEFORMS OF RB7 AND Q1 SWITCH OUTPUT VOLTAGES, VIN = 12.8 V, VOUT = 4.2 V, IOUT = 100 mA

DS00216A-page 10

Preliminary

2000 Microchip Technology Inc.

AN216
BENCH MEASUREMENTS DATA
To quantitatively evaluate performance, each circuit was tested in the lab. Several key parameters relevant to power supply circuits were measured. Those parameters are: 1. Line Regulation: both Constant Voltage and Constant Current circuits. Line regulation is the amount of change on the output as a function of the input voltage. For the Constant Voltage circuit, the units for line regulation are V/V, while for the Constant Current they are A/V (or mA/V). 3. 4. 2. Load Regulation: both Constant Voltage and Constant Current circuits. Load regulation is the amount of change on the output as a function of the load. For the Constant Voltage circuit, the units for load regulation are V/A (or mV/mA), while for the Constant Current they are A/V (or mA/V). Output Ripple Noise: Constant Voltage only. The output ripple noise is measured in mV rms. Power Conversion Efficiency: Constant Voltage only. The Efficiency is measured as the ratio of power delivered to the load and power delivered to the DC/DC Converter.

Bench Measurement Data of the Constant Voltage DC/DC Converter


The following table is a summary of the Constant Voltage DC/DC Converter performance.

TABLE 1:
Line Regulation

CONSTANT VOLTAGE DC/DC CONVERTER PERFORMANCE


Value < 3 mV/V < 5 mV/V -0.06 mV/mA -0.04 mV/mA < 5.2 mV rms < 12.3 mV rms 67% 72% 45% 62% Conditions VIN = 8.8 V to 14.8 V, VOUT = 4.2 V, IOUT = 100 mA VIN = 8.8 V to 14.8 V, VOUT = 4.2 V, IOUT = 520 mA VIN = 8.8 V, VOUT = 4.2 V, IOUT = 0 mA to 100 mA VIN = 8.8 V, VOUT = 4.2 V, IOUT = 100 mA to 520 mA VIN = 8.8 V, VOUT = 4.2 V, IOUT = 0 mA to 100 mA VIN = 8.8 V, VOUT = 4.2 V, IOUT = 100 mA to 520 mA VIN = 8.8 V, VOUT = 4.2 V, IOUT = 100 mA VIN = 8.8 V, VOUT = 4.2 V, IOUT = 520 mA VIN = 14.8 V, VOUT = 4.2 V, IOUT = 100 mA VIN = 14.8 V, VOUT = 4.2 V, IOUT = 520 mA

Parameter

Load Regulation Output Ripple Efficiency

Bench Measurement Data of the Constant Current DC/DC Converter


The following table is a summary of the Constant Current DC/DC Converter performance. The output ripple current of this circuit was not measured. The Efficiency

parameter was also not measured. The Efficiency measure, however, should be identical to that of the Constant Voltage DC/DC Converter for a given similar input and output condition to the circuit.

TABLE 2:
Line Regulation

CONSTANT CURRENT DC/DC CONVERTER PERFORMANCE


Value < 0.02 mA/V -0.26 mA/V -0.52 mA/V Conditions VIN = 7.8 V to 14.8 V, VOUT = 4.0 V, IOUT = 90 mA VIN = 14.8 V, VOUT = 4 V to 14.8 V, IOUT = 90 mA VIN = 14.8 V, VOUT = 2 V to 4 V, IOUT = 90 mA

Parameter Load Regulation

2000 Microchip Technology Inc.

Preliminary

DS00216A-page 11

AN216
EXPANDING THE APPLICATION
The use of the PIC16C620A in DC/DC Converter circuits can be expanded to the following applications: 1. Constant Voltage with Current Limit DC/DC Converters. Since the PIC16C620A has two comparators, one comparator can be used for the voltage feedback, and the other for detecting current limit. Other power converter topologies. The control methodology can be used for Boost and Fly-back topologies, as well. The feedback circuitry, more than likely, must be modified to include the power switch current sensing. Firmware programmable output voltage or current. The VREF voltage can be changed in firmware. This capability allows user to change the output voltage or current as needed by the application. The use of other modulation techniques, i.e., Pulse Width Modulation (PWM). A PWM control can be implemented, instead of the PSM technique used in this example. In addition to Timer0 interrupt, the comparator interrupt is also enabled. In this case, the comparator interrupt determines when to turn off the RB7 output pulse as soon as the control threshold is reached. In this type of PWM control, however, it is possible for the PWM signal to oscillate when the duty cycle is greater than 50%, due to a phenomenon called the Right Half Plane Zero. Under this condition, a slope compensation is required to stabilize the PWM control signal.

CONCLUSION
This Application Note has demonstrated that the PIC16C620A can be used to perform simple SMPS controller functions, such as Constant Voltage, Constant Current, or Constant Voltage with current limit. The program example can be used with any of the PICmicro family members, which has on-board comparators.

2.

REFERENCES
1. 2. PIC16C620A Datasheet, DS30235 revision H or newer AN701: Switch Mode Battery Eliminator Based on a PIC16C72A

3.

4.

The detailed implementations of any of those applications are left as an exercise to the readers creativity.

DS00216A-page 12

Preliminary

2000 Microchip Technology Inc.

Software License Agreement

The software supplied herewith by Microchip Technology Incorporated (the Company) for its PICmicro Microcontroller is intended and supplied to you, the Companys customer, for use solely and exclusively on Microchip PICmicro Microcontroller products.

2000 Microchip Technology Inc.


DC-DC1.ASM 3-1-2000 14:29:37 PAGE 1 ;File name: dc-dc1.asm ; ;This program demonstrates how a PICmicro with comparator, ie: PIC16C620A, ;can be used to control voltage or current, such as in a switched mode dc/dc ;converter. This example employs the pulse skipping modulation (psm) technique ;to drive the external power converter circuit. ; ;============================================================================== ;author: Hartono Darmawaskita ;company: Microchip Technology, Inc. ;date: 02-11-2000 ;MPLAB version: 4.12.12 ; ;============================================================================== LIST P = 16C620A, F=INHX8M #INCLUDE <P16C620A.INC> LIST ; P16C620A.INC Standard Header File, Version 1.10 Microchip Technology, Inc. LIST __config _WDT_OFF & _HS_OSC & _BODEN_ON & _PWRTE_ON ;Pin definition

The software is owned by the Company and/or its supplier, and is protected under applicable copyright laws. All rights are reserved. Any use in violation of the foregoing restrictions may subject the user to criminal sanctions under applicable laws, as well as to civil liability for the breach of the terms and conditions of this license.

THIS SOFTWARE IS PROVIDED IN AN AS IS CONDITION. NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.

APPENDIX A:

SOURCE CODE

MPASM 02.30.07 Intermediate

Preliminary

LOC OBJECT CODE VALUE

LINE SOURCE TEXT

AN216

DS00216A-page 13

2007

3FF2

00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00001 00002 00165 00017 00018 00019

#define PULSE

PORTB,7

;pulse output to the power transistor

AN216

DS00216A-page 14
;Constants VREF_HI equ b10101100 VREF_MID equ b10100110 VREF_LO equ b10100010 TMR0_RELOAD equ .215 ;high voltage setpoint, vref = vdd/2 ;mid voltage setpoint, vref = vdd/4 ;low voltage setpoint, vref = vdd/12 ;reload value for tmr0 ;RAM FLAG equ 0x20 ;flag register ;bit0 1=feedback voltage is less than setpoint W_TEMP equ 0x24 ;temporary w register STATUS_TEMP equ 0x25 ;temporary status register ;============================================================================== org 00 goto start ; ;isr is the interrupt service routine. ;in this routine tmr0 is reloaded with the TMR0_RELOAD value. tmr0 operates as ;the time base for the psm modulator. ;the voltage on an0 pin is compared to the vref: ; if an1 > vref, then skip the next psm pulse ; if an1 < vref, then do not skip psm pulse ; org 04 isr: movwf W_TEMP ;save w and status swapf STATUS,W bcf STATUS,RP0 movwf STATUS_TEMP ; movlw TMR0_RELOAD ;reload tmr0 movwf TMR0 bsf FLAG,0 btfss CMCON,C2OUT ;if van1 > vsetpoint, bcf FLAG,0 ; then skip next pulse bcf PULSE ;turn off output pulse bcf INTCON,T0IF ;clear tmr0 interrupt flag btfss FLAG,0 ;if skip pulse, goto isr_done ; then exit bsf PULSE ;else begin a new output pulse isr_done: swapf STATUS_TEMP,W ;restore w and status, and exit movwf STATUS swapf W_TEMP,F swapf W_TEMP,W retfie

000000AC 000000A6 000000A2 000000D7

00000020

00000024 00000025

0000 0000

2817

Preliminary

0004 0004 0005 0006 0007

00A4 0E03 1283 00A5

0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0012 0013 0014 0015 0016

30D7 0081 1420 1F9F 1020 1386 110B 1C20 2812 1786

2000 Microchip Technology Inc.

0E25 0083 0EA4 0E24 0009

00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 00040 00041 00042 00043 00044 00045 00046 00047 00048 00049 00050 00051 00052 00053 00054 00055 00056 00057 00058 00059 00060 00061 00062 00063 00064 00065 00066

2000 Microchip Technology Inc.

0017 1283 0018 0185 0019 0186 001A 1683 001B 30FF Message[302]: 001C 0085 001D 3000 Message[302]: 001E 0086 001F 30DF Message[302]: 0020 0081 0021 1283

Preliminary

0022 0023

3002 009F

0024 30AC 0025 1683 Message[302]: 0026 009F 0027 1283 0028 01A0

0029 002A 002B 002C

30D7 0081 30A0 008B

AN216

DS00216A-page 15

002D 002E

282E 282D

00067 ; 00068 ; 00069 ;start is the main program of this firmware smps controller. 00070 ;i/o ports are initialized. 00071 ;tmr0 is configured to run from the internal oscillator with no prescalar. the 00072 ;tmr0 interrupt is also enabled. 00073 ;the comparators and vref modules are initialized. 00074 ;the rest of this main program is an infinite loop. if the microcontroller is 00075 ;used for other non timing critical functions, the code for these functions 00076 ;should reside within the main program. 00077 ; 00078 start: bcf STATUS,RP0 ;bank0 00079 clrf PORTA 00080 clrf PORTB 00081 bsf STATUS,RP0 ;bank1 00082 movlw b11111111 ; Register in operand not in bank 0. Ensure that bank bits are correct. 00083 movwf TRISA ;port a lines are all inputs 00084 movlw b00000000 Register in operand not in bank 0. Ensure that bank bits are correct. 00085 movwf TRISB ;port b lines are outputs 00086 movlw b11011111 ;tmr0 clock is internal, prescaler -> wdt Register in operand not in bank 0. Ensure that bank bits are correct. 00087 movwf OPTION_REG 00088 bcf STATUS,RP0 ;back to bank0 00089 ; 00090 movlw b00000010 ;AN0 to C1, AN1 to C2, Internal Vref 00091 movwf CMCON 00092 ; 00093 movlw VREF_HI ;setpoint is vref high 00094 bsf STATUS,RP0 ;bank1 Register in operand not in bank 0. Ensure that bank bits are correct. 00095 movwf VRCON 00096 bcf STATUS,RP0 ;back to bank 0 00097 clrf FLAG 00098 ; 00099 movlw TMR0_RELOAD ;initialize tmr0 00100 movwf TMR0 00101 movlw b10100000 ;enable tmr0 interrupt 00102 movwf INTCON 00103 ; 00104 loop: goto $+1 ;main program for other functions goes here 00105 goto loop 00106 ; 00107 END

MEMORY USAGE MAP (X = Used,

- = Unused)

0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX- ---------------2000 : -------X-------- ---------------- ---------------- ----------------

AN216

DS00216A-page 16
44 468 0 suppressed 0 suppressed

All other memory blocks unused.

Program Memory Words Used: Program Memory Words Free:

Errors : Warnings : Messages :

0 0 reported, 4 reported,

Preliminary

2000 Microchip Technology Inc.

Note the following details of the code protection feature on PICmicro MCUs. The PICmicro family meets the specifications contained in the Microchip Data Sheet. Microchip believes that its family of PICmicro microcontrollers is one of the most secure products of its kind on the market today, when used in the intended manner and under normal conditions. There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the PICmicro microcontroller in a manner outside the operating specifications contained in the data sheet. The person doing so may be engaged in theft of intellectual property. Microchip is willing to work with the customer who is concerned about the integrity of their code. Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as unbreakable. Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our product.

If you have any further questions about this matter, please contact the local sales office nearest to you.

Information contained in this publication regarding device applications and the like is intended through suggestion only and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. No representation or warranty is given and no liability is assumed by Microchip Technology Incorporated with respect to the accuracy or use of such information, or infringement of patents or other intellectual property rights arising from such use or otherwise. Use of Microchips products as critical components in life support systems is not authorized except with express written approval by Microchip. No licenses are conveyed, implicitly or otherwise, under any intellectual property rights.

Trademarks The Microchip name and logo, the Microchip logo, FilterLab, KEELOQ, microID, MPLAB, PIC, PICmicro, PICMASTER, PICSTART, PRO MATE, SEEVAL and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. dsPIC, ECONOMONITOR, FanSense, FlexROM, fuzzyLAB, In-Circuit Serial Programming, ICSP, ICEPIC, microPort, Migratable Memory, MPASM, MPLIB, MPLINK, MPSIM, MXDEV, PICC, PICDEM, PICDEM.net, rfPIC, Select Mode and Total Endurance are trademarks of Microchip Technology Incorporated in the U.S.A. Serialized Quick Turn Programming (SQTP) is a service mark of Microchip Technology Incorporated in the U.S.A. All other trademarks mentioned herein are property of their respective companies. 2002, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved.
Printed on recycled paper.

Microchip received QS-9000 quality system certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona in July 1999. The Companys quality system processes and procedures are QS-9000 compliant for its PICmicro 8-bit MCUs, KEELOQ code hopping devices, Serial EEPROMs and microperipheral products. In addition, Microchips quality system for the design and manufacture of development systems is ISO 9001 certified.

2002 Microchip Technology Inc.

M
WORLDWIDE SALES AND SERVICE
AMERICAS
Corporate Office
2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: 480-792-7627 Web Address: http://www.microchip.com

ASIA/PACIFIC
Australia
Microchip Technology Australia Pty Ltd Suite 22, 41 Rawson Street Epping 2121, NSW Australia Tel: 61-2-9868-6733 Fax: 61-2-9868-6755

Japan
Microchip Technology Japan K.K. Benex S-1 6F 3-18-20, Shinyokohama Kohoku-Ku, Yokohama-shi Kanagawa, 222-0033, Japan Tel: 81-45-471- 6166 Fax: 81-45-471-6122

Rocky Mountain
2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7966 Fax: 480-792-7456

China - Beijing
Microchip Technology Consulting (Shanghai) Co., Ltd., Beijing Liaison Office Unit 915 Bei Hai Wan Tai Bldg. No. 6 Chaoyangmen Beidajie Beijing, 100027, No. China Tel: 86-10-85282100 Fax: 86-10-85282104

Korea
Microchip Technology Korea 168-1, Youngbo Bldg. 3 Floor Samsung-Dong, Kangnam-Ku Seoul, Korea 135-882 Tel: 82-2-554-7200 Fax: 82-2-558-5934

Atlanta
500 Sugar Mill Road, Suite 200B Atlanta, GA 30350 Tel: 770-640-0034 Fax: 770-640-0307

Singapore
Microchip Technology Singapore Pte Ltd. 200 Middle Road #07-02 Prime Centre Singapore, 188980 Tel: 65-6334-8870 Fax: 65-6334-8850

Boston
2 Lan Drive, Suite 120 Westford, MA 01886 Tel: 978-692-3848 Fax: 978-692-3821

China - Chengdu
Microchip Technology Consulting (Shanghai) Co., Ltd., Chengdu Liaison Office Rm. 2401, 24th Floor, Ming Xing Financial Tower No. 88 TIDU Street Chengdu 610016, China Tel: 86-28-6766200 Fax: 86-28-6766599

Taiwan
Microchip Technology Taiwan 11F-3, No. 207 Tung Hua North Road Taipei, 105, Taiwan Tel: 886-2-2717-7175 Fax: 886-2-2545-0139

Chicago
333 Pierce Road, Suite 180 Itasca, IL 60143 Tel: 630-285-0071 Fax: 630-285-0075

Dallas
4570 Westgrove Drive, Suite 160 Addison, TX 75001 Tel: 972-818-7423 Fax: 972-818-2924

China - Fuzhou
Microchip Technology Consulting (Shanghai) Co., Ltd., Fuzhou Liaison Office Unit 28F, World Trade Plaza No. 71 Wusi Road Fuzhou 350001, China Tel: 86-591-7503506 Fax: 86-591-7503521

EUROPE
Denmark
Microchip Technology Nordic ApS Regus Business Centre Lautrup hoj 1-3 Ballerup DK-2750 Denmark Tel: 45 4420 9895 Fax: 45 4420 9910

Detroit
Tri-Atria Office Building 32255 Northwestern Highway, Suite 190 Farmington Hills, MI 48334 Tel: 248-538-2250 Fax: 248-538-2260

China - Shanghai
Microchip Technology Consulting (Shanghai) Co., Ltd. Room 701, Bldg. B Far East International Plaza No. 317 Xian Xia Road Shanghai, 200051 Tel: 86-21-6275-5700 Fax: 86-21-6275-5060

Kokomo
2767 S. Albright Road Kokomo, Indiana 46902 Tel: 765-864-8360 Fax: 765-864-8387

France
Microchip Technology SARL Parc dActivite du Moulin de Massy 43 Rue du Saule Trapu Batiment A - ler Etage 91300 Massy, France Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79

Los Angeles
18201 Von Karman, Suite 1090 Irvine, CA 92612 Tel: 949-263-1888 Fax: 949-263-1338

China - Shenzhen
Microchip Technology Consulting (Shanghai) Co., Ltd., Shenzhen Liaison Office Rm. 1315, 13/F, Shenzhen Kerry Centre, Renminnan Lu Shenzhen 518001, China Tel: 86-755-2350361 Fax: 86-755-2366086

New York
150 Motor Parkway, Suite 202 Hauppauge, NY 11788 Tel: 631-273-5305 Fax: 631-273-5335

Germany
Microchip Technology GmbH Gustav-Heinemann Ring 125 D-81739 Munich, Germany Tel: 49-89-627-144 0 Fax: 49-89-627-144-44

San Jose
Microchip Technology Inc. 2107 North First Street, Suite 590 San Jose, CA 95131 Tel: 408-436-7950 Fax: 408-436-7955

Hong Kong
Microchip Technology Hongkong Ltd. Unit 901-6, Tower 2, Metroplaza 223 Hing Fong Road Kwai Fong, N.T., Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431

Italy
Microchip Technology SRL Centro Direzionale Colleoni Palazzo Taurus 1 V. Le Colleoni 1 20041 Agrate Brianza Milan, Italy Tel: 39-039-65791-1 Fax: 39-039-6899883

Toronto
6285 Northam Drive, Suite 108 Mississauga, Ontario L4V 1X5, Canada Tel: 905-673-0699 Fax: 905-673-6509

India
Microchip Technology Inc. India Liaison Office Divyasree Chambers 1 Floor, Wing A (A3/A4) No. 11, OShaugnessey Road Bangalore, 560 025, India Tel: 91-80-2290061 Fax: 91-80-2290062

United Kingdom
Arizona Microchip Technology Ltd. 505 Eskdale Road Winnersh Triangle Wokingham Berkshire, England RG41 5TU Tel: 44 118 921 5869 Fax: 44-118 921-5820
03/01/02

2002 Microchip Technology Inc.

You might also like