Beruflich Dokumente
Kultur Dokumente
Start
Yes
WDT Reset?
Arming Mode
No
Increment
Timer
Yes Yes
Yes Yes
No No No
EXAMPLE 1:
; macro to perform 1 cycle of PWM
do_pwm macro
movlw pwm_reload ; preload the reload value
decfsz pwm_counter,f ; decrement the counter value.
movf pwm_counter,w ; if the counter is not 0, load W with counter
movwf pwm_counter ; store w in the counter. this does an auto reload timer...
subwf pwm,W ; pwm - counter sets the borrow flag
rlf GPIO,f ; a left rotate places the borrow flag in GPIO
endm
This PWM algorithm uses 6 CPU cycles. This must be more bits of precision, the pwm_reload value could
performed at regular intervals to keep the output glitch be increased. To determine the PWM frequency, use
free. The value of pwm_reload is configured at com- Equation 1.
pile time. For Version 1, pwm_reload was configured
for 64. If a longer period PWM was required that had
EQUATION 1:
clock frequency
PWM frequency = ------------------------------------------------------------------------------------------------------------------------------------
( ( 6 + cycles between PWM updates ) ⋅ pwm_reload ⋅ 4 )
4MHz
PWM frequency = ----------------------------------------
( ( 6 + 6 ) ⋅ 64 ⋅ 4 )
FLYING Battery
This speed control was mounted in two different air-
craft for flight testing. M
1. A twin motored aircraft powered by two-4.8V Brake
Input
speed 400’s was flown first. This airplane has a
low voltage receiver that allowed the pilot to
retain control after the ESC stopped the motor
during a low battery condition. This airplane had
a very noticeable hum at low throttle settings as Low Voltage Cutout
both motors vibrated from Discontinuous mode
operation. Discontinuous mode is where the This is the most important feature to be added. The
current through the motor reaches 0 amp. This best way is to use some sort of comparator to com-
happens when the pulse width is much smaller pare the battery voltage to a fixed reference. Since the
than the pulse period so the current has time to motor must be disabled before the linear regulator
reach 0. On a brushed motor, this will cause starts to drop, the comparator can compare a divided
small pulsing in the motor armature. There are battery voltage to a stable reference. A good LDO reg-
no adverse affects from this operation but it is ulator requires ½ V to regulate, so the comparator and
noisy. The pilot thought the speed control flew the resistor divider should be configured to require the
well but noticed the lack of a propeller brake. battery to operate ¾ V higher than the LDO regulator
2. The second plane was a foam flying wing pow- output voltage.
ered by a single 6V speed 400. This aircraft did
RPM
RPM
RPM
RPM
Amps Torque
Amps
(torque) 0% 20%
20% 40% 60%
60% 80% 100%
100%
Watts
Fuel
Power
Shaft
(watts)
Power The chart shows a representation of an ideal gasoline
engine/propeller combination and how RPM and
power are related to torque. One side effect of these
responses is that an electric airplane will behave very
differently from a gasoline airplane. Airplane perfor-
0% 20%
20% 40% 60%
60% 80% 100%
100% mance is governed by available power. On full scale
Volts aircraft with constant speed propellers, the throttle sets
the desired engine power and the constant speed pro-
The actual numbers have been left off of the chart peller holds RPM's constant. The engine controller
because they depend on the exact motor and propeller regulates the torque so engine power is held at the
combination. The data will also change for a stationary desired setting. Therefore, it would be desirable to
or a moving propeller. This type of behavior makes match throttle output to a linear power response. If that
sense based upon our understanding of electric is not possible, a linear torque response would be the
motors. An electric motor’s RPMs are dependent on next best option. Linear RPM is the worst option.
the EMF of the armature. The torque of the motor is
The best solution is to add current/voltage feedback
dependent on the current through the armature. Unfor-
and regulate power to the motor. The next best solu-
tunately, this is totally different from a gasoline engine.
tion is to add current feedback and regulate torque to
When a pilot advances the throttle of a gasoline
the motor. The third best solution is to imitate it by add-
engine, they are adding fuel. The addition of fuel to a
ing a lookup table and adjusting the output response in
gasoline engine raises the engine torque. It has only a
a non-linear way to approximate a linear power curve.
secondary effect on RPM that is dependant on load.
Real aircraft are controlled by lookup tables developed
This means that for a given throttle setting, the engine
during flight testing. By adding a lookup table and
RPMs will change to match the available torque.
developing a programming tool, we can accommodate
aircraft with non-standard control requirements.
The hardware requirements for a programmable throt-
tle response is some form of EEPROM. A serial
EEPROM could be added to Version 1 but the physical
size of the ESC is starting to increase. A different
device with adequate internal EEPROM should be
chosen. The previous ESC used 64 steps of output to
provide a smooth response. If the input is divided into
64 steps, a memory of 64 bytes will be required. Less
memory could be used but then the output data would
be packed across multiple bytes, complicating the
code. Version 1 was constrained to 6 instructions
between PWM updates. If it takes more than six
instructions to retrieve a table value, the tables will
need to be cached in RAM. Therefore a part with at
least 64 bytes of additional RAM could be required.
Format Description
ff Supported Function Bits. This value is two bytes representing one hexadecimal byte.
Bit 0 = supports c and C
Bit 1 = supports B
Bit 2 = supports R
Bit 3 = supports h and H
xx.xx Version string. Anything goes as long as it is 2 characters, a period, and two more characters.
Mmddyyyy Two characters each for month and day followed by 4 characters for the year. Please use num-
bers.
hh This is the number of counts of throttle input that corresponds to a pulse of 1msec. For an ideal
radio system, this would be 0% throttle. It is assumed that 0 counts is less than 1 ms.
HH This is the number of counts of throttle input that corresponds to a pulse of 2 ms. For an ideal radio
system this would be 100% throttle. It is assumed that the maximum supported counts is greater
than 2 ms. The total number of counts supported is supplied by the ‘N’ command.
XX Number of points in the X axis of the lookup table.
YY Maximum size of any value in the lookup table.
Testing
Initial bench testing was performed without variable
rate PWM. At the 32 kHz rate, high throttle settings
caused the transistors and Schottky diode to get very
hot. Later testing with the variable rate PWM showed a
dramatic reduction in temperature, indicating
increased efficiency and less power loss. Variable rate
PWM is definitely a good way to go.
At low RPM settings, the high rate PWM provides very
smooth and quiet operation. The motor made no dis- Note: 18-Pin DIP is used for size reference only
cernible noise and turned smoothly at very low RPM’s. (Figures 7 and 8).
These low RPM’s would not fly an airplane, but other
applications may find this level of control desirable.
Flight testing with a reverse exponential curve proved TABLE 4: MEMORY USAGE
successful. The aircraft responded to throttle settings
in a much more realistic manner. Half throttle resulted EEPROM
Program File
in half power. Low throttle caused a powered descent. Data
Module Memory Registers
Full throttle remained unchanged. Memory
(words) (bytes)
(bytes)
Conclusion
Design 1 246 8 –
Microcontroller motor controls are ideal for many appli- Design 2 1366 25 107
cations, especially electric flight. These controls can
be made smaller and with more advanced features
than would otherwise be possible. PICmicro Microcon-
trollers are ideal candidates in these applications due
to their smaller size, ideal feature set, and simple
development tools.
DS00847A-page 14
APPENDIX A:
U4
LM2937IMP-5.0
Bat +
3 OUT IN 1 P1
COM
P2
MOTOR +
2
MOTOR -
P3
5,6,7,8
U3
R3
4
C4 0.1µF
10R
U1 IRF7456
1,2,3 5,6,7,8
5v+ 1 VDD VSS 8 U6
P5 R5
Gnd 2 7 4
P6 GP5/OSC1 GP0
Signal 3 GP4/OSC2 GP1 6 10R
P7 IRF7456 1,2,3
4 GP3/MCLR GP2 5
PIC12C508A
R4 10K
C3
SCHEMATIC - VERSION 1 (MINIMAL ESC)
10µF C2
0.1µF C1
1µF
BATT -
P4
C3 C2 C1
U5 Battery
APPENDIX B:
R4 1K
U4:B 3
R2 40K +5V
U4:A 7,8 4 +
+5V R8 IRF7307
2 5,6
U1 100
1 IRF7307 D1
20 Amp
J1 14 VDD R9 10K Schottky
1 4 RA5/MCLR/VPP Motor
P1 Diode
P2 2 17 RA0/AN0 RB0/INT 6
3 R3 18 RA1/AN1
P3 RB1/RX 7
1k 1 RA2/AN2 RB2/TX 8
3PHDR-1 C5 2 RA3/AN3 RB3/CCP 9 5,6,7,8
U2 5,6,7,8 -
3 RA4/TOCKI RB4/LVP 10
0.01µF IRF7456 IRF7456
RB5 11 R6 4 4
16 OSC1/RA6 U3
RB6 12 100
C4 R1 10K 15 OSC2/RA5 RB7 13 1,2,3 1,2,3
5 VSS R7
0.1µF
+5V 100
J2
PIC16F62X_SO 1 2
3 4
5 R5 10K
Y1 6
7 8
4MHz
C9 C10
27pF 27pF HDR_2MM_SMT
SCHEMATIC - VERSION 2 (MOTOR BRAKE/VOLTAGE CUTOUT/
PROGRAMMABLE THROTTLE RESPONSE/HIGHER RATE PWM)
AN847
DS00847A-page 15
AN847
NOTES:
• 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 knowl-
edge, 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.
05/16/02