Conditional Instruction Execution
2 Independent Data Address Generators
Memory Configuration
512 16-Bit Data Memory RAM
512 24-Bit Program Memory RAM
4K 24-Bit Program Memory ROM
4K 24-Bit Program Flash Memory (ADMCF341 Only)
3 Independent Flash Memory Sectors
3584 24-Bit, 256 24-Bit, 256 24-Bit
Low Cost, Pin Compatible ROM Option
16-Bit Watchdog Timer
Programmable 16-Bit Internal Timer with Prescaler
2 Double-Buffered Serial Ports with SPI Mode Support
Integrated Power-On Reset Function
3-Phase 16-Bit PWM Generation Unit:
16-Bit Center-Based PWM Generator
Programmable PWM Pulsewidth
Edge Resolution to 50 ns
153 Hz Minimum Switching Frequency
Double/Single Duty Cycle Update Mode Control
Individual Enable and Disable for Each PWM Output
High Frequency Chopping Mode for Transformer
Coupled Gate Drives
External PWMTRIP Pin
Integrated 6-Channel ADC Subsystem
3 Bipolar I
Inputs with Programmable
SENSE
Sample-and-Hold Amplifier and Overcurrent
Protection (Usable as 3 Dedicated Analog Inputs)
Muxed Auxiliary Analog Inputs
Internal Voltage Reference (2.5 V)
Acquisition Synchronized to PWM Switching
Frequency
9-Pin Digital I/O Port
Bit Configurable as Input or Output
Change of State Interrupt Support
2 16-Bit Auxiliary PWM Timers
Synthesized Analog Output
Programmable Frequency
0% to 100% Duty Cycle
2 Programmable Operational Modes
Independent Mode/Offset Mode
Motor Types
Permanent Magnet Synchronous Motors (PMSM)
Brushless DC Motors (BDCM)
AC Induction Motors (ACIM)
APPLICATIONS
Refrigerator and Air Conditioner Compressors
Washing Machines
Industrial Variable Speed Drives
HVAC
FUNCTIONAL BLOCK DIAGRAM
MEMORY BLOCK
ADSP-21xx BASE
ARCHITECTURE
DATA
ADDRESS
GENERATORS
DAG 1
ARITHMETIC UNITS
ALU
MAC
DSP is a registered trademark of Analog Devices, Inc.
DAG 2
SEQUENCER
SHIFTER
PROGRAM
PROGRAM MEMORY ADDRESS
DATA MEMORY ADDRESS
PROGRAM MEMORY DATA
DATA MEMORY DATA
POR
PROGRAM FLASH
OR ROM MEMORY
4k 24-BIT
TIMER
REV. A
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 that
may result from its use. No license is granted by implication or otherwise
under any patent or patent rights of Analog Devices.
(VDD = 5%, GND = 0 V. For ADMCF341, TA = –40C to +85C.
ANALOG-TO-DIGITAL CONVERTER
ParameterMinTypMaxUnitConditions/Comments
Signal Input0.33.5VVAUX0, VAUX1, VAUX2
Resolution
Linearity Error
Zero Offset
Comparator Delay600ns
ADC High Level Input Current
ADC Low Level Input Current
NOTES
1
Resolution varies with PWM switching frequency (double update mode) 78.1 kHz = 8 bits, 4.9 kHz = 12 bits.
2
2.44 kHz sample frequency, VAUX0, VAUX1, VAUX2.
3
Extrapolated point outside of operating range. 2.44 kHz sample frequency.
fIN = 1 kHz sine wave, VIN = –400 mV to +400 mV, fS = 4 kHz.
4
High or low trip threshold.
Specifications subject to change without notice.
1
2
3
2
2
–320+7mV
–10µAV
AMPLIFIER–TRIP
Signal Operating Range–400+400mV
Signal Input Range–800+800mV
Gain–2.6–2.51–2.34%VIN = –400 mV to +400 mV
Gain Channel Matching5.5%VIN = –400 mV to +400 mV
Gain Stability
Linearity
Internal Offset Voltage
Internal Offset Stability
Signal-to-Noise Ratio (SNRD)
Signal-to-Noise Ratio Less Distortion54dB
3
Total Harmonic Distortion
Input Current–200+10µAV
Input Resistance11.5kΩ
1
2
2
2
3
3
4
For ADMC341, TA = –40C to +125C. CLKIN = 10 MHz, unless otherwise noted.)
12Bits
34Bits
+10µAV
= 3.5 V
IN
= 0.0 V
IN
0.8%VIN = –400 mV to +400 mV
89Bits
1.681.872.1V
2.1%
51dB
–53dB
= –400 mV to +400 mV
IN
5µs
CURRENT SOURCE
1
ParameterMinTypMaxUnitConditions/Comments
Programming Resolution3Bits
Tuned Current
NOTES
1
For ADC calibration.
2
0.3 V to 3.5 V I
Specifications subject to change without notice.
2
CONST
91100109µA
voltage.
REV. A–2–
ADMC(F)341
VOLTAGE REFERENCE
ParameterMinTypMaxUnitConditions/Comments
Voltage Level (V
)2.442.502.55V–40°C to +85°C (ADMCF341 only)
REF
2.442.502.55V–40°C to +125°C (ADMC341 only)
Drift110ppm/°C
Specifications subject to change without notice.
POWER-ON RESET
ParameterMinTypMaxUnitConditions/Comments
Reset Threshold3.203.654.10V
Hysteresis100mV
Reset Active Timeout Period3.2
*216 CLKOUT cycles.
Specifications subject to change without notice.
*
ms
ELECTRICAL CHARACTERISTICS
SymbolParameterMinTypMaxUnitConditions/Comments
V
IL
V
IH
V
OL
V
OL
V
OH
I
IL
I
IL
I
IH
I
IH
I
IH
I
OZH
I
OZL
I
DD
I
DD
I
DD
I
DD
NOTES
1
Output pins PIO0-PIO8, AH, AL, BH, BL, CH, CL.
2
XTAL pin.
3
Internal pull-up, RESET.
4
Internal pull-down, PWMTRIP, PIO0-PIO8.
5
Three-stateable pins: DT1, RFS0, TFS0, SCLK1.
6
Outputs not switching.
Specifications subject to change without notice.
Low Level Input Voltage0.8V
High Level Input Voltage2V
Low Level Output Voltage
Low Level Output Voltage
High Level Output Voltage4VI
Low Level Input Current RESET Pin
Low Level Input Current–10µAV
High Level Input Current RESET Pin
High Level Input Current
High Level Input Current10µAV
High Level Three-State Leakage Current
Low Level Three-State Leakage Current5–10µAV
Supply Current (Idle)
Supply Current (Dynamic)
Supply Current (Idle)
Supply Current (Dynamic)
1
2
3
3
4
6
6
6
6
–100µAV
5
0.4VI
0.8VI
30µAV
100µAV
100µAV
2 mA
OL =
= 2 mA
OL
= 0.5 mA
OH
= 0 V
IN
= 0 V
IN
= V
IN
= V
IN
= V
IN
= V
IN
= 0 V
IN
DD
DD
DD
DD
35mAVDD = 5.25 V (ADMC341 only)
60mAVDD = 5.25 V (ADMC341 only)
55mAVDD = 5.25 V (ADMCF341 only)
135mAVDD = 5.25 V (ADMCF341 only)
REV. A
–3–
ADMC(F)341
FLASH MEMORY (ADMCF341 ONLY)
ParameterMinTypMaxUnitConditions/Comments
Endurance10,000CyclesCycle = Erase/Program/Verify
Data Retention15Years
Program and Erase Operating Temperature085°C
Read Operating Temperature–40+85°C
Specifications subject to change without notice.
TIMING PARAMETERS
ParameterMinMaxUnit
Clock Signals
Signal tCK is defined as 0.5 t
a frequency equal to half the instruction rate; a 10 MHz input clock (which is
equivalent to 100 ns) yields a 50 ns processor cycle (equivalent to 20 MHz).
When t
values are within the range of 0.5 t
CK
substituted for all relevant timing parameters to obtain specification value as
in the following example:
CLKOUT Width Low0.5 tCK – 10ns
CLKOUT Width High0.5 tCK – 10ns
CLKIN High to CLKOUT High020ns
Control Signals
Switching Characteristics:
t
RSP
RESET Width Low5 tCK*ns
PWM Shutdown Signals
Switching Characteristics:
t
PWMTPW
*Applies after power-up sequence is complete.
Specifications subject to change without notice.
PWMTRIP Width Lowt
. The ADMC(F)341 uses an input clock with
CKIN
period, they should be
CKIN
CK
ns
CLKIN
CLKOUT
t
CKIN
t
CKIL
t
CKL
Figure 1. Clock Signals
t
t
CKOH
CKH
t
CKIH
REV. A–4–
ADMC(F)341
TIMING PARAMETERS
ParameterMinMaxUnit
Serial Ports
Timing Requirements:
t
SCK
t
SCS
t
SCH
t
SCP
Switching Characteristics:
t
CC
t
SCDE
t
SCDV
t
RH
t
RD
t
SCDH
t
SCDD
t
TDE
t
TDV
t
RDV
Specifications subject to change without notice.
SCLK Period100ns
DR/TFS/RFS Setup before SCLK Low15ns
DR/TFS/RFS Hold after SCLK Low20ns
SCLKIN Width40ns
CLKOUT High to SCLK
OUT
0.25 t
CK
0.25 tCK + 20ns
SCLK High to DT Enable0ns
SCLK High to DT Valid30ns
TFS/RFS
TFS/RFS
Hold after SCLK High0ns
OUT
Delay from SCLK High30ns
OUT
DT Hold after SCLK High0ns
SCLK High to DT Disable30ns
TFS (Alt) to DT Enable0ns
TFS (Alt) to DT Valid25ns
RFS (Multichannel, Frame Delay Zero) to DT Valid30ns
CLKOUT
SCLK
RFS
TFS
RFS
OUT
TFS
OUT
TFS
(ALTERNATE
FRAME MODE)
(MULTICHANNEL MODE,
FRAME DELAY 0 [MFD = 0])
RFS
DR
DT
t
CC
IN
IN
t
t
SCDE
t
RH
TDE
t
t
RD
SCDV
t
TDV
t
RDV
t
CC
t
SCDD
t
t
t
SCS
SCH
t
SCDH
SCP
t
SCK
t
SCP
Figure 2. Serial Port Timing
REV. A
–5–
ADMC(F)341
ABSOLUTE MAXIMUM RATINGS*
Supply Voltage (VDD) . . . . . . . . . . . . . . . . . . –0.3 V to +7.0 V
Supply Voltage (AV
Input Voltage . . . . . . . . . . . . . . . . . . . . . –0.3 V to V
Output Voltage Swing . . . . . . . . . . . . . . –0.3 V to V
) . . . . . . . . . . . . . . . . . –0.3 V to +7.0 V
*Stresses greater than those listed may cause permanent damage to the device.
These are stress ratings only; 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.
ADMCF341BR–40°C to +85°C20 MHz28-Lead Wide Body (SOIC)RW-28
ADMCF341-EVALKITN/AN/ADevelopment Tool Kit
ADMC341 YR-xxx-xxxx–40°C to +125°C20 MHz28-Lead Wide Body (SOIC)RW-28
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
ADMC(F)341 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.
REV. A–6–
ADMC(F)341
GENERAL DESCRIPTION
The ADMC(F)341 is a low cost, single-chip, DSP-based
controller suitable for permanent magnet synchronous motors,
ac induction motors, and brushless dc motors. The ADMC(F)341
integrates a 20 MHz, fixed-point DSP core with a complete set
of motor control and system peripherals that permits fast,
efficient development of motor controllers.
The DSP core of the ADMC(F)341 is completely code compatible with the ADSP-21xx DSP family and combines three
computational units, data address generators, and a program
sequencer. The computational units are an ALU, a multiplier/
accumulator (MAC), and a barrel shifter. There are special
instructions for bit manipulation, multiplication (x squared),
biased rounding, and global interrupt masking. The system
peripherals are the power-on reset circuit (POR), the watchdog
timer, and two synchronous serial ports. The serial ports are
configurable and double buffered, with hardware support for
UART, SCI, and SPI port emulation. The ADMC(F)341 provides 512 ⫻ 24-bit program memory RAM, 4K ⫻ 24-bit
program memory ROM, 4K ⫻ 24-bit program FLASH memory,
and 512 ⫻ 16-bit data memory RAM. The user code can be
stored and executed from the flash memory. The program and
data memory RAM can be used for dynamic data storage or
can be loaded through the serial port from an external device
as in other ADMCxxx family parts. The program memory
ROM contains a monitor function as well as useful routines for
erasing, programming, and verifying the flash memory.
The motor control peripherals of the ADMC(F)341 provide a
12-bit analog data acquisition system with six analog input
channels with three dedicated I
inputs (combining internal
SENSE
amplification, sampling, and overcurrent PWM shutdown
features) and an internal voltage reference. In addition, a threephase, 16-bit, center-based PWM generation unit can be used
to produce high accuracy PWM signals with minimal processor
overhead. The ADMC(F)341 also contains two 16-bit auxiliary
PWM timer outputs and nine lines of digital I/O.
Because the ADMC(F)341 has a limited number of pins, functions such as the auxiliary PWM timers and the serial
communication ports are multiplexed with the nine programmable digital input/output (PIO) pins. The pin functions can be
independently selected to allow maximum flexibility for different applications.
DSP CORE ARCHITECTURE OVERVIEW
Figure 3 is an overall block diagram of the DSP core of the
ADMC(F)341. The flexible architecture and comprehensive
instruction set allow the processor to perform multiple operations in parallel. In one processor cycle (50 ns with a 10 MHz
CLKIN) the DSP core can:
• Generate the next program address
• Fetch the next instruction
• Perform one or two data moves
• Update one or two data address pointers
• Perform a computational operation
This all takes place while the processor continues to:
• Receive and transmit through the serial ports
• Decrement the interval timer
• Generate three-phase PWM waveforms for a power inverter
• Generate two signals using the 16-bit auxiliary PWM timers
• Acquire four analog signals
• Decrement the watchdog timer
DATA
ADDRESS
GENERATOR
#1
INPUT REGS
ALU
OUTPUT REGS
DATA
ADDRESS
GENERATOR
#2
INPUT REGS
OUTPUT REGS
MAC
INSTRUCTION
REGISTER
PM ROM
4K 24
PROGRAM
SEQUENCER
16
R BUS
14
14
24
BUS
EXCHANGE
16
INPUT REGS
SHIFTER
OUTPUT REGS
PM RAM
512 24
CONTROL
LOGIC
Figure 3. DSP Core Block Diagram
PMA BUS
DMA BUS
PMD BUS
DMD BUS
COMPANDING
CIRCUITRY
FLASH
PROGRAM
MEMORY
4K 24
TRANSMIT REG
RECEIVE REG
SERIAL
PORT
6
DM RAM
512 16
TIMER
REV. A
–7–
ADMC(F)341
The processor contains three independent computational units:
the arithmetic and logic unit (ALU), the multiplier/accumulator
(MAC), and the shifter. The computational units process 16-bit
data directly and have provisions to support multiprecision
computations. The ALU performs a standard set of arithmetic
and logic operations, and provides support for division primitives. The MAC performs single-cycle multiply, multiply/add, and
multiply/subtract operations with 40 bits of accumulation. The
shifter performs logical and arithmetic shifts, normalization,
denormalization, and derive-exponent operations. The shifter
can be used to efficiently implement numeric format control,
including floating-point representations. The internal result (R)
bus directly connects the computational units so that the output
of any unit may be the input of any unit on the next cycle.
A powerful program sequencer and two dedicated data address
generators ensure efficient delivery of operands to these computational units. The sequencer supports conditional jumps and
subroutine calls and returns in a single cycle. With internal loop
counters and loop stacks, the ADMC(F)341 executes looped code
with zero overhead; no explicit jump instructions are required to
maintain the loop.
Two data address generators (DAGs) provide addresses for
simultaneous dual operand fetches from data memory and program memory. Each DAG maintains and updates four address
pointers (I registers). Whenever the pointer is used to access
data (indirect addressing), it is post-modified by the value in
one of four modifications (M registers). A length value may be
associated with each pointer (L registers) to implement automatic modulo addressing for circular buffers. The circular
buffering feature is also used by the serial ports for automatic
data transfers to and from on-chip memory. DAG1 generates
only data memory addresses and provides an optional bit-reversal
capability. DAG2 may generate either program or data memory
addresses but has no bit-reversal capability. Efficient data transfer is achieved with the use of five internal buses:
• Program memory address (PMA) bus
• Program memory data (PMD) bus
• Data memory address (DMA) bus
• Data memory data (DMD) bus
• Result (R) bus
Program memory can store both instructions and data, permitting
the ADMC(F)341 to fetch two operands in a single cycle—one
from program memory and one from data memory. The
ADMC(F)341 can fetch an operand from on-chip program
memory and the next instruction in the same cycle. The
ADMC(F)341 writes data from its 16-bit registers to the 24-bit
program memory using the PX register to provide the lower
eight bits. When it reads data (not instructions) from 24-bit
program memory to a 16-bit data register, the lower eight bits
are placed in the PX register.
The ADMC(F)341 can respond to a number of distinct DSP
core and peripheral interrupts. The DSP interrupts comprise a
serial port receive interrupt, a serial port transmit interrupt, a
timer interrupt, and two software interrupts. Additionally, the
motor control peripherals include two PWM interrupts and a
PIO interrupt.
Serial port 0 (SPORT0) provides a complete synchronous serial
interface with optional companding in hardware and a wide
variety of framed and unframed data transmit and receive
modes of operation. Serial port 1 (SPORT1) is available with a
limited number of I/Os. It is mainly intended for codebooting to
serial ROMs (SROM) and supporting the debugging tools.
SPORT0 and SPORT1 can generate an internal programmable
serial clock or accept an external serial clock.
A programmable interval counter is also included in the DSP
core and can be used to generate periodic interrupts. A 16-bit
count register (TCOUNT) is decremented every n processor
cycles, where n – 1 is a scaling value stored in the 8-bit TSCALE
register. When the value of the counter reaches zero, an interrupt is generated, and the count register is reloaded from a
16-bit period register (TPERIOD).
The ADMC(F)341 instruction set provides flexible data moves
and multifunction (one or two data moves with a computation)
instructions. Each instruction is executed in a single 50 ns
processor cycle (for a 10 MHz CLKIN). The ADMC(F)341
assembly language uses an algebraic syntax for ease of coding
and readability. A comprehensive set of development tools
supports program development. For further information on the
DSP core, refer to the ADSP-2100 Family User’s Manual, Third
Edition, with particular reference to the ADSP-2171.
SERIAL PORTS
The ADMCF341 incorporates two complete synchronous serial
ports (SPORT1 and SPORT0) for serial communication and
multiprocessor communication.
Following is a brief list of capabilities of the ADMC(F)341
SPORTs. Refer to the ADSP-2100 Family User’s Manual, Third
Edition, for further details.
• SPORTs are bidirectional and have a separate, doublebuffered transmit and receive section.
• SPORTs use an external serial clock or generate their own
serial clock internally.
• SPORTs have independent framing for the receive and
transmit sections. Sections run in a frameless mode or with
frame synchronization signals internally or externally
generated. Frame synchronization signals are active high or
inverted, with either of two pulsewidths and timings.
• SPORTs support serial data-word lengths from 3 bits to
16 bits and provide optional A-law and µ-law companding
according to ITU (formerly CCITT) recommendation
G.711.
• SPORT receive and transmit sections can generate unique
interrupts on completing a data-word transfer.
• SPORTs can receive and transmit an entire circular buffer
of data with only one overhead cycle per data-word. An
interrupt is generated after a data buffer transfer.
• SPORT0 has a multichannel interface to selectively receive
and transmit a 24-word or 32-word time-division multiplexed, serial bitstream.
• SPORT0 can be configured as an SPI port (master mode
only). The clock phase and polarity are programmable
through the MODECTRL register.
• SPORT1 is the default port for program/data memory boot
loading and for development tools interface. The DT1/FL1
pin can be configured as SROM/E
2
PROM reset signal.
REV. A–8–
ADMC(F)341
PIN FUNCTION DESCRIPTION
The ADMC(F)341 is available in a 28-lead SOIC package.
Table I describes the pins.
Table I. Pin List
Pin GroupNo. of Input/
NamePinsOutput Function
RESET1I Processor Reset Input
SPORT1
SPORT0
CLKOUT1
1
1
2I/OSerial Port 1 Pins (DT1/FL1,
DR1, SCLK1/SCLK0
5I/OSerial Port 0 Pins (DT0, DR0
1
I/OProcessor Clock Output
TFSO, SCLK1/SCLK0
2
)
2
)
CLKIN, XTAL2I, OExternal Clock or Quartz
Crystal Connection Point
PORTA0–9I/ODigital I/O Port Pins
PORTA8
1
AUX0–AUX112O Auxiliary PWM Outputs
AH–CL6OPWM Outputs
PWMTRIP1I PWM Trip Signal
–3II
I
SENSE1
I
SENSE3
SENSE
Inputs
VAUX0–VAUX2 3IAuxiliary Analog Inputs
I
CONST
1O ADC Constant Current
Source
V
DD
1I Power Supply
GND1IGround
NOTES
1
Multiplexed pins, individually selectable through PORTA_SELECT
and PORTA_DATA registers.
2
SCLK1/SCLK0 multiplexed signals. Selectable through MODECTRL
Register Bit 4.
INTERRUPT OVERVIEW
The ADMC(F)341 can respond to 18 different interrupt sources
with minimal overhead, seven of which are internal DSP core
interrupts and 11 are from the motor control peripherals. The
seven DSP core interrupts are SPORT1 receive (or IRQ0) and
transmit (or IRQ1), SPORT0 receive and transmit, the internal
timer, and two software interrupts. The motor control peripheral
interrupts are the nine programmable I/Os and two from the
PWM (PWMSYNC pulse and PWMTRIP). All motor control
interrupts are multiplexed into the DSP core through the
peripheral IRQ2 interrupt. The interrupts are internally prioritized
and individually maskable. A detailed description of the entire
interrupt system of the ADMC(F)341 is presented later, following
a more detailed description of each peripheral block.
MEMORY MAP
The ADMC(F)341 has two distinct memory types: program
and data. In general, program memory contains user code and
coefficients, while the data memory is used to store variables
and data during program execution. Three kinds of program
memory are provided on the ADMC(F)341: RAM, ROM, and
FLASH. The motor control peripherals are memory mapped
into a region of the data memory space starting at 0x2000. The
complete program and data memory maps are given in Tables II
and III, respectively.
Table II. Program Memory Map
Memory
Address RangeTypeFunction
0x0000–0x002FRAMInternal Vector Table
0x0030–0x01FFRAMUser Program Memory
0x0200–0x07FFReserved
0x0800–0x17FFROMReserved Program Memory
0x1800–0x1FFFReserved
0x2000–0x20FFFLASHUser Program Memory
The ADMC(F)341 has 4K ⫻ 24-bits of user-programmable,
nonvolatile flash memory. A flash programming utility is provided
with the development tools, which perform the basic device
programming operations: erase, program, and verify.
The flash memory array is portioned into three asymmetrically
sized sectors of 256 words, 256 words, and 3584 words, labeled
sector 0, sector 1, and sector 2, respectively. These sectors are
mapped into external program memory address space.
Four flash memory interface registers are connected to the DSP.
These 16-bit registers are mapped into the register area of data
memory space. They are named flash memory control register
(FMCR), flash memory address register (FMAR), flash memory
data register low (FMDRL), and flash memory data register
high (FMDRH). These registers are diagrammed in Figure 22.
They are used by the flash memory programming utility. The
user program may read these registers, but should not modify
them directly. The flash programming utility provides a complete
interface to the flash memory.
It should be noted that the core accesses flash memory through
an external memory interface that multiplexes the program
memory and data memory buses into a single external bus.
Therefore, if more than one external transfer must be made in the
same instruction, there will be at least one overhead cycle required.
REV. A
–9–
ADMC(F)341
Special Flash Registers
The flash module has four nonvolatile 8-bit registers called
special flash registers (SFRs) that are accessible independent of
the main flash array via the flash programming utility. These
registers are for general-purpose, nonvolatile storage. When
erased, the special flash registers contain all 0s. To read special
flash registers from the user program, call the read_reg routine
contained in ROM. Refer to the ADMCF34x DSP MotorController Developers Reference Manual for an example.
Boot-from-Flash Code
A security feature is available in the form of a code that,
when set, causes the processor to execute the program in
flash memory at power-up or reset. In this mode, the flash
programming utility and debugger are unable to communicate
with the ADMC(F)341. Consequently, the contents of the
flash memory can be neither programmed nor read.
The boot-from-flash code may be set via the flash programming
utility, when the user’s program is thoroughly tested and loaded into
flash program memory at address 0x2200. The user’s program must
contain a mechanism for clearing the boot-from-flash code if reprogramming the flash memory is desired. The only way to clear
boot-from-flash is from within the user program, by calling the
flash_init or auto_erase_reg routines that are included in the ROM.
The user program must be signaled in some way to call the
necessary routine to clear the boot-from-flash code. An example
would be to detect a high level on a PIO pin during startup
initialization and then call the flash_init or auto_erase_reg routine.
The flash_init routine will erase the entire user program in flash
memory before clearing the boot-from-flash code, thus ensuring
the security of the user program. If security is not a concern, the
auto_erase_reg routine can be used to clear the boot-from-flash
code while leaving the user program intact.
Refer to the ADMCF34x DSP Motor Controller Developer’sReference Manual for further instructions and an example of
using the boot-from-flash code.
FLASH PROGRAM BOOT SEQUENCE
On power-up or reset, the processor begins instruction execution at address 0x0800 of internal program ROM. The ROM
monitor program that is located there checks the boot-from-flash
code. If that code is set, the processor jumps to location 0x2200
in external flash program memory, where it expects to find the
user’s application program.
If the boot-from-flash code is not set, the monitor attempts to
boot from an external device as described in the ADMCF34xDSP Motor Controller Developers Reference Manual.
SYSTEM INTERFACE
Figure 4 shows a basic system configuration for the ADMC(F)341
with an external crystal.
CLKOUT
CLKIN
ADMC(F)341
XTAL
22pF
10MHz
22pF
Clock Signals
The ADMC(F)341 can be clocked either by a crystal or a TTL
compatible clock signal. For normal operation, the CLKIN input
cannot be halted, changed during operation, or operated below the
specified minimum frequency. If an external clock is used, it should
be a TTL compatible signal running at half the instruction rate.
The signal is connected to the CLKIN pin of the ADMC(F)341.
In this mode, with an external clock signal, the XTAL pin must be
left unconnected. The ADMC(F)341 uses an input clock with a
frequency equal to half the instruction rate; a 10 MHz input clock
yields a 50 ns processor cycle (which is equivalent to 20 MHz).
Normally, instructions are executed in a single processor cycle. All
device timing is relative to the internal instruction rate, which is
indicated by the CLKOUT signal when enabled.
Because the ADMC(F)341 includes an on-chip oscillator feedback
circuit, an external crystal may be used instead of a clock source,
as shown in Figure 4. The crystal should be connected across the
CLKIN and XTAL pins with two capacitors, as shown in
Figure 4. A parallel-resonant, fundamental frequency, microprocessor grade crystal should be used. A clock output signal
(CLKOUT) is generated by the processor at the processor’s cycle
rate of twice the input frequency.
Reset
The ADMC(F)341 DSP core and peripherals must be correctly
reset when the device is powered up to ensure proper unitization.
The ADMC(F)341 contains an integrated power-on-reset (POR)
circuit that provides a complete system reset on power-up and
power-down. The POR circuit monitors the voltage on the
ADMC(F)341 V
in reset while V
pin and holds the DSP core and peripherals
DD
is less than the threshold voltage level, V
DD
RST
.
When this voltage is exceeded, the ADMC(F)341 is held in reset
for an additional 216 DSP clock cycles (T
this time (T
), the supply voltage must reach the recommended
RST
in Figure 5). During
RST
operating condition. On power-down, when the voltage on the
V
pin falls below V
DD
RST
–V
, the ADMC(F)341 will be
HYST
reset. Also, if the external RESET pin is actively pulled low at
any time after power-up, a complete hardware reset of the
ADMC(F)341 is initiated.
V
RST
V
RESET
DD
T
RST
V
V
RST
HYST
–
Figure 5. Power-On Reset Operation
The ADMC(F)341 sets all internal stack pointers to the empty
stack condition, masks all interrupts, clears the MSTAT register,
and performs a full reset of all of the motor control peripherals.
Following a power-up, it is possible to initiate a DSP core and
motor control peripheral reset by pulling the RESET pin low.
The RESET signal must be the minimum pulsewidth specification,
. Following the reset sequence, the DSP core starts executing
t
RSP
code from the internal PM ROM located at 0x0800.
RESET
Figure 4. Basic System Configuration
REV. A–10–
ADMC(F)341
DSP Control Registers
The DSP core has a system control register, SYSCNTL,
memory-mapped at DM (0x3FFF). SPORT1 must be configured
as a serial port by setting Bit 10. SPORT0 and SPORT1 are
enabled by setting Bit 11 and Bit 12.
The DSP core has a wait state control register, MEMWAIT,
memory-mapped at DM (0x3FFE). The default value of this
register is 0xFFFF. For proper operation of the ADMC(F)341,
this register must always contain the value 0x8000. This value
sets the minimum access time to the program memory.
The configurations of both the SYSCNTL and MEMWAIT
registers of the ADMC(F)341 are shown in Figure 31.
THREE-PHASE PWM CONTROLLER
Overview
The PWM generator block of the ADMC(F)341 is a flexible,
programmable three-phase PWM waveform generator that can
be programmed to generate the required switching patterns to
drive a three-phase voltage source inverter for ac induction
motors (ACIM) or permanent magnet synchronous motors
(PMSM). In addition, the PWM block contains special functions
that considerably simplify the generation of the required PWM
switching patterns for control of brushless dc motors (BDCM),
including electronically commutated motors (ECM).
The six PWM output signals consist of three high side drive
signals (AH, BH, and CH) and three low side drive signals
(AL, BL, and CL). The switching frequency, dead time, and
minimum pulsewidths of the generated PWM patterns are
programmable using, respectively, the PWMTM, PWMDT, and
PWMPD registers. In addition, three registers (PWMCHA,
PWMCHB, and PWMCHC) control the duty cycles of the
three pairs of PWM signals.
Each of the six PWM output signals can be enabled or disabled
by separate output enable bits of the PWMSEG register. In
addition, three control bits of the PWMSEG register permit
crossover of the two signals of a PWM pair for easy control of
ECM or BDCM. In crossover mode, the high side PWM signals
are diverted to the complementary low side output and the low
side signals are diverted to the corresponding high side outputs.
In many applications, there is a need to provide an isolation
barrier in the gate-drive circuits that turn on the power devices
of the inverter. In general, there are two common isolation
techniques: optical isolation using optocouplers, and transformer isolation using pulse transformers. The PWM controller
of the ADMC(F)341 permits mixing of the output PWM signals
with a high frequency chopping signal to permit an easy interface
to such pulse transformers. The features of this gate-drive
chopping mode can be controlled by the PWMGATE register.
There is an 8-bit value within the PWMGATE register that
directly controls the chopping frequency. In addition, high
frequency chopping can be independently enabled for the high
side and the low side outputs using separate control bits in the
PWMGATE register.
The PWM generator is capable of operating in two distinct modes:
single update mode and double update mode. In single update
mode, the duty cycle values are programmable only once per
PWM period so that the resultant PWM patterns are symmetrical
about the midpoint of the PWM period. In double update mode,
a second updating of the PWM duty cycle values is implemented
at the midpoint of the PWM period. In this mode, it is possible