AN970 Using the PIC18F2431 for Sensorless BLDC Motor Control Author: Padmaraja Yedamale Microchip Technology Inc. INTRODUCTION Brushless Direct Current (BLDC) motors have many advantages over other types of motors available in the industry. Previously, we have discussed the working principles of BLDC motors and the basics of their control in Microchip application note AN885, Brushless DC (BLDC) Motor Fundamentals. We have also discussed the use of PIC18FXX31 devices to control a BLDC motor in both open loop and in closed loop using Hall effect sensors and quadrature encoders (Microchip application note AN899, Brushless DC Motor Control Using PIC18FXX31 Microcontrollers). This application note describes BLDC motor speed control without the use of sensors. Those readers interested in additional applications may refer to Microchip application notes AN857, Brushless DC Motor Control Made Easy and AN901, Using the dsPIC30F for Sensorless BLDC Control, to learn how other PICmicro® microcontrollers and dsPIC® digital signal controllers can be used for BLDC motor control. ADVANTAGES AND DISADVANTAGES OF SENSORLESS CONTROL Sensorless control of a BLDC motor calls for commutation based on the Back Electromotive Force (BEMF) produced in the stator windings. Sensorless control has two distinct advantages: lower system cost and increased reliability. Hall effect sensors are not required for sensorless control. Some motors may have the Hall sensor magnets mounted on the rotor, in addition to the main rotor magnets. These are used to simplify the process of mounting the Hall sensors onto the stator. The sensor magnets are a scaled-down replica of the rotor; whenever the rotor rotates, they produce the same effect as the main magnets. The Hall sensors are normally mounted on a PC board and are fixed to the enclosure cap on the non-driving end of the motor. © 2005 Microchip Technology Inc. With a sensorless method of commutation, the Hall sensors, the sensor magnets, the sensor wires and the PC board can be eliminated. This simplifies the motor construction and reduces cost. Inherently, systems with fewer components are more reliable. Applications like the compressor control in a refrigerator or in HVAC systems, which generates heat and an elevated temperature, may accelerate Hall sensor failures. Using sensorless control improves the reliability of total system. There are two disadvantages to sensorless control: • The motor must be moving at a minimum rate to generate sufficient BEMF to be sensed. • Abrupt changes to the motor load can cause the BEMF drive loop to go out of lock. As the BEMF signal is proportional to the speed of rotation at standstill and at low speeds, the amplitude of the BEMF poses a challenge to determine the zero crossover point. In order to overcome this problem, the motor is normally run in open loop during starting and is accelerated to a speed where the BEMF has sufficient amplitude to detect and then synchronize with the zero crossing point. Running the motor in open loop makes it difficult to know the rotor position, when starting from standstill. So, the rotor can rotate in either direction when energized. Applications which require very low motor speed may be forced to use sensors for control. There are many applications in appliances, automotive, and industrial applications where very low speed is not an issue, and the motor needs variable speeds of about 25% of the rated speed. Sensorless control is ideal for such applications. Another requirement is that the sensorless control needs extra resources on the control circuit side. Depending upon the method used, it may require a fast A/D converter on the microcontroller, or comparator and filter circuits. DS00970A-page 1 AN970 THEORY OF OPERATION HALL SENSOR SIGNALS VS. BEMF When a BLDC motor rotates, each winding generates BEMF which opposes the main voltage supplied to the windings according to Lenz’s Law. The polarity of this BEMF is in the opposite direction of the energizing voltage. BEMF can be calculated as shown in Equation 1, and depends mainly on three factors: Figure 1 shows the relationship between the Hall sensor signals and the BEMF signals. Hall sensor signals are out of phase by 120 degrees to each other. At every 60 degrees, one of the Hall sensors makes a transition. • Angular velocity of the rotor • Magnetic field generated by rotor magnets • The number of turns in the stator windings EQUATION 1: Back EMF = NlrBω where N = number of winding turns per phase l = the length of the rotor r = the internal radius of the rotor B = the rotor magnetic field density ω = the motor angular velocity Once the motor is designed, the rotor’s magnetic field and the number of turns in the stator windings remain constant. The only factor that governs back EMF is the angular velocity or speed of the rotor; as the speed increases, back EMF also increases. The motor technical specification gives a parameter called the back EMF constant, which can be used to estimate BEMF for a given speed. DS00970A-page 2 The BEMF generated in the windings are also at 120 degrees out of phase to each other, but they are asynchronous with the Hall sensor signals. In every energizing sequence, two phases are connected across the power supply and the third winding is left open. The BEMF voltage is monitored on the winding that is left open. With this, the BEMF voltage in windings increases when it is connected to power supply and reduces when it is connected to the return path. The transition takes place when the winding is left open in the sequence. The combination of all 3 zero cross over points are used to generate energizing sequence. The phase difference between the hall sensor and the BEMF signal is 30 degrees. This is in the firmware. Another aspect to be considered is very low-speed operation. Because BEMF is proportional to the rotation speed, it would be at a very low amplitude at very low speeds, making it difficult to detect the zero crossover. In addition, since the commutation itself is derived based on BEMF zero crossovers, it is impossible to start the motor from standstill. To overcome this difficulty, the motor has to be started from standstill in open loop. When sufficient BEMF is built to detect the zero crossover point, control is shifted to the BEMF sensing. The minimum speed at which the BEMF can be sensed is calculated from the BEMF constant of the motor. © 2005 Microchip Technology Inc. AN970 FIGURE 1: WAVEFORM OF HALL SENSOR VERSUS BEMF VOLTAGES 60° Hall A Hall B Hall C Phase A Zero cross Phase A Current Phase A Phase A Voltage Phase B Zero cross Phase B Current Phase B Phase B Voltage Phase C Zero cross Phase C Current Phase C Phase C Voltage BEMF ZERO CROSSOVER SENSING METHODS FIGURE 2: BEMF voltage zero crossing can be detected by different methods. This section gives three different methods of detecting BEMF zero cross point. The first method is comparing the back EMF voltage to half of the DC bus voltage by using comparators. Figure 2 shows this method. Phase A is connected to the positive side of the power supply (DC+), Phase C is connected to the negative side (or return path DC) of the power supply and Phase B is open. When BEMF is observed on Phase B, it increases and decreases as the power supply (DC+ and DC-) are connected and disconnected to the winding terminals in the energizing sequence. By comparing the BEMF voltage to half of the DC bus, it gives a voltage at the central point of phase A and phase C. BEMF VOLTAGE COMPARED TO HALF OF DC BUS DC+ A Back EMF DC- C B + To IC2 _ DC/2 Each phase requires a circuit like that shown in Figure 2 for Phase B. Combinations of these three signals are used to derive the commutation sequence. This scheme is easy to implement with three op amp comparators. © 2005 Microchip Technology Inc. DS00970A-page 3 AN970 There are a few drawbacks to this circuit. First, if all three windings do not have identical characteristics, the BEMF measured will have either positive or negative phase shift. This will result in energizing windings at different instances than they should be. This may result in the motor winding drawing excessive current. Another drawback is that if the motor rated voltage is much less than the DC bus voltage, there could be a large difference between the BEMF zero crossover point and half of the DC bus voltage. This could also result in having a phase shift result in either direction. The circuit can be improved upon by generating a virtual neutral point, as shown in Figure 3. The neutral point is generated using a resistor network. Three networks are connected in parallel with the motor windings and connected together to generate a virtual neutral point. This resistive network is assembled on the control board between the 3-phase inverter bridge and the motor terminals. The resistor values should be chosen such that they will have insignificant effect on the motor current. (Refer to Appendix A: “Motor Control Circuit Schematics” for the circuit schematic used in this application note.) In this case, the BEMF signal is compared with this virtual neutral point. When the BEMF developed in the winding crosses the zero point towards positive side, the comparator output makes a transition from low-to-high. When the BEMF developed in the winding crosses the zero point towards negative side, the comparator output makes a transition from high-to-low. By having three such comparator circuits, one on each of the phases gives three digital signals corresponding to the BEMF signal in the windings. The combination of these three signals is used to derive the commutation sequence. FIGURE 3: BEMF VOLTAGE COMPARED TO A VIRTUAL NEUTRAL POINT A third method of detecting the BEMF zero crossover is using the A/D converter channels, as shown in Figure 4. The PIC18FXX31 microcontrollers have a high-speed A/D converter that can be used for this purpose. Using a potential divider, the BEMF signal is brought down to a level that the microcontroller can measure. This signal is sampled by the A/D, and is continuously compared with a digital value corresponding to the zero point. When the two values match, the commutation sequence is updated. The advantage with this method is that it is more flexible in terms of measurement. When the speed varies, the winding characteristics may fluctuate, resulting in variation of BEMF. In such situations, the microcontroller has complete control over the determination of the zero crossover point. Also, digital filters can be implemented to filter out the high-frequency switching noise components from the BEMF signal. FIGURE 4: BEMF VOLTAGE MEASURED USING ANALOG-TO-DIGITAL CONVERTERS A C B Signal conditioning AN0 A AN1 AN2 Back EMF Back EMF C DC- B + _ Virtual Neutral DS00970A-page 4 To IC2 © 2005 Microchip Technology Inc. AN970 HARDWARE Note: Figure 5 shows the block diagram for the sensorless BLDC control system discussed here; a complete schematic of the prototype board is provided in Appendix A: “Motor Control Circuit Schematics”. The board is capable of using either the PIC18F2331/2431 Microcontroller or a dsPIC30F2010 digital signal controller (only the PIC18F2431 is discussed here). Toggle switch S2 is used for changing the rotational direction and switch S1 is used for changing the state between run and stop. A potentiometer (R14) is used to set the speed reference; it is connected to A/D converter channel AN1. BEMF Sensing Circuit In this application note, we are following the second method of determining the BEMF zero cross detection shown in Figure 3. As shown in the schematics in the Appendix, low-pass filter circuits and potential divider circuits are implemented on all three motor terminals. The low-pass filter is necessary to filter out the high frequency noise that is generated by the high frequency PWM switching. The potential divider reduces the voltage from high motor voltage to the level MCU can measure. After this, the BEMF signals are connected together using R27, R30 and R40 to form a virtual neutral point. The BEMF signal from each phase is compared with this neutral point using the op amp comparators. In order to use this configuration, jumpers J7, J11 and J13 should be bridged across pins 1 and 2, and jumpers J8, J12 and J14 should be bridged. By doing this, the comparator outputs are connected to the input capture pins IC1, IC2 and IC3 on the PIC18FXX31. Shunt resistor R26 is connected in the return path of the DC bus. The voltage drop across this resistor varies linearly with respect to motor current. This voltage is amplified by a 1:10 ratio using op amp circuit U10A. This amplified voltage (motor current) is measured using A/D channel AN0. The motor current is compared with a current limit set by another potentiometer (R60). If the motor current exceeds the limit set, the output of U7D will toggle, indicating an overcurrent fault. This Fault is connected to Fault A input pin on PIC18F2431, which is an active-low pin. The board also provides the option for connecting the BEMF signals to the A/D channels. The BEMF signal is filtered using the low-pass filters comprised of R34/C17, R41/C19 and R49/C19 on motor terminals M3, M2 and M1, respectively. The potential divider circuits comprised of R34/R36, R41/R44 and R49/R52 on motor terminals M3, M2 and M1 reduce the BEMF voltage to TTL level. To route the BEMF signals to the A/D channels, J7, J11 and J13 should be bridged between pins 2 and 3. A switched-mode block power supply is used to generate 24V (shown in bold lines in Figure 5) from an AC input. Using linear voltage regulators VR1 and VR2, +5V and +15V are generated, respectively. The former powers the microcontroller, all op amps and related logic circuits, while the latter is used to power the MOSFET drivers (U6, U8 and U9). FIGURE 5: MOTOR CONTROL HARDWARE BLOCK DIAGRAM +15V Regulator +5V Regulator Motor Speed +5V IC1 IC2 IC3 RA2 RA3 RA4 S2 S3 RC5 24V Power Supply +24V PWM5 PWM5 PWM4 PWM4 PWM3 PWM3 PWM2 PWM1 RC4 PIC18F2431 PWM2 IGBT Driver PWM1 PWM0 PWM0 3-phase Inverter Bridge BLDC Motor AN0 RS232 AC input +15V AN1 ICD2 For a complete list of motor control application notes refer to www.microchip.com/motor. Back EMF Signals FLTA Amplifier Comparator Imotor Current Shunt Signal Conditioning IC1 IC2 IC3 Overcurrent Limit © 2005 Microchip Technology Inc. DS00970A-page 5 AN970 Motor Specifications A Hurst NT dynamo Brushless DC motor is used for the experiments. Its specifications are: • • • • Rated voltage: 24 VDC Rated current: 1.00 A Rated speed: 2500 RPM Rotor poles: 10 (5 pole pairs) Software Routines As discussed in earlier sections, the motor has to be run in open loop during start-up. When the speed reaches a level where the BEMF voltage has sufficient amplitude to measure the zero crossover point, the control is switched to closed loop. The difficult portion is synchronizing the rotor from open loop to closed loop with BEMF zero cross signals. at one fixed speed. The Timer1 reload value, as shown in Equation 2, depends upon the motor rated speed, number of rotor poles, and the Timer1 prescaler value. EQUATION 2: Timer1 Time = 60 RPM x Pole pairs x 6 According to Equation 2, in order to run the motor at 400 RPM, Timer1 should expire every 5 ms, or 2.2 ms for 900 RPM. The Timer1 overflow value can be calculated based on the main oscillator frequency and Timer1 prescaler, as shown in Equation 3. EQUATION 3: Fosc Timer1 Reload Value = FFFFh – ⎛ Timer1 time x -----------⎞ ⎝ 4 ⎠ Motor Start-up From experimentation, it has been determined that the motor develops sufficient BEMF voltage amplitude at about 900 RPM. At this speed, the BEMF signals are compared with the virtual neutral point; this signal is read using the Input Capture module. This is done in two steps: when the motor is run at approximately 400 RPM, and then accelerated to 900 RPM. Timer1 is used to time the energizing sequence. The Timer1 reload value is calculated and the new energizing sequence is output on the PWM pins when the reload value expires. This ensures that the motor runs FIGURE 6: DS00970A-page 6 Upon a Timer1 overflow in the ISR, a new energizing sequence is loaded into the PWM override registers and Timer1 registers are reloaded with the value calculated using Equation 3. The PWM duty cycle corresponding to the speed is calculated and loaded on to the PDC registers. When the motor starts running at 900 RPM, the BEMF zero crossover point signals from the comparators are observed for 16 cycles to synchronize with the energizing sequence. OSCILLOSCOPE WAVEFORM OF BEMF AND HALL SENSOR SIGNALS © 2005 Microchip Technology Inc. AN970 FIGURE 7: BEMF VERSUS ZERO CROSSING a) Back EMF signal vs. zero crossover point (without filter) b) Back EMF signal vs. zero crossover point (with filter) © 2005 Microchip Technology Inc. DS00970A-page 7 AN970 SYNCHRONIZING ZERO CROSSOVER SIGNALS WITH THE ENERGIZING SEQUENCE When the motor is running at 900 RPM, the BEMF zero crossover (BEMC-ZC) signals, with respect to Hall sensor output, looks like those shown in Figure 6. The phase difference between the actual BEMF-ZC and the Hall sensors is 30 degrees. From the experiments, its found that the delay between the Hall signals to BEMF-ZC signals connected to input capture pins is 60 degrees throughout the speed range. Keeping this delay in mind, the energizing sequence has to be synchronized with the BEMF-ZC signal. Timer1 is used FIGURE 8: to count a 60-degree electrical delay from every BEMF-ZC signal. After the timer expires, the energizing sequence is loaded to the OVDCOND register. In this version of firmware, IC1 input is used for synchronizing the BEMF-ZC signals twice in an electric cycle. All three input capture inputs are used for determining the energizing sequence for every rotor state. The Motion Feedback Module (MFM) on the PIC18F2431 has programmable digital filters. These act like low-pass filters with a selectable prescaler. Based on the speed, three levels of filtering is provided in this firmware. A more detailed overview of the firmware is provided in the flowcharts in Figure 8 through Figure 10. MAIN MOTOR CONTROL SOFTWARE LOOP START No S2 or S3 pressed? Yes Initialize PWM in Independent mode Initialize ADC No Is Sensorless on? Yes Update PWM Duty Cycle Routine DS00970A-page 8 PWM Duty Cycle Calculation Add Offset to the Speed Reference Limit Speed Ref Value to FDh PWM Duty cycle = [(MotorVoltage/ DCBusVoltage) X (4 X PWMPeriod)] X [SpeedRef/255] Check S2/S3 Activity Routine Load PWM Duty Cycle to all PDC<H:L> Registers Check Overcurrent Routine RETURN © 2005 Microchip Technology Inc. AN970 FIGURE 9: ISR FLOWCHART (MAIN ROUTINE AND IC1 SERVICE) Main ISR Service Routine (ISR_HIGH) IC1 ISR? Yes A No Timer1 ISR? Yes B No Read Motor Current from AD0 ADC ISR? Yes No Read Speed Ref from AD1 IC1 Service Routine PWM ISR? Yes C A No RETFIE No Is openloop speed > Min_speed? Yes Observe BEMF-ZC for 16 Cycles No Is Sensorless on? Yes No Is BEMF > 16 counts? Set DFLTCON Clock Divide Value Based on Speed Yes Load 60 Degree Time to Timer Set Digital Filter to Low Clock Divide Ratio Enable Timer1 Interrupt RETFIE © 2005 Microchip Technology Inc. DS00970A-page 9 AN970 FIGURE 10: ISR ROUTINE (TIMER1 AND PWM SERVICE) Timer1 Service Routine B Is Sensorless on? No Is the speed in open loop step1? No Update the Switching Sequence Based on the IC1/IC2/IC3 State Load 60 Degree Time to Timer1 No Yes Yes Yes Is the speed in open loop step2? Reload TMR1<H:L> = HIGH_OL_SPEED Reload TMR1<H:L> = LOW_OL_SPEED Set the Energizing Sequence with Count 1 to 6 RETFIE PWM Service Routine C Is the rotor locked up? Yes All PWMs to Inactive State No Is there a overcurrent (OC) fault? No Yes Is OC > MAX FAULTA_COUNT in 256 PWM cycles? Yes Configure FAULTA to Catastrophic mode No Blink LED1 Indicating OC RETFIE DS00970A-page 10 © 2005 Microchip Technology Inc. AN970 RESOURCE USAGE The BLDC application consumes CPU resources as shown in Table 1. TABLE 1: RESOURCES USED IN THE BLDC (USING PIC18F2431) Resource Type Used ROM 800 bytes RAM 65 bytes MIPS 4.5 MIPS CONCLUSION Sensorless control of BLDC motors has several advantages, such as reduction of total system cost and increased reliability. However, it requires extra resources on the control circuit side. The specialized peripherals on PIC18FXX31 microcontrollers (PCPWM, Motion Feedback Module and the High-Speed A/D converter) can simplify the sensorless control up to a great extent. This application note demonstrates the implementation of sensorless control of a BLDC motor using the 28-pin version of the PIC18FXX31 microcontroller family, the PIC18F2431. © 2005 Microchip Technology Inc. DS00970A-page 11 AN970 NOTES: DS00970A-page 12 © 2005 Microchip Technology Inc. © 2005 Microchip Technology Inc. 3 4 3 4 S3 S2 100 2 1 2 1 C5 2 1 R19 4K7 R17 +5V R18 4K7 R16 +5V 33 pF C9 3 VREF POT 0.1 uF S1 +5V R15 R14 2K 3 4 1 C10 4K7 4K7 RC0 RC5 33 pF 5 MHz J15 2 VBUS 2K OSC2 OSC1 HALLC HALLB HALLA IMOTOR MCLR R12 +5V MCLR VDD RA3 RA4 PIC18F2431 RC7 8 AVSS 19 VSS RC5 RC4 RC3 RC6 OSC1 RC2 RC1 RC0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 21 28 27 26 25 24 23 22 18 17 16 15 14 13 12 11 0.1 uF OSC2 10 9 7 AVDD 6 5 2 RA0 3 RA1 4 RA2 1 20 U1 RX TX RC5 RC4 RC3 RC2 FAULTA RC0 RB7 RB6 PWM4 PWM5 PWM3 1 uF C6 RX TX 6 RB5 T2IN T1IN C1+ V- C2- C2+ R2IN GND 15 R2OUT R1IN 5 4 8 13 T1OUT 14 7 T2OUT VCC 16 MAX232 U2 +5V C1 2 J16 1 uF C7 1 J17 1 R66 10 R13 5 2 J1 8 9 7 6 RB6 FAULTA R65 PIN1 PIN6 PIN2 PIN7 PIN3 3 PIN8 PIN4 4 PIN9 PIN5 1 2 +5V PWM5 PWM4 PWM3 PWM2 PWM1 PWM0 +5V 1 uF RD0 15 VDD 20 VSS 19 18 RF2 17 RF3 RE8 16 AVDD 28 27 AVSS 26 RE0 25 RE1 24 RE2 23 RE3 22 RE4 RE5 21 dsPIC30F2010 R1OUT 1 uF C8 RB2 8 AVSS 9 OSC1 10 OSC2 11 RC13 12 RC14 13 VDD 14 RD1 3 C1- 1 9 12 10 11 RB0 5 RB3 6 RB4 7 4 U3 MCLR 3 RB1 2 1 1 uF 2 V+ C4 +5V +5V RB7 RC5 RC0 OSC2 OSC1 PWM1 PWM2 HALLB HALLC PWM0 HALLA POT IMOTOR VBUS MCLR 2K 2K RX TX FIGURE A-1: 0.1 uF C3 +5V APPENDIX A: 10K R11 +5V C2 470 R10 AN970 MOTOR CONTROL CIRCUIT SCHEMATICS PART 1 (PIC18F MICROCONTROLLER, dsPIC30 DSP, USART AND ASSOCIATED PARTS) DS00970A-page 13 DS00970A-page 14 11 10 9 8 7 6 5 4 3 2 1 2 1 1 0.1R 605HR100 R26 2 J10 J9_11 J9_10 J9_9 +5V M1 M2 M3 DC+ V_IN R36 47 nF 1K R61 1K R59 47 nF 2 47 nF C23 + – 10K R56 MCP6002 3 2K2 300 R52 27K C21 R50 R49 2K2 300 27K C19 47 nF R44 2K2 R42 DC- C22 C17 47 nF 300 R35 R41 27K R34 4 8 +5V 1 +5V C25 R74 0.1 uF J13 J11 J7 U10:A 3 2 1 3 2 1 3 2 1 33 pF C14 1K R58 R31 10K R51 10K R43 10K 33 pF C24 300 IMOTOR 100K R40 100K R30 100K R27 100K R28 2K4 +5V R55 9 13 R60 5K 12 MCP6544 1M R53 10 MCP6544 R46 6 5 MCP6544 R37 3 MCP6544 2 + – + – 1M + – 1M + – C15 1M U7:D 14 8 U7:C 7 U7:B U7:A 1 0.1 uF R57 11 4 +5V R73 300 R48 300 R39 300 R32 2 2 2 300 FAULTA HALLC 1 J14 HALLB 1 J12 HALLA 1 J8 5 6 + 7 U10:B MCP6002 – FIGURE A-2: ED2324 J9 J3 AN970 BOARD SCHEMATIC, PART 2 (BACK EMF SIGNAL CONDITIONING AND CURRENT FAULT DETECTION) © 2005 Microchip Technology Inc. © 2005 Microchip Technology Inc. 6 7 8 J4 2 3 5 4 1 2 V_IN 300 R72 J5 300 R71 +15V 300 R70 1 PWM4 PWM5 PWM2 300 R69 +15V 300 R68 1 U9 2 +15V + C20 3.3 uF +15V + C18 3.3 uF +15V + C16 3.3 uF MC7815CD2T/R4 3 VOUT VIN + GND C13 2 47 uF VR2 1 J18 8 7 6 1 5 4 8 7 6 1 5 4 8 7 6 1 5 4 VB HO VS VCC LO COM IR2101S 2 HIN 3 LIN US1K D6 VB HO VS VCC LO COM IR2101S 2 HIN 3 LIN U8 US1K D5 VB HO VS VCC LO COM IR2101S 2 HIN 3 LIN U6 US1K D4 33R R54 33R R47 33R R45 33R R38 33R R33 33R R29 3 C28 0.1 uF 3 M3 3 C11 47 uF +15V Q6 IRFR2407 3 Q5 IRFR2407 DC- 2 2 M2 Q4 IRFR2407 DCDC+ 2 3 Q3 IRFR2407 DC+ 2 M1 Q2 IRFR2407 DC- 2 Q1 IRFR2407 3 +15V 1 1 1 1 1 1 2 DC+ + R20 10K 1 2 1 J9_11 J9_10 J9_9 J19 1 2 VR1 +5V PWM1 1K R2 1K R3 10K R24 1K R4 R25 R22 R21 10K R23 1K R5 1K R6 PWM5 C27 0.1 uF +5V 1K 1K 1K 1K R62 HALLC HALLB HALLA PWM5 PWM4 PWM4 PWM3 PWM3 PWM2 PWM2 PWM1 MC7805CD2T/R4 3 VOUT VIN + GND C26 C12 2 47 uF 0.1 uF J2 PWM0 1K R1 PWM0 D1 1K R7 RC4 D7 D2 1K R8 D3 1K R9 DC+ 2K4 R64 12K R63 RB6 RB7 6 5 4 3 2 ICD 1 +5V RC3 MCLR RC2 0.1 uF C29 VBUS J6 FIGURE A-3: PWM3 PWM0 PWM1 300 R67 +15V AN970 BOARD SCHEMATIC, PART 3 (MOTOR DRIVER BRIDGE, POWER SUPPLY AND REGULATORS, LEDS AND OTHER CONNECTORS) DS00970A-page 15 AN970 NOTES: DS00970A-page 16 © 2005 Microchip Technology Inc. Note the following details of the code protection feature on Microchip devices: • Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families 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 Microchip products in a manner outside the operating specifications contained in Microchip’s Data Sheets. Most likely, the person doing so is 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 products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip’s 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 Microchip intellectual property rights. Trademarks The Microchip name and logo, the Microchip logo, Accuron, dsPIC, KEELOQ, microID, MPLAB, PIC, PICmicro, PICSTART, PRO MATE, PowerSmart, rfPIC, and SmartShunt are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB, PICMASTER, SEEVAL, SmartSensor and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. Analog-for-the-Digital Age, Application Maestro, dsPICDEM, dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR, FanSense, FlexROM, fuzzyLAB, In-Circuit Serial Programming, ICSP, ICEPIC, MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, rfLAB, rfPICDEM, Select Mode, Smart Serial, SmartTel and Total Endurance are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. 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. © 2005, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. Microchip received ISO/TS-16949:2002 quality system certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona and Mountain View, California in October 2003. The Company’s quality system processes and procedures are for its PICmicro® 8-bit MCUs, KEELOQ® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products. In addition, Microchip’s quality system for the design and manufacture of development systems is ISO 9001:2000 certified. © 2005 Microchip Technology Inc. DS00970A-page 17 WORLDWIDE SALES AND SERVICE AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: http://support.microchip.com Web Address: www.microchip.com Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 India - Bangalore Tel: 91-80-2229-0061 Fax: 91-80-2229-0062 China - Beijing Tel: 86-10-8528-2100 Fax: 86-10-8528-2104 India - New Delhi Tel: 91-11-5160-8631 Fax: 91-11-5160-8632 Austria - Weis Tel: 43-7242-2244-399 Fax: 43-7242-2244-393 Denmark - Ballerup Tel: 45-4450-2828 Fax: 45-4485-2829 China - Chengdu Tel: 86-28-8676-6200 Fax: 86-28-8676-6599 Japan - Kanagawa Tel: 81-45-471- 6166 Fax: 81-45-471-6122 France - Massy Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 China - Fuzhou Tel: 86-591-8750-3506 Fax: 86-591-8750-3521 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 Germany - Ismaning Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Atlanta Alpharetta, GA Tel: 770-640-0034 Fax: 770-640-0307 Boston Westford, MA Tel: 978-692-3848 Fax: 978-692-3821 Chicago Itasca, IL Tel: 630-285-0071 Fax: 630-285-0075 Dallas Addison, TX Tel: 972-818-7423 Fax: 972-818-2924 Detroit Farmington Hills, MI Tel: 248-538-2250 Fax: 248-538-2260 Kokomo Kokomo, IN Tel: 765-864-8360 Fax: 765-864-8387 China - Hong Kong SAR Tel: 852-2401-1200 Fax: 852-2401-3431 China - Shanghai Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 China - Shenyang Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 China - Shenzhen Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 China - Shunde Tel: 86-757-2839-5507 Fax: 86-757-2839-5571 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 Taiwan - Kaohsiung Tel: 886-7-536-4818 Fax: 886-7-536-4803 Taiwan - Taipei Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 England - Berkshire Tel: 44-118-921-5869 Fax: 44-118-921-5820 Taiwan - Hsinchu Tel: 886-3-572-9526 Fax: 886-3-572-6459 China - Qingdao Tel: 86-532-502-7355 Fax: 86-532-502-7205 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 San Jose Mountain View, CA Tel: 650-215-1444 Fax: 650-961-0286 Toronto Mississauga, Ontario, Canada Tel: 905-673-0699 Fax: 905-673-6509 10/20/04 DS00970A-page 18 © 2005 Microchip Technology Inc.