Upload
nicoletabytax
View
220
Download
0
Embed Size (px)
Citation preview
7/28/2019 AVR492
1/26
AVR492: Brushless DC Motor Control usingAT90PWM3
Features BLDC Motor Basics PSC use Hardware Implementation Code Example
Introduction
This application note describes how to implement a brushless DC motor control in
sensor mode using AT90PWM3 AVR microcontroller.
The high performance of AVR core fitted with Power Stage Controller module of
AT90PWM3 enable the design of high speed brushless DC motor applications.
In this document, we give a short description of brushless DC motor theory of opera-
tion, we detail how to control brushless DC motor in sensor mode and also give the
hardware description of ATAVRMC100 reference design used in this application note.
Software implementation is also discussed with software control loop using PID filter.
This application note deals only with BLDC motor control application using Hall effect
position sensors to control commutation sequence.
AVR
Microcontrollers
Application Note
7518AAVR07/05
7/28/2019 AVR492
2/26
2 AVR 492 Application Note7518AAVR07/05
Theory of Operation Brushless DC motors are used in a growing number of motor applications as they havemany advantages:
1. They have no brushes so they required little or no maintenance.
2. They generate less acoustic and electrical noise than universal brushed DC
motors.
3. They can be use in hazardous operation environment (with flammable products).4. They have a good weight/size to power ratio...
Such types of motor have a little rotor inertia, the coils are attached to the stator. The
commutation is controlled by electronics. Commutation times are provided either by
position sensors or by coils Back Electromotive Force measuring.
In sensor mode, Brushless DC motor usually consists of three main parts. A Stator, a
Rotor and Hall Sensors.
Stator A basic three phases BLDC motor Stator has three coils. In many motors the number of
coils is replicated to have a smaller torque ripple.
Figure 1 shows the electrical schematic of the stator. It consists of three coils each
including three elements in series, an inductance, a resistance and one back electromo-
tive force.
Figure 1. Stator Electrical Configuration (Three phases, three coils)
Rotor The rotor in a BLDC motor consists of an even number of permanent magnets. The
number of magnetic poles in the rotor also affects the step size and torque ripple of themotor. More poles give smaller steps and less torque ripple. The permanent magnets go
from 1 to 5 pairs of poles. In certain cases it can goes up to 8 pairs of poles.(Figure 2).
L
bemf A
bemf B
bemf C
L,R
L,R L,R
http://-/?-http://-/?-7/28/2019 AVR492
3/26
3
AVR 492 Application Note
7518AAVR07/05
Figure 2. Three phases, three coil BLDC motor stator and rotor
The coils are stationary while the magnet is rotating. The rotor of the BLDC motor is
lighter than the rotor of a conventional universal DC motor where the coils are placed on
the rotor.
Hall Sensor For estimating the rotor position, three hall sensors are positioned. These hall sensors
are separated by 120 each. With these sensors, 6 different commutations are possible.
Phase commutation depends on hall sensor values.
Power supply to the coils change when hall sensor values change. With right synchro-
nized commutations, the torque remain nearly constant and high.
Figure 3. Hall Sensors signals for CW rotation
Phases Commutation To simplify the explanation of how to operate a three phases BLDC motor a typical
BLDC motor with only three coils is considered. As previously shown, phases commuta-
tion depends on the hall sensor values. When motor coils are correctly supplied, a
magnetic field is created and rotor moves. The most elementary commutation driving
method used for BLDC motors is an on-off scheme: a coil is either conducting or not
conducting. Only two windings are supplied at the same time the third winding is float-
ing. Connecting the coils to the power and neutral bus induces the current flow. This is
referred to as trapezoidal commutation or block commutation.
N S
coils A
coils C
coils B
Rotor
Stator
N
S
coils A
coils C
coils B
Rotor
Stator
N
S
1 pair of poles 2 pairs of poles
t
t
t
Hall_A
Hall_B
Hall_C
t
t
t
Coil_A
Coil_B
Coil_C
7/28/2019 AVR492
4/26
4 AVR 492 Application Note7518AAVR07/05
To command brushless DC motors, a power stage made of 3 half bridges is used. Fig-
ure 4 below shows 3 half bridges schematic.
Figure 4. Power Stage
Reading hall sensor value, indicate which switch should be closed.
For motors with multiple poles the electrical rotation does not correspond to a mechani-
cal rotation. A four pole BLDC motor uses four electrical rotation cycles to have one
mechanical rotation.
The strength of the magnetic field determines the force and speed of the motor. By vary-
ing the current flow through the coils the speed and torque of the motor can be adjusted.
The most common way to control the current flow is to control the average current flow
through the coils. PWM(Pulse Width Modulation) is used to adjust the average voltage
and thereby the average current, including the speed. The speed can be adjusted with ahigh frequency from 20 khz to 60 khz.
For a three phase, three coils BLDC motor, the rotating field is described in Figure 5.
Table 1. Switches commutation for CW rotation
Hall Sensors Value (Hall_CBA) Phase Switches
101 A-B SW1 ; SW4
001 A-C SW1 ; SW6
011 B-C SW3 ; SW6
010 B-A SW3 ; SW2110 C-A SW5 ; SW2
100 C-B SW1 ; SW4
CmdSW1
CmdSW2
CmdSW3
CmdSW4
CmdSW5
CmdSW6
VDC
-
+
+DC
C
B
A
0
http://-/?-http://-/?-7/28/2019 AVR492
5/26
5
AVR 492 Application Note
7518AAVR07/05
Figure 5. Commutation steps and rotating field
Commutation creates a rotating field. Step1 Phase A is connected to the positive DC
bus voltage by SW1 and Phase B is connected to ground by SW4, Phase C is unpow-
ered. Two flux vectors are generated by phase A (red arrow) and phase B (blue arrow)
the sum of the two vectors give the stator flux vector (green arrow). Then the rotor tries
to follow stator flux. As soon as the rotor reach a certain position when the hall sensors
state changes its value from 010 to 011 a new voltage pattern is selected and applied
to the BLDC motor. Then Phase B is unpowered and Phase C is connected to theground. It results in a new stator flux vector Step2.
By following the commutation schematic Figure 3 and Table 1, we obtain six differents
stator flux vectors corresponding to the six commutation steps. The six steps provide
one rotor revolution.
coil A
coil C
coil B
coil A
coil C
coil B
Step1 Step2
coil A
coil C
coil B
coil A
coil C
coil B
Step3 Step4
coil A
coil C
coil B
coil A
coil C
coil B
Step5 Step6
Hall_CBA
011
010
110
100
101
001
http://-/?-http://-/?-7/28/2019 AVR492
6/26
6 AVR 492 Application Note7518AAVR07/05
Starter KIT
ATAVRMC100
After this brief theoretical presentation of Brushless DC Motor Control, the practical
implementation will be introduced with the help of an example. The next part of this
application note will deal with the hardware and the software implementation based on
the starter kit ATAVRMC100 running with a microcontroller AT90PWM3.
Electrical schematics are available Figure 21, Figure 22, Figure 23 and Figure 24 at the
end of the document. They describe the reference design for the Starter KitATAVRMC100.
The software includes the control of the speed through a PID corrector. Such a corrector
is composed of three main coefficients : KP, KI, and KD.
KP is the proportionnal gain coefficient, KI is the integral gain coefficient and KD is the
derivative gain coefficient. The error between the desired speed and the real speed
(called error in the Figure 6) is multiplied by each gain. Then, the sum of the three ther-
mes give the command to apply to the motor to get the right speed (Figure 6).
Figure 6. PID diagram
The KP coefficient fixes the motor response time, the KI coefficient is used to cancel the
static error and the KD is used in particular for position regulation(refer to regulation loop
in software description for tuning the coefficients).
++
+
commanderror
PID corrector
desired_speed
real_speed
+-
BLDC Motor
+Power Stage
KI
td
dKD
KP
command t( ) KP e ro r t ( ) K I er r or t ( ) t( )d+ KD tdd
error t ( )+=
error t ( ) desired_sp ee d t( ) _sp ee d t( )real=
http://-/?-http://-/?-http://-/?-http://-/?-7/28/2019 AVR492
7/26
7
AVR 492 Application Note
7518AAVR07/05
Hardware
Description
As shown in Figure 7 the microcontroller contains 3 Power Stage Controller (PSC).
Each PSC can be seen as a Pulse Width Modulator with two output signals. To avoid
cross conduction a Dead Time control is integrated (see AT90PWM3 datasheet for
more information about PSC orFigure 9 below).
A fault input (Over_Current) is linked to PSCIN. This fault input enables the microcon-
troller to disable all PSC outputs.
Figure 7. Hardware implementation
Its possible to measure the current with two differential amplified channels with pro-
grammable 5, 10, 20 and 40 gain stage. The Shunt resistor has to be adjusted to the
amplifier conversion range.
The Over_Current signal results from an external comparator. The comparators refer-
ence can be adjusted by the internal DAC.The phase commutation has to be done according to hall sensors value. HallA, HallB
and HallC are connected to external interrupt sources or to the three internal compara-
tors. The comparators generate the same type of interrupts as the external interrupts.
Figure 8 shows how the microcontroller I/O ports are used in the starter kit.
AT90PWM3
Motor
Power Bridge
PSCOUT
PSCIN
AMP1+;AMP1-
ACMP0
Over_Current
Current
PSC00PSC10PSC20
PSC01PSC11PSC21
PH_A
PH_B
PH_C
HallAHallBHallC
ACMP1ACMP2
+
Shunt resistor
PSCij : Power Stage Controller i (i = 0,1,2) output j (j = 0,1)ACMPi : Analog Comparator Positive input (i = 0,1,2)AMPi+/- : Analog Differential Amplified channel Positive/Negative inputs (i = 0,1,2)
http://-/?-http://-/?-http://-/?-http://-/?-7/28/2019 AVR492
8/26
8 AVR 492 Application Note7518AAVR07/05
Figure 8. Microcontroller I/O Ports use (SO32 package)
VMOT and VMOT_Half are implemented but not used. They can be used to get the
value of the motor supply.
The outputs H_x and L_x are used to control the power bridge. As previously seen, they
depend on the Power Stage Control (PSC) which generate PWM signals. For such
application the recommended mode is the Center Aligned Mode (see Figure 9), the reg-
ister OCR0RA is used to adjust ADC synchronization for current measurement.
Figure 9. PSCn0 & PSCn1 Basic Waveforms in Center Aligned Mode
O p e r a t in g M o d e
P O R T B P IN P o r t F u n c t io n S E N S O RP B 0 / M I S O / P S C O U T 2 0 1 2 H _ C H _ CP B 1 / M O S I / P S C O U T 2 1 1 3 L _ C L _ CP B 2 / A D C 5 / I N T 1 2 0 V M O T V M O TP B 3 / A M P 0 - 2 7 E X T 1
P B 4 / A M P 0 + 2 8 E X T 2P B 5 / A D C 6 / I N T 2 3 0 E X T 5P B 6 / A D C 7 / P S C O U T 1 1 / I C P 1 B 3 1 L _ B L _ BP B 7 / A D C 4 / P S C O U T 0 1 / S C K 3 2 L _ A L _ A
P O R T CP C 0 / I N T 3 / P S C O U T 1 0 2 H _ B H _ BP C 1 / P S C I N 1 / O C 1 B 7 E X T 3P C 2 / T 0 / P S C O U T 2 2 1 0 E X T 4P C 3 / T 1 / P S C O U T 2 3 1 1 L IN _ N S L PP C 4 / A D C 8 / A M P 1 - 2 1 V _ S h u n t - V _ S h u n t -P C 5 / A D C 9 / A M P 1 + 2 2 V _ S h u n t+ V _ S h u n t+P C 6 / A D C 1 0 / A C M P 1 2 6 H a ll B / B E M F _ B H a l lBP C 7 / D 2 A 2 9 D A C _ O U T D A C _ O U T
P O R T DP D 0 / P S C O U T 0 0 / X C K / S S _ A 1 H _ A H _ AP D 1 / P S C I N 0 / C L K O 4 O v e r_ C u r re n t O v e r _ C u r re n tP D 2 / P S C I N 2 / O C 1 A / M I S O _ A 5 M IS O / E X T 1 0P D 3 / T X D / D A L I / O C 0 A / S S / M O S I
_ A6
M O S I / L I N T x D / T x D
/ E X T 7
P D 4 / A D C 1 / R X D / D A L I / I C P 1 A / S CK _ A 1 6 S C K / L IN R x D / R x D/ P O T / E X T 8P D 5 / A D C 2 / A C M P 2 1 7 H a ll C / B E M F _ C H a l lCP D 6 A D C 3 / A C M P M / I N T 0 1 8 V M O T _ H a l f V M O T _ H a l f P D 7 / A C M P 0 1 9 H a l lA / B E M F _ A H a l lA
P O R T EP E 0 / R E S E T / O C D 3 N R E S / E X T 9P E 1 / O C 0 B / X T A L 1 1 4 E X T 6P E 2 / A D C 0 / X T A L 2 1 5 L E D
D e p e n d o n t h e
c o m m u n i c at io n m o d e
D e p e n d o n t h e
c o m m u n i c at io n m o d e
D e p e n d o n t h e
c o m m u n i c at io n m o d e
D e p e n d o n t h e
c o m m u n i c at io n m o d e
OCRnRB
OCRnSBOCRnSA
0
PSCn0
PSCn1
PSC Cycle
On Time 0
On Time 1 On Time 1
http://-/?-http://-/?-7/28/2019 AVR492
9/26
9
AVR 492 Application Note
7518AAVR07/05
On Time 0 = 2 * OCRnSA * 1/Fclkpsc
On Time 1 = 2* (OCRnRB - OCRnSB + 1) * 1/Fclkpsc
PSC Cycle = 2 * (OCRnRB + 1) * 1/Fclkpsc
The dead time value between PSCn0 and PSCn1 is :
|OCRnSB - OCRnSA| * 1/Fclkpsc
The input clock of PSC is given by CLKPSC. Clock input from I/O clock or from PLL.
Two strategies can be employed for the PWM signals applied on the power stage. The
first consists in applying the PWM signals on the high side AND the low side of the
power bridge and the second in applying the PWM signals only on the high side of the
power bridge.
7/28/2019 AVR492
10/26
10 AVR 492 Application Note7518AAVR07/05
Software Description Atmel provides libraries to control Brushless DC motors. The first step is to configureand initialize the microcontroller.
Microcontroller Configuration
and Initialization
The function to be used is named mc_init_motor(). It calls hardware and software initial-
ization functions and initialize all motor parameters (motor direction, motor speed and
stop the motor).
Software Implentation Diagram After microcontroller configuration and initialization, the motor can be started. Only few
functions are needed to control the motor. All user functions are define in mc_lib.h:
void mc_motor_run(void)
Used to start the motor. The regulation loop function is launched to set the duty
cycle. Then the first phases commutation is executed.
Bool mc_motor_is_running(void)
Get the motor state. If TRUE the motor is running. Else if FALSE the motor is
stopped.
void mc_motor_stop(void)
Used to stop the motor.
void mc_set_motor_speed(U8 speed)
Set the user requested speed.
U8 mc_get_motor_speed(void)
Return the current user requested speed.
void mc_set_motor_direction(U8 direction)
Set the motor direction, CW or CCW.
U8 mc_get_motor_direction(void)
Return the current direction of rotation of the motor.
U8 mc_set_motor_measured_speed(U8 measured_speed)
Save the measured speed in the measured_speed variable.
U8 mc_get_motor_measured_speed(void)
Get the measured speed.
void mc_set_Close_Loop(void)
void mc_set_Open_Loop(void)
Set type of regulation Open Loop or Close Loop. See Figure 13 for more
information.
7/28/2019 AVR492
11/26
11
AVR 492 Application Note
7518AAVR07/05
Figure 10. AT90PWM3 Configuration
mc_init_motor()
mc_init_HW() mc_init_SW()
mc_init_port()
mc_init_pwm()
mc_init_IT()
mc_config-
estimation_speed()
mc_config_samplin
g_time()
Enable_Interrupt()
PSC2_Init()
PSC1_Init()
PSC0_Init()
+ motor direction initialization
+ motor speed initialization
+ Stop the motor
Timer1 configuration
Timer0 configuration
mc_init_comparator0()
mc_init_comparator1()
mc_init_comparator2()
mc_init_DAC()
mc_init_ADC()
mc_init_current_measure()
mc_set_Over_Current()
7/28/2019 AVR492
12/26
12 AVR 492 Application Note7518AAVR07/05
Figure 11. Software Implentation Diagram.
mc_
switch
_commutation()
m
c_
duty
_cycle()
Set_QxQy()
mc_
hall
_a()
mc_
hall
_b()
mc_
hall
_c()
H_
A
L_
A
H_
B
L_
B
H_
C
L_
C
HallA
HallB
HallC
main()
Software
Ha
rdware
Hardware
mc_set_motor_direction()
mc_motor_stop()
mc_motor_run()
HallA
HallB
HallC
mc_
regulation_
loop()
mc_set_motor_speed()
mc_set_Close_Loop()
mc_set_Open_Loop()
mc_
launch
_sampling_
period()
mc_
estimation_
speed()
ovfl
_timer()
Timer0
Timer1
TIMER0
_OVF
_vect
TIMER1
_COMPA
_vect
all250us
g_
tic
t_timer=8us
TCNT0
ovf_timer
mc_
measured
_speed
mc_
direction
mc
_cmd
_speed
mc_
run_
stop
duty
_cycle
mc_get_motor_direction()
mc_motor_is_runing()
mc_get_motor_direction()
mc_get_motor_speed()
mc_g
et_motor_speed()
mc_
get_duty
_cycle()
mc_set_motor_measured_speed()
mc_get_motor_measured_speed()
7/28/2019 AVR492
13/26
13
AVR 492 Application Note
7518AAVR07/05
Figure 11 shows four variables mc_run_stop, mc_direction, mc_cmd_speed and
mc_measured_speed. They are the main software variables which can be accessed by
user functions previously described.
The software can be seen as a black box named Motor Control (Figure 12) with inputs (
mc_run_stop, mc_direction, mc_cmd_speed, mc_measured_speed) and output (All
power bridge signals).
Figure 12. Main Software Variables.
Most of the functions are available in mc_drv.h. Only a few depends on the motor type.
Functions can be distributed in four main class : Hardware initialization
void mc_init_HW(void);
All hardware initialization are made in this function. We can found ports initialization,
interrupts initialization, timers and PSCs.
void mc_init_SW(void);
Used to initialized software. Enable all interrupts.
void mc_init_port(void);
Microcontroller I/O ports initialization with DDRx register initialization to choose if
the pin acts as an Output or an Input and PORTx to activate or not the pull-up on
Input.
void mc_init_pwm(void);
This function start the PLL and sets all PSC registers with their initial values.
void mc_init_IT(void);
Modifie this function to enable or disable types of interrupts.
mc_run_stop
mc_direction
mc_cmd_speed
Power Bridge Signals
mc_measured_speed
Motor Control H_A L_AH_B L_BH_C L_C
7/28/2019 AVR492
14/26
14 AVR 492 Application Note7518AAVR07/05
void PSC0_Init ( unsignedint dt0,
unsignedint ot0,
unsignedint dt1,
unsignedint ot1);
voidPSC1_Init (
unsigned intdt0,
unsigned int ot0,
unsigned int dt1,
unsigned int ot1);
void PSC2_Init (unsigned int dt0,
unsigned int ot0,
unsigned int dt1,
unsigned int ot1);
PSCx_Init allows the user to select the configuration of the Power Stage Control
(PSC) of the microcontroller.
Phases commutation functions
U8 mc_get_hall(void);
Get the Hall sensors value corresponding to the six commutations steps (HS_001,
HS_010, HS_011, HS_100, HS_101, HS_110).
_interruptvoid mc_hall_a(void);
_interruptvoid mc_hall_b(void);
_interruptvoid mc_hall_c(void);
These functions are executed when an external interrupt is detected (Hall sensor
edge). They allow phases commutation and speed calculation.
void mc_duty_cycle(U8 level);
This function set the PSC duty cycle according to PSC configuration.
void mc_switch_commutation(U8 position);
The phases commutation is done according to hall sensors value and only if the
user start the motor.
Sampling time configuration
void mc_config_sampling_period(void);
Initialize the timer1 to generate an interrupt all 250 us.
_interruptvoid launch_sampling_period(void);
When the 250us interrupt is activated, a flag is set. It can be use for sampling time
control.
7/28/2019 AVR492
15/26
15
AVR 492 Application Note
7518AAVR07/05
Estimation speed
void mc_config_time_estimation_speed(void);
Configuration of the timer0 to be use for the speed calculation.
void mc_estimation_speed(void);
This function calculate the motor speed with the hall sensor periode measure
principle.
_interruptvoid ovfl_timer(void);
When an overflow occurs on the timer0 a 8bits variable is increased to obtain a
16bits timer with a 8bits timer.
Current measure
_interruptvoid ADC_EOC(void);
As soon as the amplifier conversion is finished, the ADC_EOC function is executed
to set a flag usable for the user.
void mc_init_current_measure(void);
This function initializes the amplifier 1 for the current measure.
U8 mc_get_current(void);
Get the current value if the conversion is finished.
Bool mc_conversion_is_finished(void);
Indicate if the conversion is finished.
void mc_ack_EOC(void);
Reset the End Of Conversion flag.
Over Current detection
void mc_set_Over_Current(U8 Level);
Set the level of detection of an over current. The level is output by the DAC on
external comparator.
7/28/2019 AVR492
16/26
16 AVR 492 Application Note7518AAVR07/05
Regulation Loop Two functions select the regulation loop. Open loop or close loop. Figure 13 shows the
regu la t i on l oop imp lemen ted i n t he so f twa re .The two func t i ons a re
mc_set_Close_Loop() and mc_set_Open_Loop().
Figure 13. Regulation Loop
The close loop consists in a speed regulation loop with the PID corrector.
We will further explain how to adjust the coefficients KP and KI. The KD coefficient is
present in the regulation loop but not used.
As previously shown, the KP coefficient is used to regulate the motor response time. In
a first time set KI and KD to 0.Try different value of KP to get a right motor response
time.
If the response time is too slow increase KP gain.
If the response time is quick but unstable decrease KP gain.
Figure 14. Kp tuning
+-
mc_cmd_speed
mc_measured_speed
duty_cycle
PIDMotor
1 : mc_set_Close_Loop() 1 : mc_set_Close_Loop()
2 : mc_set_Open_Loop() 2 : mc_set_Open_Loop()
error
2
11
2
0
20
40
60
80
100
120
140
160
0
0,3
2
0,6
4
0,9
6
1,2
81,6
1,9
2
2,2
4
2,5
6
2,8
83,2
time (s)
SpeedMeasured Kp = 1
Kp = 2
Kp = 3
Kp = 6
Speed ConsignRequested Speed
7/28/2019 AVR492
17/26
17
AVR 492 Application Note
7518AAVR07/05
KI parameter is used to cancel the static error. Leave the KP coefficient unchanged and
set the KI parameter.
If the error is still different from zero increase KI gain.
If the error is cancelled but after oscillations decrease KI gain.
Figure 15. Ki tuning
In the Figure 14 and Figure 15 example, the right parameters are KP = 1, KI = 0.5 and
KD = 0.
To adjust KD parameter :
If the reponse is still low increase KD gain.
If the reponse is still unstable decrease KD gain.
One another significant point is the sampling time. It has to be chosen according to the
response time of the system. The sampling time must be at least twice smaller than the
response time of the system (according to the Shannon-Nyquist criterie).
Two functions are available for the sampling time configuration (explained previously).
They result in a global variable called g_tick which is set all 250us. With this variable its
possible to configure the sampling time.
CPU & Memory usage All measurements has been realized with Fosc = 8MHz. It also depends on the motor
type too (numbers of pair of poles). With a motor of 5 pair of poles, hall sensor frequencyis five times slower than motor rotation.
All results in Figure 16 are obtained with a three phases BLDC motor with five pairs of
poles and a maximum speed of 14000 rpm.
0
50
100
150
200
250
00,
40,8
1,2
1,6 2
2,4
2,8
3,2
3,6 4
time (s)
SpeedMeasured
Ki=1 ; Kp=1
Ki=2 ; Kp=1
Ki=0,5 ; Kp=1
Speed ConsignRequested Speed
http://-/?-http://-/?-7/28/2019 AVR492
18/26
18 AVR 492 Application Note7518AAVR07/05
Figure 16. Microcontroller utilization rate
In the worst case, the microcontroller utilization ratio is about 18% with a sampling time
of 80ms at 14000 rpm.
A first estimation can be made for a faster motor and with a current regulation added.
Activation time for mc_regulation_loop() grows up from 45us to 55us (we have to take
into account the conversion time of the ADC about 7us). For this estimation, a BLDC
motor with a current response time about 2-3ms, five pairs of poles and a maximum
speed of 50000 rpm is chosen.
The maximum speed of the motor is about 50000 rpm, with a rotor of 5 pairs of poles weobtain a Hall sensors frequency of (50000rpm/60)*5 = 4167 Hz. The function
mc_estimation_speed() is launched at each rising edge of hall sensor A, so every 240us
with an activation time of 31us.
For mc_switch_commutation() the three hall sensors have to be considered. The func-
tion is executed at each edges of the three hall sensors (rising edge and falling edge)
we have six interrupts in one Hall sensor period. It results in an activation period of
240/6us = 40us.
Finally, the sampling time of the regulation loop must to be at least twice smaller than
the current reponse time of the motor (about 1ms).
All results are summarized Figure 17.
Figure 17. Microcontroller utilization rate estimated
In such case the utilization ratio of the microcontroller is about 61%.
All ratio measurement have been made with the same software. No communicationmode are used (no UART, no LIN...).
In these conditions, the microcontroller memory usage is :
3175 bytes of CODE memory (Flash occupation = 38.7% ).
285 bytes of DATA memory (SRAM occupation = 55.7%).
Function Parameters activation time activation period Ratio uc %
ovfl_timer() all case 2us 2,05ms 0,1
Speed = 14000 rpm 857,14 us 3,62
Speed = 2800 rpm 4,29 ms 0,72
Speed = 14000 rpm 142,86 us 11,89
Speed = 2800 rpm 714 us 2,38
Open Loop 4,5 us 80 ms 0,0056
Close Loop 45 us 80 ms 0,056mc_regulation_loop()
mc_estimation_speed() 31 us
mc_switch_commutation() 17 us
Function Parameters activation time activation period Ratio uc %
ovfl_timer() all case 2us 2,05 ms 0,1
1 ms
40 us
240 us
5,5
12,91
42,5
mc_regulation_loop()
mc_estimation_speed() 31 us
mc_switch_commutation() 17 us
Speed = 50000 rpm
Speed = 50000 rpm
Close Loop 55 us
7/28/2019 AVR492
19/26
19
AVR 492 Application Note
7518AAVR07/05
ATAVRMC100
Configuration and
Use
Figure 18 shows us the complet schematics of the various operating mode of the starter
kit ATAVRMC100.
Figure 18. Microcontroller I/O Ports use and communication modes
Operating mode Two differents operating modes are available, set jumpers JP1, JP2 and JP3 according
to Figure 19 to select between both modes. In this application, only Sensor mode is
used. Refer to the ATAVRMC100 User Guide for complete description of hardware.
Operating Mode
PORTB PIN Port Function SENSOR LIN PC Link Switchs/LEDs Debug Wire ISP
PB0/MISO/PSCOUT20 12 H_C H_C H_C H_C H_C H_C H_C
PB1/MOSI/PSCOUT21 13 L_C L_C L_C L_C L_C L_C L_C
PB2/ADC5/INT1 20 VMOT VMOT VMOT VMOT VMOT VMOT VMOT
PB3/AMP0- 27 EXT1 EXT1 EXT1 EXT1 EXT1 EXT1PB4/AMP0+ 28 EXT2 EXT2 EXT2 EXT2 EXT2 EXT2 PB5/ADC6/INT2 30 EXT5 EXT5 EXT5 EXT5 EXT5 EXT5 PB6/ADC7/PSCOUT11/ICP1B 31 L_B L_B L_B L_B L_B L_B L_B
PB7/ADC4/PSCOUT01/SCK 32 L_A L_A L_A L_A L_A L_A L_A
PORTC
PC0/INT3/PSCOUT10 2 H_B H_B H_B H_B H_B H_B H_B
PC1/PSCIN1/OC1B 7 EXT3 EXT3 EXT3 EXT3 EXT3 EXT3 PC2/T0/PSCOUT22 10 EXT4 EXT4 EXT4 EXT4 EXT4 EXT4 PC3/T1/PSCOUT23 11 LIN_NSLP LIN_NSLP LIN_NSLP LIN_NSLP LIN_NSLP LIN_NSLP
PC4/ADC8/AMP1- 21 V_Shunt- V_Shunt- V_Shunt- V_Shunt- V_Shunt- V_Shunt- V_Shunt-PC5/ADC9/AMP1+ 22 V_Shunt+ V_Shunt+ V_Shunt+ V_Shunt+ V_Shunt+ V_Shunt+ V_Shunt+
PC6/ADC10/ACMP1 26 HallB / BEMF_B HallB
PC7/D2A 29 DAC_OUT DAC_OUT DAC_OUT DAC_OUT DAC_OUT DAC_OUT DAC_OUT
PORTD
PD0/PSCOUT00/XCK/SS_A 1 H_A H_A H_A H_A H_A H_A H_A
PD1/PSCIN0/CLKO 4 Over_Current Over_Current Over_Current Over_Current Over_Current Over_Current Over_Current
PD2/PSCIN2/OC1A/MISO_A 5 MISO / EXT10 EXT10 EXT10 EXT10 EXT10 MISO
PD3/TXD/DALI/OC0A/SS/MOSI
_A6
MOSI / LIN TxD / TxD
/ EXT7LIN TxD TxD POT EXT7 MOSI
PD4/ADC1/RXD/DALI/ICP1A/SC
K_A16
SCK / LIN RxD / RxD
/ POT / EXT8LIN RxD RxD EXT8 EXT8 SCK
PD5/ADC2/ACMP2 17 HallC / BEMF_C HallC
PD6ADC3/ACMPM/INT0 18 VMOT_Half VMOT_Half VMOT_Half VMOT_Half VMOT_Half VMOT_Half VMOT_Half
PD7/ACMP0 19 HallA / BEMF_A HallA
PORTE
PE0/RESET/OCD 3 NRES / EXT9 EXT9 EXT9 EXT9 NRES NRES
PE1/OC0B/XTAL1 14 EXT6 EXT6 EXT6 EXT6 EXT6 EXT6
PE2/ADC0/XTAL2 15 LED LED LED LED LED LED
Depend on the
communication mode
Depend on the
communication mode
Depend on the
communication mode
Depend on the
communication mode
Depend on the operating mode
Depend on the operating mode
Depend on the operating mode
Communication Mode
STK500 JTAGICE mkII
http://-/?-http://-/?-http://-/?-http://-/?-7/28/2019 AVR492
20/26
20 AVR 492 Application Note7518AAVR07/05
Figure 19. Sensor mode selection
Figure 19 shows the default jumpers setting to use the software associated with this
application note.
The software delivered with the ATAVRMC100 board allows two operating modes :
No external component, the motor start with a speed of 100%.
One external potentiometer use to adjust the speed of the motor.
Figure 20. Potentiometer connection.
6
4
2
5
3
1
79 10
8
10K
10KP
R
J4: IO-COM
GND
VCC5V
ADC5
http://-/?-http://-/?-7/28/2019 AVR492
21/26
21
AVR 492 Application Note
7518AAVR07/05
Conclusion This application note provides a software and hardware solution for sensor brushlessDC motors applications. All source code is available on the Atmel web site.
The software library provides functions to start and control the speed of any sensor
three phases brushless DC motors.
The hardware is based on the minimal design with minimal external components
required for control sensor brushless DC motors.
The AT90PWM3 CPU and memory usage allow a developer to expand his horizons with
new functionalities.
7/28/2019 AVR492
22/26
22 AVR 492 Application Note7518AAVR07/05
Figure 21. Schematic page 1/4
5 5
4 4
3 3
2 2
1 1
D
D
C
C
B
B
A
A
PH_
C
BEMF_
C
PH_
B
BEMF_
B
BEMF_
A
PH_
A
PH_
A
PH_
B
PH_
C
BEMF_
C
BEMF_
B
BEMF_
A
Title
Size
D
ocumentNumber
Rev
Date:
Sheet
of
1.6
ATAVRMC1(ZCDDetecti
on)
4
4
Title
Size
D
ocumentNumber
Rev
Date:
Sheet
of
1.6
ATAVRMC1(ZCDDetecti
on)
4
4
Title
Size
D
ocumentNumber
Rev
Date:
Sheet
of
1.6
ATAVRMC1(ZCDDetecti
on)
4
4
A4
Drawn
By:
G
ALLAIN
11
Apr
il
2005
R37
15K
R37
15K
C31
470pF(NotMounted)
C31
470pF(NotMounted)
R4422K
R4422K
C28
100pF
C28
100pF
R33
15K
R33
15K
R3922K
R3922K
C30
100pF
C30
100pF
R35
22K
R35
22K
R38
100K
R38
100K
TP13
BEMF_
ATP13
BEMF_
A
R34
100K
R34
100K
R4022K
R4022K
C29
470pf(NotMounted)
C29
470pf(NotMounted)
C33
470pF(NotMounted)
C33
470pF(NotMounted)
R42
15K
R42
15K
R3622K
R3622K
R4122K
R4122K
C32
100pF
C32
100pF
TP12
BEMF_
BTP12
BEMF_
BTP11
BEMF_
CTP11
BEMF_
C
R43
100K
R43
100K
7/28/2019 AVR492
23/26
23
AVR 492 Application Note
7518AAVR07/05
Figure 22. Schematic page 2/4
5 5
4 4
3 3
2 2
1 1
D
D
C
C
B
B
A
A
VMOT
LIN
EXT8/SCK/LIN_
RxD/RxD/POT
LIN_
NSLP
EXT7/MOSI/LIN_
TxD/TxD
LIN_
NWAKE
VMOT_
Half
VBUS
VBUS_
D
VBUS_
D
VC
C5V
VBUS
VBUS_
D
VBUS_
D
VMOT
VMOT_
Half
EXT8/SCK/LIN_
RxD/RxD/POT
LIN_
NSLP
LIN_
NWAKE
EXT7/MOSI/LIN_
TxD/TxD
Title
Size
DocumentNumber
Rev
Date:
Sheet
of
1.6
ATAVRMC1(POWER+LIN)
3
4
Title
Size
DocumentNumber
Rev
Date:
Sheet
of
1.6
ATAVRMC1(POWER+LIN)
3
4
Title
Size
DocumentNumber
Rev
Date:
Sheet
of
1.6
ATAVRMC1(POWER+LIN)
3
4
POWER
LIN
V
measurement
A4
Drawn
By:
G
ALLAIN
11
Apr
il
2005
C21
10nF
C21
10nF
C23
10uF
C23
10uF
T
P10
G
ND
T
P10
G
ND
R29
10K
R29
10K
R28
100K
R28
100K
1 2 3
J1
LINConnector
J1
LINConnector
VIN
1
GND3
VOUT
2
U6
MC78M05CDT
U6
MC78M05CDT
D5
LL4001
D5
LL4001
C20
100nF
C20
100nF
C24
2.2nF
C24
2.2nF
C18
100nF
C18
100nF
R30
33
R30
33
R32
22K
R32
22K
R27
15K
R27
15K
D6LED_
Green
D6LED_
Green
R26
4.7K
R26
4.7K
INH
8
NWAKE
3
RxD
1
GND
5
TxD
4
LIN
6
BAT
7
NSLP
2
U7
ATA6661
U7
ATA6661
C25
100nF
C25
100nF
C27
100nF
C27
100nF
C19
47uF
C19
47uF
R31
22K
R31
22K
C22
100nF
C22
100nF
C26
220pF
C26
220pF
R2510
R2510
7/28/2019 AVR492
24/26
24 AVR 492 Application Note7518AAVR07/05
Figure 23. Schematic page 3/4
5 5
4 4
3 3
2 2
1 1
D
D
C
C
B
B
A
A
H_
A
NRES/EXT9
Over_Curre
nt
MISO/EXT1
0
EXT7/MOSI/LIN_
TxD/TxD
EXT3
EXT4
LIN_
NSLP
H_
C
L_
C
EXT8/SCK/LIN_
RxD/RxD/POT
L_
AL_
BDAC_
OUT
EXT2
EXT1
AGND
V_
Shunt+
V_
Shunt-
EXT6
HallC
M
ISO/EXT10
E
XT8/SCK/LIN_
RxD/RxD/POT
EXT7/MOSI/LIN_
TxD/TxD
EXT2
EXT2
EXT6
EXT3
EXT5
EXT7/MOSI/LIN_
TxD/TxD
BEMF_C
HallA
BEMF_A
VMOT_
Half
VMOT
EXT5
EXT8/SCK/LIN_
RxD/R
xD/POT
N
RES/EXT9
EXT1
HallB
BEMF_B
H_AH_BH_CV_S
hunt+
VMO
T_
Half
L_
AL_
BL_
CV_
Shunt-
Over_Current
H_
B
VCC5V
VCC5V
VCC5V
VCC5V
VCC5V
VCC5V
H_
C
H_
A
H_
B
NRES/EXT9
Over_Current
MISO/EXT10
EXT7/MOSI/LIN_
TxD/TxD
EXT3
EXT4
LIN_
NSLP
L_
CEXT6
EXT8/SCK/LIN_
RxD/RxD/POT
MISO/EXT10
EXT8/SCK/LIN_
RxD/RxD/POT
NRES/EXT9
EXT7/MOSI/LIN_
TxD/TxD
EXT3
EXT4
EXT7/MOSI/LIN_
TxD/TxD
EXT2
EXT4
EXT6
EXT8/SCK/LIN_
RxD/RxD/POT
VMOT_
Half
VMOT
V_
Shunt-
V_
Shunt+
EXT1
EXT2
DAC_
OUT
L_
BL_
A
HallC
BEMF_
C
HallA
BEMF_
A
HallB
BEMF_
B
EXT1
EXT5
H_
A
H_
B
H_
C
V_
Shunt+
VMOT_
Half
L
_A
L
_C
L
_B
V
_Shunt-
O
ver_Current
Title
Size
Do
cumentNumber
Rev
Date:
Sheet
o
f
1.6
ATA
VRMC1(MicroController)
1
4
Title
Size
Do
cumentNumber
Rev
Date:
Sheet
o
f
1.6
ATA
VRMC1(MicroController)
1
4
Title
Size
Do
cumentNumber
Rev
Date:
Sheet
o
f
1.6
ATA
VRMC1(MicroController)
1
4
A4
Drawn
By:
G
ALLAIN
11
Apr
il
2005
PD0/PSCOUT00/XCK/SS
_A
1
PC0/INT3/PSCOUT10
2
PE0/RESET/OCD
3
PD1/PSCIN0/CLKO
4
PD2/PSCIN2/OC1A/MISO
_A
5
PD3/TXD/DALI/OC0/SS/MISO
_A
6
PC1/PSCIN1/OC1B
7
VCC
8
GND
9
PC2/T0/PSCOUT22
10
PC3/T1/PSCOUT23
11
PB0/MISO/PSCOUT20
12
PB1/MOSI/PSCOUT21
13
PE1/OCB0/XTAL1
14
PE2/ADC0/XTAL2
15
PD4/ADC1/RXD/DALI/ICP1A/SCK_A
16
PD5/ADC2/ACMP2
17
PD6/ADC3/ACMPM/INT0
18
PD7/ACMP0
19
PB2/ADC5/INT1
20
PC4/ADC8/AMP1M
21
PC5/ADC9/AMP1P
22
AVCC
23
AGND
24
AREF
25
PC6/ADC10/ACMP1
26
PB3/AMP0M
27
PB4/AMP0P
28
PC7/D2A
29
PB5/ADC6/INT2
30
PB6/ADC7/PSCOUT11/ICP1B
31
PB7/ADC4/PSCOUT01/SCK
32
U1
AT90PWM3
U1
AT90PWM3
R110
R110
MISO
1
VCC
2
SCK
3
MOSI
4
RST
5
GND
6
J2
JTAGISP
J2
JTAGISP
C1
100nF
C1
100nF
R45
1K
R45
1K
R46
1K
R46
1K
R471K
R471K
D1
LED_
Green
D1
LED_
Green
R48
10
R48
10
R24.7K
R24.7K
C4
1uF
C4
1uF
R3
100K
R3
100K
C2
100nF
C2
100nF C
3
100nF
C3
100nF
EXT1
1
EXT2
2
EXT3
3
EXT4
4
EXT5
5
EXT6
6
EXT7
7
GND
9
EXT8
8
VCC
10
J4
CON2x5
PORT_
COM
J4
CON2x5
PORT_
COM
1 2 3
JP1
Sel_Sensor_Sensorless_
AJP1
Sel_Sensor_Sensorless_
A
1 2 3
JP3
Sel_Sensor_Sensorless_
CJP3
Sel_Sensor_Sensorless_
C
1 2 3
JP2
Sel_Sensor_Sensorless_
BJP2
Sel_Sensor_Sensorless_
B
H_
A
1
L_
A
2
H_
B
3
L_
B
4
H_
C
5
L_
C
6
V+
7
Vmot
9
V-
8
OCur
10
J3
STK500_
CON
J3
STK500_
CON
7/28/2019 AVR492
25/26
25
AVR 492 Application Note
7518AAVR07/05
Figure 24. Schematic page 4/4
5 5
4 4
3 3
2 2
1 1
D
D
C
C
B
B
A
A
V_
Shunt-
HS_
C
HS_
B
HS_
A
HallC
HallB
HallA
PH_
C
PH_
B
PH_
A
V_
Shunt+
L_
CH_
B
L_
BH_
A
L_
AH_
C
Over_Current
VBU
S_
D
VBUS_
D
VBUS_
D
VBUS_
D
VCC5V
VCC5V
VCC5V
VBUS_
D
VIR2101
VIR2101
VIR2101
VIR2101
H_
C
L_
CH_
B
L_
BH_
A
L_
A
PH_
C
PH_
B
PH_
A
V_
Shunt+
V_
Shunt-
HallC
HallB
HallA
PH_
A
PH_
B
PH_
C
Over_Current
DAC_
OUT
Title
Size
DocumentNumber
Rev
Date:
Sheet
of
1.6
2
4
Title
Size
DocumentNumber
Rev
Date:
Sheet
of
1.6
2
4
Title
Size
DocumentNumber
Rev
Date:
Sheet
of
1.6
2
4
ATA
VRMC1(POWERBRIDG
E)
A4
DrawnB
y:
G
ALLAIN
11
Apr
il
2005
TP1
PH_
C
TP1
PH_
C
R12
100
R12
100
C17
100nF
C17
100nF
Q4SUD35N05-26L
Q4SUD35N05-26L
D2BAS21
D2BAS21
R13
100
R13
100
R21
10K
R21
10K
12345678
J5
BLDCCon
J5
BLDCCon
R4
10K
R4
10K
R19
22
R19
22
C7 1
00nF
C7 1
00nF
D3BAS21
D3BAS21
C6
100nF
C6
100nF
C5
100nF
C5
100nF
TP3 HallBTP3 HallB
R22
10K
R22
10K
C12
100nF
C12
100nF
C13
1nF
C13
1nF
TP7
V_
Shunt-
TP7
V_
Shunt-
R18
R_
Shunt
R18
R_
Shunt
R9
10K
R9
10K
D7
SMBJ18(notmounted)
D7
SMBJ18(notmounted)
TP6V_
Shunt+
TP6V_
Shunt+
TP9
PH_
A
TP9
PH_
A
R5 2
2R5 2
2
R84.7K R84.7K
R174.7K
R174.7K
Q1SUD35N05-26L
Q1SUD35N05-26L
Q5SUD35N05-26L
Q5SUD35N05-26L
TP14
Cur_Dtc
TP14
Cur_DtcC111nF C111nF
TP2 HallCTP2 HallC
R74.7K R74.7K
VCC
1
HIN
2
LIN
3
COM
4
LO
5
VS
6
HO
7
VB
8
U2
IR2101S
U2
IR2101S
VCC
1
HIN
2
LIN
3
COM
4
LO
5
VS
6
HO
7
VB
8
U4
IR2101S
U4
IR2101S
Q2SUD35N05-26L
Q2SUD35N05-26L
C101nF C101nF
R2015K
R2015K
TP8
Over_Cur
TP8
Over_Cur
R16
10K
R16
10K
TP5
PH_
B
TP5
PH_
B
R64.7K R64.7K
C14
100nF
C14
100nF
Q3SUD35N05-26L
Q3SUD35N05-26L
C91nF C91nF
R23
22
R23
22
Q6SUD35N05-26L
Q6SUD35N05-26L
VCC
1
HIN
2
LIN
3
COM
4
LO
5
VS
6
HO
7
VB
8
U3
IR2101S
U3
IR2101S
C15
100nF
C15
100nF
R14
10K
R14
10K
C16
10nF
C16
10nF
43
1
5 2
+ -
U5
LMV7219M5
+ -
U5
LMV7219M5
C8
100nF
C8
100nF
TP4HallA
TP4HallA
R10
22
R10
22
R24
22
R24
22
R49
0R49
0
R11
100
R11
100
D4BAS21
D4BAS21R
15
22
R15
22
7/28/2019 AVR492
26/26
Printed on recycled paper.
Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise,to anyintellectu-
alproperty right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN ATMELS TERMS AND CONDI-TIONS OF
SALE LOCATED ON ATMELS WEB SITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORYWAR-
RANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICU-
LARPURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL
OR INCIDEN-TAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMA-
TION) ARISING OUTOF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-
AGES.Atme l makes norepresenta tionsor warranties with respec t to the accuracy or comple teness of the contents of this document and reserves the right to make
changes to specificationsand product descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein.
Unless specifically provided otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmels products are not intended,
authorized, or warranted for useas components in applications intended to support or sustainlife.
Atmel Corporation 2005 . All rights reserved.Atmel, logo and combinations thereof, are registered trademarks, and Everywhere You AreSM
are the trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others.
Atmel Corporation Atmel Operations
2325 Orchard ParkwaySan Jose, CA 95131, USA
Tel: 1(408) 441-0311
Fax: 1(408) 487-2600
Regional Headquarters
Europe
Atmel Sar l
Route des Arsenaux 41
Case Postale 80
CH-1705 Fribourg
Switzerland
Tel: (41) 26-426-5555Fax: (41) 26-426-5500
Asia
Room 1219
Chinachem Golden Plaza
77 Mody Road Tsimshatsui
East Kowloon
Hong Kong
Tel: (852) 2721-9778
Fax: (852) 2722-1369
Japan
9F, Tonetsu Shinkawa Bldg.
1-24-8 Shinkawa
Chuo-ku, Tokyo 104-0033
Japan
Tel: (81) 3-3523-3551
Fax: (81) 3-3523-7581
Memory2325 Orchard Parkway
San Jose, CA 95131, USA
Tel: 1(408) 441-0311
Fax: 1(408) 436-4314
Microcontrollers
2325 Orchard Parkway
San Jose, CA 95131, USA
Tel: 1(408) 441-0311
Fax: 1(408) 436-4314
La Chantrerie
BP 7060244306 Nantes Cedex 3, France
Tel: (33) 2-40-18-18-18
Fax: (33) 2-40-18-19-60
ASIC/ASSP/Smart Cards
Zone Industrielle
13106 Rousset Cedex, France
Tel: (33) 4-42-53-60-00
Fax: (33) 4-42-53-60-01
1150 East Cheyenne Mtn. Blvd.
Colorado Springs, CO 80906, USA
Tel: 1(719) 576-3300
Fax: 1(719) 540-1759
Scottish Enterprise Technology Park
Maxwell Building
East Kilbride G75 0QR, Scotland
Tel: (44) 1355-803-000
Fax: (44) 1355-242-743
RF/AutomotiveTheresienstrasse 2
Postfach 3535
74025 Heilbronn, Germany
Tel: (49) 71-31-67-0
Fax: (49) 71-31-67-2340
1150 East Cheyenne Mtn. Blvd.
Colorado Springs, CO 80906, USA
Tel: 1(719) 576-3300
Fax: 1(719) 540-1759
Biometrics/Imaging/Hi-Rel MPU/
High Speed Converters/RF DatacomAvenue de Rochepleine
BP 123
38521 Saint-Egreve Cedex, France
Tel: (33) 4-76-58-30-00
Fax: (33) 4-76-58-34-80
Literature Requests
www.atmel.com/literature