11-Bit Resolution Analog-to-Digital (A/D) Converter
7 Single-Ended (SE) Analog Inputs
4 Simultaneously Sampled Analog Inputs
Expansion with 4 Multiplexed Inputs
3.2 s Conversion Time/Channel
0 V–5 V Analog Input Range
Internal 2.5 V Reference
PWM Synchronized Sampling Capability
12-Bit PWM Timer Block
Three-Phase Center-Based PWM
1.5 kHz–25 kHz PWM Switching Frequency Range
Programmable Deadtime
Programmable Pulse Deletion
PWM Synchronized Output
External PWM Shutdown
Vector Transformation Block
12-Bit Vector Transformations
Forward and Reverse Clarke Transformations
Forward and Reverse Park Rotations
2.9 s Transformation Time
Programmable Digital I/O Port
6-Bit Configurable Digital I/O
Change of State Interrupt Support
DSP & Microcontroller Interface
12 Bit Memory Mapped Registers
Twos Complement Data Format
6.25 MHz to 25 MHz Operating Clock Range
68-Pin PLCC Package
Single 5 V DC Power Supply
Industrial Temperature Range
GENERAL DESCRIPTION
The ADMC201 is a motion coprocessor that can be used with
either microcontrollers or digital signal processors (DSP). It
provides the functionality that is required to implement a digital
control system. In a typical application, the DSP or microcontroller performs the control algorithms (position, speed,
torque and flux loops) and the ADMC201 provides the necessary motor control functions: analog current data acquisition,
vector transformation, digital inputs/outputs, and PWM drive
signals.
PRODUCT HIGHLIGHTS
Simultaneous Sampling of Four Inputs
A four channel sample and hold amplifier allows three-phase
motor currents to be sampled simultaneously, reducing errors
from phase coherency. Sample and hold acquisition time is
1.6 µs and conversion time per channel is 3.2 µs (using a 12.5 MHz
system clock).
REV. B
Information furnished by Analog Devices is believed to be accurate and
reliable. However, no responsibility is assumed by Analog Devices for its
use, nor for any infringements of patents or other rights of third parties
which may result from its use. No license is granted by implication or
otherwise under any patent or patent rights of Analog Devices.
FUNCTIONAL BLOCK DIAGRAM
RESET
WR
A0–3
RD
CS
IRQ
CLK
REFOUT
REFIN
CONVST
AUX
AUX0
AUX1
AUX2
AUX3
PWMSYNC
AP
BP
CP
STOP
EMBEDDED
CONTROL
SEQUENCER
INTERNAL
REFERENCE
U
V
W
A
B
C
11-BIT
A/D
CONVERTER
MULTIPLEXER
EXPANSION
BLOCK
12-BIT
PWM TIMER
BLOCK
D0–D11
DATABUS
CONTROL BUS
CONTROL
REGISTERS
VECTOR
TRANSFORMATION
BLOCK
PROG.
DIGITAL
I/O
PORT
PIO 0–5
Flexible Analog Channel Sequencing
The ADMC201 supports acquisition of 2, 3, or 4 channels per
group. Converted channel results are stored in registers and
the data can be read in any order. The sampling and conversion
time for two channels is 8 µs, three channels is 11.2 µs, and four
channels is 14.4 µs (using a 12.5 MHz system clock).
Embedded Control Sequencer
The embedded control sequencer off-loads the DSP or microprocessor, reducing the instructions required to read analog
input channels, control PWM timers and perform vector transformations. This frees the host processor for performing control
algorithms.
Fast DSP/Microprocessor Interface
The high speed digital interface allows direct connection to 16-bit
digital signal processors and microprocessors. The ADMC201
has 12 bit memory mapped registers with twos complement
data format and can be mapped directly into the data memory
map of a DSP. This allows for a single instruction read and write
interface.
Integration
The ADMC201 integrates a four channel simultaneous sampling
analog-to-digital converter, four channel analog multiplexer,
analog reference, vector transformation, six digital inputs/outputs,
and three-phase PWM timers into a 68-pin PLCC. Integration
reduces cost, board space, power consumption, and design and
test time.
All WRITES to the ADMC201 must occur within 1 System Clock Cycle (0 wait states).
clkCLK Period40160ns
per
clkCLK Pulsewidth, High20ns
pwh
clkCLK Pulsewidth, Low20ns
pwl
csb_wrbCS Low before Falling Edge of WR0ns
su
addr_wrbADDR Valid before Falling Edge of WR0ns
su
data_wrbDATA Valid before Rising Edge of WR13ns
su
wrb_dataDATA Hold after Rising Edge of WR4.5ns
hd
wrb_addrADDR Hold after Rising Edge of WR4.5ns
hd
wrb_csbCS Hold after Rising Edge of WR4.5ns
hd
1
wrb
pwl
1
wrb
pwh
wrb_clk_h
hd
wrb_clk_h
su
wrb_clk_l
su
clk_wrb_l
hd
csb_rdbCS Low before Falling Edge of RD0ns
su
addr_rdbADDR Valid before Falling Edge of RD0ns
su
rdb_addrADDR Hold after Rising Edge of RD0ns
hd
rdb_csbCS Hold after Rising Edge of RD0ns
hd
rdbRD Pulsewidth, Low20ns
pwl
rdbRD Pulsewidth, High20ns
pwh
rdb_clk_hRD Low before Rising Edge of CLK7.5ns
su
rdb_clk_hRD Low after Rising Edge of CLK7.5ns
hd
resetbRESET Pulsewidth, Low2 × t
pwl
1
1
1
1
9
WR Pulsewidth, Low20ns
WR Pulsewidth, High20ns
WR Low after Rising Edge of CLK7ns
WR High before Rising Edge of CLK7ns
WR High before Falling Edge of CLK10ns
WR High after Falling Edge of CLK10ns
clkns
per
NumberSymbolSwitching CharacteristicsMinMaxUnits
25t
26t
27t
28t
RESET
rdb_dataDATA Valid after Falling Edge of RD23ns
dly
rdb_dataDATA Hold after Rising Edge of RD0ns
hd
_pioDigital I/O Pulsewidth, High2 × t
pwh
_pioDigital I/O Pulsewidth, Low2 × t
pwl
CLK
1
2
3
CLK
CS
Figure 1. Clock Input Timing
A0–A3
CLK
24
WR
DATA
Figure 2. Reset Input Timing
12
NOTE:
ALL WRITES TO THE ADMC201 MUST OCCUR WITHIN
ONE SYSTEM CLOCK CYCLE
clkns
per
clkns
per
13
15
9
8
11
10
4
6
5
7
i.e., 0 WAIT STATES
14
Figure 3. Write Cycle Timing Diagram
REV. B
–3–
Page 4
ADMC201
WARNING!
ESD SENSITIVE DEVICE
CLK
CS
A0–A3
RD
DATA
23
25
16
17
22
20
26
18
21
19
Figure 4. Read Cycle Timing Diagram
ABSOLUTE MAXIMUM RATINGS*
ORDERING GUIDE
Supply Voltage (VDD) . . . . . . . . . . . . . . . . . . –0.3 V to +7.0 V
Digital Input Voltage . . . . . . . . . . . . . . . . . . . . . –0.3 V to V
Analog Input Voltage . . . . . . . . . . . . . . . . . . . . . –0.3 V to V
Analog Reference Input Voltage . . . . . . . . . . . . –0.3 V to V
Digital Output Voltage Swing . . . . . . . . . . . . . . –0.3 V to V
Analog Reference Output Swing . . . . . . . . . . . . –0.3 V to V
Lead Temperature (Soldering, 10 sec) . . . . . . . . . . . . +280°C
*Stresses greater than those listed above may cause permanent damage to the
device. These are stress ratings only, and functional operation of the device at
these or any other conditions greater than those indicated in the operational
sections of this specification is not implied. Exposure to absolute maximum rating
conditions for extended periods may affect device reliability.
CAUTION
ESD (electrostatic discharge) sensitive device. Electrostatic charges as high as 4000 V readily
accumulate on the human body and test equipment and can discharge without detection.
Although the ADMC201 features proprietary ESD protection circuitry, permanent damage may
occur on devices subjected to high energy electrostatic discharges. Therefore, proper ESD
precautions are recommended to avoid performance degradation or loss of functionality.
–4–
REV. B
Page 5
PIN DESIGNATIONS
ADMC201
PinMnemonic TypeDescription
1D9BIDIRData Bit 9
2D10BIDIRData Bit 10
3D11BIDIRData Bit 11, MSB
4PIO0BIDIRProgrammable Digital I/O Bit 0
5PIO1BIDIRProgrammable Digital I/O Bit 1
6PIO2BIDIRProgrammable Digital I/O Bit 2
7PIO3BIDIRProgrammable Digital I/O Bit 3
8PIO4BIDIRProgrammable Digital I/O Bit 4
9PIO5BIDIRProgrammable Digital I/O Bit 5
10V
DD
11A3I/PAddress Bit 3, MSB
12A2I/PAddress Bit 2
13A1I/PAddress Bit 1
14A0I/PAddress Bit 0, LSB
15NCNo Connect
16RESETI/PChip Reset
27AGNDGNDAnalog Ground
28AGNDGNDAnalog Ground
29UI/PAnalog Input U
30VI/PAnalog Input V
31WI/PAnalog Input W
32SGNDGNDAnalog Signal Ground
33REFINI/PAnalog Reference Input
34AUX3I/PAuxiliary Analog Input 3
35AUX2I/PAuxiliary Analog Input 2
36AUX1I/PAuxiliary Analog Input 1
37AUX0I/PAuxiliary Analog Input 0
SUP+5 V Digital Power Supply
SUP+5 V Digital Power Supply
SUP+5 V Analog Power Supply
PinMnemonic TypeDescription
38REFOUTO/PInternal 2.5 V Analog Reference
39V
DD
SUP+5 V Digital Power Supply
40DGNDGNDDigital Ground
41DGNDGNDDigital Ground
42DGNDGNDDigital Ground
43DGNDGNDDigital Ground
44V
DD
SUP+5 V Digital Power Supply
45NCNo Connect
46DGNDGNDDigital Ground
47STOPI/PPWM Timer Output Disable
48PWMSYNCO/PPWM Synchronization Output
49CPO/PPWM Timer Output C Prime
50CO/PPWM Timer Output C
51BPO/PPWM Timer Output B Prime
52NCNo Connect
53BO/PPWM Timer Output B
54APO/PPWM Timer Output A Prime
55AO/PPWM Timer Output A
56DGNDGNDDigital Ground
57DGNDGNDDigital Ground
58DGNDGNDDigital Ground
59V
DD
SUP+5 V Digital Power Supply
60D0BIDIRData Bit 0, LSB
61D1BIDIRData Bit 1
62D2BIDIRData Bit 2
63D3BIDIRData Bit 3
64D4BIDIRData Bit 4
65D5BIDIRData Bit 5
66D6BIDIRData Bit 6
67D7BIDIRData Bit 7
68D8BIDIRData Bit 8
The ADMC201 contains an 11-bit resolution, successive approximation analog-to-digital (A/D) converter with twos complement
output data format. The analog input range is ±2.5 V (0 V–5 V)
with a 2.5 V offset as defined by REFIN. The on-chip 2.5 V ±
5% reference is utilized by connecting the REFOUT pin to the
REFIN pin.
The input stage to the A/D converter is a four channel SHA
which allows the four channels (U, V, W and AUX) to be held
simultaneously and then sequentially digitized. The auxiliary
input (AUX) is fed by a four channel multiplexer that allows the
channels AUX0, AUX1, AUX2 and AUX3 to be individually
converted along with the primary channels U, V and W. The
auxiliary inputs are ideal for reading slower changing variables
such as bus voltage and temperature. The A/D conversion time
is determined by the system clock frequency, which can range
from 6.25 MHz to 12.5 MHz. The Sample and Hold (SHA)
acquisition time is 20 system clock cycles and is independent of
the number of channels sampled and/or digitized. Forty system
clock cycles are required to complete each A/D conversion. The
analog channel sampling is flexible and is programmable
through the SYSCTRL register. The minimum number of
channels per conversion is two. The throughput time of the
analog acquisition block can be calculated as follows:
tAA= t
SHA
+ (n × t
CONV
)
where
t
= analog acquisition time,
AA
n = # channels,
= SHA acquisition time (20 × system clock period),
t
SHA
t
= conversion time (40 × system clock period) per channel.
CONV
A/D Conversions are initiated via the CONVST pin. A synchronizing pulse (PWMSYNC) is provided at the beginning of
each PWM cycle. This pulse can be used to synchronize the
A/D conversion process to the PWM switching frequency.
Operating the A/D Converter
The A/D converter can be set up to convert a sequence of channels
as defined in the SYSCTRL register (see Table VI). The default
channel select mode after RESET is to convert channels V and
W only. This is two-/three-phase mode. Three-/three-phase
mode converts channels U, V, W, and/or AUX. Three-/threephase mode is selected by writing a 1 to Bit 3 of the SYSCTRL
register. After the conversion process is complete, the channels
can be read in any order.
There are two methods that can be used to indicate when the
A/D conversions are completed and the data is ready: interrupt
driven and software timing.
Interrupt Driven Method
Interrupts can be used to indicate the end of conversion for a
group of channels. Before beginning any A/D conversions, Bit 7
of the SYSCTRL register must be set to 1 to enable A/D conversion interrupts. Then, when an A/D conversion is complete,
an interrupt will be generated. After an interrupt is detected,
Bit 0 of the SYSSTAT register must be checked to determine if
the A/D converter was the source. Reading the SYSSTAT register automatically clears the interrupt flag bits.
Software Timing Method
An alternative method is to use the DSP or microcontroller to
keep track of the amount of time elapsed between CONVST
and the expected completion time (n × t
CONV
).
Reading Results
The 11-bit A/D conversion results for channels U, V, W and
AUX are stored in the ADCU, ADCV, ADCW and ADCAUX
registers respectively. The twos complement data is left justified
and the LSB is set to zero. The relationship between input voltage and output coding is shown in Figure 5.
011111111110
000000000000
100000000000
OUTPUT
CODE
0V
FULL-SCALE
TRANSITION
FS = 5V
LSB =
2.5
INPUT VOLTAGE
5V
2048
5V–1LSB
Figure 5. Transfer Function
Sample and Hold
After powering up the ADMC201, bring the RESET pin low for
a minimum of two clock cycles in order to enable A/D conversions.
Before initiating the first conversion (CONVST) after a reset,
the SHA time of 20 system clock cycles must occur. A conversion
is initiated by bringing CONVST high for a minimum of one
system clock cycle. The SHA goes into hold mode at the falling
edge of clock.
Following completion of the A/D conversion process, a minimum
of 20 system clock cycles are required before initiating another
conversion in order to allow the sample and hold circuitry to
reacquire the input signals.
If a CONVST is initiated before the 20 clock cycles have elapsed,
the embedded control sequencer will delay conversion until this
requirement is met.
–6–
REV. B
Page 7
ADMC201
PWM TIMER BLOCK OVERVIEW
The PWM timers have 12-bit resolution and support programmable pulse deletion and deadtime. The ADMC201 generates
three center-based signals A, B and C based upon user-supplied
duty cycles values. The three signals are then complemented
and adjusted for programmable deadtime to produce the six
outputs. The ADMC201 PWM master switching frequency can
range from 2.5 kHz to 20 kHz, when using a 10 MHz system
clock. The master frequency selection is set as a fraction of the
PWMTM register. If the system clock is 10 MHz, then the
minimum edge resolution available is 100 ns.
The output format of the PWM block is active LO. There is an
external input to the PWM timers (STOP) that will disable all
six outputs within one system clock when the input is HIGH.
The ADMC201 has a PWM Synchronization output
(PWMSYNC) which brings out the master switching frequency
from the PWM timers. The width of the PWMSYNC pulse is
equal to one system clock cycle. For example, if the system clock
is 10 MHz, the PWMSYNC width would be equal to 100 ns.
PWM Master Switching Period Selection
The switching time is set by the PWMTM register which should
be loaded with a value equal to the system clock frequency
divided by the desired master switching frequency. For example, if the desired switching frequency is 8 kHz and the
system clock frequency is 10 MHz, then the PWMTM register
should be loaded with 1250 (10 MHz/8 kHz). The PWMCHA,
PWMCHB and PWMCHC registers are loaded with the
desired on-time and their values would be calculated as a ratio
of the PWMTM register value. Note: Desired Pulse Density =
(PWMCHx register)/( PWMTM register).
The beginning of each PWM cycle is marked by the PWMSYNC
signal. New values of PWMCHA, PWMCHB and PWMCHC
must all be loaded into their respective registers at least four system clock cycles before the beginning of a new PWM cycle. All
three registers must be updated for any of them to take effect.
New PWM on/off times are calculated during these four clock
cycles and therefore the PWMCHA, PWMCHB and PWMCHC
registers must be loaded before this time. If this timing requirement is not met, then the PWM outputs may be invalid during
the next PWM cycle.
PWM Example
The following example uses a system clock speed of 10 MHz.
The desired PWM master switching frequency is 8 kHz and the
desired on-time for the timers A, B and C are 25%, 50% and
10% respectively. The values for the PWMCHA, PWMCHB
and PWMCHC registers must be calculated as ratios of the
PWMTM register (1250 in this example). To achieve these
duty cycles, load the PWMCHA register with 313 (1250 ×
0.25), PWMCHB with 625 (1250 × 0.5) and PWMCHC with
125 (1250 × 0.1).
Programmable Deadtime
With perfectly complemented PWM drive signals and nonideal
switching characteristics of the power devices, both transistors
in a particular leg might be switched on at the same time, resulting in either a power supply trip, inverter trip or device
destruction. In order to prevent this, a delay must be introduced between the complemented signal edges. For example,
the rising edge of AP occurs before the falling edge of A, and the
falling edge of the complemented A occurs after the rising edge
of A. This capability is known as programmable deadtime.
The ADMC201 programmable deadtime value is loaded into
the 7-bit PWMDT register, in which the LSB is set to zero internally, which means the deadtime value is always divisible by
two. With a 10 MHz system clock, the 0–126 range of values in
PWMDT yield a range of deadtime values from 0 µs to 12.6 µs
in 200 ns steps. Figure 6 shows PWM timer A with a programmable deadtime of PWMDT.
PWMTM
PWMCHA - PWMDT
A
AP
PWMCHA + PWMDT
Figure 6. Programmable Deadtime Example
Pulse Deletion
The pulse deletion feature prevents a pulse from being generated when the user-specified duty cycle results in a pulse
duration shorter than the user-specified deletion value. The
pulse deletion value is loaded into the 7-bit register PWMPD.
When the user-specified on-time for a channel would result in a
calculated pulse width less than the value specified in the
PWMPD register, then the PWM outputs for that channel
would be set to full off (0%) and its prime to full on (100%).
This is valid for A, AP, B, BP, C and CP. This feature would
be used in an environment where the inverter’s power transistors have a minimum switching time. If the user-specified duty
cycle would result in a pulse duration shorter than the minimum
switching time of the transistors, then pulse deletion should be
used to prevent this occurrence. With a 10 MHz system clock,
the 0–127 range of values in PWMPD yield a range of deadtime
values from 0 µs to 12.7 µs in 100 ns steps.
External PWM Shutdown
There is an external input pin (STOP) to the PWM timers that
will disable all six outputs when it goes HIGH. When the STOP
pin goes HIGH, the PWM timer outputs will all go HIGH
within one system clock cycle. When the STOP pin goes LOW,
the PWM timer outputs are re-enabled within one system clock
cycle. If external PWM shutdown isn't required, tie the STOP
pin LOW.
REV. B
–7–
Page 8
ADMC201
VECTOR TRANSFORMATION BLOCK OVERVIEW
The Vector Transformation Block performs both Park and
Clarke coordinate transformations to control a three-phase
motor (Permanent Magnet Synchronous Motor or Induction
Motor) via independent control of the decoupled rotor torque
and flux currents. The Park & Clarke transformations combine
to convert three-phase stator current signals into two orthogonal
rotor referenced current signals Id and Iq. Id represents the flux
or magnetic field current and Iq represents the torque generating current. The Id and Iq current signals are used by the
processor’s motor torque control algorithm to calculate the required direct Vd and quadrature Vq voltage components for the
motor. The forward Park and Clarke transformations are used
to convert the Vd and Vq voltage signals in the rotor reference
frame to three-phase voltage signals (U, V, W) in the stator reference frame. These are then scaled by the processor and
written to the ADMC201’s PWM registers in order to drive the
inverter. The figures below illustrate the Clarke and Park
Transformations respectively.
I
y
I
x
120°
I
w
I
120°
I
u
120°
v
Three-Phase Equivalent
Stator Currents Two-Phase Currents
Figure 7. Reverse Clarke Transformation
I
y
I
x
ρ
90°
I
q
ROTOR
REFERENCE
FRAME AXIS
I
d
Rotating Stationary
Reference Frame Reference Frame
Figure 8. Reverse Park Transformation
V
q
V
d
ρ
90°
V
y
V
x
Stationary Rotating
Reference Frame Reference Frame
Figure 9. Forward Park Transformation
V
y
V
x
120°
W
120°
U
V
120°
Equivalent Three-Phase Stator
Two-Phase Voltage Voltage
Figure 10. Forward Clarke Transformation
Operating/Using the Vector Transformation Block
After powering up the ADMC201, RESET must be driven
low for a minimum of two clock cycles to enable vector
transformations.
The vector transformation block can perform either a forward or
reverse transformation.
Reverse Transformation is defined by the following operations:
(a) Clarke: 3-phase current signals to 2-phase current signals
followed by (b) Park: 2-phase current signals cross multiplied by
sin ρ, cos ρ which effectively measures the current components
with respect to the rotor (stationary) where ρ is the electrical
angle of the rotor field with respect to the stator windings.
Forward transformation is defined by the following operations:
(a) Park: 2-phase voltage signals cross multiplied by sin ρ, cos ρ fol-
lowed by (b) Clarke: 2-phase to 3-phase voltage signal conversion.
In order to provide maximum flexibility in the target system, the
ADMC201 operates in an asynchronous manner. This means
that the functional blocks (analog input, reverse transformation,
forward transformation and PWM timers) operate independently of each other. The reverse and forward vector
transformation operations cannot occur simultaneously. All
vector transformation registers, except for RHO/RHOP, are
twos complement. RHO/RHOP are unsigned ratios of 360°.
For example, 45° would be 45/360 × 2
12
.
Performing a Reverse Transformation
A reverse transformation is initiated by writing to the reverse
rotation angle register RHO and operates on the values in the
PHIP1, PHIP2 and PHIP3 registers. When the reverse transformation is in 2/3 mode, PHIP1 is calculated from PHIP2 and
PHIP3. This is used in systems where only two-phase currents
are measured. The reverse transformation 2/3 mode is set by
clearing Bit 10 in the SYSCTRL register and is the default
mode after RESET.
In order to perform a reverse transformation, first write to the
PHIP2 and PHIP3 registers, and to the PHIP1 register if not in
2/3 mode. Then initiate the transformation by writing the reverse rotation angle to the RHO register.
The reverse rotation will be completed in 37 system clock cycles
after the rotation is initiated. If Bit 6 of the system control register is set, then an interrupt will be generated on completion.
When an interrupt occurs, the user must check Bit 1 of the
SYSSTAT register to determine if the vector transformation
block was the source of the interrupt.
During the vector transformation, the vector transformation
registers must not be written to or the vector rotation results will
be invalid.
–8–
REV. B
Page 9
ADMC201
3
Reverse Clarke Transformation
The first operation is the Clarke transformation in which the
three-phase motor current signals (I
sine and cosine orthogonal signals (I
, Iv, Iw) are converted to
u
and Iy). These signals
x
represent the equivalent currents in a two-phase ac machine and
is the signal format required for the Park rotation. The threephase input signals are of the form:
PHIP1 I
PHIP2 I
PHIP3 I
and the Park rotation requires inputs in the form I
I
sin θ, therefore we need to generate Is sin θ.
s
= Is cos θ
u
= Is cos (θ + 120)
v
= Is cos (θ + 240)
w
cos θ and
s
This is calculated from:
IYI
sin θ =
s
After the reverse transform, registers I
1
(Is cos (θ + 240) – Is cos (θ +120))
and I
contain the 2-
x
y
phase input current information.
In the case where 2- of 3-phase information (PHIP2/3 only) is
provided, then PHIP1 will be derived from the simple fact that
all sum to zero. This value is then placed in the IX register.
IX = I
= Is cos θ = – Is cos (θ + 120) – Is cos (θ + 240)
x
Reverse Park Rotation
IX/IY are then processed together with the digital angle ρ
(RHO) by a Park rotation. If the input signals are I
and Iy,
x
then the rotation can be described by:
IDI
IQI
= Ix × cos ρ + Iy × sin ρ
d
= –Iy × sin ρ + Iy x cos ρ
q
where ID and IQ are the outputs of the Park rotation.
Cos ρ and sin ρ are required for the Park rotation, and are calculated internally.
Substituting for I
IDI
IQI
Performing a Forward Transformation
= Is cos θ × cos ρ + Is sin θ × sin ρ = Is cos (θ – ρ)
d
= Is sin θ × cos ρ – Is cos θ × sin ρ = Is sin (θ – ρ)
q
and Iy in the above yields:
x
In order to perform a forward rotation, write values to the VD
and VQ registers and then initiate the transformation by writing
the rotation angle to the register RHOP. The forward transformation will only operate correctly when Bit 10 in the SYSCTRL
register is set (i.e., in 3/3 mode).
The forward rotation will be completed in 40 system clock
cycles after the rotation is initiated. If Bit 6 of the system
control register is set, then an interrupt will be generated on
completion. When an interrupt occurs, the user must check Bit
1 of the system status register, SYSSTAT, to determine if the
vector transformation block was the source of the interrupt.
During the vector transformation, the transformation registers
must not be written to or the vector rotation results will be invalid.
Forward Park Rotation
If the input signals are represented by Vd and Vq, then the
transformation can be described by:
VXV
VYV
where V
= Vd × cos ρ – V
x
= Vd × sin ρ + Vq × cos ρ
y
and Vy are the outputs of the Park Rotation, and are
x
×
sin ρ
q
the inputs to the reverse Clarke transformation.
Forward Clarke Transformation (2- to 3-Phase)
The second operation to be applied to the above results, is the
Forward Clarke Transformation where 2-phase (stator) voltage
signals are converted to 3-phase (stator) voltage signals.
For the inverse Clarke transform we require three-phase outputs
of the form below:
PHV1V cos α
PHV2V cos (α + 120)
PHV3V cos (α + 240)
We have two quadrature voltages (V cos α and V sin α) available.
PHV2V cos (α + 120) =
PHV3V cos (α + 240) =
PROGRAMMABLE DIGITAL INPUT/OUTPUT PORT
1
–
× Vcosα –
2
1
–
× V cosα+
2
3
× V sin α
2
3
× V sin α
2
The ADMC201 has a six bit programmable digital I/O port.
Each bit is individually configurable as input or output. All bits
configured as inputs have the ability to operate as interrupt
sources. Each pin is independently capable of generating an interrupt should its input level change.
Configuring the Programmable Digital I/O Port
The PIOCTRL register is used to configure the individual bits
on the programmable digital I/O port as either inputs or outputs
and to enable change of state interrupts. The lower six bits of
PIOCTRL control the direction (either input or output) of the
individual bits. A zero configures the corresponding bit as an
input; conversely a 1 configures the corresponding bit as an output. The upper six bits of PIOCTRL are used to enable the
individual bits for use as change of state interrupt sources. A 0
disables change of state interrupt generation and a 1 enables
change of state interrupt generation. The interrupt enable for a
bit configured as an output is ignored. At power-up or RESET,
all six bits of the digital port are configured as input and change
of state interrupt generation is disabled.
Using the Programmable Digital I/O Port
The PIODATA register is used to write to and read from the
digital I/O port. Bits 0–5 of the PIODATA register correspond
to PIO 0–5 on the ADMC201. Bits 6–11 of PIODATA are unused and always contain 0. Read from PIODATA to determine
the state of PIO 0–5. Write to PIODATA to change the states
of PIO 0–5. Writing to bits configured as input has no effect.
Reading from bits configured as output will return the last value
written.
REV. B
–9–
Page 10
ADMC201
INTERRUPT GENERATION
There are three interrupt sources on the ADMC201 that may be
independently enabled to generate interrupts. The first interrupt source is the Analog Input Block, which, if enabled,
generates an interrupt at the end of conversion. The second interrupt source is the Vector Transformation Block, which, if
enabled, generates an interrupt at the end of a Vector Transformation. The third interrupt source is the Digital I/O Block.
Each digital I/O bit, if configured for input and enabled, generates an interrupt when its input level changes.
When a 1 is stored in Bit 7 of the SYSCTRL register, ADC interrupts are enabled. When a 1 is stored in Bit 6 of the
SYSCTRL register, Vector Transformation interrupts are enabled. When a 1 is stored in any of Bits 6–11 of the PIOCTRL
register, digital I/O change of state interrupts are enabled for
Bits 0–5 respectively. Upon a reset of the chip, all bits are set to
the default condition, 0, thus disabling all interrupts.
When an enabled interrupt occurs, Bit 11 of the SYSSTAT register becomes a 1. If that interrupt had been an ADC interrupt,
Bit 0 of SYSSTAT register would also be set to 1. If that interrupt had been a Vector Transformation interrupt, Bit 1 of
SYSSTAT would be set to 1. If that interrupt had been a digital I/O interrupt, then Bit 2 of the SYSSTAT would be set to 1.
Whenever the SYSSTAT register is read, these four bits go back
to their default state, 0, immediately after their values are loaded
onto the data bus. Upon a reset, these four bits also go to their
default state, 0.
The IRQ pin has an open-drain driver, which will drive it low at
the appropriate times, but the user must supply an external pullup resistor to bring the node back high when it is not being
pulled low.
The IRQ pin operates in one of two modes, edge mode or level
mode. In edge mode, when an enabled interrupt occurs, the
IRQ pin will be driven low for one system clock period. In level
mode, when an enable interrupt occurs, the IRQ pin will be
driven low, and will remain low until the SYSSTAT register is
read. The combination of level mode and the open-drain driver
allows multiple interrupt sources in an application to drive a
single interrupt input line on the host DSP or microprocessor.
Edge mode or level mode is determined with Bit 8 of the
SYSCTRL register. Edge mode (0) is the default; a 1 in this bit
will put the IRQ pin into level mode.
The recommended method of using the interrupt generation capability is to set edge or level mode, enable the appropriate
interrupts, and then monitor the IRQ line. After the IRQ pin
goes low, the SYSSTAT register of the ADMC201 should be
read, (1) to determine if it was this chip that caused the interrupt, if other lines are wired together with this IRQ pin, and
(2) if it was this chip, to determine if it was generated by the
Analog Input, Digital I/O and/or the Vector Transformation
Blocks. Once this is done, the appropriate interrupt handling
routine may be executed.
APPLICATION NOTE LIST
1. AN-407AC Motor Control Experiments Using the ADMC200
Evaluation Board
2. AN-408AC Motor Control Using the ADMC200 Motion
Coprocessor
3. AN-409Advanced Motor Control Techniques Using the
ADMC200 Motion Coprocessor
POWER SUPPLY CONNECTIONS AND SETUP
The nominal positive power supply level (VDD) is +5 V ± 5%.
The Positive Power supply V
ADMC201 V
pins (10, 19, 26, 39, 44, 59). The SGND pin
DD
should be connected to all
DD
(32) and both AGND pins (27, 28) should be star point connected at a point close to the AGND pins of the ADMC201.
The DGND pins (20, 40, 41, 42, 43, 46, 56, 57, 58) should
also be connected to AGND pins close to the ADMC201.
Power supplies should be decoupled at the power pins using a
0.1 µF capacitor. A 220 nF capacitor must also be connected as
close as possible between REFIN (Pin 33) and SGND (Pin 32).
In addition, the IRQ requires a 15K pull-up to the V
supply.
DD
SYSTEM CLOCK FREQUENCY
The nominal range of the input clock for the ADMC201 is
6.25 MHz to 25 MHz. The external CLK frequency can be internally divided down by 2 by writing to Bit 5 of the SYSCTRL
register. If the external CLK is faster than 12.5 MHz then it is
necessary to internally divide it down.
DSP/CONTROLLER INTERFACE
The ADMC201 has a 12-bit bidirectional parallel port for interfacing with Analog Devices’ ADSP-2100 DSP family or
microcontrollers/microprocessors.
The ADMC201 coprocessor is designed to be conveniently interfaced to the ADI’s family of Fixed-Point DSPs. Figures 11
and 12 show the interfacing between the ADMC201 and the
ADSP-2101/2105/2115, ADSP-2171, ADSP-2181, TMS320C2x
DSPs. In the case of the TMS320C2x, some glue logic is required to decode the RD/WR lines and invert the CLKOUT1
signal.
The ADSP-2101/2105/2115 CLKOUT frequency equals the
crystal/clock frequency of its CLKIN. This signal (CLKOUT)
can be used to directly drive the CLK line (Pin 21) on the
ADMC201. The ADMC201 coprocessor can be operated with
a clock frequency between the of 6.25 MHz and 25 MHz. If the
clock frequencies is greater than 12.5 MHz, then it is necessary
to internally divide down the external clock to derive the
ADMC201’s system clock (via SYSCTRL register).
ADDRESS BUS
V
DD
CS
IRQ
RD
WR
CLK
A0–A3
ADMC201
D0–D11*
A0–A13
ADSP-2101/
ADSP-2105/
ADSP-2115–20MHz
ADSP-2171–10MHz
ADSP-2181–10MHz
D0–D23
*NOTE:
BY MAPPING THE ADMC201 DATA BUS TO THE TWELVE HIGHEST BITS
OF THE ADSP DATA BUS, FULL-SCALE OUTPUTS FROM THE ADC
CAN BE REPRESENTED BY ⴞ 1.0 IN FIXED POINT ARITHMETIC.
DMS
IRQ2
CLKOUT
RD
WR
ADDRESS
DECODE
EN
DATA BUS
Figure 11. ADI Digital Signal Processor/Microcomputer
–10–
REV. B
Page 11
ADMC201
ADDRESS BUS
V
DD
A0–A15
TMS320C20
TMS320C25
TMS320C25-50
D0–D15
INTn
STRB
R/W
CLKOUT1
ADDRESS
DECODE
EN
IS
DATA BUS
CS
IRQ
RD
WR
CLK
A0–A3
ADMC201
D0–D11
Figure 12. TI Second Generation Devices TMS320C20/
C25/C25–50
In the case of the ADSP-2171/2181, the system clock is internally scaled, a 10 MHz system clock will derive a 20 MHz
CLKOUT. In the case of the TMS320C2X, the CLKOUT1
signal is derived from the system clock divided by a factor of 4,
consequently a 50 MHz TMS320C25-50 will derive a
12.5 MHz CLKOUT1 for use by the ADMC201.
Note: a pull-up resistor is required on the IRQ (Pin 18) output
from the ADMC201. The STOP (Pin 47) must be tied low if
not in use.
REGISTER ADDRESSING
Four address lines (A0 through A3) are used in conjunction
with the control lines (CS, WR, RD,) to select registers 0
through 15. The CS and RD control lines are active low. The
registers are given symbolic names.
Table II.
PinFunction
CSEnables the ADMC201 register interface
(connect via chip select logic-active low)
RDPlaces data from the internal register onto the
data bus
WRLoads the internal register with data on the
data bus on its positive edge
DESCRIPTION OF THE REGISTERS
All unspecified register locations are reserved.
SYSCTRLSystem Control Register (See Tables V,
VI, VII).
SYSSTATSystem Status Register (See Table VII).
ADCUThese registers contain the results from
ADCVthe first three analog input channels
ADCWU, V, and W. The output data format
is twos complement and, therefore, Bit 0
is always zero as the A/D converter
has 11-bit resolution.
ADCAUXThis register contains the conversion result
of the auxiliary channels AUX0, AUX1,
AUX2 or AUX3.
PWMTMPWM Master Switching Period
PWMCHAPWM Channel A On-Time
PWMCHBPWM Channel B On-Time
PWMCHCPWM Channel C On-Time
PWMDTPWM Programmable Deadtime Value
PWMPDPWM Programmable Pulse Deletion Value
ID/IQThese are the results of the reverse
rotation (torque and flux components).
PHV1/2/3These are the results from the forward
Clarke Transformation.
PHIP1/2/3The inputs for reverse vector transforma-
tion (Clarke and Park).
IX/IYThese registers contain the results
of the Clarke transformation that
are the inputs to the reverse Park rotation.
VX, VYVX, VY contain the results of the forward
Park rotation.
RHOPRHOP is the angle used during the
forward vector transformation. Writing to
the RHOP register causes the forward
rotation to start based on values in
RHOP, VD and VQ registers.
RHORHO is the angle used during the reverse
vector transformation. Writing to this
register starts the reverse rotation using
the values in the RHO, PHIP1/2/3
registers.
RHO and RHOP are unsigned ratios of
360°. For example, 45 degrees would be
45/360 × 2
12
.
PIODATAWrite to this register to change the
digital outputs and read from it to
determine the state of digital inputs.
PIOCTRLThis register is used to configure the
digital I/O as input or output and to
enable interrupt on change of state.
REV. B
–11–
Page 12
ADMC201
Table III. Write Registers
NameA3A2A1A
Register Function
0
RHO0000 Load RHO (ρ) and Start Reverse Transform
PHIP1/VD0001 Reverse Rotation Direct Input/Forward Direct Input
PHIP2/VQ0010 Reverse Rotation Direct Input/Forward Direct Input
PHIP30011 Reverse Rotation Direct Input
RHOP0100Load RHOP (ρ) and Start Forward Transform
PWMTM0101 PWM Master Switching Period
PWMCHA0110PWM Channel A On-Time
PWMCHB0111PWM Channel B On-Time
PWMCHC1000 PWM Channel C On-Time
PWMDT1001 PWM Programmable Deadtime (7-Bit Register)
PWMPD1010PWM Pulse Deletion Value (7-Bit Register)
PIOCTRL1011Digital I/O Control
PIODATA1100 Digital I/O Data Write (6-Bit Register)
SYSCTRL1101 System Control
1110 Reserved
1111 Reserved
Table IV. Read Registers
NameA3A2A1A
ID/PHV1/VX0000 Reverse Rotation Result (I
IQ/PHV20001Reverse Rotation Result (I
Register Function
0
)/Forward Result Cos +0°
DS
)/Forward Cos +120°
QS
IX/PHV30010Reverse Clarke Cos +0°/Forward Result Cos +240°
IY/VY0011Reverse Clarke Cos +90°/Forward Cos +90°
0100 Reserved
ADCV0101A/D Conversion Result Channel V
ADCW0110 A/D Conversion Result Channel W
ADCAUX0111 A/D Conversion Result Auxiliary Channel
ADCU1000 A/D Conversion Result Channel U
1001 Reserved
1010 Reserved
1011 Reserved
PIODATA1100 Digital I/O Data Read (6-Bit Register)
SYSCTRL1101 System Control
SYSSTAT1110 System Status
1111 Reserved
–12–
REV. B
Page 13
ADMC201
Table V. System Control (SYSCTRL) Registers
RESET
BitFunctionDefault
0Auxiliary Channel Selection0
1Auxiliary Channel Selection0
3Enables U Channel Conversion
Bit 3Channel U Conversion Enable. If Bit 3 is set to 1, then
Channel U will be converted along with V, W and/or
AUX. This bit selects three-/three-phase mode.
Bit 4Aux Channel Conversion Enable. If Bit 4 is set to
1, then the AUX input will be converted along with
the channels V, W and/or U.
Bit 5If Bit 5 = 1, then the external clock will be divided by
two to derive the system clock. If the external clock
frequency is greater than 12.5 MHz, then this bit must
be set.
Bit 6Park Interrupt Enable. This bit allows interrupts to
be generated when the Park rotation is completed.
Bit 7ADC Interrupt Enable. This bit allows interrupts to
be generated when the analog-to-digital conversion
process is complete.
Bit 8IRQ Pin Format—Edge or Level Interrupt Selection.
If Bit 8 is set to 0, then an interrupt will cause a
pulse of one system clock to be generated on the
IRQ pin. If Bit 8 is set to 1, then an interrupt
causes the IRQ output to go LOW (logic 0). The IRQ
output pin will remain LOW until the SYSSTAT
register is read.
Bit 10If Bit 10 is set to 1, then the reverse Park transforma-
tion will be formed in 3/3 mode. For Forward
transformations, this bit must be set to 1.
REV. B
–13–
Page 14
ADMC201
Table VIII. System Status Register (SYSSTAT)
1
RESET
BitFunctionDefault
0A/D Conversion
Completion Interrupt
(1 = True)0
1Vector Transformation
Completion Interrupt
(1 = True)0
2Digital I/O Change of State
Interrupt (1 = True)0
4Rotation Results are Valid
(1 = Valid)X
2
11IRQ Generated from This0
Device (1 = True)
NOTES
1
Reading this register clears the interrupt status flags Bits 0, 1, 2 and 11.
2
Undefined until the first Vector Transformation has started
Bit 0A/D Conversion Completion Interrupt. This register
is set to 1 when the A/D conversion process has completed and ADC interrupts have been enabled in the
SYSCTRL register.
Bit 1Interrupt Status. This register is set to 1 when the
Vector Transformation is completed and the Vector
Transformation completion interrupts have been
enabled.
Bit 4This bit is set to 1 when the rotation results are valid
reading this.
Bit 11 If any interrupt source on the ADMC201 occurs, then
this bit is set to 1.
Table IX. Programmable Digital I/O Control Register
(PIOCTRL)
RESET
BitFunctionDefault
0Programmable Digital I/O Direction
Bit 0 (0 = Input, 1 = Output)0
1Programmable Digital I/O Direction
Bit 1 (0 = Input, 1 = Output)0
2Programmable Digital I/O Direction
Bit 2 (0 = Input, 1 = Output)0
3Programmable Digital I/O Direction
Bit 3 (0 = Input, 1 = Output)0
4Programmable Digital I/O Direction
Bit 4 (0 = Input, 1 = Output)0
5Programmable Digital I/O Direction
Bit 5 (0 = Input, 1 = Output)0
6Programmable Digital I/O Bit 0 Interrupt
(0 = Disable, 1 = Enable)0
7Programmable Digital I/O Bit 1 Interrupt
(0 = Disable, 1 = Enable)0
8Programmable Digital I/O Bit 2 Interrupt
(0 = Disable, 1 = Enable)0
9Programmable Digital I/O Bit 3 Interrupt
(0 = Disable, 1 = Enable)0
10Programmable Digital I/O Bit 4 Interrupt
(0 = Disable, 1 = Enable)0
11Programmable Digital I/O Bit 5 Interrupt
(0 = Disable, 1 = Enable)0
Bits 0–5Sets corresponding Digital I/O bits as either input
or output.
Bits 6–11 Configures Digital I/O Bits 0–5 as interrupt on
change of state sources. Enabling interrupts for bits
configured as output has no effect.
–14–
REV. B
Page 15
OUTLINE DIMENSIONS
Dimensions shown in inches and (mm).
68-Lead Plastic Leaded Chip Carrier
(P-68A)
ADMC201
61
60
44
43
0.175 (4.45)
0.169 (4.29)
0.104 (2.64) TYP
0.050
(1.27)
TYP
0.925 (23.50)
0.895 (22.73)
0.019 (0.48)
0.017 (0.43)
0.029 (0.74)
0.027 (0.69)
PIN 1
IDENTIFIER
BOTTOM VIEW
(PINS UP)
C2072a–1.5–4/00 (rev. B)
0.995 (25.27)
0.985 (25.02)
9
10
(PINS DOWN)
26
27
0.954 (24.23)
0.950 (24.13)
PIN 1
IDENTIFIER
TOP VIEW
SQ
SQ
REV. B
PRINTED IN U.S.A.
–15–
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.