MICROCHIP 33FJ64MC510

dsPIC33F
Product Overview
dsPIC® DSC High-Performance 16-Bit
Digital Signal Controllers
© 2005 Microchip Technology Inc.
Preliminary
DS70155C
Note the following details of the code protection feature on Microchip devices:
•
Microchip products meet the specification contained in their particular Microchip Data Sheet.
•
Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
•
There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
•
Microchip is willing to work with the customer who is concerned about the integrity of their code.
•
Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
Information contained in this publication regarding device
applications and the like is provided only for your convenience
and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications.
MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED,
WRITTEN OR ORAL, STATUTORY OR OTHERWISE,
RELATED TO THE INFORMATION, INCLUDING BUT NOT
LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE,
MERCHANTABILITY OR FITNESS FOR PURPOSE.
Microchip disclaims all liability arising from this information and
its use. Use of Microchip’s products as critical components in
life support systems is not authorized except with express
written approval by Microchip. No licenses are conveyed,
implicitly or otherwise, under any Microchip intellectual property
rights.
Trademarks
The Microchip name and logo, the Microchip logo, Accuron,
dsPIC, KEELOQ, microID, MPLAB, PIC, PICmicro, PICSTART,
PRO MATE, PowerSmart, rfPIC, and SmartShunt are
registered trademarks of Microchip Technology Incorporated
in the U.S.A. and other countries.
AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB,
PICMASTER, SEEVAL, SmartSensor and The Embedded
Control Solutions Company are registered trademarks of
Microchip Technology Incorporated in the U.S.A.
Analog-for-the-Digital Age, Application Maestro, dsPICDEM,
dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR,
FanSense, FlexROM, fuzzyLAB, In-Circuit Serial
Programming, ICSP, ICEPIC, Linear Active Thermistor,
MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM,
PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo,
PowerMate, PowerTool, rfLAB, rfPICDEM, Select Mode,
Smart Serial, SmartTel, Total Endurance and WiperLock are
trademarks of Microchip Technology Incorporated in the
U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
© 2005, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
Printed on recycled paper.
Microchip received ISO/TS-16949:2002 quality system certification for
its worldwide headquarters, design and wafer fabrication facilities in
Chandler and Tempe, Arizona and Mountain View, California in
October 2003. The Company’s quality system processes and
procedures are for its PICmicro® 8-bit MCUs, KEELOQ® code hopping
devices, Serial EEPROMs, microperipherals, nonvolatile memory and
analog products. In addition, Microchip’s quality system for the design
and manufacture of development systems is ISO 9001:2000 certified.
DS70155C-page ii
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
dsPIC33F High-Performance 16-Bit
Digital Signal Controller Product Overview
Operating Range
Interrupt Controller
• DC – 40 MIPS (40 MIPS @ 3.0-3.6V, -40° to +85°C)
• Industrial temperature range (-40° to +85°C)
• 5-cycle latency
• 117 interrupt vectors
• Up to 67 available interrupt sources, up to
5 external interrupts
• 7 programmable priority levels
• 5 processor exceptions
High-Performance DSC CPU
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Modified Harvard architecture
C compiler optimized instruction set
16-bit wide data path
24-bit wide instructions
Linear program memory addressing up to 4M
instruction words
Linear data memory addressing up to 64 Kbytes
84 base instructions: mostly 1 word/1 cycle
Sixteen 16-bit general purpose registers
Two 40-bit accumulators:
- With rounding and saturation options
Flexible and powerful addressing modes:
- Indirect, modulo and bit-reversed
Software stack
16 x 16 fractional/integer multiply operations
32/16 and 16/16 divide operations
Single-cycle multiply-and-accumulate:
- Accumulator write back for DSP operations
- Dual data fetch
Up to +/- 16-bit shifts, for up to 40-bit data
Digital I/O
•
•
•
•
•
On-Chip Flash and SRAM
• Flash program memory, up to 256 Kbytes
• Data SRAM (up to 30 Kbytes):
- Includes 2 KB of DMA RAM
System Management
Direct Memory Access (DMA)
• 8-channel hardware DMA
• Allows data transfer between RAM and a
peripheral while CPU is executing code (no cycle
stealing)
• 2 KB of dual-ported DMA buffer area (DMA RAM)
to store data transferred via DMA
• Most peripherals support DMA
© 2005 Microchip Technology Inc.
Up to 85 programmable digital I/O pins
Wake-up/Interrupt-on-Change on up to 24 pins
Output pins can drive from 3.0V to 3.6V
All digital input pins are 5V tolerant
4 mA sink and source on all I/O pins
• Flexible clock options:
- External, crystal, resonator, internal RC
- Fully integrated PLL
- Extremely low jitter PLL
• Power-up timer
• Oscillator Start-up Timer/Stabilizer
• Watchdog timer with its own RC oscillator
• Fail-Safe Clock Monitor
• Reset by multiple sources
Power Management
• On-chip 2.5V voltage regulator
• Switch between clock sources in real time
• Idle, Sleep and Doze modes with fast wake-up
Preliminary
DS70155C-page 1
dsPIC33F
Timers/Capture/Compare/PWM
Motor Control Peripherals
• Timer/Counters: up to nine 16-bit timers:
- Can pair up to make four 32-bit timers
- 1 timer runs as Real-Time Clock with external
32 kHz oscillator
- Programmable prescaler
• Input Capture (up to 8 channels):
- Capture on up, down or both edges
- 16-bit capture input functions
- 4-deep FIFO on each capture
• Output Compare (up to 8 channels):
- Single or Dual 16-Bit Compare mode
- 16-Bit Glitchless PWM mode
• Motor Control PWM (up to 8 channels):
- 4 duty cycle generators
- Independent or Complementary mode
- Programmable dead time and output polarity
- Edge or center-aligned
- Manual output override control
- Up to 2 Fault inputs
- Trigger for A/D conversions
- PWM frequency for 16-bit resolution
(@ 40 MIPS) = 1220 Hz for Edge-Aligned
mode, 610 Hz for Center-Aligned mode
- PWM frequency for 11-bit resolution
(@ 40 MIPS) = 39.1 kHz for Edge-Aligned
mode, 19.55 kHz for Center-Aligned mode
• Quadrature Encoder Interface module:
- Phase A, Phase B and index pulse input
- 16-bit up/down position counter
- Count direction status
- Position Measurement (x2 and x4) mode
- Programmable digital noise filters on inputs
- Alternate 16-bit Timer/Counter mode
- Interrupt on position counter rollover/
underflow
Communication Modules
• 3-wire SPI™ (up to 2 modules):
- Framing supports I/O interface to simple
codecs
- Supports 8-bit and 16-bit data
- Supports all serial clock formats and
sampling modes
- 8-word FIFO buffers
• I2C™ (up to 2 modules):
- Full Multi-Master Slave mode support
- 7-bit and 10-bit addressing
- Bus collision detection and arbitration
- Integrated signal conditioning
- Address masking
• UART (up to 2 modules):
- Interrupt-on-address bit detect
- Wake-up-on-Start bit from Sleep mode
- 4-character TX and RX FIFO buffers
- LIN bus support
- IrDA® encoding and decoding in hardware
- High-Speed Baud mode
• Data Conversion Interface (DCI) module:
- Codec interface
- Supports I2S and AC’97 protocols
- Up to 16-bit data words, up to 16 words per
frame
- 4-word deep TX and RX buffers
• Enhanced CAN 2.0B active (up to 2 modules):
- Up to 8 transmit and up to 16 receive buffers
- 16 receive filters and 3 masks
- Loopback, Listen Only and Listen All
Messages modes for diagnostics and bus
monitoring
- Wake-up on CAN message
- FIFO mode using DMA
DS70155C-page 2
Analog-to-Digital Converters
• Up to two 10-bit or 12-bit A/D modules in a device
• 10-bit 2.2 Msps or 12-bit 1 Msps conversion:
- 2 or 4 simultaneous samples
- Up to 32 input channels with auto-scanning
- 16-deep result buffer
- Conversion start can be manual or
synchronized with 1 of 4 trigger sources
- Conversion possible in Sleep mode
- ±1 LSB max integral nonlinearity
- ±1 LSB max differential nonlinearity
CMOS Flash Technology
•
•
•
•
•
Low-power, high-speed Flash technology
Fully static design
3.3V (+/- 10%) operating voltage
Industrial temperature
Low-power consumption
Packaging:
• 100-pin TQFP (14x14x1 mm and 12x12x1 mm)
• 80-pin TQFP (12x12x1 mm)
• 64-pin TQFP (10x10x1 mm)
Note:
Preliminary
See Table 1-1 and Table 1-2 for exact
peripheral features per device.
© 2005 Microchip Technology Inc.
dsPIC33F
1.0
dsPIC33F PRODUCT FAMILIES
1.1
General Purpose Family
The dsPIC33F General Purpose Family (Table 1-1)
is ideal for a wide variety of 16-bit MCU embedded
applications. The variants with codec interfaces are
well-suited for audio applications.
Program Flash
Memory (KB)
RAM(1)
(KB)
Output Compare
Std. PWM
Codec
Interface
UART
SPI™
I2C™
CAN
I/O Pins (Max)(2)
Packages
33FJ64GP206
64
64
8
9
8
8
1
1 A/D,
18 ch
2
2
1
0
53
PT
33FJ64GP306
64
64
16
9
8
8
1
1 A/D,
18 ch
2
2
2
0
53
PT
33FJ64GP310
100
64
16
9
8
8
1
1 A/D,
32 ch
2
2
2
0
85
PF, PT
33FJ64GP706
64
64
16
9
8
8
1
2 A/D,
18 ch
2
2
2
2
53
PT
33FJ64GP708
80
64
16
9
8
8
1
2 A/D,
24 ch
2
2
2
2
69
PT
33FJ64GP710
100
64
16
9
8
8
1
2 A/D,
32 ch
2
2
2
2
85
PF, PT
33FJ128GP206
64
128
8
9
8
8
1
1 A/D,
18 ch
2
2
1
0
53
PT
33FJ128GP306
64
128
16
9
8
8
1
1 A/D,
18 ch
2
2
2
0
53
PT
33FJ128GP310
100
128
16
9
8
8
1
1 A/D,
32 ch
2
2
2
0
85
PF, PT
33FJ128GP706
64
128
16
9
8
8
1
2 A/D,
18 ch
2
2
2
2
53
PT
33FJ128GP708
80
128
16
9
8
8
1
2 A/D,
24 ch
2
2
2
2
69
PT
33FJ128GP710
100
128
16
9
8
8
1
2 A/D,
32 ch
2
2
2
2
85
PF, PT
33FJ256GP506
64
256
16
9
8
8
1
1 A/D,
18 ch
2
2
2
1
53
PT
33FJ256GP510
100
256
16
9
8
8
1
1 A/D,
32 ch
2
2
2
1
85
PF, PT
33FJ256GP710
100
256
30
9
8
8
1
2 A/D,
32 ch
2
2
2
2
85
PF, PT
Device
Note 1:
2:
A/D Converter
Pins
Input Capture
dsPIC33F GENERAL PURPOSE FAMILY VARIANTS
Timer 16-bit
TABLE 1-1:
RAM size is inclusive of 2 KB DMA RAM.
Maximum I/O pin count includes pins shared by the peripheral functions.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 3
dsPIC33F
1.2
Motor Control Family
Supply (UPS), inverters, Switched mode power
supplies, power factor correction and also for
controlling the power management module in servers,
telecommunication equipment and other industrial
equipment.
This family of dsPIC33F controllers (Table 1-2)
supports a variety of motor control applications, such
as brushless DC motors, single and 3-phase induction
motors and switched reluctance motors. These
products are also well-suited for Uninterrupted Power
Input Capture
Output Compare
Std. PWM
Motor Control PWM
Quadrature Encoder
Interface
Codec Interface
A/D Converter
UART
SPI™
I2C™
CAN
I/O Pins (Max)(2)
dsPIC33F MOTOR CONTROL AND POWER CONVERSION FAMILY VARIANTS
Timer 16-bit
TABLE 1-2:
Packages
33FJ64MC506
64
64
8
9
8
8
8 ch
1
0
1 A/D,
16 ch
2
2
2
1
53
PT
33FJ64MC508
80
64
8
9
8
8
8 ch
1
0
1 A/D,
18 ch
2
2
2
1
69
PT
33FJ64MC510
100
64
8
9
8
8
8 ch
1
0
1 A/D,
24 ch
2
2
2
1
85
PF, PT
33FJ64MC706
64
64
16
9
8
8
8 ch
1
0
2 A/D,
16 ch
2
2
2
1
53
PT
33FJ64MC710
100
64
16
9
8
8
8 ch
1
0
2 A/D,
24 ch
2
2
2
2
85
PF, PT
33FJ128MC506
64
128
8
9
8
8
8 ch
1
0
1 A/D,
16 ch
2
2
2
1
53
PT
33FJ128MC510
100
128
8
9
8
8
8 ch
1
0
1 A/D,
24 ch
2
2
2
1
85
PF, PT
33FJ128MC706
64
128
16
9
8
8
8 ch
1
0
2 A/D,
16 ch
2
2
2
1
53
PT
33FJ128MC708
80
128
16
9
8
8
8 ch
1
0
2 A/D,
18 ch
2
2
2
1
69
PT
33FJ128MC710
100
128
16
9
8
8
8 ch
1
0
2 A/D,
24 ch
2
2
2
2
85
PF, PT
33FJ256MC510
100
256
16
9
8
8
8 ch
1
0
1 A/D,
24 ch
2
2
2
1
85
PF, PT
33FJ256MC710
100
256
30
9
8
8
8 ch
1
0
2 A/D,
24 ch
2
2
2
2
85
PF, PT
Device
Note 1:
2:
Pins
Program
Flash RAM(1)
Memory (KB)
(KB)
RAM size is inclusive of 2 KB DMA RAM.
Maximum I/O pin count includes pins shared by the peripheral functions.
DS70155C-page 4
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
PRODUCT IDENTIFICATION SYSTEM
dsPIC 33 FJ 256 GP7 10 T I / PT - XXX
Examples:
a)
Microchip Trademark
Architecture
Flash Memory Family
b)
Program Memory Size (KB)
Product Group
dsPIC33FJ256GP710I/PT-PS:
General Purpose dsPIC33, 64 KB program
memory, 100-pin, Industrial temp.,
TQFP package, Prototype Sample.
dsPIC33FJ64MC706I/PT-ES:
Motor Control dsPIC33, 64 KB program
memory, 64-pin, Industrial temp.,
TQFP package, Engineering Sample.
Pin Count
Tape and Reel Flag (if applicable)
Temperature Range
Package
Pattern
Architecture
33
= 16-bit Digital Signal Controller
Flash Memory Family
FJ
= Flash program memory, 3.3V
Product Group
GP2
GP3
GP5
GP7
MC5
MC7
=
=
=
=
=
=
Pin Count
06
08
10
= 64-pin
= 80-pin
= 100-pin
Temperature Range
I
=
Package
PT
PF
= 10x10 or 12x12 mm TQFP (Thin Quad Flatpack)
= 14x14 mm TQFP (Thin Quad Flatpack)
Pattern
Three-digit QTP, SQTP, Code or Special Requirements
(blank otherwise)
ES
= Engineering Sample
General Purpose family
General Purpose family
General Purpose family
General Purpose family
Motor Control family
Motor Control family
-40°C to +85°C (Industrial)
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 5
dsPIC33F
2.0
dsPIC33F DEVICE FAMILY
OVERVIEW
The dsPIC33F device family employs a powerful 16-bit
architecture that seamlessly integrates the control
features of a Microcontroller (MCU) with the
computational capabilities of a Digital Signal Processor
(DSP). The resulting functionality is ideal for
applications that rely on high-speed, repetitive
computations, as well as control.
The DSP engine, dual 40-bit accumulators, hardware
support for division operations, barrel shifter, 17 x 17
multiplier, a large array of 16-bit working registers and
FIGURE 2-1:
a wide variety of data addressing modes, together
provide the dsPIC33F Central Processing Unit (CPU)
with extensive mathematical processing capability.
Flexible and deterministic interrupt handling, coupled
with a powerful array of peripherals, renders the
dsPIC33F devices suitable for control applications.
Further, Direct Memory Access (DMA) enables
overhead-free transfer of data between several
peripherals and a dedicated DMA RAM. Reliable, field
programmable Flash program memory ensures
scalability of applications that use dsPIC33F devices.
Figure 2-1 shows a sample device block diagram
typical of the dsPIC33F product family.
dsPIC33F DEVICE BLOCK DIAGRAM
X-Data Bus <16-bit>
Y-Data Bus <16-bit>
Barrel Shifter
17 x 17 Multiplier
Y AGU
Data SRAM
up to
28 Kbytes
X AGU
I/O Ports
ACCA<40>
ACCB<40>
DSP Engine
W Register
Array
16 x 16
Program Flash
Memory Data
Access
Memory
Mapped
Program Counter
<23 bits>
23
Instruction
Prefetch & Decode
24
Divide Control
16-bit ALU
Legend:
MCU/DSP X-Data Path
Status Register
DSP Y-Data Path
Flash
Program
Memory
up to
256 Kbytes
Dual Port
RAM
2 Kbytes
Peripherals
DMA
Controller
Address Path
DS70155C-page 6
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
3.1
Overview
FIGURE 3-1:
The dsPIC33F CPU module has a 16-bit (data)
modified Harvard architecture with an enhanced
instruction set, including significant support for DSP.
The CPU has a 24-bit instruction word with a variable
length opcode field. The Program Counter (PC) is
23 bits wide and addresses up to 4M x 24 bits of user
program memory space. The actual amount of program
memory implemented, as illustrated in Figure 3-1,
varies from one device to another. A single-cycle
instruction prefetch mechanism is used to help
maintain throughput and provides predictable
execution. All instructions execute in a single cycle,
with the exception of instructions that change the
program flow, the double word move (MOV.D)
instruction and the table instructions. Overhead-free
program loop constructs are supported using the DO
and REPEAT instructions, both of which are
interruptible at any point.
PROGRAM SPACE
MEMORY MAP
Reset – GOTO Instruction
Reset – Target Address
Reserved
Osc. Fail Trap Vector
Address Error Trap Vector
Stack Error Trap Vector
Math Error Trap Vector
DMA Error Vector
Reserved Vector
Reserved Vector
000014
Interrupt Vector Table
Reserved
Alternate Vector Table
0001FE
000200
02ABFE
02AC00
Reserved
7FFFFE
800000
The dsPIC33F instruction set has two classes of
instructions: the MCU class of instructions and the DSP
class of instructions. These two instruction classes are
seamlessly integrated into a single CPU. The
instruction set includes many addressing modes and is
designed for optimum C compiler efficiency.
DATA MEMORY OVERVIEW
Configuration Memory
Space
Reserved
The data space can be addressed as 32K words or
64 Kbytes and is split into two blocks, referred to as X
and Y data memory. Each memory block has its own
independent Address Generation Unit (AGU). The
MCU class of instructions operates solely through the
X memory AGU, which accesses the entire memory
map as one linear data space. Certain DSP instructions
operate through the X and Y AGUs to support dual
operand reads, which splits the data address space
into two parts. The X and Y data space boundary is
device specific.
The upper 32 Kbytes of the data space memory map
can optionally be mapped into program space at any
16K program word boundary defined by the 8-bit
Program Space Visibility Page (PSVPAG) register. The
program-to-data space mapping feature lets any
instruction access program space as if it were data
space.
The data space includes 2 Kbytes of DMA RAM, which
is primarily used for DMA data transfers, but may be
used as general purpose RAM.
© 2005 Microchip Technology Inc.
0000FE
000100
000104
User Flash
Program Memory
(87296 x 24-bit)
The dsPIC33F devices have sixteen 16-bit working
registers in the programmer’s model. Each of the
working registers can serve as a data, address or
address offset register. The 16th working register
(W15) operates as a software Stack Pointer (SP) for
interrupts and calls.
3.1.1
000000
000002
000004
Vector
Tables
CPU ARCHITECTURE
User Memory
Space
3.0
Preliminary
Device Configuration
Registers (12 x 8-bit)
F7FFFE
F80000
F80016
F80018
Reserved
Device ID (2 x 16-bit)
Reserved
FEFFFE
FF0000
FF0002
FF0004
FFFFFE
DS70155C-page 7
dsPIC33F
3.1.2
ADDRESSING MODES OVERVIEW
Overhead-free circular buffers (modulo addressing) are
supported in both X and Y address spaces. The
modulo addressing removes the software boundary
checking overhead for DSP algorithms. Furthermore,
the X AGU circular addressing can be used with any of
the MCU class of instructions. The X AGU also
supports bit-reversed addressing to greatly simplify
input or output data reordering for radix-2 FFT
algorithms.
The CPU supports Inherent (no operand), Relative,
Literal, Memory Direct, Register Direct and Register
Indirect Addressing modes. Each instruction is
associated with a predefined addressing mode group
depending upon its functional requirements. As many
as 6 addressing modes are supported for each
instruction.
For most instructions, the dsPIC33F is capable of
executing a data (or program data) memory read, a
working register (data) read, a data memory write and
a program (instruction) memory read per instruction
cycle. As a result, three parameter instructions can be
supported, allowing A + B = C operations to be
executed in a single cycle.
3.1.3
DSP ENGINE OVERVIEW
The dsPIC33F supports 16/16 and 32/16 divide
operations, both fractional and integer. All divide
instructions are iterative operations. They must be
executed within a REPEAT loop, resulting in a total
execution time of 19 instruction cycles. The divide
operation can be interrupted during any of those 19
cycles without loss of data.
A 40-bit barrel shifter is used to perform up to a 16-bit
left or right shift in a single cycle. The barrel shifter can
be used by both MCU and DSP instructions.
3.1.5
The dsPIC33F has a vectored exception scheme with
up to 5 sources of non-maskable traps and 67 interrupt
sources. Each interrupt source can be assigned to one
of seven priority levels.
3.1.6
1.
3.
4.
5.
6.
3.1.4
SPECIAL MCU FEATURES
The dsPIC33F features a 17-bit by 17-bit, single-cycle
multiplier that is shared by both the MCU ALU and DSP
engine. The multiplier can perform signed, unsigned
and mixed-sign multiplication. Using a 17-bit by 17-bit
multiplier for 16-bit by 16-bit multiplication not only
allows you to perform mixed-sign multiplication, it also
achieves accurate results for special operations such
as (-1.0) x (-1.0).
DS70155C-page 8
FEATURES TO ENHANCE
COMPILER EFFICIENCY
In addition to extensive DSP capability, the CPU
architecture possesses several features that lead to a
more efficient (code size and speed) C compiler.
2.
The DSP engine features a high-speed, 17-bit by 17-bit
multiplier, a 40-bit ALU, two 40-bit saturating
accumulators and a 40-bit bidirectional barrel shifter.
The barrel shifter is capable of shifting a 40-bit value,
up to 16 bits right or left, in a single cycle. The DSP
instructions operate seamlessly with all other
instructions and have been designed for optimal realtime performance. The MAC instruction and other
associated instructions can concurrently fetch two data
operands from memory while multiplying two W
registers and accumulating and optionally saturating
the result in the same cycle. This instruction
functionality requires that the RAM memory data space
be split for these instructions and linear for all others.
Data space partitioning is achieved in a transparent
and flexible manner through dedicating certain working
registers to each address space.
INTERRUPT OVERVIEW
Preliminary
For most instructions, three-parameter instructions can be supported, allowing A + B = C
operations to be executed in a single cycle.
Instruction addressing modes are extremely
flexible to meet compiler needs.
The working register array consists of 16 x 16-bit
registers, each of which can act as data,
address or offset registers. One working register
(W15) operates as the software Stack Pointer
for interrupts and calls.
Linear indirect access of all data space is
possible, plus the memory direct address range
is up to 8 Kbytes. This capability, together with
the addition of 16-bit direct address MOV-based
instructions, has provided a contiguous linear
addressing space.
Linear indirect access of 32K word (64 Kbyte)
pages within program space is possible, using
any working register via new table read and
write instructions.
Part of data space can be mapped into program
space, allowing constant data to be accessed as
if it were in data space.
© 2005 Microchip Technology Inc.
dsPIC33F
3.2
Programmer’s Model
The programmer’s model, shown in Figure 3-2,
consists of 16 x 16-bit working registers (W0 through
W15), 2 x 40-bit accumulators (ACCA and ACCB),
Status Register (SR), Data Table Page register
(TBLPAG), Program Space Visibility Page register
(PSVPAG), DO and REPEAT registers (DOSTART,
DOEND, DCOUNT and RCOUNT) and Program
Counter (PC). The working registers can act as data,
address or offset registers. All registers are memory
mapped. W0 is the W register for all instructions that
perform file register addressing.
Some of these registers have a shadow register
associated with them (see the legend in Figure 3-2).
The shadow register is used as a temporary holding
register and can transfer its contents to or from its host
register upon some event occurring in a single cycle.
None of the shadow registers are accessible directly.
W15 is the dedicated software Stack Pointer (SP). It is
automatically modified by exception processing and
subroutine calls and returns. However, W15 can be
referenced by any instruction in the same manner as all
other W registers. This simplifies the reading, writing
and manipulation of the Stack Pointer (e.g., creating
stack frames).
W14 has been dedicated as a Stack Frame Pointer, as
defined by the LNK and ULNK instructions. However,
W14 can be referenced by any instruction in the same
manner as all other W registers.
The Stack Pointer always points to the first available
free word and grows from lower addresses towards
higher addresses. It pre-decrements for stack pops
(reads) and post-increments for stack pushes (writes).
When a byte operation is performed on a working
register, only the Least Significant Byte of the target
register is affected. However, a benefit of memory
mapped working registers is that both the Least and
Most Significant Bytes can be manipulated through
byte-wide data memory space accesses.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 9
dsPIC33F
FIGURE 3-2:
PROGRAMMER’S MODEL
15
Legend:
0
W0/WREG
DIV and MUL
Result Registers
PUSH.S Shadow
W1
DO Shadow
W2
W3
W4
MAC Operand
Registers
W5
W6
W7
Working Registers
W8
W9
MAC Address
Registers
W10
W11
W12/MAC Offset
W13/MAC Write Back
W14/Frame Pointer
W15*/Stack Pointer
*W15 and SPLIM not shadowed
SPLIM*
39
Stack Pointer Limit Register
15
31
0
ACCA
DSP
Accumulators
ACCB
22
0
Program Counter
0
7
TABPAG
TBLPAG
7
Data Table Page Address
0
PSVPAG
Program Space Visibility Page Address
15
0
RCOUNT
REPEAT Loop Counter
15
0
DCOUNT
DO Loop Counter
22
0
DOSTART
DO Loop Start Address
22
0
DO Loop End Address
DOEND
15
0
Core Configuration Register
CORCON
OA
OB
SA
SB OAB SAB DA
SRH
DS70155C-page 10
DC IPL2 IPL1 IPL0 RA
N
OV
Z
C
Status Register
SRL
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
3.3
3.3.3
Data Address Space
The core has two data spaces, X and Y. These data
spaces can be considered either separate (for some
DSP instructions), or as one unified linear address
range (for MCU instructions). The data spaces are
accessed using two Address Generation Units (AGUs)
and separate data paths. This feature allows certain
instructions to concurrently fetch two words from RAM,
thereby enabling efficient execution of DSP algorithms
such as Finite Impulse Response (FIR) filtering and
Fast Fourier Transform (FFT).
3.3.1
X AND Y DATA SPACES
The X data space is used by all instructions and
supports all addressing modes. There are separate
read and write data buses for X data space. The X read
data bus is the read data path for all instructions that
view data space as combined X and Y address space.
It is also the X data prefetch path for the dual operand
DSP instructions (MAC class).
The Y data space is used in concert with the X data
space by the MAC class of instructions (CLR, ED,
EDAC, MAC, MOVSAC, MPY, MPY.N and MSC) to
provide two concurrent data read paths.
Both the X and Y data spaces support Modulo
Addressing for all instructions, subject to addressing
mode restrictions. Bit-Reversed Addressing is only
supported for writes to X data space.
All data memory writes, including in DSP instructions,
view data space as combined X and Y address space.
The boundary between the X and Y data spaces is
device-dependent (an example is shown in Figure 3-3)
and is not user-programmable.
DATA SPACE WIDTH
The core data width is 16 bits. All internal registers are
organized as 16-bit wide words. Data space memory is
organized in byte addressable, 16-bit wide blocks.
Figure 3-3 depicts a sample data space memory map
for the dsPIC33F device with 33 Kbytes of RAM.
3.3.4
DATA ALIGNMENT
To help maintain backward compatibility with
PICmicro® devices and improve data space memory
usage efficiency, the dsPIC33F instruction set supports
both word and byte operations. Data is aligned in data
memory and registers as words, but all data space EAs
resolve to bytes. Data byte reads will read the complete
word which contains the byte, using the Least
Significant bit (LSb) of any EA to determine which byte
to select.
As a consequence of this byte accessibility, all effective
address calculations are internally scaled. For
example, the core would recognize that Post-Modified
Register Indirect Addressing mode, [Ws++], will result
in a value of Ws + 1 for byte operations and Ws + 2 for
word operations.
All word accesses must be aligned to an even address.
Misaligned word data fetches are not supported.
Should a misaligned read or write be attempted, a trap
will then be executed, allowing the system and/or user
to examine the machine state prior to execution of the
address Fault.
All effective addresses are 16 bits wide and point to
bytes within the data space. Therefore, the data space
address range is 64 Kbytes or 32K words, though the
implemented memory locations vary from one device to
another.
3.3.2
DMA RAM
Every dsPIC33F device contains 2 Kbytes of DMA RAM
located at the end of Y data space. Memory locations in
the DMA RAM space are accessible simultaneously by
the CPU and the DMA Controller module. DMA RAM is
utilized by the DMA Controller to store data to be
transferred to various peripherals using DMA, as well as
data transferred from various peripherals using DMA.
When the CPU and the DMA Controller attempt to
concurrently write to the same DMA RAM location, the
hardware ensures that the CPU is given precedence in
accessing the DMA RAM location. Therefore, the DMA
RAM provides a reliable means of transferring DMA
data without ever having to stall the CPU.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 11
dsPIC33F
FIGURE 3-3:
SAMPLE DATA SPACE MEMORY MAP
Most Significant Byte
Address
MSB
2-Kbyte
SFR Space
0x0001
Least Significant Byte
Address
16 Bits
LSB
SFR Space
0x0000
0x07FE
0x0800
0x07FF
0x0801
8-Kbyte
X Data RAM (X)
Data Space
0x3FFF
0x4001
0x3FFE
0x4000
Y Data RAM (Y)
0x77FE
0x7800
0x77FF
0x7801
DMA RAM
0x7FFF
0x8001
X Data
Unimplemented (X)
0x7FFE
0x8000
Optionally
Mapped
into Program
Memory
0xFFFE
0xFFFF
Note:
This data memory map is for the largest memory dsPIC33F device. Data memory maps for other
devices may vary.
DS70155C-page 12
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
3.4
3.4.3
DSP Engine
The DSP engine consists of a high-speed, singlecycle, 17-bit x 17-bit multiplier, a barrel shifter and a
40-bit adder/subtractor with two target accumulators,
round and saturation logic, all of which enable efficient
execution of computationally intensive DSP
algorithms. The 17-bit x 17-bit multiplier is also utilized
for MCU-based multiply instructions.
The DSP engine also has the capability to perform
inherent accumulator-to-accumulator operations, which
require no additional data. These instructions are ADD,
SUB and NEG. This feature greatly simplifies basic
arithmetic operations on 32-bit or 40-bit data.
A block diagram of the DSP engine is shown in
Figure 3-4.
3.4.1
17 x 17-BIT MULTIPLIER
The 17 x 17-bit multiplier is capable of signed or
unsigned operation. It can suitably scale its output to
support either 1.31 fractional (Q31) or 32-bit integer
results, thereby diminishing the need to manually
post-process multiplication results for fractional data.
3.4.2
SATURATION AND OVERFLOW
The adder has an additional saturation block that
controls accumulator data saturation, if selected. It
uses the result of the adder, the overflow status bits
described above and the user-configured control bits to
determine when to saturate and to what value to
saturate (a 40-bit or a 32-bit value).
In addition to adder/subtractor saturation, writes to data
space can also be saturated, but without affecting the
contents of the source accumulator.
The rounding logic performs a conventional (biased) or
convergent (unbiased) data rounding function during
an accumulator write (store). The Round mode is userselectable. Rounding generates a 16-bit, 1.15 data
value, which is passed to the data space write
saturation logic. Data space write saturation ensures
that the data in the accumulator is written back
accurately even when rounding is performed. If
rounding is not indicated by the instruction, a truncated
1.15 data value is stored and the least significant word
is simply discarded.
40-BIT ACCUMULATORS
The data accumulators have a 40-bit adder/subtractor
with automatic sign extension logic. It can select one of
two accumulators (A or B) as its pre-accumulation
source and post-accumulation destination. For the ADD
and LAC instructions, the data to be accumulated or
loaded can be optionally scaled via the barrel shifter
prior to accumulation.
The adder/subtractor generates overflow status bits,
SA/SB and OA/OB, which are latched and reflected in
the Status register and can also optionally generate an
arithmetic error trap:
• Overflow from bit 39. This is a catastrophic
overflow in which the sign of the accumulator is
destroyed.
• Overflow into guard bits 32 through 39. This is a
recoverable overflow. This bit (OA/OB) is set
whenever all the guard bits are not identical to
each other.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 13
dsPIC33F
FIGURE 3-4:
DSP ENGINE BLOCK DIAGRAM
40
S
a
40 Round t 16
u
Logic r
a
t
e
40-bit Accumulator A
40-bit Accumulator B
Saturate
Adder
Enable
Negate
40
40
40
Barrel
Shifter
16
X Data Bus
40
Y Data Bus
Sign-Extend
32
16
Zero Backfill
32
33
17-bit
Multiplier/Scaler
Operand Latches
16
16
To/From W Array
DS70155C-page 14
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
4.0
DIRECT MEMORY ACCESS
• Indirect addressing of DMA RAM locations with or
without automatic post-increment
• Peripheral Indirect Addressing – In some
peripherals, the DMA RAM read/write addresses
may be partially derived from the peripheral
• One-Shot Block Transfers – Terminating DMA
transfer after one block transfer
• Continuous Block Transfers – Reloading DMA
RAM buffer start address after every block
transfer is complete
• Ping-Pong Mode – Switching between two DMA
RAM start addresses between successive block
transfers, thereby filling two buffers alternately
• Automatic or manual initiation of block transfers
• Each channel can select from 32 possible
sources of data sources or destinations
Direct Memory Access (DMA) is a very efficient
mechanism of copying data between peripheral SFRs
(e.g., UART Receive register, Input Capture 1 buffer)
and buffers or variables stored in RAM with minimal
CPU intervention. The DMA Controller can
automatically copy entire blocks of data, without the
user software having to read or write peripheral Special
Function Registers (SFRs) every time a peripheral
interrupt occurs. To exploit the DMA capability, the
corresponding user buffers or variables must be
located in DMA RAM space.
The DMA Controller features eight identical data
transfer channels, each with its own set of control and
status registers. The UART, SPI, DCI, Input Capture,
Output Compare, ECAN™ and A/D modules can utilize
DMA. Each DMA channel can be configured to copy
data either from buffers stored in DMA RAM to
peripheral SFRs or from peripheral SFRs to buffers in
DMA RAM.
For each DMA channel, a DMA interrupt request is
generated when a block transfer is complete.
Alternatively, an interrupt can be generated when half of
the block has been filled. Additionally, a DMA error trap
is generated in either of the following Fault conditions:
Each channel supports the following features:
• DMA RAM data write collision between the CPU
and a peripheral
• Peripheral SFR data write collision between the
CPU and the DMA Controller
• Word or byte-sized data transfers
• Transfers from peripheral to DMA RAM or DMA
RAM to peripheral
FIGURE 4-1:
TOP LEVEL SYSTEM ARCHITECTURE USING A DEDICATED TRANSACTION BUS
Peripheral Indirect Address
DMA
Control
DMA Controller
DMA RAM
SRAM
PORT 1
SRAM X-Bus
DMA
Ready
Peripheral 3
DMA
Channels
PORT 2
CPU
DMA
DMA DS Bus
CPU Peripheral DS Bus
CPU
CPU
Non-DMA
Ready
Peripheral
DMA
DMA
Ready
Peripheral 1
CPU
DMA
DMA
Ready
Peripheral 2
Note: CPU and DMA address buses are not shown for clarity.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 15
dsPIC33F
5.0
EXCEPTION PROCESSING
The dsPIC33F has four processor exceptions (traps)
and up to 67 sources of interrupts, which must be
arbitrated based on a priority scheme.
The processor core is responsible for reading the
Interrupt Vector Table (IVT) and transferring the
address contained in the interrupt vector to the
program counter.
Each individual interrupt source has its own vector
address and can be individually enabled and prioritized
in user software. Each interrupt source also has its own
status flag. This independent control and monitoring of
the interrupt eliminates the need to poll various status
flags to determine the interrupt source
Table 5-1 contains information about the interrupt
vector.
The Interrupt Vector Table (IVT) and Alternate Interrupt
Vector Table (AIVT) are placed near the beginning of
program memory (0x000004) for ease of debugging.
Certain interrupts have specialized control bits for
features like edge or level triggered interrupts, interrupton-change, etc. Control of these features remains within
the peripheral module, which generates the interrupt.
The interrupt controller hardware pre-processes the
interrupts before they are presented to the CPU.
The interrupts and traps are enabled, prioritized and
controlled using centralized Special Function Registers.
The special DISI instruction can be used to disable
the processing of interrupts of priorities 6 and lower for
a certain number of instruction cycles, during which
the DISI bit remains set.
TABLE 5-1:
INTERRUPT VECTORS
Vector
Number
IVT Address
AIVT Address
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
0x000014
0x000016
0x000018
0x00001A
0x00001C
0x00001E
0x000020
0x000022
0x000024
0x000026
0x000028
0x00002A
0x00002C
0x00002E
0x000030
0x000032
0x000034
0x000036
0x000038
0x00003A
0x00003C
0x00003E
0x000040
0x000042
0x000044
0x000046
0x000048
0x00004A
0x00004C
0x00004E
0x000050
0x000052
0x000114
0x000116
0x000118
0x00011A
0x00011C
0x00011E
0x000120
0x000122
0x000124
0x000126
0x000128
0x00012A
0x00012C
0x00012E
0x000130
0x000132
0x000134
0x000136
0x000138
0x00013A
0x00013C
0x00013E
0x000140
0x000142
0x000144
0x000146
0x000148
0x00014A
0x00014C
0x00014E
0x000150
0x000152
DS70155C-page 16
Interrupt Source
INT0 – External Interrupt 0
IC1 – Input Compare 1
OC1 – Output Compare 1
T1 – Timer1
DMA0 – DMA Channel 0
IC2 – Input Capture 2
OC2 – Output Compare 2
T2 – Timer2
T3 – Timer3
SPI1E – SPI1 Error
SPI1D – SPI1 Transfer Done
U1RX – UART1 Receiver
U1TX – UART1 Transmitter
ADC1 – A/D Converter 1
DMA1 – DMA Channel 1
Reserved
I2C1D – I2C1 Transfer Done
I2C1E – I2C1 Bus Collision Error
Reserved
Change Notification Interrupt
INT1 – External Interrupt 1
ADC2 – A/D Converter 2
IC7 – Input Capture 7
IC8 – Input Capture 8
DMA2 – DMA Channel 2
OC3 – Output Compare 3
OC4 – Output Compare 4
T4 – Timer4
T5 – Timer5
INT2 – External Interrupt 2
U2RX – UART2 Receiver
U2TX – UART2 Transmitter
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
TABLE 5-1:
INTERRUPT VECTORS (CONTINUED)
Vector
Number
IVT Address
AIVT Address
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
0x000054
0x000056
0x000058
0x00005A
0x00005C
0x00005E
0x000060
0x000062
0x000064
0x000066
0x000068
0x00006A
0x00006C
0x00006E
0x000070
0x000072
0x000074
0x000076
0x000078
0x00007A
0x00007C
0x00007E
0x000080
0x000082
0x000084
0x000086
0x000088
0x00008A
0x00008C
0x00008E
0x000090
0x000092
0x000094
0x000096
0x000098
0x00009A
0x00009C
0x00009E
0x0000A0
0x000154
0x000156
0x000158
0x00015A
0x00015C
0x00015E
0x000160
0x000162
0x000164
0x000166
0x000168
0x00016A
0x00016C
0x00016E
0x000170
0x000172
0x000174
0x000176
0x000178
0x00017A
0x00017C
0x00017E
0x000180
0x000182
0x000184
0x000186
0x000188
0x00018A
0x00018C
0x00018E
0x000190
0x000192
0x000194
0x000196
0x000198
0x00019A
0x00019C
0x00019E
0x0001A0
79
0x0000A2
0x0001A2
80-125
0x0000A40x0000FE
0x0001A40x0001FE
© 2005 Microchip Technology Inc.
Interrupt Source
SPI2E – SPI2 Error
SPI1D – SPI1 Transfer Done
C1RX – ECAN1 Receive Data Ready
C1 – CAN1 Event
DMA3 – DMA Channel 3
IC3 – Input Capture 3
IC4 – Input Capture 4
IC5 – Input Capture 5
IC6 – Input Capture 6
OC5 – Output Compare 5
OC6 – Output Compare 6
OC7 – Output Compare 7
OC8 – Output Compare 8
Reserved
DMA4 – DMA Channel 4
T6 – Timer6
T7 – Timer7
I2C2D – I2C2 Transfer Done
I2C2E – I2C2 Bus Collision Error
T8 – Timer8
T9 – Timer9
INT3 – External Interrupt 3
INT4 – External Interrupt 4
C2RX – ECAN2 Receive Data Ready
C2 – CAN2 Event
PWM – PWM Period Match
QEI – Position Counter Compare
DCIE – DCI Error
DCID – DCI Transfer Done
DMA5 – DMA Channel 5
RTC – Real-Time Clock
FLTA – MCPWM Fault A
FLTB – MCPWM Fault B
U1E – UART1 Error
U2E – UART2 Error
Reserved
DMA6 – DMA Channel 6
DMA7 – DMA Channel 7
C1TX – ECAN1 Transmit Data Request
Reserved (for devices marked “PS”)
C2TX – ECAN2 Transmit Data Request
Reserved (for devices marked “PS”)
Reserved
Preliminary
DS70155C-page 17
dsPIC33F
5.1
Interrupt Priority
5.3
Each interrupt source can be user-assigned to one of
8 priority levels, 0 through 7. Levels 7 and 1 represent
the highest and lowest maskable priorities,
respectively. A priority level of 0 disables the interrupt.
Since more than one interrupt request source may be
assigned to a user-specified priority level, a means is
provided to assign priority within a given level. This
method is called “Natural Order Priority”.
The Natural Order Priority of an interrupt is numerically
identical to its vector number. The Natural Order
Priority scheme has 0 as the highest priority and 74 as
the lowest priority.
The ability for the user to assign every interrupt to one
of eight priority levels implies that the user can assign
a very high overall priority level to an interrupt with a
low Natural Order Priority, thereby providing much
flexibility in designing applications that use a large
number of peripherals.
5.2
Interrupt Nesting
Interrupts, by default, are nestable. Any ISR that is in
progress may be interrupted by another source of
interrupt with a higher user-assigned priority level.
Interrupt nesting may be optionally disabled by
setting the NSTDIS control bit (INTCON1<15>).
When the NSTDIS control bit is set, all interrupts in
progress will force the CPU priority to level 7 by
setting IPL<2:0> = 111. This action will effectively
mask all other sources of interrupt until a RETFIE
instruction is executed. When interrupt nesting is
disabled, the user-assigned interrupt priority levels
will have no effect, except to resolve conflicts
between simultaneous pending interrupts.
The IPL<2:0> bits become read-only when interrupt
nesting is disabled. This prevents the user software
from setting IPL<2:0> to a lower value, which would
effectively re-enable interrupt nesting.
TABLE 5-2:
Traps
Traps can be considered as non-maskable, nestable
interrupts that adhere to a fixed priority structure.
Traps are intended to provide the user a means to
correct erroneous operation during debug and when
operating within the application. If the user does not
intend to take corrective action in the event of a trap
error condition, these vectors must be loaded with the
address of a software routine that will reset the device.
Otherwise, the trap vector is programmed with the
address of a service routine that will correct the trap
condition.
The dsPIC33F has four implemented sources of
non-maskable traps:
•
•
•
•
•
Oscillator Failure Trap
Address Error Trap
Stack Error Trap
Math Error Trap
DMA Trap
Many of these trap conditions can only be detected
when they happen. Consequently, the instruction that
caused the trap is allowed to complete before
exception processing begins. Therefore, the user may
have to correct the action of the instruction that
caused the trap.
Each trap source has a fixed priority as defined by its
position in the IVT. An oscillator failure trap has the
highest priority, while an arithmetic error trap has the
lowest priority.
Table 5-2 contains information about the trap vector.
5.4
Generating a Software Interrupt
Any available interrupt can be manually generated by
user software (even if the corresponding peripheral is
disabled), simply by enabling the interrupt and then
setting the interrupt flag bit when required.
TRAP VECTORS
Vector Number
IVT Address
AIVT Address
Trap Source
0
0x000004
0x000084
1
0x000006
0x000086
Oscillator Failure
2
0x000008
0x000088
Address Error
Reserved
3
0x00000A
0x00008A
Stack Error
4
0x00000C
0x00008C
Math Error
5
0x00000E
0x00008E
DMA Error Trap
6
0x000010
0x000090
Reserved
7
0x000012
0x000092
Reserved
DS70155C-page 18
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
6.0
SYSTEM INTEGRATION
System management services provided by the
dsPIC33F device family include:
•
•
•
•
•
•
Control of clock options and oscillators
Power-on Reset
Oscillator Start-up Timer/Stabilizer
Watchdog Timer with RC oscillator
Fail-Safe Clock Monitor
Reset by multiple sources
6.1
Clock Options and Oscillators
There are 7 clock options provided by the dsPIC33F:
•
•
•
•
•
•
FRC Oscillator
FRC Oscillator with PLL
Primary (XT, HS or EC) Oscillator
Primary Oscillator with PLL
Secondary (LP) Oscillator
LPRC Oscillator
The primary oscillator can use one of the following as
its clock source:
2.
3.
The output of the oscillator (or the output of the PLL if
a PLL mode has been selected) is divided by 4 to
generate the device instruction clock (FCY). FCY
defines the operating speed of the device, and speeds
up to 40 MHz are supported by the dsPIC33F
architecture.
The dsPIC33F oscillator system provides:
The FRC (Fast RC) internal oscillator runs at a nominal
frequency of 7.37 MHz. The user software can tune the
FRC frequency. User software can specify a factor by
which this clock frequency is scaled.
1.
The clock signals generated by the FRC and primary
oscillators can be optionally applied to an on-chip
Phase Locked Loop (PLL) to provide a wide range of
output frequencies for device operation. The input to
the PLL can be in the range of 1.6 MHz to 16 MHz, and
the PLL Phase Detector Input Divider, PLL Multiplier
Ratio and PLL Voltage Controlled Oscillator (VCO) can
be individually configured by user software to generate
output frequencies in the range of 25 MHz to 160 MHz.
XT (Crystal): Crystals and ceramic resonators in
the range of 3 MHz to 10 MHz. The crystal is
connected to the OSC1 and OSC2 pins.
HS (High-Speed Crystal): Crystals in the range
of 10 MHz to 40 MHz. The crystal is connected
to the OSC1 and OSC2 pins.
EC (External Clock): External clock signal in the
range of 0.8 MHz to 64 MHz. The external clock
signal is directly applied to the OSC1 pin.
• Various external and internal oscillator options as
clock sources
• An on-chip PLL to scale the internal operating
frequency to the required system clock frequency
• The internal FRC oscillator can also be used with
the PLL, thereby allowing full-speed operation
without any external clock generation hardware
• Clock switching between various clock sources
• Programmable clock postscaler for system power
savings
• A Fail-Safe Clock Monitor (FSCM) that detects
clock failure and takes fail-safe measures
• A Clock Control register (OSCCON)
• Nonvolatile configuration bits for main oscillator
selection.
A simplified block diagram of the oscillator system is
shown in Figure 6-1.
The secondary (LP) oscillator is designed for low power
and uses a 32 kHz crystal or ceramic resonator. The LP
oscillator uses the SOSCI and SOSCO pins.
The LPRC (Low-Power RC) internal oscIllator runs at a
nominal frequency of 32.768 kHz. Another scaled
reference clock is used by the Watchdog Timer (WDT)
and Fail-Safe Clock Monitor (FSCM).
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 19
dsPIC33F
FIGURE 6-1:
OSC1
OSC2
OSCILLATOR SYSTEM BLOCK DIAGRAM
Primary
Oscillator
PLL
Module
Primary Osc
Internal Fast
RC (FRC)
Oscillator
Secondary Osc
SOSCO
SOSCI
Secondary
Oscillator
32 kHz
Clock
Switching
and
Control
Block
FOSC
FCY
Divide by 4
Internal Low-Power
RC (LPRC)
Oscillator
To Timer1
6.2
Power-on Reset
6.4
When a supply voltage is applied to the device, a
Power-on Reset is generated. A new Power-on Reset
event is generated if the supply voltage falls below the
device threshold voltage (VPOR). An internal POR
pulse is generated when the rising supply voltage
crosses the POR circuit threshold voltage.
6.3
Oscillator Start-up Timer/Stabilizer
(OST)
An Oscillator Start-up Timer (OST) is included to
ensure that a crystal oscillator (or ceramic resonator)
has started and stabilized. The OST is a simple, 10-bit
counter that counts 1024 TOSC cycles before releasing
the oscillator clock to the rest of the system. The timeout period is designated as TOST. The TOST time is
involved every time the oscillator has to restart (i.e., on
Power-on Reset (POR) and wake-up from Sleep). The
Oscillator Start-up Timer is applied to the LP oscillator,
XT and HS modes (upon wake-up from Sleep, POR
and BOR) for the primary oscillator.
DS70155C-page 20
Watchdog Timer (WDT)
The primary function of the Watchdog Timer (WDT) is
to reset the processor in the event of a software
malfunction. The WDT is a free-running timer that runs
off the on-chip LPRC oscillator, requiring no external
component. The WDT continues to operate even if the
main processor clock (e.g., the crystal oscillator) fails.
The Watchdog Timer can be “Enabled” or “Disabled”
either through a configuration bit (FWDTEN) in the
Configuration register, or through an SFR bit
(SWDTEN).
Any device programmer capable of programming
dsPIC® DSC devices (such as Microchip’s MPLAB®
PM3 Programmer) allows programming of this and
other configuration bits to the desired state. If enabled,
the WDT increments until it overflows or “times out”. A
WDT time-out forces a device Reset (except during
Sleep).
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
6.5
Fail-Safe Clock Monitor (FSCM)
6.6
The Fail-Safe Clock Monitor (FSCM) allows the device
to continue to operate even in the event of an oscillator
failure. The FSCM function is enabled by programming.
If the FSCM function is enabled, the LPRC internal
oscillator runs at all times (except during Sleep mode)
and is not subject to control by the Watchdog Timer.
In the event of an oscillator failure, the FSCM
generates a clock failure trap event and switches the
system clock over to the FRC oscillator. The application
program then can either attempt to restart the oscillator,
or execute a controlled shutdown. The trap can be
treated as a warm Reset by simply loading the Reset
address into the oscillator fail trap vector.
© 2005 Microchip Technology Inc.
Reset System
The Reset system combines all Reset sources and
controls the device Master Reset signal.
Device Reset sources include:
•
•
•
•
•
•
•
POR: Power-on Reset
BOR: Brown-out Reset
SWR: RESET Instruction
EXTR: MCLR Reset
WDTR: Watchdog Timer Time-out Reset
TRAPR: Trap Conflict
IOPUWR: Attempted execution of an Illegal
Opcode, or Indirect Addressing, using an
Uninitialized W register
Preliminary
DS70155C-page 21
dsPIC33F
7.0
DEVICE POWER MANAGEMENT
Power management services
dsPIC33F devices include:
provided
by
the
• Real-Time Clock Source Switching
• Power-Saving Modes
The processor exits (wakes up) from Sleep on one of
these events:
• Any interrupt source that is individually enabled
• Any form of device Reset
• A WDT time-out
7.2.2
7.1
Real-Time Clock Source Switching
Configuration bits determine the clock source upon
Power-on Reset (POR) and Brown-out Reset (BOR).
Thereafter, the clock source can be changed between
permissible clock sources. The OSCCON register
controls the clock switching and reflects system clock
related status bits. To reduce power consumption, the
user can switch to a slower clock source.
7.2
Power-Saving Modes
The dsPIC33F devices have two reduced power
modes that can be entered through execution of the
PWRSAV instruction.
• Sleep Mode: The CPU, system clock source and
any peripherals that operate on the system clock
source are disabled. This is the lowest power
mode of the device.
• Idle Mode: The CPU is disabled but the system
clock source continues to operate. Peripherals
continue to operate but can optionally be disabled.
• Doze Mode: The CPU clock is temporarily slowed
down relative to the peripheral clock by a
user-selectable factor.
These modes provide an effective way to reduce power
consumption during periods when the CPU is not in use.
7.2.1
SLEEP MODE
When the device enters Sleep mode:
• System clock source is shut down. If an on-chip
oscillator is used, it is turned off.
• Device current consumption is at minimum
provided that no I/O pin is sourcing current.
• Fail-Safe Clock Monitor (FSCM) does not operate
during Sleep mode because the system clock
source is disabled.
• LPRC clock continues to run in Sleep mode if the
WDT is enabled.
• BOR circuit, if enabled, remains operative during
Sleep mode
• WDT, if enabled, is automatically cleared prior to
entering Sleep mode.
• Some peripherals may continue to operate in
Sleep mode. These peripherals include I/O pins
that detect a change in the input signal, or
peripherals that use an external clock input. Any
peripheral that is operating on the system clock
source is disabled in Sleep mode.
DS70155C-page 22
Preliminary
IDLE MODE
When the device enters Idle mode:
•
•
•
•
CPU stops executing instructions
WDT is automatically cleared
System clock source remains active
Peripheral modules, by default, continue to
operate normally from the system clock source
• Peripherals, optionally, can be shut down in Idle
mode using their ‘stop-in-idle’ control bit.
• If the WDT or FSCM is enabled, the LPRC also
remains active
The processor wakes from Idle mode on these events:
• Any interrupt that is individually enabled
• Any source of device Reset
• A WDT time-out
Upon wake-up from Idle, the clock is re-applied to the
CPU and instruction execution begins immediately
starting with the instruction following the PWRSAV
instruction, or the first instruction in the Interrupt
Service Routine (ISR).
7.2.3
DOZE MODE
The Doze mode provides the user software the ability
to temporarily reduce the processor instruction cycle
frequency relative to the peripheral frequency. Clock
frequency ratios of 1:1, 1:2, 1:4, 1:8, 1:16, 1:32, 1:64
and 1:128 are supported.
For example, suppose the device is operating at
20 MIPS and the CAN module has been configured for
500 kbps bit rate based on this device operating speed.
If the device is now placed in Doze mode with a clock
frequency ratio of 1:4, the CAN module will continue to
communicate at the required bit rate of 500 kbps, but
the CPU now starts executing instructions at a
frequency of 5 MIPS.
This feature further reduces the power consumption
during periods where relatively less CPU activity is
required.
When the device is operating in Doze mode, the
hardware ensures that there is no loss of
synchronization between peripheral events and SFR
accesses by the CPU.
© 2005 Microchip Technology Inc.
dsPIC33F
8.0
dsPIC33F PERIPHERALS
The Digital Signal Controller (DSC) family of 16-bit
DSC devices provides the integrated functionality of
many peripherals. Specific peripheral functions
include:
• Analog-to-Digital Converters
- 10-bit High-Speed A/D Converter
- 12-bit High-Resolution A/D Converter
• General Purpose 16-Bit Timers
• Motor Control PWM module
• Quadrature Encoder Interface module
• Input Capture module
• Output Compare/PWM module
• Data Converter Interface
• Serial Peripheral Interface (SPI™) module
• UART module
• I2C™ module
• Controller Area Network (CAN) module
• I/O pins
8.1
8.2
Analog-to-Digital Converters
The Analog-to-Digital (A/D) Converters provide up to
32 analog inputs with both single-ended and differential
inputs. These modules offer on-board sample and hold
circuitry.
To minimize control loop errors due to finite update
times (conversion plus computations), a high-speed
low-latency ADC is required.
In addition, several hardware features have been
included in the peripheral interface to improve real-time
performance in a typical DSP-based application.
•
•
•
•
•
General Purpose Timer Modules
The General Purpose (GP) timer modules provide the
time base elements for input capture and output
compare/PWM. They can be configured for Real-Time
Clock operation as well as various timer/counter
modes. The timer modes count pulses of the internal
time base, whereas counter modes count external
pulses that appear on the timer clock pin.
The dsPIC33F device supports up to nine 16-bit timers
(Timer1 through Timer9). Eight of the 16-bit timers can
be configured as four 32-bit timers (Timer2/3, Timer4/5,
Timer6/7 and Timer8/9). Each timer has several
selectable operating modes.
8.2.1
TIMER1
The Timer1 module (Figure 8-1) is a 16-bit timer that can
serve as the time counter for an asynchronous RealTime Clock, or operate as a free-running interval timer/
counter. The 16-bit timer has the following modes:
Result alignment options
Automated sampling
Automated channel scanning
Dual port data buffer
External conversion start control
The A/D Converter is available in either of the following
configurations:
• 10-bit, 1.1 Msps A/D module:
- 2.2 Msps A/D conversion using 2 channels
• 12-bit, 500 ksps A/D module:
- 1 Msps A/D conversion using 2 channels
• ±1 LSB max Integral Nonlinearity (INL)
(3.3V ±10%)
• Up to 4 on-chip sample and hold amplifiers in
each A/D
- Enables simultaneous sampling of 2, 4 or
8 analog inputs
• Automated channel scanning
• Single-supply operation: 3.0-3.6V
• 2.2 Msps or 1 Msps sampling rate at 3.0V
• Ability to convert during CPU Sleep and Idle
modes
• Conversion start can be manual or synchronized
with 1 of 4 trigger sources (automatic, Timer3,
external interrupt, PWM period match)
• A/D can use DMA for buffer storage
• Lower and upper half of buffer can be filled on
alternate conversions
• 16-Bit Timer
• 16-Bit Synchronous Counter
• 16-Bit Asynchronous Counter
Further, the following operational characteristics are
supported:
Key features of the A/D module include:
•
•
•
•
•
•
•
•
Timer1, when operating in Real-Time Clock (RTC)
mode, provides time of day and event time-stamping
capabilities. Key operational features of the RTC are:
10-bit or 12-bit resolution
Unipolar differential sample/hold amplifiers
Up to 32 input channels
Selectable voltage reference sources
- External VREF+ and VREF- pins available
• ±1 LSB max Differential Nonlinearity (DNL)
(3.3V ±10%)
© 2005 Microchip Technology Inc.
•
•
•
•
Timer gated by external pulse
Selectable prescaler settings
Timer operation during CPU Idle and Sleep modes
Interrupt on 16-Bit Period register match or falling
edge of external gate signal
Operation from 32 kHz LP oscillator
8-bit prescaler
Low power
Real-Time Clock interrupts
Preliminary
DS70155C-page 23
dsPIC33F
FIGURE 8-1:
16-BIT TIMER1 MODULE BLOCK DIAGRAM
PR1
Equal
Comparator x 16
TSYNC
1
Reset
Sync
TMR1
0
0
T1IF
Event Flag
1
Q
D
Q
CK
TGATE
TCS
TGATE
TGATE
TON
SOSCO/
T1CK
TCKPS<1:0>
2
1x
LPOSCEN
Gate
Sync
01
TCY
00
Prescaler
1, 8, 64, 256
SOSCI
8.2.2
TIMER2/3
8.2.3
The Timer2/3 module is a 32-bit timer (which can be
configured as two 16-bit timers) with selectable
operating modes. These timers are used by other
peripheral modules, such as:
• Input Capture
• Output Compare/Simple PWM
Timer2/3 has the following modes:
• Two independent 16-bit timers (Timer2 and
Timer3) with Timer and Synchronous Counter
modes
• Single 32-Bit Timer
• Single 32-Bit Synchronous Counter
•
•
•
•
ADC conversion start trigger
32-bit timer gated by external pulse
Selectable prescaler settings
Timer counter operation during Idle and Sleep
modes
• Interrupt on a 32-Bit Period register match
• Timer2/3 can use DMA for buffer storage
DS70155C-page 24
The Timer4/5, Timer6/7 and Timer8/9 modules are
similar in operation to the Timer2/3 module. Differences
include:
• These modules do not support the ADC event
trigger feature
• These modules can not be used by other
peripheral modules, such as input capture and
output compare
8.3
Further, the following operational characteristics are
supported:
TIMER4/5, TIMER6/7, TIMER8/9
Motor Control PWM Module
The Motor Control PWM (MCPWM) module simplifies
the task of generating multiple, synchronized pulsewidth modulated outputs. In particular, the following
power and motion control applications are supported:
•
•
•
•
Three-Phase AC Induction Motor
Switched Reluctance (SR) Motor
Brushless DC (BLDC) Motor
Uninterrupted Power Supply (UPS)
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
The PWM module has the following features:
8.3.1
• Dedicated time base supports TCY/2 PWM edge
resolution
• Two output pins (pair) for each PWM generator
• Complementary or independent operation for
each output pin pair
• Hardware dead-time generators for
Complementary mode
• Output pin polarity defined by nonvolatile device
configuration bits
• Multiple output modes:
- Edge-Aligned mode
- Center-Aligned mode
- Center-Aligned mode with double updates
- Single Event mode
• Manual override register for PWM output pins
• Hardware Fault input pins with programmable
function
• Trigger for synchronizing A/D samples and
conversions to PWM timing
• Each output pin associated with the PWM can be
individually enabled
The PWM time base is provided by a 15-bit timer with
a prescaler and postscaler. The PWM time base can be
configured for four different modes of operation:
TABLE 8-1:
•
•
•
•
PWM TIME BASE
Free-Running mode
Single-Shot mode
Continuous Up/Down Count mode
Continuous Up/Down Count mode with interrupts
for double updates
The Up/Down Counting modes support center-aligned
PWM generation. The Single-Shot mode allows the
PWM module to support pulse control of certain
Electronically Commutated Motors (ECMs).
Table 8-1 lists the frequencies and resolutions that can
be attained as a function of the dsPIC33F device
instruction cycle frequency.
EXAMPLE PWM FREQUENCIES AND RESOLUTIONS, 1:1 PRESCALER
TCY (FCY)
PTPER Value
PWM Resolution
PWM Frequency*
25 ns (40 MHz)
0x7FFF
16 bits
1220 Hz
25 ns (40 MHz)
0x03FF
11 bits
39.1 kHz
50 ns (20 MHz)
0x7FFF
16 bits
610 Hz
50 ns (20 MHz)
0x01FF
10 bits
39.1 kHz
100 ns (10 MHz)
0x7FFF
16 bits
305 Hz
100 ns (10 MHz)
0x00FF
9 bits
39.1 kHz
200 ns (5 MHz)
0x7FFF
16 bits
153 Hz
200 ns (5 MHz)
0x007F
8 bits
39.1 kHz
* PWM frequencies will be 1/2 the value indicated for center-aligned operation.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 25
dsPIC33F
FIGURE 8-2:
8-OUTPUT PWM MODULE BLOCK DIAGRAM
PWMCON1
PWM Enable and Mode SFRs
PWMCON2
DTCON1
Dead-Time Control SFRs
DTCON2
FLTACON
Fault Pin Control SFRs
FLTBCON
OVDCON
PWM Manual
Control SFR
PWM Generator #4
16-Bit Data Bus
PDC4 Buffer
PDC4
Comparator
PWM Generator
#3
PTMR
Channel 4 Dead-Time
Generator and
Override Logic
PWM4H
Channel 3 Dead-Time
Generator and
Override Logic
PWM3H
Comparator
PWM Generator
#2
PTPER
PWM Generator
#1
PTPER Buffer
PWM4L
Output
Driver
Block
PWM3L
Channel 2 Dead-Time
Generator and
Override Logic
PWM2H
Channel 1 Dead-Time
Generator and
Override Logic
PWM1H
PWM2L
PWM1L
FLTA
PTCON
FLTB
Comparator
SEVTDIR
SEVTCMP
Special Event
Postscaler
Special Event Trigger
PTDIR
PWM Time Base
Note:
Details of PWM Generator #1, #2 and #3 are not shown for clarity.
DS70155C-page 26
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
8.4
Quadrature Encoder Interface
(QEI) Module
increment when the shaft is rotating one direction and
decrement when the shaft is rotating in the other
direction.
Quadrature encoders (also referred to as incremental
encoders or optical encoders) are used in position and
speed detection of rotating motion systems.
Quadrature encoders enable closed-loop control of
many motor control applications, such as Switched
Reluctance (SR) Motor and AC Induction Motor
(ACIM).
The QEI module (Figure 8-3) includes:
• Three input pins for two phase signals and index
pulse
• Programmable digital noise filters on inputs
• Quadrature decoder providing counter pulses and
count direction
• 16-bit up/down position counter
• Count direction status
• x2 and x4 count resolution
• Two modes of Position Counter Reset
• General Purpose16-Bit Timer/Counter mode
• Interrupts generated by QEI or counter events
Typically, three outputs termed, Phase A, Phase B and
INDEX, provide information that can be decoded to
provide information on the movement of the motor
shaft, including distance and direction.
A quadrature decoder captures the phase signals and
index pulse and converts the information into a numeric
count of the position pulses. Generally, the count will
FIGURE 8-3:
QUADRATURE ENCODER INTERFACE BLOCK DIAGRAM
TQCKPS<1:0>
Sleep Input
TQCS
TCY
Synchronize
Det
2
0
Prescaler
1, 8, 64, 256
1
1
QEIM<2:0>
0
D
TQGATE
CK
QEA
Programmable
Digital Filter
UPDN_SRC
0
QEICON<11>
2
QEB
Programmable
Digital Filter
INDX
Programmable
Digital Filter
Q
16-Bit Up/Down Counter
(POSCNT)
Quadrature
Encoder
Interface Logic
Reset
Comparator/
Zero Detect
Equal
3
QEIM<2:0>
Mode Select
1
QEIIF
Event
Flag
Q
Max Count Register
(MAXCNT)
3
PCDOUT
0
UPDN
1
Existing Pin Logic
Up/Down
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 27
dsPIC33F
8.5
Input Capture Module
The input capture module is useful in applications
requiring frequency (period) and pulse measurement.
The dsPIC33F devices support up to eight input
capture channels.
The input capture module captures the 16-bit value of
the selected time base register when an event occurs
at the ICx pin. The events that cause a capture event
are listed below in three categories:
1.
2.
3.
Simple Capture Event modes
- Capture timer value on every falling edge of
input at ICx pin
- Capture timer value on every rising edge of
input at ICx pin
Capture timer value on every edge (rising and
falling)
Prescaler Capture Event modes
- Capture timer value on every 4th rising
edge of input at ICx pin
- Capture timer value on every 16th rising
edge of input at ICx pin
Each input capture channel can select between one of
two 16-bit timers (Timer2 or Timer3) for the time base.
The selected timer can use either an internal or an
external clock.
Other operational features include:
The dsPIC33F device may have up to eight output
compare channels, designated OC1 through OC8.
Refer to the specific device data sheet for the number
of channels available in a particular device. All output
compare channels are functionally identical.
Each output compare channel can use one of two
selectable time bases. The time base is selected using
the OCTSEL bit (OCxCON<3>). An ‘x’ in the pin,
register or bit name denotes the specific output
compare channel. Refer to the device data sheet for the
specific timers that can be used with each output
compare channel number.
Each output compare module has the following modes
of operation:
• Single Compare Match mode
• Dual Compare Match mode generating
- Single Output Pulse
- Continuous Output Pulses
• Simple Pulse-Width Modulation mode
- With Fault Protection Input
- Without Fault Protection Input
Output compare channels, OC1 and OC2, support
DMA data transfers.
8.7
Data Converter Interface Module
The dsPIC33F Data Converter Interface (DCI) module
allows simple interfacing to devices such as audio
coder/decoders (codecs), A/D Converters and D/A
Converters.
• Device wake-up from capture pin during CPU
Sleep and Idle modes
• Interrupt on input capture event
• 4-word FIFO buffer for capture values
- Interrupt optionally generated after 1, 2, 3 or
4 buffer locations are filled
• Input capture can also be used to provide
additional sources of external interrupts.
The following interfaces are supported:
• Framed Synchronous Serial Transfer (Single or
Multi-Channel)
• Inter-IC Sound (I2S) Interface
• AC-Link (AC’97) Compliant mode
Input capture channels IC1 and IC2 support DMA data
transfers.
The output compare module features are quite useful
in applications that require controlled timing pulses or
PWM modulated pulse streams.
Many codecs intended for use in audio applications
support sampling rates between 8 kHz and 48 kHz and
use one of the interface protocols listed above. The
DCI automatically handles the interface timing
associated with these codecs. No overhead from the
CPU is required until the requested amount of data has
been transmitted and/or received by the DCI. Up to four
data words can be transferred between CPU interrupts.
The output compare module has the ability to compare
the value of a selected time base with the value of one
or two compare registers (depending on the operation
mode selected). Furthermore, it has the ability to
generate a single output pulse, or a repetitive
sequence of output pulses, on a compare match event.
Like most dsPIC33F peripherals, it also has the ability
to generate interrupts on compare match events.
The data word length for the DCI is programmable up
to 16 bits to match the data size of the dsPIC33F CPU.
However, many codecs have data word sizes greater
than 16 bits. Long data word lengths can be supported
by the DCI. The DCI is configured to transmit/receive
the long word in multiple 16-bit time slots. This
operation is transparent to the user and the long data
word is stored in consecutive register locations.
8.6
Output Compare/PWM Module
DS70155C-page 28
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Figure 8-4 is a block diagram of the DCI module. The
DCI can support up to 16 time slots in a data frame for
a maximum frame size of 256 bits. There are control
FIGURE 8-4:
bits for each time slot in the data frame that determine
whether the DCI will transmit/receive during the time
slot. The DCI module supports DMA data transfers.
DCI MODULE BLOCK DIAGRAM
BCG Control Bits
CSCKD
Sample Rate
Generator
FOSC/4
CSCK
COFSD
Word Size Selection bits
Frame
Synchronization
Generator
16-Bit Data Bus
Frame Length Selection bits
DCI Mode Selection bits
COFS
Receive Buffer
Registers w/Shadow
DCI Buffer
Control Unit
15
Transmit Buffer
Registers w/Shadow
0
DCI Shift Register
CSDI
CSDO
8.8
SPI™ Module
The Serial Peripheral Interface (SPI) module is a
synchronous serial interface for communicating with
other peripheral or microcontroller devices such as
serial EEPROMs, shift registers, display drivers, A/D
Converters, etc. It is compatible with Motorola® SPI and
SIOP interfaces.
This SPI module includes all SPI modes. A Frame
Synchronization mode is also included for support of
voice band codecs.
A series of 8 or 16 clock pulses (depending on mode)
shift out the 8 or 16 bits (depending on whether a byte
or word is being transferred) and simultaneously shift in
8 or 16 bits of data from the SDI pin. An interrupt is
generated when the transfer is complete.
Slave select synchronization allows selective enabling
of SPI slave devices, which is particularly useful when
a single master is connected to multiple slaves.
The SPI1 and SPI2 modules support DMA data
transfers.
Four pins make up the serial interface: SDI, Serial Data
Input; SDO, Serial Data Output; SCK, Shift Clock Input
or Output; SS, Active-Low Slave Select, which also
serves as the FSYNC (Frame Synchronization Pulse).
A device set up as an SPI master provides the serial
communication clock signal on its SCK pin.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 29
dsPIC33F
8.9
UART Module
The UART is a full-duplex asynchronous system that
can communicate with peripheral devices, such as
personal computers, RS-232 and RS-485 interfaces.
The dsPIC33F devices have one or more UARTs.
The key features of the UART module are:
•
•
•
•
•
•
•
•
•
•
•
•
•
Full-duplex operation with 8 or 9-bit data
Even, odd or no parity options (for 8-bit data)
One or two Stop bits
Fully integrated Baud Rate Generator (BRG) with
16-bit prescaler
Baud rates range from up to 10 Mbps and down to
38 Hz at 40 MIPS
4-character deep transmit data buffer
4-character deep receive data buffer
Parity, framing and buffer overrun error detection
Full IrDA® support, including hardware encoding
and decoding of IrDA® messages
LIN bus support
- Auto wake-up from Sleep or Idle mode on
Start bit detect
- Auto-baud detection
- Break character support
Support for interrupt on address detect (9th bit = 1)
Separate transmit and receive interrupts
- On transmission of 1 or 4 characters
- On reception of 1, 3 and 4 characters
Loopback mode for diagnostics
The UART1 and UART2 modules support DMA data
transfers.
8.10
I2C™ Module
The I2C module is a synchronous serial interface, useful
for communicating with other peripheral or
microcontroller devices. These peripheral devices may
be serial EEPROMs, shift registers, display drivers, A/D
Converters, etc.
The Inter-Integrated Circuit (I2C) module offers full
hardware support for both slave and multi-master
operations.
2
The key features of the I C module are:
I2C slave operation supports 7 and 10-bit address
I2C master operation supports 7 and 10-bit address
I2C port allows bidirectional transfers between
master and slaves
• Serial clock synchronization for I2C port can be
used as a handshake mechanism to suspend and
resume serial transfer (serial clock stretching)
• I2C supports multi-master operation; detects bus
collision and will arbitrate accordingly
• Slew rate control for 100 kHz and 400 kHz bus speeds
•
•
•
DS70155C-page 30
Preliminary
In I2C mode, pin SCL is clock and pin SDA is data. The
module will override the data direction bits for these pins.
8.11
Controller Area Network (CAN)
Module
The Controller Area Network (CAN) module is a serial
interface useful for communicating with other CAN
modules or microcontroller devices. This interface/
protocol was designed to allow communications within
noisy environments.
The CAN module is a communication controller
implementing the CAN 2.0 A/B protocol, as defined in
the BOSCH specification. The module supports
CAN 1.2, CAN 2.0A, CAN2.0B Passive and CAN 2.0B
Active versions of the protocol. Details of these protocols
can be found in the BOSCH CAN specification.
The CAN module features:
• Implementation of the CAN protocol CAN 1.2,
CAN 2.0A and CAN 2.0B
• Standard and extended data frames
• Data lengths of 0-8 bytes
• Programmable bit rate up to 1 Mbit/sec
• Automatic response to remote frames
• Up to 16 receive buffers in DMA RAM
• FIFO Buffer mode (up to 64 messages deep)
• 16 full (standard/extended identifier) acceptance
filters
• 3 full acceptance filter masks
• Up to 8 transmit buffers in DMA RAM
• DMA can be used for transmission and reception
• Programmable wake-up functionality with
integrated low-pass filter
• Programmable Loopback mode supports self-test
operation
• Signaling via interrupt capabilities for all CAN
receiver and transmitter error states
• Programmable clock source
• Programmable link to timer module for
time-stamping and network synchronization
• Low-power Sleep and Idle mode
The CAN bus module consists of a protocol engine and
message buffering/control. The CAN protocol engine
handles all functions for receiving and transmitting
messages on the CAN bus. Messages are transmitted
by first loading the appropriate data registers. Status
and errors can be checked by reading the appropriate
registers. Any message detected on the CAN bus is
checked for errors and then matched against filters to
see if it should be received and stored in one of the
receive registers.
© 2005 Microchip Technology Inc.
dsPIC33F
8.12
I/O Pins
The I/O pins have the following features:
Some pins for the I/O pin functions are multiplexed with
an alternate function for the peripheral features on the
device. In general, when a peripheral is enabled, that
pin may not be used as a general purpose I/O pin.
All I/O port pins have three registers directly associated
with the operation of the port pin. The Data Direction
register determines whether the pin is an input or an
output. The Port Data Latch register provides latched
output data for the I/O pins. The Port register provides
visibility of the logic state of the I/O pins. Reading the
Port register provides the I/O pin logic state, while
writes to the Port register write the data to the Port Data
Latch register.
I/O port pins have latch bits (Port Data Latch register).
This register, when read, yields the contents of the I/O
latch and when written, modifies the contents of the I/O
latch, thus modifying the value driven out on a pin if the
corresponding Data Direction register bit is configured
for output. This can be used in read-modify-write
instructions that allow the user to modify the contents
of the Port Data Latch register, regardless of the status
of the corresponding pins.
© 2005 Microchip Technology Inc.
• Schmitt Trigger input
• CMOS output drivers
• Weak internal pull-up
All I/O pins configured as digital inputs can accept 5V
signals. This provides a degree of compatibility with
external signals of different voltage levels. However, all
digital outputs and analog pins can only generate
voltage levels up to 3.6V.
The input change notification module gives dsPIC33F
devices the ability to generate interrupt requests to the
processor in response to a change of state on selected
input pins. This module is capable of detecting input
changes of state, even in Sleep mode, when the clocks
are disabled. There are up to 24 external signals (CN0
through CN23) that can be selected (enabled) for
generating an interrupt request on a change of state.
Each of the CN pins also has an optional weak pull-up
feature.
Preliminary
DS70155C-page 31
dsPIC33F
9.0
dsPIC33F INSTRUCTION SET
9.2.1
9.1
Introduction
As the instruction summary tables show, most
instructions execute in a single cycle with the following
exceptions:
The dsPIC33F instruction set provides a broad suite of
instructions which supports traditional microcontroller
applications, and a class of instructions which supports
math-intensive applications. Since almost all of the
functionality of the PICmicro® MCU instruction set has
been maintained, this hybrid instruction set allows a
friendly DSP migration path for users already familiar
with the PICmicro microcontroller.
9.2
Instruction Set Overview
The dsPIC33F instruction set contains 84 instructions
which can be grouped into the ten functional categories
shown in Table 9-1. Table 9-2 defines the symbols
used in the instruction summary tables, Table 9-3
through Table 9-12. These tables define the syntax,
description, storage and execution requirements
for each instruction. Storage requirements are represented in 24-bit instruction words and execution
requirements are represented in instruction cycles.
Most instructions have several different addressing
modes and execution flows which require different
instruction variants. For instance, there are six unique
ADD instructions and each instruction variant has its
own instruction encoding.
TABLE 9-1:
dsPIC33F INSTRUCTION
GROUPS
Functional Group
Summary Table
Move Instructions
Table 9-3
Math Instructions
Table 9-4
Logic Instructions
Table 9-5
Rotate/Shift Instructions
Table 9-6
Bit Instructions
Table 9-7
Compare/Skip Instructions
Table 9-8
Program Flow Instructions
Table 9-9
Shadow/Stack Instructions
Table 9-10
Control Instructions
Table 9-11
DSP Instructions
Table 9-12
DS70155C-page 32
MULTI-CYCLE INSTRUCTIONS
• Instructions DO, MOV.D, POP.D, PUSH.D,
TBLRDH, TBLRDL, TBLWTH and TBLWTL
require 2 cycles to execute.
• Instructions DIVF, DIV.S, DIV.U are singlecycle instructions, which should be executed
18 consecutive times as the target REPEAT
instruction.
• Instructions that change the program counter also
require 2 cycles to execute, with the extra cycle
executed as a NOP. Skip instructions, which skip
over a 2-word instruction, require 3 instruction
cycles to execute with 2 cycles executed as a
NOP.
• The RETFIE, RETLW and RETURN are special
cases of instructions that change the program
counter. These execute in 3 cycles unless an
exception is pending, and then they execute in
2 cycles.
Note:
9.2.2
Instructions that access program memory
as data, using Program Space Visibility,
incur some cycle count overhead.
MULTI-WORD INSTRUCTIONS
As the instruction summary tables show, almost all
instructions consume one instruction word (24 bits),
with the exception of the CALL, DO and GOTO
instructions, which are flow instructions listed in
Table 9-9. These instructions require two words of
memory because their opcodes embed large literal
operands.
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
TABLE 9-2:
SYMBOLS USED IN SUMMARY TABLES
Symbol
Description
#
Literal operand designation
Acc
Accumulator A or Accumulator B
AWB
Accumulator Write Back
bit4
4-bit wide bit position (0:15)
Expr
Absolute address, label or expression (resolved by the linker)
f
File register address
lit1
1-bit literal (0:1)
lit4
4-bit literal (0:15)
lit5
5-bit literal (0:31)
lit8
8-bit literal (0:255)
lit10
10-bit literal (0:255 for Byte mode, 0:1023 for Word mode)
lit14
14-bit literal (0:16383)
lit16
16-bit literal (0:65535)
lit23
23-bit literal (0:8388607)
Slit4
Signed 4-bit literal (-8:7)
Slit6
Signed 6-bit literal (-16:16)
Slit10
Signed 10-bit literal (-512:511)
Slit16
Signed 16-bit literal (-32768:32767)
TOS
Top-of-Stack
Wb
Base working register
Wd
Destination working register (direct and indirect addressing)
Wm, Wn
Working register divide pair (dividend, divisor)
Wm*Wm
Working register multiplier pair (same source register)
Wm*Wn
Working register multiplier pair (different source registers)
Wn
Both source and destination working register (direct addressing)
Wnd
Destination working register (direct addressing)
Wns
Source working register (direct addressing)
WREG
Default working register
Ws
Source working register (direct and indirect addressing)
Wx
Source addressing mode and working register for X data bus prefetch
Wxd
Destination working register for X data bus prefetch
Wy
Source addressing mode and working register for Y data bus prefetch
Wyd
Destination working register for Y data bus prefetch
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 33
dsPIC33F
TABLE 9-3:
MOVE INSTRUCTIONS
Assembly
Syntax
EXCH
Wns,Wnd
MOV
MOV
Description
Words
Cycles
Swap Wns and Wnd
1
1
f {,WREG}
Move f to destination
1
1
WREG,f
Move WREG to f
1
1
MOV
f,Wnd
Move f to Wnd
1
1
MOV
Wns,f
Move Wns to f
1
1
MOV.b
#lit8,Wnd
Move 8-bit literal to Wnd
1
1
MOV
#lit16,Wnd
Move 16-bit literal to Wnd
1
1
MOV
[Ws+Slit10],Wnd
Move [Ws + signed 10-bit offset] to Wnd
1
1
MOV
Wns,[Wd+Slit10]
Move Wns to [Wd + signed 10-bit offset]
1
1
MOV
Ws,Wd
Move Ws to Wd
1
1
MOV.D
Ws,Wnd
Move double Ws to Wnd:Wnd + 1
1
2
MOV.D
Wns,Wd
Move double Wns:Wns + 1 to Wd
1
2
SWAP
Wn
Wn = byte or nibble swap Wn
1
1
TBLRDH
Ws,Wd
Read high program word to Wd
1
2
TBLRDL
Ws,Wd
Read low program word to Wd
1
2
TBLWTH
Ws,Wd
Write Ws to high program word
1
2
TBLWTL
Ws,Wd
Write Ws to low program word
1
2
Note:
When the optional {,WREG} operand is specified, the destination of the instruction is WREG. When
{,WREG} is not specified, the destination of the instruction is the file register f.
Note:
Table 9-3 through Table 9-12 present the base instruction syntax for the dsPIC33F. These instructions do not
include all of the available addressing modes. For example, some instructions show the Byte Addressing
mode and others do not.
DS70155C-page 34
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
TABLE 9-4:
Assembly
MATH INSTRUCTIONS
Syntax
Description
Words
Cycles
ADD
ADD
ADD
ADD
ADDC
ADDC
ADDC
ADDC
DAW.B
DEC
DEC
DEC2
DEC2
DIV.S
DIV.SD
DIV.U
DIV.UD
DIVF
INC
INC
INC2
INC2
MUL
MUL.SS
MUL.SU
MUL.SU
MUL.US
MUL.UU
MUL.UU
SE
SUB
SUB
SUB
SUB
SUBB
SUBB
f {,WREG}
#lit10,Wn
Wb,#lit5,Wd
Wb,Ws,Wd
f {,WREG}
#lit10,Wn
Wb,#lit5,Wd
Wb,Ws,Wd
Wn
f {,WREG}
Ws,Wd
f {,WREG}
Ws,Wd
Wm,Wn
Wm,Wn
Wm,Wn
Wm,Wn
Wm,Wn
f {,WREG}
Ws,Wd
f {,WREG}
Ws,Wd
f
Wb,Ws,Wnd
Wb,#lit5,Wnd
Wb,Ws,Wnd
Wb,Ws,Wnd
Wb,#lit5,Wnd
Wb,Ws,Wnd
Ws,Wnd
f {,WREG}
#lit10, Wn
Wb,#lit5,Wd
Wb,Ws,Wd
f {,WREG}
#lit10, Wn
Destination = f + WREG
Wn = lit10 + Wn
Wd = Wb + lit5
Wd = Wb + Ws
Destination = f + WREG + (C)
Wn = lit10 + Wn + (C)
Wd = Wb + lit5 + (C)
Wd = Wb + Ws + (C)
Wn = decimal adjust Wn
Destination = f – 1
Wd = Ws – 1
Destination = f – 2
Wd = Ws – 2
Signed 16/16-bit integer divide*
Signed 32/16-bit integer divide*
Unsigned 16/16-bit integer divide*
Unsigned 32/16-bit integer divide*
Signed 16/16-bit fractional divide*
Destination = f + 1
Wd = Ws + 1
Destination = f + 2
Wd = Ws + 2
W3:W2 = f * WREG
{Wnd + 1,Wnd} = sign(Wb) * sign(Ws)
{Wnd + 1,Wnd} = sign(Wb) * unsign(lit5)
{Wnd + 1,Wnd} = sign(Wb) * unsign(Ws)
{Wnd + 1,Wnd} = unsign(Wb) * sign(Ws)
{Wnd + 1,Wnd} = unsign(Wb) * unsign(lit5)
{Wnd + 1,Wnd} = unsign(Wb) * unsign(Ws)
Wnd = sign-extended Ws
Destination = f – WREG
Wn = Wn – lit10
Wd = Wb – lit5
Wd = Wb – Ws
Destination = f – WREG – (C)
Wn = Wn – lit10 – (C)
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
18
18
18
18
18
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
SUBB
Wb,#lit5,Wd
Wd = Wb – lit5 – (C)
1
1
SUBB
Wb,Ws,Wd
Wd = Wb – Ws – (C)
1
1
SUBBR
f {,WREG}
Destination = WREG – f – (C)
1
1
SUBBR
Wb,#lit5,Wd
Wd = lit5 – Wb – (C)
1
1
SUBBR
Wb,Ws,Wd
Wd = Ws – Wb – (C)
1
1
SUBR
f {,WREG}
Destination = WREG – f
1
1
SUBR
Wb,#lit5,Wd
Wd = lit5 – Wb
1
1
SUBR
Wb,Ws,Wd
Wd = Ws – Wb
1
1
ZE
Ws,Wnd
Wnd = zero-extended Ws
1
1
* Divide instructions are interruptible on a cycle-by-cycle basis. Also, divide instructions must be accompanied by a
REPEAT instruction, which adds 1 extra cycle.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 35
dsPIC33F
TABLE 9-5:
LOGIC INSTRUCTIONS
Assembly
Syntax
Description
Words
Cycles
AND
f {,WREG}
Destination = f .AND. WREG
1
1
AND
#lit10,Wn
Wn = lit10 .AND. Wn
1
1
AND
Wb,#lit5,Wd
Wd = Wb .AND. lit5
1
1
AND
Wb,Ws,Wd
Wd = Wb .AND. Ws
1
1
CLR
f
f = 0x0000
1
1
CLR
WREG
WREG = 0x0000
1
1
CLR
Wd
Wd = 0x0000
1
1
COM
f {,WREG}
Destination = f
1
1
COM
Ws,Wd
Wd = Ws
1
1
IOR
f {,WREG}
Destination = f .IOR. WREG
1
1
IOR
#lit10,Wn
Wn = lit10 .IOR. Wn
1
1
IOR
Wb,#lit5,Wd
Wd = Wb .IOR. lit5
1
1
IOR
Wb,Ws,Wd
Wd = Wb .IOR. Ws
1
1
NEG
f {,WREG}
Destination = f + 1
1
1
NEG
Ws,Wd
Wd = Ws + 1
1
1
SETM
f
f = 0xFFFF
1
1
SETM
WREG
WREG = 0xFFFF
1
1
SETM
Wd
Wd = 0xFFFF
1
1
XOR
f {,WREG}
Destination = f .XOR. WREG
1
1
XOR
#lit10,Wn
Wn = lit10 .XOR. Wn
1
1
XOR
Wb,#lit5,Wd
Wd = Wb .XOR. lit5
1
1
Wb,Ws,Wd
Wd = Wb .XOR. Ws
1
1
XOR
Note:
When the optional {,WREG} operand is specified, the destination of the instruction is WREG. When
{,WREG} is not specified, the destination of the instruction is the file register f.
DS70155C-page 36
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
TABLE 9-6:
ROTATE/SHIFT INSTRUCTIONS
Assembly
Syntax
ASR
f {,WREG}
Destination = arithmetic right shift f
ASR
Ws,Wd
Wd = arithmetic right shift Ws
1
1
ASR
Wb,#lit4,Wnd
Wnd = arithmetic right shift Wb by lit4
1
1
ASR
Wb,Wns,Wnd
Wnd = arithmetic right shift Wb by Wns
1
1
LSR
f {,WREG}
Destination = logical right shift f
1
1
LSR
Ws,Wd
Wd = logical right shift Ws
1
1
LSR
Wb,#lit4,Wnd
Wnd = logical right shift Wb by lit4
1
1
LSR
Wb,Wns,Wnd
Wnd = logical right shift Wb by Wns
1
1
RLC
f {,WREG}
Destination = rotate left through Carry f
1
1
RLC
Ws,Wd
Wd = rotate left through Carry Ws
1
1
RLNC
f {,WREG}
Destination = rotate left (no Carry) f
1
1
RLNC
Ws,Wd
Wd = rotate left (no Carry) Ws
1
1
RRC
f {,WREG}
Destination = rotate right through Carry f
1
1
RRC
Ws,Wd
Wd = rotate right through Carry Ws
1
1
RRNC
f {,WREG}
Destination = rotate right (no Carry) f
1
1
RRNC
Ws,Wd
Wd = rotate right (no Carry) Ws
1
1
SL
f {,WREG}
Destination = left shift f
1
1
SL
Ws,Wd
Wd = left shift Ws
1
1
SL
Wb,#lit4,Wnd
Wnd = left shift Wb by lit4
1
1
Wb,Wns,Wnd
Wnd = left shift Wb by Wns
1
1
SL
Note:
Description
Words
Cycles
1
1
When the optional {,WREG} operand is specified, the destination of the instruction is WREG. When
{,WREG} is not specified, the destination of the instruction is the file register f.
TABLE 9-7:
Assembly
BIT INSTRUCTIONS
Syntax
Description
Words
Cycles
BCLR
f,#bit4
Bit clear f
1
1
BCLR
Ws,#bit4
Bit clear Ws
1
1
BSET
f,#bit4
Bit set f
1
1
BSET
Ws,#bit4
Bit set Ws
1
1
BSW.C
Ws,Wb
Write C bit to Ws<Wb>
1
1
1
BSW.Z
Ws,Wb
Write SZ bit to Ws<Wb>
1
BTG
f,#bit4
Bit toggle f
1
1
BTG
Ws,#bit4
Bit toggle Ws
1
1
BTST
f,#bit4
Bit test f
1
1
BTST.C
Ws,#bit4
Bit test Ws to C
1
1
BTST.Z
Ws,#bit4
Bit test Ws to SZ
1
1
BTST.C
Ws,Wb
Bit test Ws<Wb> to C
1
1
BTST.Z
Ws,Wb
Bit test Ws<Wb> to SZ
1
1
BTSTS
f,#bit4
Bit test f then set f
1
1
BTSTS.C
Ws,#bit4
Bit test Ws to C then set Ws
1
1
BTSTS.Z
Ws,#bit4
Bit test Ws to SZ then set Ws
1
1
FBCL
Ws,Wnd
Find bit change from left (MSb) side
1
1
FF1L
Ws,Wnd
Find first one from left (MSb) side
1
1
FF1R
Ws,Wnd
Find first one from right (LSb) side
1
1
Note:
Bit positions are specified by bit4 (0:15) for word operations.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 37
dsPIC33F
TABLE 9-8:
COMPARE/SKIP INSTRUCTIONS
Assembly Syntax
Description
Words
Cycles
BTSC
f,#bit4
Bit test f, skip if clear
1
1 (2 or 3)
BTSC
Ws,#bit4
Bit test Ws, skip if clear
1
1 (2 or 3)
BTSS
f,#bit4
Bit test f, skip if set
1
1 (2 or 3)
BTSS
Ws,#bit4
Bit test Ws, skip if set
1
1 (2 or 3)
CP
f
Compare (f – WREG)
1
1
CP
Wb,#lit5
Compare (Wb – lit5)
1
1
CP
Wb,Ws
Compare (Wb – Ws)
1
1
CP0
f
Compare (f – 0x0000)
1
1
CP0
Ws
Compare (Ws – 0x0000)
1
1
CPB
f
Compare with Borrow (f – WREG – C)
1
1
CPB
Wb,#lit5
Compare with Borrow (Wb – lit5 – C)
1
1
1
1 (2 or 3)
CPB
Wb,Ws
Compare with Borrow (Wb – Ws – C)
1
CPSEQ
Wb,Wn
Compare Wb with Wn, Skip if Equal (Wb = Wn)
1
CPSGT
Wb,Wn
Signed Compare Wb with Wn, Skip if Greater Than (Wb > Wn)
1
1 (2 or 3)
CPSLT
Wb,Wn
Signed Compare Wb with Wn, Skip if Less Than (Wb < Wn)
1
1 (2 or 3)
Wb,Wn
Signed Compare Wb with Wn, Skip if Not Equal (Wb ≠ Wn)
1
1 (2 or 3)
CPSNE
Note 1:
2:
Bit positions are specified by bit4 (0:15) for word operations.
Conditional skip instructions execute in 1 cycle if the skip is not taken, 2 cycles if the skip is taken over a
one-word instruction and 3 cycles if the skip is taken over a two-word instruction.
DS70155C-page 38
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
TABLE 9-9:
PROGRAM FLOW INSTRUCTIONS
Assembly
Syntax
BRA
Expr
Branch unconditionally
BRA
Wn
Computed branch
1
2
BRA
C,Expr
Branch if Carry (no Borrow)
1
1 (2)
BRA
GE,Expr
Branch if greater than or equal
1
1 (2)
BRA
GEU,Expr
Branch if unsigned greater than or equal
1
1 (2)
BRA
GT,Expr
Branch if greater than
1
1 (2)
BRA
GTU,Expr
Branch if unsigned greater than
1
1 (2)
BRA
LE,Expr
Branch if less than or equal
1
1 (2)
BRA
LEU,Expr
Branch if unsigned less than or equal
1
1 (2)
BRA
LT,Expr
Branch if less than
1
1 (2)
BRA
LTU,Expr
Branch if unsigned less than
1
1 (2)
BRA
N,Expr
Branch if Negative
1
1 (2)
BRA
NC,Expr
Branch if not Carry (Borrow)
1
1 (2)
BRA
NN,Expr
Branch if not Negative
1
1 (2)
BRA
NOV,Expr
Branch if not Overflow
1
1 (2)
BRA
NZ,Expr
Branch if not Zero
1
1 (2)
BRA
OA,Expr
Branch if Accumulator A Overflow
1
1 (2)
BRA
OB,Expr
Branch if Accumulator B Overflow
1
1 (2)
BRA
OV,Expr
Branch if Overflow
1
1 (2)
BRA
SA,Expr
Branch if Accumulator A Saturate
1
1 (2)
BRA
SB,Expr
Branch if Accumulator B Saturate
1
1 (2)
BRA
Z,Expr
Branch if Zero
1
1 (2)
CALL
Expr
Call subroutine
2
2
CALL
Wn
Call indirect subroutine
1
2
DO
#lit14,Expr
Do code through PC + Expr, (lit14 + 1) times
2
2
DO
Wn,Expr
Do code through PC + Expr, (Wn + 1) times
2
2
GOTO
Expr
Go to address
2
2
GOTO
Wn
Go to address indirectly
1
2
RCALL
Expr
Relative call
1
2
RCALL
Wn
Computed call
1
2
REPEAT
#lit14
Repeat next instruction (lit14 + 1) times
1
1
REPEAT
Wn
Repeat next instruction (Wn + 1) times
1
1
Return from interrupt enable
1
3 (2)
Return with lit10 in Wn
1
3 (2)
Return from subroutine
1
3 (2)
RETFIE
RETLW
#lit10,Wn
RETURN
Note 1:
2:
Description
Words
Cycles
1
2
Conditional branch instructions execute in 1 cycle if the branch is not taken, or 2 cycles if the branch is
taken.
RETURN normally executes in 3 cycles; however, it executes in 2 cycles if an interrupt is pending.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 39
dsPIC33F
TABLE 9-10:
SHADOW/STACK INSTRUCTIONS
Assembly
Syntax
LNK
#lit14
POP
POP
POP.D
Words
Cycles
Link Frame Pointer
1
1
f
Pop TOS to f
1
1
Wd
Pop TOS to Wd
1
1
Wnd
Double pop from TOS to Wnd:Wnd + 1
1
2
Pop shadow registers
1
1
POP.S
Description
PUSH
f
Push f to TOS
1
1
PUSH
Ws
Push Ws to TOS
1
1
PUSH.D
Wns
Push double Wns:Wns + 1 to TOS
1
2
PUSH.S
Push shadow registers
1
1
ULNK
Unlink Frame Pointer
1
1
Words
Cycles
Clear Watchdog Timer
1
1
Disable interrupts for (lit14 + 1) instruction cycles
1
1
No operation
1
1
No operation
1
1
Enter Power-Saving mode lit1
1
1
Software device Reset
1
1
Words
Cycles
1
1
TABLE 9-11:
Assembly
CONTROL INSTRUCTIONS
Syntax
CLRWDT
DISI
#lit14
NOP
NOPR
PWRSAV
#lit1
RESET
TABLE 9-12:
Description
DSP INSTRUCTIONS
Assembly
Syntax
ADD
Acc
Add accumulators
ADD
Ws,#Slit4,Acc
16-bit signed add to Acc
1
1
CLR
Acc,Wx,Wxd,Wy,Wyd,AWB
Clear Acc
1
1
ED
Wm*Wm,Acc,Wx,Wy,Wxd
Euclidean distance (no accumulate)
1
1
EDAC
Wm*Wm,Acc,Wx,Wy,Wxd
Euclidean distance
1
1
LAC
Ws,#Slit4,Acc
Load Acc
1
1
MAC
Wm*Wn,Acc,Wx,Wxd,Wy,Wyd,AWB
Multiply and accumulate
1
1
MAC
Wm*Wm,Acc,Wx,Wxd,Wy,Wyd
Square and accumulate
1
1
MOVSAC
Acc,Wx,Wxd,Wy,Wyd,AWB
Move Wx to Wxd and Wy to Wyd
1
1
MPY
Wm*Wn,Acc,Wx,Wxd,Wy,Wyd
Multiply Wn by Wm to Acc
1
1
MPY
Wm*Wm,Acc,Wx,Wxd,Wy,Wyd
Square to Acc
1
1
MPY.N
Wm*Wn,Acc,Wx,Wxd,Wy,Wyd
-(Multiply Wn by Wm) to Acc
1
1
MSC
Wm*Wn,Acc,Wx,Wxd,Wy,Wyd,AWB
Multiply and subtract from Acc
1
1
NEG
Acc
Negate Acc
1
1
SAC
Acc,#Slit4,Wd
Store Acc
1
1
SAC.R
Acc,#Slit4,Wd
Store rounded Acc
1
1
SFTAC
Acc,#Slit6
Arithmetic shift Acc by Slit6
1
1
SFTAC
Acc,Wn
Arithmetic shift Acc by (Wn)
1
1
SUB
Acc
Subtract accumulators
1
1
DS70155C-page 40
Description
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
10.0
MICROCHIP DEVELOPMENT
TOOL SUPPORT
Microchip offers comprehensive development tools
and libraries to support the dsPIC33F architecture. In
addition, the company is partnering with many third
party tools manufacturers for additional dsPIC33F
device support. Table 10-1 lists development tools that
support the dsPIC33F family. The paragraphs that
follow describe each of the tools in more detail.
TABLE 10-1:
dsPIC33F DEVELOPMENT TOOLS
Essential
Hardware Tools
Essential
Software Tools
Development Tool
Description
Part #
From
MPLAB® IDE
(see Section 10.1 MPLAB Integrated Development Environment
Software)
Integrated Development Environment
SW007002
Microchip
MPLAB ASM30
(see Section 10.2 MPLAB ASM30
Assembler/Linker/Librarian)
Assembler (included in MPLAB IDE)
SW007002
Microchip
MPLAB SIM
(see Section 10.3 MPLAB SIM
Software Simulator)
Software Simulator (Included in MPLAB IDE)
SW007002
Microchip
MPLAB VDI
(see Section 10.4 MPLAB Visual
Device Initializer)
Visual Device Initializer for dsPIC33F
(included in MPLAB IDE)
SW007002
Microchip
MPLAB C30
(see Section 10.5 MPLAB C30 C
Compiler/Linker/Librarian)
ANSI C Compiler, Assembler, Linker and Librarian
SW006012
Microchip
MPLAB ICD 2
(see Section 10.6 MPLAB ICD 2
In-Circuit Debugger)
In-Circuit Debugger and Device Programmer
DV164005
Microchip
Full-Featured Device Programmer, Base Unit
DV007004
Microchip
MPLAB PM3
(see Section 10.7 MPLAB PM3
Universal Device Programmer)
Legend:
Socket Module for 100L TQFP Devices (14 mm x 14 mm)
TBD
Microchip
Socket Module for 80L TQFP Devices (12 mm x 12 mm)
TBD
Microchip
Socket Module for 64L TQFP Devices (10 mm x 10 mm)
TBD
Microchip
TBD = To Be Determined
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 41
dsPIC33F
10.1
MPLAB Integrated Development
Environment Software
The MPLAB Integrated Development Environment
(IDE) is available at no cost. The MPLAB IDE lets the
user edit, compile and emulate from a single user
interface, as depicted in Figure 10-1. Code can be
designed and developed for the dsPIC® DSC devices
in the same design environment as the PICmicro
microcontrollers. The MPLAB IDE is a 32-bit Windows®
operating system-based application that provides
many advanced features for the demanding engineer in
a modern, easy-to-use interface. MPLAB IDE
integrates:
•
•
•
•
Full-featured, color coded text editor
Easy to use project manager with visual display
Source level debugging
Enhanced source level debugging for ‘C’
(structures, automatic variables, etc.)
• Customizable toolbar and key mapping
• Dynamic status bar displays processor condition
FIGURE 10-1:
• Context sensitive, interactive on-line help
• Integrated MPLAB SIM instruction simulator
• User interface for MPLAB PM3 and PICSTART®
Plus device programmers (sold separately)
• User interface for MPLAB ICD 2 In-Circuit
Debugger (sold separately)
The MPLAB IDE allows:
• Editing of source files in either assembly or ‘C’
• One-touch compiling and downloading to dsPIC
DSC emulator or simulator
• Debugging using:
- Source files
- Machine code
- Mixed mode source and machine code
The ability to use the MPLAB IDE with multiple
development and debugging targets provides easy
transition from the cost-effective simulator to MPLAB
ICD 2, or to a full-featured emulator with minimal
retraining.
MPLAB® IDE DESKTOP
Set break/trace points with
a click of the mouse
Powerful Project Manager handles
multiple projects and all file types
Simply move your mouse over a
variable to view or modify
Color keyed editor makes
source code debug easier
Fully customizable watch windows
to view and modify registers and
memory locations
Status bar updates on
single step or run
DS70155C-page 42
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
10.2
MPLAB ASM30 Assembler/Linker/
Librarian
MPLAB ASM30 is a full-featured macro assembler.
User-defined macros, conditional assembly and a
variety of assembler directives make the MPLAB
ASM30 a powerful code generation tool.
The accompanying MPLAB LINK30 Linker and MPLAB
LIB30 Librarian modules allow efficient linking, library
creation and maintenance.
Notable features of the assembler include:
•
•
•
•
•
•
•
Support for the entire dsPIC DSC instruction set
Support for fixed-point and floating-point data
Available for Windows operating system
Command Line Interface
Rich Directive Set
Flexible Macro Language
MPLAB IDE compatibility
10.4
MPLAB Visual Device Initializer
The MPLAB Visual Device Initializer (VDI) simplifies
the task of configuring the dsPIC33F. MPLAB VDI
software allows you to configure the entire processor
graphically (see Figure 10-2). And when you’re done, a
mouse click generates your code in assembly or
‘C’ code. MPLAB VDI performs extensive error
checking on assignments and conflicts on pins,
memories and interrupts, as well as selection of
operating conditions. Generated code files are
integrated seamlessly with the rest of our application
code through MPLAB Project.
Detailed resource assignment and configuration
reports simplify project documentation. Key features of
MPLAB VDI include:
•
•
•
•
Drag-and-drop feature selection
One click configuration
Extensive error checking
Generates initialization code in the form of a
‘C’ callable assembly function
• Integrates seamlessly in MPLAB Project
• Printed reports ease project documentation
requirements
• MPLAB Visual Device Initializer is an MPLAB
plug-in and can be installed independently of
MPLAB IDE
Notable features of the linker include:
• Automatic or user-defined stack allocation
• Supports dsPIC DSC Program Space Visibility
(PSV) window
• Available for Windows operating systems
• Command Line Interface
• Linker scripts for all dsPIC DSC devices
• MPLAB IDE compatibility
FIGURE 10-2:
10.3
MPLAB® VDI DISPLAY
MPLAB SIM Software Simulator
The MPLAB SIM software simulator provides code
development for the dsPIC33F family in a PC-hosted
environment by simulating the dsPIC33F device on an
instruction level. On any instruction, you can examine
or modify the data areas and apply stimuli to any of the
pins from a file or by pressing a user-defined key.
The execution can be performed in Single-Step,
Execute-Until-Break or Trace mode. The MPLAB SIM
software simulator fully supports symbolic debugging
using the MPLAB C30 C compiler and assembler. The
software simulator gives you the flexibility to develop
and debug code outside of the laboratory environment,
making it an excellent multi-project software
development tool. Complex stimuli can be injected from
files, synchronous clocks or user-defined keys. Output
files log register activity for sophisticated post analysis.
Besides modeling the behavior of the CPU, MPLAB
SIM also supports the following peripherals:
• Timers
• Motor Control PWM
• Input Capture
• UART
• 12-Bit ADC
• I/O Ports
• 10-Bit ADC
• Program Flash
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 43
dsPIC33F
10.5
MPLAB C30 C Compiler/Linker/
Librarian
The MPLAB C30 has these characteristics:
The Microchip Technology MPLAB C30 C Compiler
provides ‘C’ language support for the dsPIC33F family.
This C compiler is a fully ANSI-compliant product with
standard libraries. It is highly optimized for the
dsPIC33F family and takes advantage of many
dsPIC33F architecture-specific features to help you
generate very efficient software code. Figure 10-3
illustrates the code size efficiency relative to several
competitors.
MPLAB C30 also provides extensions that allow for
excellent support of the hardware, such as interrupts
and peripherals. It is fully integrated with MPLAB IDE
for high-level source debugging.
FIGURE 10-3:
DS70155C-page 44
• 16-bit native data types
• Efficient use of register-based, 3-operand
instructions
• Complex addressing modes
• Efficient multi-bit shift operations
• Efficient signed/unsigned comparisons
MPLAB C30 comes complete with its own assembler,
linker and librarian. These allow Mixed mode ‘C’ and
assembly programs and link the resulting object files
into a single executable file. The compiler is sold
separately. The assembler, linker and librarian are
available for free with MPLAB C30.
MPLAB C30 also includes the Math Library, Peripheral
Library, DSP Library and standard ‘C’ libraries.
RELATIVE CODE SIZE (IN BYTES)
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
10.6
MPLAB ICD 2 In-Circuit Debugger
The MPLAB ICD 2 In-Circuit Debugger is a powerful,
low-cost, run-time development tool that uses in-circuit
debugging capability built into the dsPIC33F Flash
devices. This feature, along with Microchip’s In-Circuit
Serial Programming™ protocol, gives you cost-effective,
in-circuit debugging from the graphical user interface of
MPLAB IDE. It lets you develop and debug source code
by watching variables, single-stepping and setting
breakpoints, as well as running at full speed to test
hardware in real time.
The MPLAB PM3 programmer is designed with
40 programmable socket pins and therefore, each
socket module can be configured to support many
different devices. As a result, fewer socket modules are
required to support the entire line of Microchip parts.
The socket modules use multi-pin connectors for high
reliability and quick interchange.
When connected to a PC host system, the MPLAB
PM3 programmer is seamlessly integrated with the
MPLAB Integrated Development Environment (IDE),
providing a user-friendly programming interface.
The MPLAB ICD 2 has these features:
Key features of the MPLAB PM3 Programmer include:
•
•
•
•
• RS-232 or USB interface
• Integrated In-Circuit Serial Programming™
(ICSP™) interface
• Fast programming time
• Three operating modes:
- PC Host mode for full control
- Safe mode for secure data
- Stand-Alone mode for programming without
a PC
• Complete line of interchangeable socket modules
to support all Microchip devices and package
options (sold separately)
• SQTPSM serialization for programming unique
serial numbers while in PC Host mode.
• An alternate DOS command line interface for
batch control
• Large easy-to-read display
• Field upgradeable firmware allows quick new
device support
• Secure Digital (SD) and Multimedia Card (MMC)
external memory support
• Buzzer notification for noisy environments
Full-speed operation to the range of the device
Serial or USB PC connector
USB-powered from PC interface
Low noise power (VPP and VDD) for use with
analog and other noise sensitive applications
• Operation down to 2.0V
• Can be used as debugger and inexpensive serial
programmer
• Some device resources required (80 bytes of
RAM and 2 pins)
FIGURE 10-4:
MPLAB® ICD 2 IN-CIRCUIT
DEBUGGER
FIGURE 10-5:
10.7
MPLAB® PM3 DEVICE
PROGRAMMER
MPLAB PM3 Universal Device
Programmer
The MPLAB PM3 Universal Device Programmer is easy
to use with a PC, or as a stand-alone unit, to program
Microchip’s entire line of PICmicro devices as well as the
latest dsPIC33F DSC devices. The MPLAB PM3
features a large and bright LCD unit (128 x 64 pixels) to
display easy menus, programming statistics and status
information.
The MPLAB PM3 programmer has exceptional
programming speed for high production throughput,
especially important for large memory devices. It also
includes a Secure Digital/Multimedia Card slot for easy
and secure data storage and transfer.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 45
dsPIC33F
11.0
dsPIC33F DEVELOPMENT TOOLS
AND APPLICATION LIBRARIES
Microchip offers a comprehensive set of tools and
libraries to help with rapid development of dsPIC33F
device-based application(s).
TABLE 11-1:
Table 11-1 summarizes available and planned
dsPIC33F software tools and libraries. Microchip also
provides value added services, such as skilled/certified
technical application contacts, reference designs and
hardware and software developers. (Contact Microchip
DSCD Marketing for availability.)
MICROCHIP SOFTWARE DEVELOPMENT TOOLS AND APPLICATION LIBRARIES
Development Tool
Description
Part #
Math Library (see Section 11.1 Math
Library)
Double Precision and Floating-Point Library
(ASM, C Wrapper)
SW300020
Peripheral Library (see Section 11.2
Peripheral Driver Library)
Peripheral Initialization, Control and Utility Routines (C)
SW300021
DSP Library (see Section 11.3 DSP
Algorithm Library)
Essential DSP Algorithm Suite (Filters, FFT)
SW300022
dsPICworks™ Tool (see Section 11.4
dsPICworks™ Data Analysis and DSP
Software)
Graphical Data Analysis and Conversion Tool for DSP Algorithms
SW300023
Digital Filter Design (see Section 11.5 Digital Graphical IIR and FIR Filter Design Package for dsPIC33F
Filter Design Software Utility)
SW300001
TCP/IP Library (see Section 11.6 Microchip TCP/IP Connectivity and Protocol Support
TCP/IP Stack)
SW300024
Soft Modem Library (see Section 11.7 Soft V.22bis/V.22 Soft Modem Library
Modem Library)
V.32bis Soft Modem Library up to 5K units
Speech Recognition Library (see
Section 11.8 Speech Recognition Library)
Noise Suppression Library (see
Section 11.9 Noise Suppression Library)
Acoustic Echo Cancellation Library (see
Section 11.10 Acoustic Echo Cancellation
Library)
Symmetric Key Embedded Encryption
Library (see Section 11.11 Symmetric Key
Embedded Encryption Library)
SW300002
SW300003-5K
V.32bis Soft Modem Library up to 25K units
SW300003-25K
V.32bis Soft Modem Library up to 100K units
SW300003-100K
Evaluation Copy of V.32bis Soft Modem Library
SW300003-EVAL
Speech Recognition Library up to 5K units
SW300010-5K
Speech Recognition Library up to 25K units
SW300010-25K
Speech Recognition Library up to 100K units
SW300010-100K
Evaluation Copy of Speech Recognition Library
SW300010-EVAL
Noise Suppression Library up to 5K units
SW300040-5K
Noise Suppression Library up to 25K units
SW300040-25K
Noise Suppression Library up to 100K units
SW300040-100K
Evaluation Copy of Noise Suppression Library
SW300040-EVAL
Acoustic Echo Cancellation Library up to 5K units
SW300060-5K
Acoustic Echo Cancellation Library up to 25K units
SW300060-25K
Acoustic Echo Cancellation Library up to 100K units
SW300060-100K
Evaluation Copy of Acoustic Echo Cancellation Library
SW300060-EVAL
Symmetric Key Embedded Encryption Library up to 5K units
SW300050-5K
Symmetric Key Embedded Encryption Library up to 25K units
SW300050-25K
Symmetric Key Embedded Encryption Library up to 100K units
SW300050-100K
Evaluation Copy of Symmetric Key Embedded Encryption Library SW300050-EVAL
Asymmetric Key Embedded Encryption
Asymmetric Key Embedded Encryption Library up to 5K units
Library (see Section 11.12 Asymmetric Key Asymmetric Key Embedded Encryption Library up to 25K units
Embedded Encryption Library)
Asymmetric Key Embedded Encryption Library up to 100K units
Evaluation Copy of Asymmetric Key Embedded Encryption
Library
Speech Encoding/Decoding Library (see
Speech Encoding/Decoding Library up to 5K units
Section 11.13 Speech Encoding/Decoding Speech Encoding/Decoding Library up to 25K units
Library)
Speech Encoding/Decoding Library up to 100K units
Evaluation Copy of Speech Encoding/Decoding Library
DS70155C-page 46
Preliminary
SW300055-5K
SW300055-25K
SW300055-100K
SW300055-EVAL
SW300070-5K
SW300070-25K
SW300070-100K
SW300070-EVAL
© 2005 Microchip Technology Inc.
dsPIC33F
11.1
TABLE 11-2:
Math Library
The dsPIC33F Math Library is the compiled version of
the math library that is distributed with the highly
optimized, ANSI-compliant dsPIC33F MPLAB C30 C
Compiler (SW006012). It contains advanced single and
double-precision
floating-point
arithmetic
and
trigonometric functions from the standard ‘C’ header
file (math.h). The library delivers small program code
size and data size, reduced cycles and high accuracy.
Memory Usage (bytes)(1,2)
Code size
5250
Data size
4
Performance (cycles)(1,3)
Features
• The math library is callable from either MPLAB
C30 or dsPIC33F assembly language.
• The functions are IEEE-754 compliant, with
signed zero, signed infinity, NaN (Not a Number)
and denormal support and operated in the “Round
to Nearest” mode.
• Compatible with MPLAB ASM30 and MPLAB
LINK30, which are available at no charge from
Microchip’s web site.
add
122
sub
124
mul
109
div
361
Rem
385
Sqrt
492
Note 1:
2:
Table 11-2 shows the memory usage and performance
of the Math Library. Table 11-3 lists the math functions
that are included.
TABLE 11-3:
MEMORY USAGE AND
PERFORMANCE
3:
Results are based on using dsPIC33F
MPLAB C30 C Compiler (SW006012),
version 1.20.
Maximum “Memory Usage” when all
functions in the library are loaded. Most
applications will use less.
Average 32-bit floating-point performance
results.
MATH FUNCTIONS
Single and Double-Precision Floating-Point Functions
Arithmetic Functions
add, subtract, multiply, divide, remainder
Root and Power Functions
pow, sqrt
Trigonometric and Hyperbolic Functions
acos, asin, atan, atan2, cos, cosh, sin, sinh, tan, tanh
Logarithmic and Exponential Functions
exp, log, log10, frexp, ldexp
Rounding Functions
ceil, floor
Absolute Value Functions
fabs
Modular Arithmetic Functions
fmod, modf
Comparison and Conversions
comparison, integer and floating-point conversions
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 47
dsPIC33F
11.2
Peripheral Driver Library
11.3
DSP Algorithm Library
Microchip offers a free peripheral driver library that
supports the setup and control of dsPIC33F hardware
peripherals, including, but not limited to:
The free DSP library supports multiple filtering,
convolution, vector and matrix functions. Among the
supported functions are:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Analog-to-Digital Converter
Motor Control PWM
Quadrature Encoder Interface
UART
SPI™
Data Converter Interface
I2C™
General Purpose Timers
Input Capture
Output Compare/Simple PWM
CAN
I/O Ports and External Interrupts
Reset
In addition to the hardware peripherals, the library
supports software generated peripherals, such as
standard LCD drivers, which support an Hitachi style
controller.
The peripheral library consist of more than 270
functions, as well as several macros for simple tasks
such as enabling and disabling interrupts. All peripheral
driver routines are developed and optimized using the
MPLAB C30 C Compiler. Electronic documentation
accompanies the peripheral library to help you become
familiar with and implement the library functions.
Key features of the dsPIC33F Peripheral Library
include:
• A library file for each individual device from the
dsPIC33F family, including functions
corresponding to peripherals present in that
particular device.
• ‘C’ include files that let you take advantage of
predefined constants for passing parameters to
various library functions. There is an include file
for each peripheral module.
• Since the functions are in the form of precompiled
libraries, they can be called from a user
application program written in either MPLAB C30
C Compiler or dsPIC33F assembly language.
• Included ‘C’ source code allows you to customize
peripheral functions to suit your specific
application requirements.
• Predefined constants in the ‘C’ include files
eliminate the need to refer to the details and
structure of every Special Function Register while
initializing peripherals or checking status bits.
DS70155C-page 48
Cascaded Infinite Impulse Response (IIR) Filters
Correlation
Convolution
Finite Impulse Response (FIR) Filters
Windowing Functions
FFTs
LMS Filter
Vector Addition and Subtraction
Vector Dot Product
Vector Power
Matrix Addition and Subtraction
Matrix Multiplication
Some DSP functions use double-precision and
floating-point arithmetic. All DSP routines are
developed and optimized in dsPIC33F assembly
language and are callable from both assembly and ‘C’
language. The Microchip MPLAB C30 and IAR C
Compilers are supported.
Key features of the DSP Algorithm Library include:
• 49 total functions
• Full compliance with the Microchip dsPIC33F C30
C Compiler, Assembler and Linker
• Simple user interface – just one library file and
one header file
• Functions are both ‘C’ and assembly callable
• FIR filtering functions include support for Lattice,
Decimating, Interpolating and LMS filters
• IIR filtering functions include support for Canonic,
Transposed Canonic and Lattice filters
• FIR and IIR functions may be used with the filter
files generated by the dsPIC33F Filter Design
program
• Transform functions include support for in-place
and out-of-place DCT, FFT and IFFT transforms
• Window functions include support for Bartlett,
Blackman, Hamming, Hanning and Kaiser
windows
• Support for Program Space Visibility
• Complete function profile information including
register usage, cycle count and function size
information
• Electronic documentation is included to help you
comprehend and use the library functions
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
TABLE 11-4:
FUNCTION EXECUTION TIMES
Cycle Count
Equation
Function
Conditions(1)
Number of
Cycles(2)
Execution Time @
40 MIPS
Complex FFT(3)
—
N = 64
3739
93.5 μs
(3)
—
N = 128
8485
212.1 μs
Complex FFT(3)
—
N = 256
19055
476.4 μs
Complex FFT
Block FIR
53 + N(4 + M)
N = 32, M = 32
1205
30.1 μs
Block FIR Lattice
41 + N(4 + 7M)
N = 32, M = 32
7337
183.4 μs
36 + N(8 + 7S)
N = 32, S = 4
1188
29.7 μs
46 + N(16 + 7M)
N = 32, M = 8
2350
58.8 μs
20 + 3(C * R)
C = 8, R = 8
212
5.3 μs
16 + C(6 + 3(R – 1))
C = 8, R = 8
232
5.8 μs
Block IIR Canonic
Block IIR Lattice
Matrix Add
Matrix Transpose
17 + 3N
N = 32
113
2.8 μs
19 + 7(N – 2)
N = 32
229
5.7 μs
Vector Multiply
17 + 4N
N = 32
145
3.6 μs
Vector Power
16 + 2N
N = 32
80
2.0 μs
Vector Dot Product
Vector Max
Note 1:
2:
3:
11.4
C = # columns, N = # samples, M = # taps, S = # sections, R = # rows.
1 cycle = 25 nanoseconds @ 40 MIPS.
Complex FFT routine inherently prevents overflow.
dsPICworks™ Data Analysis and
DSP Software
FIGURE 11-1:
The dsPICworks tool is a free data analysis and signal
processing package for use with Microsoft®
Windows® 9x, Windows NT®, Windows 2000 and
Windows XP platforms. It provides an extensive
number of functions encompassing:
dsPICworks™ DATA
ANALYSIS AND DSP
SOFTWARE
• Wide variety of Signal Generators – Sine, Square,
Triangular, Window Functions, Noise
• Extensive DSP Functions – FFT, DCT, Filtering,
Convolution, Interpolation
• Extensive Arithmetic Functions – Algebraic
Expressions, Data Scaling, Clipping, etc.
• 1-D, 2-D and 3-D Displays
• Multiple Data Quantization and Saturation
Options
• Multi-Channel Data Support
• Automatic “Script File”-based Execution Options
available for any user-defined sequence of
dsPICworks Tool Functions
• File Import/Export interoperable with MPLAB IDE
• Digital Filtering Options support Filters generated
by dsPIC DSC Filter Design
• ASM30 Assembler File Option to export Data
Tables into dsPIC33F RAM
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 49
dsPIC33F
11.4.1
SIGNAL GENERATION
11.4.4
dsPICworks™ Data Analysis and DSP Software support
an extensive set of signal generators, including basic
sine, square and triangle wave generators, as well as
advanced generators for window functions, unit step,
unit sample, sine, exponential and noise functions.
Noise, with specified distribution, can be added to any
signal. Signals can be generated as 32-bit floating-point,
or as 16-bit fractional fixed-point values, for any desired
sampling rate. The length of the generated signal is
limited only by available disk space. Signals can be
imported or exported from or to MPLAB IDE file register
windows. Multi-channel data can be created by a set of
multiplexing functions.
11.4.2
DIGITAL SIGNAL PROCESSING
(DSP) AND ARITHMETIC
OPERATIONS
dsPICworks Data Analysis and DSP Software have a
wide range of DSP and arithmetic functions that can be
applied to signals. Standard DSP functions include
transform operations: FFT and DCT, convolution and
correlation, signal decimation, signal interpolation
sample rate conversion and digital filtering. Digital
filtering is an important part of the dsPICworks tool. It
uses filters designed by the sister-application, dsPIC
DSC Filter Design, and applies them to synthesized or
imported signals. The dsPICworks tool also features
special operations, such as signal clipping, scaling and
quantization, all of which are vital in real practical
analysis of DSP algorithms.
11.4.3
FILE IMPORT/EXPORT – MPLAB
IDE AND MPLAB ASM30 SUPPORT
dsPICworks Data Analysis and DSP Software allow
data to be imported from the external world in the form
of ASCII text or binary files. Conversely, it also allows
data to be exported out in the form of files. The
dsPICworks tool supports all file formats supported by
the MPLAB import/export table. This feature allows the
user to bring real-world data from MPLAB IDE into the
dsPICworks tool for analysis. The dsPICworks tool can
also create ASM30 assembler files that can be
included into the MPLAB workspace.
11.5
Digital Filter Design Software Utility
The Digital Filter Design tool for the dsPIC33F 16-bit
digital signal controllers makes designing, analyzing and
implementing Finite Impulse Response (FIR) and Infinite
Impulse Response (IIR) digital filters easy through a
menu-driven, user-intuitive interface. This tool performs
complex mathematical computations for filter design,
provides superior graphical displays and generates
comprehensive design reports. Desired filter frequency
specifications are entered and the tool automatically
generates the filter code and coefficient files ready to
use in the MPLAB Integrated Development Environment
(IDE). System analysis of the filter transfer function is
supported with multiple generated graphs, such as
magnitude, phase, group delay, log magnitude, impulse
response and pole/zero locations.
FIGURE 11-2:
DISPLAY AND MEASUREMENT
DIGITAL FILTER DESIGN
TOOL INTERFACE
dsPICworks Data Analysis and DSP Software have a
wide variety of display and measurement options.
Frequency domain data may be plotted in the form of
2-dimensional ‘spectrogram’ and 3-dimensional
‘waterfall’ options. The signals can be measured
accurately by a simple mouse click. The log window
shows current cursor coordinates, as well as derived
values, such as the difference from last position and
signal frequency. Signal strength can be measured
over a particular range of frequencies. Special support
also exists for displaying multi-channel and multiplexed
data. Graphs allow zoom options. The user can choose
from a set of color scheme options to customize display
settings.
DS70155C-page 50
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Key features of the Digital Filter Design tool include:
Finite Impulse Response Filter Design
• Design Method Selection
- FIR Windows Design
- FIR Equiripple Design (Parks-McClellan)
• Low-Pass, High-Pass, Band-Pass and Band-Stop
Filters
• FIR Filters can have up to 513 taps
• The following window functions are supported:
- Rectangular
- Hanning (Hann)
- Hamming
- Triangular
- Blackman
- Exact Blackman
- 3 Term Cosine
- 3 Term Cosine with Continuous 3rd Derivative
- Minimum 3 Term Cosine
- 4 Term Cosine
- 4 Term Cosine with continuous 5th Derivative
- Minimum 4 Term Cosine
- Good 4 Term Blackman Harris
- Harris Flat Top
- Kaiser
- Dolph-Tschebyscheff
- Taylor
- Gaussian
• Reports show design details, such as window
coefficients and impulse response prior to
multiplying by the window function
Infinite Impulse Response Filter Design
• Low-Pass, High-Pass, Band-Pass and Band-Stop
Filters
• Filter Orders up to 10 for Low-Pass and
High-Pass Filters
• Filter Orders up to 20 for Band-Pass and
Band-Stop Filters
• Five Analog Prototype Filters are available:
- Butterworth
- Tschebyscheff
- Inverse Tschebyscheff
- Elliptic
- Bessel
• Digital Transformations are performed by Bilinear
Transformation Method
• Reports show design details, such as all
transformations from normalized low-pass filter to
desired filter
© 2005 Microchip Technology Inc.
Code Generation Features
• Generated files are compliant with the Microchip
dsPIC33F C30 C Compiler, Assembler and Linker
• Choice of placement of coefficients in Program
Space or Data Space
• ‘C’ Wrapper/Header Code Generation
Graphs
• Magnitude Response vs. Frequency
• Log Magnitude vs. Frequency
• Phase Response vs. Frequency
• Group Delay vs. Frequency
• Impulse Response vs. Time (per sample)
• Step Response vs. Time (per sample)
• Pole and Zero Locations (IIR only)
11.6
Microchip TCP/IP Stack
The free Microchip TCP/IP Stack is a suite of programs
that can provide services to standard (HTTP Server,
Mail Client, etc.) or custom TCP/IP-based applications.
Users do not need to be an expert in TCP/IP
specifications to use it and only need specific
knowledge of TCP/IP in the accompanying HTTP
Server application.
This stack is implemented in a modular fashion, with all
of its services creating highly abstracted layers, each
layer accessing services from one or more layers
directly below it. The stack is optimized for size and is
designed to run on the dsPIC33F using the
dsPICDEM.net™ Development Board; however, it can
be easily retargeted to any hardware equipped with a
dsPIC33F. HTML web pages generated by the
dsPIC33F can be viewed with a standard web browser
such as Microsoft Internet Explorer.
Key features of the Microchip TCP/IP Stack include:
• Out-of-box support for Microchip C30 C Compiler
• Implements complete TCP state machine
• Multiple TCP and UDP sockets with simultaneous
connection/management
• Includes modules supporting various standard
protocols: MAC, SLIP, ARP, IP, ICMP, TCP,
SNMP, UDP, DHCP, FTP, IP Gleaning, HTTP,
MPFS (Microchip File System)
• Can be used as a part of the HTTP Server
(included) or any custom TCP/IP-based
application
• RTOS independent
Preliminary
DS70155C-page 51
dsPIC33F
11.7
Soft Modem Library
11.8
The Microchip data modem library is composed of
ITU-T compliant algorithms for V.21, V.22, V.22bis,
V.23, V.32 and V.32bis modem recommendations. Bell
standard 103 is also included in this library.
V.21, V.23 and Bell 103 are Frequency Shift Keying
(FSK) modems. V.32, V.32bis and V.22bis are
Quadrature Amplitude Modulation (QAM) modems. V.22
is a Quadrature Phase Shift Keying (QPSK) modem.
V.21, V.22, V.22bis, V.32 and V.32bis are all 2-wire, fullduplex modems. V.23 is a full-duplex modem when it
operates with a 75 bps backwards channel.
V.22bis includes fallback to V.22, V.23 and V.21
standards. V.32bis optionally falls back to V.22bis, V.22
and V.21 standards.
The dsPIC DSC Soft Modem is well-suited for small
transaction oriented applications, such as, but not
limited to:
•
•
•
•
•
•
•
•
•
POS Terminals
Set Top Boxes
Drop Boxes
Fire Panels
Internet Enabled Home Security Systems
Internet Connected Power, Gas and Water Meters
Internet Connected Vending Machines
Smart Appliances
Industrial Monitoring
Functions supporting ITU-T Recommendation V.42 are
provided with each library. V.42 contains a High-Level
Data Link Control (HDLC) protocol, referred to as Link
Access Procedure for Modems (LAPM) and defines
error correcting protocols for modems.
All data pump modulation and demodulation functions
are written in ASM30 assembly code yielding optimal
code size and execution time. The AT, V.42 and data
pump APIs are written in C30 C Compiler language.
Electronic documentation accompanies the modem
library to help you become familiar with and implement
the library functions. A comprehensive “dsPIC30F Soft
Modem Library User’s Guide” describes the required
APIs for the AT, V.42 and data pump layers.
Speech Recognition Library
The dsPIC Speech Recognition Library provides voice
control of embedded applications that require an
alternative user interface. With a vocabulary of up to
100 words, the Speech Recognition Library allows
users to control their application using spoken
commands. The Speech Recognition Library is an ideal
front end for hands-free products, such as modem
appliances, security panels and cell phones. The
Speech Recognition Library has very modest memory
and processing requirements and is targeted for the
dsPIC30F5011, dsPIC30F5013, dsPIC30F6012 and
dsPIC30F6014 processors.
Key features of the dsPIC DSC Speech Recognition
Library include:
• US English language support
• Speaker independent recognition of isolated
words
• No speaker training is required
• Hidden Markov Modem-based recognition system
• Recognition time < 500 msec
• Master library of 100 common words (listed in the
“dsPIC30F Speech Recognition Library User’s
Guide”)
• Windows operating system-based utility allows
the user to create a custom word library from the
master library
• Additional words can be added to the master
library (fee based)
• Data tables can be stored in external memory
• Optional keyword activation and silence detection
• Optional system self-test using a predefined
keyword
• Flexible API
• Full compliance with Microchip MPLAB C30 C
Compiler Language Tools
• “dsPIC30F Speech Recognition Library User’s
Guide” and “dsPIC30F Word Library Builder
User’s Guide”
• Designed to run on dsPICDEM™ 1.1 General
Purpose Development Board (DM300014)
11.8.1
RESOURCE REQUIREMENTS
• Sampling Interface: Si-3000 Audio Codec
operating at 12.0 kHz
• System Operating Frequency: 12.288, 18.432 or
24.576 MHz
• Computational Power: 8 MIPS
• Program Flash Memory: 18 KB + 1.5 KB for each
library word
• RAM: < 3.0 KB
DS70155C-page 52
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
11.9
Noise Suppression Library
11.10 Acoustic Echo Cancellation Library
The dsPIC DSC Noise Suppression Library provides a
function to suppress the effect of noise interfering with
a speech signal. This function is useful for microphonebased applications which have a potential for incoming
speech getting corrupted by ambient noise captured by
a microphone. It is especially suitable for systems in
which an acoustically isolated noise reference is not
available, such as:
The Acoustic Echo Cancellation (AEC) Library
provides a function to eliminate echo generated in the
acoustic path between a speaker and a microphone.
This function is useful for speech and telephony
applications in which a speaker and a microphone are
located in close proximity to each other and therefore,
susceptible to signals propagating from the speaker to
the microphone resulting in a perceptible and
distracting echo effect at the far end. It is especially
suitable for these applications:
•
•
•
•
•
•
Hands-Free Cell Phone Kits
Speakerphones
Intercoms
Teleconferencing Systems
Headsets
As a front end to a Speech Recognition or Speech
Encoding system
• Any microphone-based application that needs to
eliminate undesired noise
• Any application that needs to eliminate noise
interference from signals received over a
communication channel
The Noise Suppression Library uses an 8 kHz sampling
rate. However, the library includes sample rate
conversion functions that ensure interoperability with
libraries and speech sampling peripherals configured for
higher sampling rates (9.6 kHz, 11.025 kHz or 12 kHz).
Key features of the Noise Suppression Library include:
• All functions can be called from either a ‘C’ or
assembly application program
• Full compliance with the Microchip C30
C Compiler, Assembler and Linker
• Precompiled library archive files
• Highly optimized assembly code, utilizing DSP
instructions and advanced addressing modes
• Audio Bandwidth: 0-4 kHz at 8 kHz sampling rate
• 10-20 dB noise reduction depending on type of
noise
• “dsPIC30F Noise Suppression Library User’s Guide”
• Demo application source code is provided
• Accessory Kit available for purchase includes:
audio cable, headset, oscillators, microphone,
speaker, DB9 M/F RS-232 cable, DB9M-DB9M
null modem adapter and can be used for library
evaluation
TABLE 11-5:
Hands-Free Cell Phone Kits
Speakerphones
Intercoms
Teleconferencing Systems
For hands-free phones intended to be used in compact
environments, such as a car cabin, this library is fully
compliant with the G.167 standard for Acoustic Echo
Cancellation.
Like the Noise Suppression Library, the Acoustic Echo
Cancellation Library also includes sample rate
conversion functions.
Key features of the AEC Library include:
• All functions can be called from either a ‘C’ or
assembly application program
• Full compliance with the Microchip C30
C Compiler, Assembler and Linker
• Precompiled library archive files
• Highly optimized assembly code, utilizing DSP
instructions and advanced addressing modes
• Echo cancellation for 16, 32 or 64 ms echo delay
or ‘tail length’ (configurable)
• Fully tested for compliance with G.167
specifications for in-car applications
• Audio Bandwidth: 0-4 kHz at 8 kHz sampling rate
• Convergence Rate: up to 43 dB/sec.,
typically > 30 dB/sec.
• Echo Cancellation: Up to 50 dB, typically > 40 dB
• “dsPIC30F Acoustic Echo Cancellation Library
User’s Guide”
• Demo application source code is provided
• Accessory Kit available for purchase
TABLE 11-6:
MIPS
Noise Suppression
3.3
Sample Rate Conversion
1.0
Flash
7 KB
RAM
1 KB
2.6 KB 0.5 KB
The user application might require an
additional 1 KB-1.5 KB for data buffering
(application-dependent).
© 2005 Microchip Technology Inc.
RESOURCE REQUIREMENTS
Algorithm
MIPS
Flash
RAM
AEC – 64 ms Echo Tail
16.5
6 KB
5.7 KB
AEC – 32 ms Echo Tail
10.5
6 KB
3.4 KB
6 KB
2.6 KB
RESOURCE REQUIREMENTS
Algorithm
Note:
•
•
•
•
AEC – 16 ms Echo Tail
7.5
Sample Rate Conversion
1.0
Note:
Preliminary
2.6 KB 0.5 KB
The user application might require an
additional 2 KB-2.5 KB for data buffering
(application-dependent).
DS70155C-page 53
dsPIC33F
11.11 Symmetric Key Embedded
Encryption Library
11.12 Asymmetric Key Embedded
Encryption Library
Microchip offers a reliable security solution for
embedded applications built on the dsPIC33F platform.
This solution is provided by means of two libraries –
Symmetric Key and Asymmetric Key Embedded
Encryption Libraries. The Symmetric Key Library
includes the following:
Microchip offers a reliable security solution for
embedded applications built on the dsPIC33F platform.
This solution is provided by means of two libraries –
Symmetric Key and Asymmetric Key Embedded
Encryption Libraries. The Asymmetric Key Library
includes the following:
• Hash functions
- SHA-1 Secure Hash Standard
- MD5 Message Digest
• Symmetric Key Encryption/Decryption functions
- Advanced Encryption Standard (AES)
- Triple Data Encryption Standard (Triple-DES)
• Random Number Generator functions
- Deterministic Random Bit Generator
ANSI X9.82
• Public Key Encryption/Decryption functions
- RSA (1024 and 2048-bit)
• Key Agreement Protocol
- Diffie-Hellman (1024 and 2048-bit)
• Signing and Verification
- DSA (1024-bit)
- RSA (1024 and 2048-bit)
• Hash functions
- SHA-1 Secure Hash Standard
- MD5 Message Digest
• Random Number Generator functions
- ANSI X9.82
Some typical applications for this library include:
• Mobile and Wireless Devices, PDAs
• Secure Banking
• Secure Web Transactions
- Secure Socket Layer (SSL)
- Transport Layer Security (TLS)
- Secure Multipurpose Mail Extensions (S/MIME)
• ZigBee™ Technology and other Monitoring and
Control Applications
• Smart Card Readers/Trusted Card Readers
• Friend/Foe Identification
• Secure devices and peripherals interoperating
with TCG (Trusted Computing Group) and
NGSCB (Microsoft Next Generation Secure
Computing Base) personal computers
Some typical applications for this library include:
Key features of the Symmetric Key Embedded
Encryption Library include:
• C-callable library functions developed in MPLAB
ASM30 assembly language
• Optimized for speed, code size and RAM usage
- RAM usage below 60 bytes
• Library functions extensively tested for adherence
to applicable standards
• Symmetric Key Encryption/Decryption functions
support multiple modes of operation:
- Electronic Code Book (ECB) mode
- Cipher Block Chaining with Message
Authentication (CBC-MAC) mode
- Counter (CTR) mode
- Combined CBC-MAC and CTR (CCM) mode
• “dsPIC30F Embedded Encryption Libraries User’s
Guide”
• Several examples of use are provided for each
library function
DS70155C-page 54
• Mobile and Wireless Devices, PDAs
• Secure Banking
• Secure Web Transactions
- Secure Socket Layer (SSL)
- Transport Layer Security (TLS)
- Secure Multipurpose Mail Extensions
(S/MIME)
• ZigBee Technology and other Monitoring and
Control Applications
• Smart Card Readers/Trusted Card Readers
• Friend/Foe Identification
• Secure devices and peripherals interoperating
with TCG (Trusted Computing Group) and
NGSCB (Microsoft Next Generation Secure
Computing Base) personal computers
Key features of the Asymmetric Key Embedded
Encryption Library include:
• C-callable library functions developed in MPLAB
ASM30 assembly language
• Optimized for speed, code size and RAM usage
- RAM usage below 100 bytes
• Library functions extensively tested for adherence
to applicable standards
• “dsPIC30F Embedded Encryption Libraries User’s
Guide”
• Several examples of use are provided for each
library function
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
11.13 Speech Encoding/Decoding
Library
Key features of the Speech Encoding/Decoding Library
include:
The Speech Encoding/Decoding Library performs tollquality voice compression and voice decompression.
The library is based on a modified version of the Speex
speech encoder/decoder source code and features a
16:1 compression ratio. It samples speech at 8 kHz and
compresses it to a data rate of 8 kbps. Storing
compressed
speech
for
playback
requires
approximately 1 KB of memory for each second of
speech. The library is especially suitable for the
following voice-based applications:
•
•
•
•
•
•
•
Answering Machines
Building and Home Safety Systems
Intercoms
Smart Appliances
Voice Recorders
Walkie-Talkies
Any Application using Message Playback
• PESQ-based Mean Opinion Score: 3.7-4.2
(out of 5.0)
• Code Excited Linear Prediction (CELP) based
coding
• 2 Analog Input Interfaces – codec or on-chip ADC
• 2 Analog Output Interfaces – codec or
on-chip PWM
• Optional Voice Activity Detection
• Storing compressed speech requires 1 KB of
memory per second of speech
• Royalty-free (only one-time license fee)
• Full compliance with Microchip MPLAB C30
C Compiler Language Tools
• “dsPIC30F Speech Encoding/Decoding Library
User’s Guide”
• Designed to run on dsPICDEM 1.1 General
Purpose Development Board (DM300014)
A PC-based speech encoder utility program allows you
to create your own encoded speech files for playback.
Encoded speech files are made from either a PC
microphone or existing WAV file. Once you create the
encoded speech files, they are added to your MPLAB
C30 project, just like a regular source file, and built into
your application. The speech encoder utility allows you to
select four target memory areas to store your speech file:
program Flash memory, RAM and external Flash
memory. External Flash memory allows you to store
many minutes of speech (1 minute of speech requires
60 KB) and it is supported through a general purpose I/O
port.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 55
dsPIC33F
12.0
THIRD PARTY DEVELOPMENT
TOOLS AND APPLICATION
LIBRARIES
Besides providing development tools and application
libraries for dsPIC33F products, Microchip also
partners with key third party tool manufacturers to
develop quality hardware and software tools in support
of the dsPIC33F product family. Details of various third
party development tools will be provided shortly.
DS70155C-page 56
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
13.0
dsPIC33F HARDWARE
DEVELOPMENT BOARDS
MPLAB In-Circuit Debugger (ICD 2) tool for costeffective debugging and programming of the dsPIC33F
devices. These two boards are shown in Table 13-1.
Microchip initially offers two hardware development
boards that help you quickly prototype and validate key
aspects of your design. Each board features various
dsPIC33F peripherals and supports Microchip’s
Microchip plans to offer additional hardware
development boards to support the dsPIC33F product
family. Contact Microchip DSCD Marketing for
additional information.
TABLE 13-1:
HARDWARE DEVELOPMENT BOARDS
Accessory
Kits
Plug-in
Samples
Development Boards and
Reference Designs
Development Tool
Description
Part #
From
General Purpose
Development Board
dsPICDEM™ 80-Pin Starter Development Board
DM300019
Microchip
Explorer 16 Development Board
DM240001
Microchip
Plug-in Sample
(see Section 13.3
Plug-in Modules)
PC board with 80-pin dsPIC30F6014A general purpose
MCU sample; use with DM300019 development board.
MA300014
Microchip
PC board with 100-pin dsPIC33F MCU sample; use with
DM240001 development board.
MA330011
Microchip
PC board with 100-pin dsPIC33F MCU sample; use with
DM300019 development board.
MA330012
Microchip
Accessory Kit includes: audio cable, headset, oscillators,
microphone, speaker, DB9 M/F RS-232 cable,
DB9M-DB9M Null Modem Adapter and can be used for
library evaluation.
AC300030
Microchip
Acoustic Accessory
Kit
(see Section 13.3
Plug-in Modules)
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 57
dsPIC33F
13.1
dsPICDEM™ 80-Pin Starter
Development Board
13.2
Explorer 16 Development Board
This development board offers a very economical way
to evaluate both the dsPIC30F and dsPIC33F General
Purpose and Motor Control Family devices. This board
is an ideal prototyping tool to help you quickly develop
and validate key design requirements.
This development board offers a very economical way
to evaluate both the dsPIC33F General Purpose and
Motor Control Family devices, as well as the PIC24F
devices. This board is an ideal prototyping tool to help
you quickly develop and validate key design
requirements.
Some key features and attributes of the dsPICDEM
80-Pin Starter Development Board include:
Some key features and attributes of the Explorer 16
Development Board include:
• Includes an 80-pin dsPIC30F6014A plug-in
module (MA300014)
• Power input from 9V supply
• Selectable voltage regulator outputs of 5V
and 3.3V
• LEDs, switches, potentiometer, UART interface
• A/D input filter circuit for speech band signal input
• On-board DAC and filter for speech band signal output
• Circuit prototyping area
• Assembly language demonstration program and
tutorial
• Can accommodate 80-pin dsPIC30F6010 plug-in
module (MA300013)
• Can accommodate 100 to 80-pin adapter
dsPIC33F plug-in module (MA330012)
• Includes a 100-pin dsPIC33F plug-in module
(MA330011)
• Includes a 100-pin PIC24 plug-in module
(part # TBD)
• Power input from 9V supply
• Modular design for plug-in demonstration boards,
expansion header
• ICD 2 and JTAG connection for reprogramming
• USB and protocol translation support through
PIC18F4450
• RS-232 connection with firmware and driver
support
• LED bank for general indication
• Serial EEPROM
• 16 x 2 alphanumeric LCD
• Temperature sensor
• Terminal interface program and menu programs
FIGURE 13-1:
DS70155C-page 58
dsPICDEM™ 80-PIN
STARTER DEVELOPMENT
BOARD
FIGURE 13-2:
Preliminary
EXPLORER 16
DEVELOPMENT BOARD
© 2005 Microchip Technology Inc.
dsPIC33F
13.3
Plug-in Modules
13.4
The various dsPIC33F development boards may use
the plug-in modules for the dsPIC33F silicon devices.
Since the boards contain device header pins on the
PCB, they also are used to provide flexibility for the
replacement of the dsPIC33F silicon. Three different
plug-in sample types will be provided, supporting the
64-pin, 80-pin and 100-pin TQFP package types for
General Purpose and Motor Control Family device
samples. The use of plug-in samples is considered to
be an interim development board mechanization.
© 2005 Microchip Technology Inc.
Acoustic Accessory Kit
The Acoustic Accessory Kit includes the following
accessories targeted towards acoustics-oriented
library (NS, AEC, etc.) evaluation and application
development support:
•
•
•
•
•
•
•
6 ft. Stereo Audio Cable
Stereo Headset
Two 14.7456 MHz Oscillators
Clip-on Microphone
Fold-up Speaker
6 ft. DB9 M/F RS-232 Cable
DB9M-DB9M Null Modem Adapter
Preliminary
DS70155C-page 59
dsPIC33F
APPENDIX A:
TABLE A-1:
DEVICE I/O PINOUTS
AND FUNCTIONS
FOR GENERAL
PURPOSE FAMILY
PINOUT I/O DESCRIPTIONS FOR GENERAL PURPOSE FAMILY
Pin
Type
Input Buffer
Type
AN0-AN23
I
Analog
Pin Name
Table A-1 provides a brief description of device I/O
pinouts and functions that can be multiplexed to a port
pin. Multiple functions may exist on one port pin. When
multiplexing occurs, the peripheral module’s functional
requirements may force an override of the data
direction of the port pin.
Description
Analog input channels.
AVDD
P
P
Positive supply for analog module.
AVSS
P
P
Ground reference for analog module.
CLKI
I
ST/CMOS
CLKO
O
—
CN0-CN23
I
ST
Input change notification inputs. Can be software programmed for
internal weak pull-ups on all inputs.
COFS
CSCK
CSDI
CSDO
I/O
I/O
I
O
ST
ST
ST
—
Data Converter Interface frame synchronization pin.
Data Converter Interface serial clock input/output pin.
Data Converter Interface serial data input pin.
Data Converter Interface serial data output pin.
C1RX
C1TX
C2RX
C2TX
I
O
I
O
ST
—
ST
—
ECAN1 bus receive pin.
ECAN1 bus transmit pin.
ECAN2 bus receive pin.
ECAN2 bus transmit pin.
PGD1/EMUD1
PGC1/EMUC1
PGD2/EMUD2
PGC2/EMUC2
PGD3/EMUD3
PGC3/EMUC3
I/O
I
I/O
I
I/O
I
ST
ST
ST
ST
ST
ST
Data I/O pin for programming/debugging communication channel 1.
Clock input pin for programming/debugging communication channel 1.
Data I/O pin for programming/debugging communication channel 2.
Clock input pin for programming/debugging communication channel 2.
Data I/O pin for programming/debugging communication channel 3.
Clock input pin for programming/debugging communication channel 3.
IC1-IC8
I
ST
Capture inputs 1 through 8.
INT0
INT1
INT2
INT3
INT4
I
I
I
I
I
ST
ST
ST
ST
ST
External interrupt 0.
External interrupt 1.
External interrupt 2.
External interrupt 3.
External interrupt 4.
MCLR
I/P
ST
Master Clear (Reset) input or programming voltage input. This pin is
an active-low Reset to the device.
OCFA
OCFB
OC1-OC8
I
I
O
ST
ST
—
Compare Fault A input (for Compare Channels 1, 2, 3 and 4).
Compare Fault B input (for Compare Channels 5, 6, 7 and 8).
Compare outputs 1 through 8.
OSC1
I
ST/CMOS
OSC2
I/O
—
RA0-RA7
RA9-RA10
RA12-RA15
I/O
I/O
I/O
ST
ST
ST
PORTA is a bidirectional I/O port.
RB0-RB15
I/O
ST
PORTB is a bidirectional I/O port.
Legend:
External clock source input. Always associated with OSC1 pin
function.
Oscillator crystal output. Connects to crystal or resonator in Crystal
Oscillator mode. Optionally functions as CLKO in RC and EC modes.
Always associated with OSC2 pin function.
Oscillator crystal input. ST buffer when configured in RC mode;
CMOS otherwise.
Oscillator crystal output. Connects to crystal or resonator in Crystal
Oscillator mode. Optionally functions as CLKO in RC and EC modes.
CMOS = CMOS compatible input or output; Analog = Analog input
ST = Schmitt Trigger input with CMOS levels; O = Output; I = Input; P = Power
DS70155C-page 60
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
TABLE A-1:
PINOUT I/O DESCRIPTIONS FOR GENERAL PURPOSE FAMILY (CONTINUED)
Pin
Type
Input Buffer
Type
RC1-RC4
RC12-RC15
I/O
I/O
ST
ST
PORTC is a bidirectional I/O port.
RD0-RD15
I/O
ST
PORTD is a bidirectional I/O port.
RE0-RE9
I/O
ST
PORTE is a bidirectional I/O port.
RF0-RF8
RF12-RF13
I/O
I/O
ST
ST
PORTF is a bidirectional I/O port.
RG0-RG3
RG6-RG9
RG12-RG15
I/O
I/O
I/O
ST
ST
ST
PORTG is a bidirectional I/O port.
SCK1
SDI1
SDO1
SS1
SCK2
SDI2
SDO2
SS2
I/O
I
O
I
I/O
I
O
I
ST
ST
—
ST
ST
ST
—
ST
Synchronous serial clock input/output for SPI1.
SPI1 data in.
SPI1 data out.
SPI1 slave synchronization.
Synchronous serial clock input/output for SPI2.
SPI2 data in.
SPI2 data out.
SPI2 slave synchronization.
SCL1
SDA1
SCL2
SDA2
I/O
I/O
I/O
I/O
ST
ST
ST
ST
Synchronous serial clock input/output for I2C1.
Synchronous serial data input/output for I2C1.
Synchronous serial clock input/output for I2C2.
Synchronous serial data input/output for I2C2.
SOSCI
SOSCO
I
O
ST/CMOS
—
TMS
TCK
TDI
TDO
I
I/O
I
O
ST
ST
ST
—
JTAG Test mode select pin.
JTAG test clock input/output pin.
JTAG test data input pin.
JTAG test data output pin.
T1CK
T2CK
T3CK
T4CK
T5CK
T6CK
T7CK
T8CK
T9CK
I
I
I
I
I
I
I
I
I
ST
ST
ST
ST
ST
ST
ST
ST
ST
Timer1 external clock
Timer2 external clock
Timer3 external clock
Timer4 external clock
Timer5 external clock
Timer6 external clock
Timer7 external clock
Timer8 external clock
Timer9 external clock
U1CTS
U1RTS
U1RX
U1TX
U2CTS
U2RTS
U2RX
U2TX
I
O
I
O
I
O
I
O
ST
—
ST
—
ST
—
ST
—
UART1 clear to send.
UART1 ready to send.
UART1 receive.
UART1 transmit.
UART2 clear to send.
UART2 ready to send.
UART2 receive.
UART2 transmit.
VDD
P
—
Positive supply for peripheral logic and I/O pins.
VDDCORE
P
—
CPU logic filter capacitor connection.
VSS
P
—
Ground reference for logic and I/O pins.
VREF+
I
Analog
Analog voltage reference (high) input.
VREF-
I
Analog
Analog voltage reference (low) input.
Pin Name
Legend:
Description
32 kHz low-power oscillator crystal input; CMOS otherwise.
32 kHz low-power oscillator crystal output.
input.
input.
input.
input.
input.
input.
input.
input.
input.
CMOS = CMOS compatible input or output; Analog = Analog input
ST = Schmitt Trigger input with CMOS levels; O = Output; I = Input; P = Power
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 61
dsPIC33F
Pins
Program Flash
Memory (KB)
RAM
(KB)(1)
Output Compare
Std. PWM
Codec
Interface
UART
SPI™
I2C™
CAN
I/O Pins (Max)(2)
Packages
33FJ128GP706
64
128
17
9
8
8
1
2 A/D,
18 ch
2
2
2
2
53
PT
33FJ128GP708
80
128
17
9
8
8
1
2 A/D,
24 ch
2
2
2
2
69
PT
33FJ256GP710
100
256
33
9
8
8
1
2 A/D,
32 ch
2
2
2
2
86
PF
Note 1:
2:
Note:
A/D Converter
Device
Input Capture
dsPIC33F GENERAL PURPOSE FAMILY VARIANTS (DEVICES MARKED “PS”)
Timer 16-bit
TABLE A-2:
RAM size is inclusive of 1 KB DMA RAM.
Maximum I/O pin count includes pins shared by the peripheral functions.
Prototype samples are intended for dsPIC33F early adopters and are based on early revision silicon. Devices
are marked with “PS” suffix. Major differences are noted in this data sheet. For additional information, please
refer to the “dsPIC33F Data Sheet”.
DS70155C-page 62
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
CSDO/RG13
CSDI/RG12
CSCK/RG14
C2RX/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/CN16/RD7
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
OC4/RD3
OC3/RD2
EMUD2/OC2/RD1
64-Pin TQFP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ128GP706*
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
EMUC1/SOSCO/T1CK/CN0/RC14
EMUD1/SOSCI/T4CK/CN1/RC13
EMUC2/OC1/RD0
IC4/INT4/RD11
IC3/INT3/RD10
IC2/INT2/RD9
IC1/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
SCL1/RG2
SDA1/RG3
EMUC3/SCK1/INT0/RF6
U1RX/SDI1/RF2
EMUD3/U1TX/SDO1/RF3
PGC/EMUC/AN6/OCFA/RB6
PGD/EMUD/AN7/RB7
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
U2RX/SDA2/CN17/RF4
U2TX/SCL2/CN18/RF5
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
COFS/RG15
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/T5CK/CN11/RG9
VSS
VDD
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
AN1/VREF-/CN3/RB1
AN0/VREF+/CN2/RB0
*Device is marked with ‘PS’ designator.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 63
dsPIC33F
Pin Diagrams (Continued)
IC5/RD12
OC4/RD3
OC3/RD2
EMUD2/OC2/RD1
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
OC7/CN15/RD6
C2RX/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/CN16/RD7
CSCK/RG14
AN23/CN23/RA7
AN22/CN22/RA6
CSDI/RG12
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
CSDO/RG13
80-Pin TQFP
1
60
EMUC1/SOSCO/T1CK/CN0/RC14
AN16/T2CK/T7CK/RC1
2
59
EMUD1/SOSCI/CN1/RC13
AN17/T3CK/T6CK/RC2
3
58
EMUC2/OC1/RD0
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
4
57
5
56
IC4/RD11
IC3/RD10
6
55
IC2/RD9
SDI2/CN9/RG7
7
54
IC1/RD8
SDO2/CN10/RG8
8
53
SDA2/INT4/RA15
SCL2/INT3/RA14
VSS
COFS/RG15
9
52
SS2/CN11/RG9
VSS
10
51
VDD
12
49
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
AN20/INT1/RA12
13
48
VDD
AN21/INT2/RA13
AN5/CN7/RB5
AN4/CN6/RB4
14
47
SCL1/RG2
15
46
SDA1/RG3
16
45
EMUC3/SCK1/INT0/RF6
AN3/CN5/RB3
17
44
SDI1/RF7
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/CN3/RB1
18
43
SDO1/RF8
19
42
U1RX/RF2
PGD/EMUD/AN0/CN2/RB0
20
41
EMUD3/U1TX/RF3
29
30
31
32
33
34
35
36
37
38
39
40
AN11/RB11
VSS
VDD
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
IC7/CN20/RD14
IC8/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
28
AVDD
AN9/RB9
25
50
AN10/RB10
24
VREF+/RA10
27
23
VREF-/RA9
26
22
AVSS
21
AN7/RB7
AN8/RB8
dsPIC33FJ128GP708*
11
AN6/OCFA/RB6
MCLR
*Device is marked with ‘PS’ designator.
DS70155C-page 64
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams (Continued)
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
AN28/RE4
AN27/RE3
AN26/RE2
CSDO/RG13
CSDI/RG12
CSCK/RG14
AN25/RE1
AN24/RE0
AN23/CN23/RA7
AN22/CN22/RA6
C2RX/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/CN16/RD7
OC7/CN15/RD6
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
EMUD2/OC2/RD1
100-Pin TQFP
COFS/RG15
VDD
AN29/RE5
AN30/RE6
AN31/RE7
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
VSS
VDD
RA0
AN20/INT1/RA12
AN21/INT2/RA13
AN5/CN7/RB5
AN4/CN6/RB4
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/CN3/RB1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
dsPIC33FJ256GP710*
75
74
VSS
EMUC1/SOSCO/T1CK/CN0/RC14
73
72
EMUD1/SOSCI/CN1/RC13
71
70
EMUC2/OC1/RD0
IC4/RD11
IC3/RD10
69
IC2/RD9
68
67
66
IC1/RD8
INT4/RA15
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
INT3/RA14
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
RA5
RA4
SDA2/RA3
SCL2/RA2
SCL1/RG2
SDA1/RG3
EMUC3/SCK1/INT0/RF6
SDI1/RF7
SDO1/RF8
U1RX/RF2
EMUD3/U1TX/RF3
AN6/OCFA/RB6
AN7/RB7
VREF-/RA9
VREF+/RA10
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
RA1
U2RTS/RF13
U2CTS/RF12
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
VSS
VDD
IC7/CN20/RD14
IC8/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
PGD/EMUD/AN0/CN2/RB0
1
*Device is marked with ‘PS’ designator.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 65
dsPIC33F
Pin Diagrams (Continued)
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
CSDO/RG13
CSDI/RG12
CSCK/RG14
RG0
RG1
RF1
RF0
VDD
VDDCORE
OC8/CN16/RD7
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
OC4/RD3
OC3/RD2
OC2/RD1
64-Pin TQFP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ64GP206
dsPIC33FJ128GP206
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PGD2/EMUD2/SOSCI/T4CK/CN1/RC13
OC1/RD0
IC4/INT4/RD11
IC3/INT3/RD10
IC2/U1CTS/INT2/RD9
IC1/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
SCL1/RG2
SDA1/RG3
U1RTS/SCK1/INT0/RF6
U1RX/SDI1/RF2
U1TX/SDO1/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
AVDD
AVSS
U2CTS/AN8/RB8
AN9/RB9
TMS/AN10/RB10
TDO/AN11/RB11
VSS
VDD
TCK/AN12/RB12
TDI/AN13/RB13
U2RTS/AN14/RB14
AN15/OCFB/CN12/RB15
U2RX/CN17/RF4
U2TX/CN18/RF5
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
COFS/RG15
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/T5CK/CN11/RG9
VSS
VDD
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/VREF-/CN3/RB1
PGD3/EMUD3/AN0/VREF+/CN2/RB0
DS70155C-page 66
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams (Continued)
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
CSDO/RG13
CSDI/RG12
CSCK/RG14
RG0
RG1
RF1
RF0
VDD
VDDCORE
OC8/CN16/RD7
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
OC4/RD3
OC3/RD2
OC2/RD1
64-Pin TQFP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ64GP306
dsPIC33FJ128GP306
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PGD2/EMUD2/SOSCI/T4CK/CN1/RC13
OC1/RD0
IC4/INT4/RD11
IC3/INT3/RD10
IC2/U1CTS/INT2/RD9
IC1/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
SCL1/RG2
SDA1/RG3
U1RTS/SCK1/INT0/RF6
U1RX/SDI1/RF2
U1TX/SDO1/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
AVDD
AVSS
U2CTS/AN8/RB8
AN9/RB9
TMS/AN10/RB10
TDO/AN11/RB11
VSS
VDD
TCK/AN12/RB12
TDI/AN13/RB13
U2RTS/AN14/RB14
AN15/OCFB/CN12/RB15
U2RX/SDA2/CN17/RF4
U2TX/SCL2/CN18/RF5
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
COFS/RG15
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/T5CK/CN11/RG9
VSS
VDD
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/VREF-/CN3/RB1
PGD3/EMUD3/AN0/VREF+/CN2/RB0
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 67
dsPIC33F
Pin Diagrams (Continued)
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
CSDO/RG13
CSDI/RG12
CSCK/RG14
RG0
RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/CN16/RD7
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
OC4/RD3
OC3/RD2
OC2/RD1
64-Pin TQFP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ256GP506
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PGD2/EMUD2/SOSCI/T4CK/CN1/RC13
OC1/RD0
IC4/INT4/RD11
IC3/INT3/RD10
IC2/U1CTS/INT2/RD9
IC1/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
SCL1/RG2
SDA1/RG3
U1RTS/SCK1/INT0/RF6
U1RX/SDI1/RF2
U1TX/SDO1/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
AVDD
AVSS
U2CTS/AN8/RB8
AN9/RB9
TMS/AN10/RB10
TDO/AN11/RB11
VSS
VDD
TCK/AN12/RB12
TDI/AN13/RB13
U2RTS/AN14/RB14
AN15/OCFB/CN12/RB15
U2RX/SDA2/CN17/RF4
U2TX/SCL2/CN18/RF5
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
COFS/RG15
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/T5CK/CN11/RG9
VSS
VDD
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/VREF-/CN3/RB1
PGD3/EMUD3/AN0/VREF+/CN2/RB0
DS70155C-page 68
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams (Continued)
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
CSDO/RG13
CSDI/RG12
CSCK/RG14
C2RX/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/CN16/RD7
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
OC4/RD3
OC3/RD2
OC2/RD1
64-Pin TQFP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ64GP706
dsPIC33FJ128GP706
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PGD2/EMUD2/SOSCI/T4CK/CN1/RC13
OC1/RD0
IC4/INT4/RD11
IC3/INT3/RD10
IC2/U1CTS/INT2/RD9
IC1/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
SCL1/RG2
SDA1/RG3
U1RTS/SCK1/INT0/RF6
U1RX/SDI1/RF2
U1TX/SDO1/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
AVDD
AVSS
U2CTS/AN8/RB8
AN9/RB9
TMS/AN10/RB10
TDO/AN11/RB11
VSS
VDD
TCK/AN12/RB12
TDI/AN13/RB13
U2RTS/AN14/RB14
AN15/OCFB/CN12/RB15
U2RX/SDA2/CN17/RF4
U2TX/SCL2/CN18/RF5
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
COFS/RG15
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/T5CK/CN11/RG9
VSS
VDD
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/VREF-/CN3/RB1
PGD3/EMUD3/AN0/VREF+/CN2/RB0
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 69
dsPIC33F
Pin Diagrams (Continued)
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
OC2/RD1
CSCK/RG14
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
OC7/CN15/RD6
CSDO/RG13
CSDI/RG12
80
79
AN23/CN23/RA7
AN22/CN22/RA6
C2RX/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/CN16/RD7
80-Pin TQFP
COFS/RG15
AN16/T2CK/T7CK/RC1
1
60
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
2
59
PGD2/EMUD2/SOSCI/CN1/RC13
AN17/T3CK/T6CK/RC2
58
OC1/RD0
AN18/T4CK/T9CK/RC3
3
4
57
IC4/RD11
AN19/T5CK/T8CK/RC4
5
56
IC3/RD10
SCK2/CN8/RG6
6
55
IC2/RD9
SDI2/CN9/RG7
7
54
IC1/RD8
SDA2/INT4/RA15
52
SCL2/INT3/RA14
SS2/CN11/RG9
8
9
10
53
51
VSS
VSS
11
50
VDD
12
49
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
TMS/AN20/INT1/RE8
13
48
TDO/AN21/INT2/RE9
14
47
VDD
SCL1/RG2
AN5/CN7/RB5
15
16
46
SDA1/RG3
AN4/CN6/RB4
45
SCK1/INT0/RF6
AN3/CN5/RB3
17
44
SDI1/RF7
AN2/SS1/LVDIN/CN4/RB2
18
43
SDO1/RF8
PGC3/EMUC3/AN1/CN3/RB1
19
42
U1RX/RF2
PGD3/EMUD3/AN0/CN2/RB0
20
41
U1TX/RF3
DS70155C-page 70
27
28
29
30
31
32
33
34
35
36
37
38
39
40
AN10/RB10
AN11/RB11
VSS
VDD
TCK/AN12/RB12
TDI/AN13/RB13
U2RTS/AN14/RB14
AN15/OCFB/CN12/RB15
IC7/U1CTS/CN20/RD14
IC8/U1RTS/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
25
AVDD
AN9/RB9
24
VREF+/RA10
26
23
AVSS
22
VREF-/RA9
U2CTS/AN8/RB8
21
dsPIC33FJ64GP708
dsPIC33FJ128GP708
PGD1/EMUD1/AN7/RB7
MCLR
PGC1/EMUC1/AN6/OCFA/RB6
SDO2/CN10/RG8
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams (Continued)
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
AN28/RE4
AN27/RE3
AN26/RE2
CSDO/RG13
CSDI/RG12
CSCK/RG14
AN25/RE1
AN24/RE0
AN23/CN23/RA7
AN22/CN22/RA6
RG0
RG1
RF1
RF0
VDD
VDDCORE
OC8/CN16/RD7
OC7/CN15/RD6
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
OC2/RD1
100-Pin TQFP
COFS/RG15
VDD
AN29/RE5
AN30/RE6
AN31/RE7
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
VSS
VDD
TMS/RA0
AN20/INT1/RE8
AN21/INT2/RE9
AN5/CN7/RB5
AN4/CN6/RB4
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
1
75
VSS
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
74
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
73
PGD2/EMUD2/SOSCI/CN1/RC13
OC1/RD0
IC4/RD11
PGD3/EMUD3/AN0/CN2/RB0
25
71
70
69
68
67
66
dsPIC33FJ64GP310
dsPIC33FJ128GP310
65
64
63
62
IC3/RD10
IC2/RD9
IC1/RD8
INT4/RA15
INT3/RA14
VSS
61
60
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
TDO/RA5
TDI/RA4
59
58
SDA2/RA3
SCL2/RA2
57
56
55
SCL1/RG2
SDA1/RG3
SCK1/INT0/RF6
54
53
52
51
SDI1/RF7
SDO1/RF8
U1RX/RF2
U1TX/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
VREF-/RA9
VREF+/RA10
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
TCK/RA1
U2RTS/RF13
U2CTS/RF12
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
VSS
VDD
IC7/U1CTS/CN20/RD14
IC8/U1RTS/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
PGC3/EMUC3/AN1/CN3/RB1
23
24
72
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 71
dsPIC33F
Pin Diagrams (Continued)
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
AN28/RE4
AN27/RE3
AN26/RE2
CSDO/RG13
CSDI/RG12
CSCK/RG14
AN25/RE1
AN24/RE0
AN23/CN23/RA7
AN22/CN22/RA6
RG0
RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/CN16/RD7
OC7/CN15/RD6
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
OC2/RD1
100-Pin TQFP
COFS/RG15
VDD
AN29/RE5
AN30/RE6
AN31/RE7
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
VSS
VDD
TMS/RA0
AN20/INT1/RE8
AN21/INT2/RE9
AN5/CN7/RB5
AN4/CN6/RB4
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/CN3/RB1
75
74
VSS
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
73
PGD2/EMUD2/SOSCI/CN1/RC13
OC1/RD0
5
6
7
8
9
71
70
69
68
67
66
72
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
dsPIC33FJ256GP510
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
IC4/RD11
IC3/RD10
IC2/RD9
IC1/RD8
INT4/RA15
INT3/RA14
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
TDO/RA5
TDI/RA4
SDA2/RA3
SCL2/RA2
SCL1/RG2
SDA1/RG3
SCK1/INT0/RF6
SDI1/RF7
SDO1/RF8
U1RX/RF2
U1TX/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
VREF-/RA9
VREF+/RA10
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
TCK/RA1
U2RTS/RF13
U2CTS/RF12
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
VSS
VDD
IC7/U1CTS/CN20/RD14
IC8/U1RTS/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
PGD3/EMUD3/AN0/CN2/RB0
1
2
3
4
DS70155C-page 72
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams (Continued)
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
AN28/RE4
AN27/RE3
AN26/RE2
CSDO/RG13
CSDI/RG12
CSCK/RG14
AN25/RE1
AN24/RE0
AN23/CN23/RA7
AN22/CN22/RA6
C2RX/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/CN16/RD7
OC7/CN15/RD6
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
OC2/RD1
100-Pin TQFP
COFS/RG15
VDD
AN29/RE5
AN30/RE6
AN31/RE7
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
VSS
VDD
TMS/RA0
AN20/INT1/RE8
AN21/INT2/RE9
AN5/CN7/RB5
AN4/CN6/RB4
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
73
72
dsPIC33FJ64GP710
dsPIC33FJ128GP710
dsPIC33FJ256GP710
VSS
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PGD2/EMUD2/SOSCI/CN1/RC13
OC1/RD0
71
70
69
IC4/RD11
IC3/RD10
IC2/RD9
68
67
66
IC1/RD8
INT4/RA15
65
64
63
62
61
60
59
58
INT3/RA14
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
TDO/RA5
TDI/RA4
SDA2/RA3
SCL2/RA2
57
56
55
54
SCL1/RG2
SDA1/RG3
SCK1/INT0/RF6
53
52
51
SDO1/RF8
U1RX/RF2
SDI1/RF7
U1TX/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
VREF-/RA9
VREF+/RA10
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
TCK/RA1
U2RTS/RF13
U2CTS/RF12
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
VSS
VDD
IC7/U1CTS/CN20/RD14
IC8/U1RTS/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/CN3/RB1
PGD3/EMUD3/AN0/CN2/RB0
75
74
1
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 73
dsPIC33F
APPENDIX B:
TABLE B-1:
DEVICE I/O PINOUTS
AND FUNCTIONS
FOR MOTOR
CONTROL FAMILY
PINOUT I/O DESCRIPTIONS FOR MOTOR CONTROL FAMILY
Pin
Type
Buffer
Type
AN0-AN23
I
Analog
Pin Name
Table B-1 provides a brief description of device I/O
pinouts and the functions that may be multiplexed to a
port pin. Multiple functions may exist on one port pin.
When multiplexing occurs, the peripheral module’s
functional requirements may force an override of the
data direction of the port pin.
Description
Analog input channels.
AN0 and AN1 are also used for device programming data and clock inputs, respectively.
AVDD
P
P
Positive supply for analog module.
AVSS
P
P
Ground reference for analog module.
CLKI
CLKO
I
O
CN0-CN23
I
ST
Input change notification inputs.
Can be software programmed for internal weak pull-ups on all inputs.
COFS
CSCK
CSDI
CSDO
I/O
I/O
I
O
ST
ST
ST
—
Data Converter Interface frame synchronization pin.
Data Converter Interface serial clock input/output pin.
Data Converter Interface serial data input pin.
Data Converter Interface serial data output pin.
C1RX
C1TX
C2RX
C2TX
I
O
I
O
ST
—
ST
—
CAN1 bus receive pin.
CAN1 bus transmit pin.
CAN2 bus receive pin.
CAN2 bus transmit pin.
PGD1/EMUD1
PGC1/EMUC1
PGD2/EMUD2
PGC2/EMUC2
PGD3/EMUD3
PGC3/EMUC3
I/O
I
I/O
I
I/O
I
ST
ST
ST
ST
ST
ST
Data I/O pin for programming/debugging communication channel 1.
Clock input pin for programming/debugging communication channel 1.
Data I/O pin for programming/debugging communication channel 2.
Clock input pin for programming/debugging communication channel 2.
Data I/O pin for programming/debugging communication channel 3.
Clock input pin for programming/debugging communication channel 3.
IC1-IC8
I
ST
Capture inputs 1 through 8.
INDX
QEA
I
I
ST
ST
QEB
I
ST
UPDN
O
CMOS
Quadrature Encoder Index Pulse input.
Quadrature Encoder Phase A input in QEI mode.
Auxiliary Timer External Clock/Gate input in Timer mode.
Quadrature Encoder Phase A input in QEI mode.
Auxiliary Timer External Clock/Gate input in Timer mode.
Position Up/Down Counter Direction State.
INT0
INT1
INT2
INT3
INT4
I
I
I
I
I
ST
ST
ST
ST
ST
External interrupt 0.
External interrupt 1.
External interrupt 2.
External interrupt 3.
External interrupt 4.
FLTA
FLTB
PWM1L
PWM1H
PWM2L
PWM2H
PWM3L
PWM3H
PWM4L
PWM4H
I
I
O
O
O
O
O
O
O
O
ST
ST
—
—
—
—
—
—
—
—
PWM Fault A input.
PWM Fault B input.
PWM 1 low output.
PWM 1 high output.
PWM 2 low output.
PWM 2 high output.
PWM 3 low output.
PWM 3 high output.
PWM 4 low output.
PWM 4 high output.
Legend:
ST/CMOS External clock source input. Always associated with OSC1 pin function.
—
Oscillator crystal output. Connects to crystal or resonator in Crystal
Oscillator mode. Optionally functions as CLKO in RC and EC modes. Always
associated with OSC2 pin function.
CMOS = CMOS compatible input or output; Analog = Analog input
ST = Schmitt Trigger input with CMOS levels; O = Output; I = Input; P = Power
DS70155C-page 74
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
TABLE B-1:
PINOUT I/O DESCRIPTIONS FOR MOTOR CONTROL FAMILY (CONTINUED)
Pin
Type
Buffer
Type
MCLR
I/P
ST
Master Clear (Reset) input or programming voltage input. This pin is an active-low
Reset to the device.
OCFA
OCFB
OC1-OC8
I
I
O
ST
ST
—
Compare Fault A input (for Compare Channels 1, 2, 3 and 4).
Compare Fault B input (for Compare Channels 5, 6, 7 and 8).
Compare outputs 1 through 8.
OSC1
OSC2
I
I/O
RA0-RA7
RA9-RA10
RA12-RA15
I/O
I/O
I/O
ST
ST
ST
PORTA is a bidirectional I/O port.
RB0-RB15
I/O
ST
PORTB is a bidirectional I/O port.
RC1-RC4
RC12-RC15
I/O
I/O
ST
ST
PORTC is a bidirectional I/O port.
RD0-RD15
I/O
ST
PORTD is a bidirectional I/O port.
RE0-RE9
I/O
ST
PORTE is a bidirectional I/O port.
RF0-RF8
RF12-RF13
I/O
ST
PORTF is a bidirectional I/O port.
RG0-RG3
RG6-RG9
RG12-RG15
I/O
I/O
I/O
ST
ST
ST
PORTG is a bidirectional I/O port.
SCK1
SDI1
SDO1
SS1
SCK2
SDI2
SDO2
SS2
I/O
I
O
I
I/O
I
O
I
ST
ST
—
ST
ST
ST
—
ST
Synchronous serial clock input/output for SPI1.
SPI1 data in.
SPI1 data out.
SPI1 slave synchronization.
Synchronous serial clock input/output for SPI2.
SPI2 data in.
SPI2 data out.
SPI2 slave synchronization.
SCL1
SDA1
SCL2
SDA2
I/O
I/O
I/O
I/O
ST
ST
ST
ST
Synchronous serial clock input/output for I2C1.
Synchronous serial data input/output for I2C1.
Synchronous serial clock input/output for I2C2.
Synchronous serial data input/output for I2C2.
SOSCI
SOSCO
I
O
TMS
TCK
TDI
TDO
I
I/O
I
O
ST
ST
ST
—
JTAG Test mode select pin.
JTAG test clock input/output pin.
JTAG test data input pin.
JTAG test data output pin.
T1CK
T2CK
T3CK
T4CK
T5CK
T6CK
T7CK
T8CK
T9CK
I
I
I
I
I
I
I
I
I
ST
ST
ST
ST
ST
ST
ST
ST
ST
Timer1 external clock input.
Timer2 external clock input.
Timer3 external clock input.
Timer4 external clock input.
Timer5 external clock input.
Timer6 external clock input.
Timer7 external clock input.
Timer8 external clock input.
Timer9 external clock input.
Pin Name
Legend:
Description
ST/CMOS Oscillator crystal input. ST buffer when configured in RC mode; CMOS otherwise.
—
Oscillator crystal output. Connects to crystal or resonator in Crystal Oscillator mode.
Optionally functions as CLKO in RC and EC modes.
ST/CMOS 32 kHz low-power oscillator crystal input; CMOS otherwise.
—
32 kHz low-power oscillator crystal output.
CMOS = CMOS compatible input or output; Analog = Analog input
ST = Schmitt Trigger input with CMOS levels; O = Output; I = Input; P = Power
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 75
dsPIC33F
TABLE B-1:
PINOUT I/O DESCRIPTIONS FOR MOTOR CONTROL FAMILY (CONTINUED)
Pin
Type
Buffer
Type
U1CTS
U1RTS
U1RX
U1TX
U2CTS
U2RTS
U2RX
U2TX
I
O
I
O
I
O
I
O
ST
—
ST
—
ST
—
ST
—
UART1 clear to send.
UART1 ready to send.
UART1 receive.
UART1 transmit.
UART2 clear to send.
UART2 ready to send.
UART2 receive.
UART2 transmit.
VDD
P
—
Positive supply for peripheral logic and I/O pins.
VDDCORE
P
—
CPU logic filter capacitor connection.
VSS
P
—
Ground reference for logic and I/O pins.
VREF+
I
Analog
Analog voltage reference (high) input.
VREF-
I
Analog
Analog voltage reference (low) input.
Pin Name
Legend:
Description
CMOS = CMOS compatible input or output; Analog = Analog input
ST = Schmitt Trigger input with CMOS levels; O = Output; I = Input; P = Power
Input Capture
Output Compare
Std. PWM
Motor Control PWM
Quadrature Encoder
Interface
Codec Interface
A/D Converter
UART
SPI™
I2C™
CAN
I/O Pins (Max)(2)
dsPIC33F MOTOR CONTROL FAMILY VARIANTS (DEVICES MARKED “PS”)
Timer 16-bit
TABLE B-2:
Packages
33FJ128MC706
64
128
17
9
8
8
8 ch
1
0
2 A/D,
16 ch
2
2
2
1
53
PT
33FJ128MC708
80
128
17
9
8
8
8 ch
1
0
2 A/D,
18 ch
2
2
2
1
69
PT
33FJ256MC710
100
256
33
9
8
8
8 ch
1
0
2 A/D,
24 ch
2
2
2
2
86
PF
Program
Flash
RAM
Pins
Memory (KB)(1)
(KB)
Device
Note 1:
2:
Note:
RAM size is inclusive of 1 KB DMA RAM.
Maximum I/O pin count includes pins shared by the peripheral functions.
Prototype samples are intended for dsPIC33F early adopters and are based on early revision silicon. Devices
are marked with “PS” suffix. Major differences are noted in this data sheet. For additional information, please
refer to the “dsPIC33F Data Sheet”.
DS70155C-page 76
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
PWM3L/RE4
PWM2H/RE3
PWM2L/RE2
PWM1H/RE1
PWM1L/RE0
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/UPDN/CN16/RD7
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
OC4/RD3
OC3/RD2
EMUD2/OC2/RD1
64-Pin TQFP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ128MC706*
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
EMUC1/SOSCO/T1CK/CN0/RC14
EMUD1/SOSCI/T4CK/CN1/RC13
EMUC2/OC1/RD0
IC4/INT4/RD11
IC3/INT3/RD10
IC2/FLTB/INT2/RD9
IC1/FLTA/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
SCL1/RG2
SDA1/RG3
EMUC3/SCK1/INT0/RF6
U1RX/SDI1/RF2
EMUD3/U1TX/SDO1/RF3
PGC/EMUC/AN6/OCFA/RB6
PGD/EMUD/AN7/RB7
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
U2RX/SDA2/CN17/RF4
U2TX/SCL2/CN18/RF5
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
PWM3H/RE5
PWM4L/RE6
PWM4H/RE7
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/T5CK/CN11/RG9
VSS
VDD
AN5/QEB/IC8/CN7/RB5
AN4/QEA/IC7/CN6/RB4
AN3/INDX/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
AN1/VREF-/CN3/RB1
AN0/VREF+/CN2/RB0
*Device is marked with ‘PS’ designator.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 77
dsPIC33F
Pin Diagrams (Continued)
PWM3H/RE5
IC5/RD12
OC4/RD3
OC3/RD2
EMUD2/OC2/RD1
63
62
61
OC5/CN13/RD4
IC6/CN19/RD13
OC8/CN16/UPDN/RD7
OC7/CN15/RD6
OC6/CN14/RD5
C2TX/RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
CRX2/RG0
PWM2L/RE2
PWM1H/RE1
PWM1L/RE0
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
PWM3L/RE4
PWM2H/RE3
80-Pin TQFP
1
60
EMUC1/SOSCO/T1CK/CN0/RC14
EMUD1/SOSCI/CN1/RC13
PWM4L/RE6
2
59
PWM4H/RE7
3
58
EMUC2/OC1/RD0
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
4
57
IC4/RD11
5
56
IC3/RD10
SCK2/CN8/RG6
6
55
IC2/RD9
SDI2/CN9/RG7
7
54
IC1/RD8
SDO2/CN10/RG8
8
53
SDA2/INT4/RA15
MCLR
9
52
SCL2/INT3/RA14
SS2/CN11/RG9
10
51
VSS
VSS
11
50
OSC2/CLKO/RC15
VDD
12
49
OSC1/CLKIN/RC12
FLTA/INT1/RE8
13
48
VDD
FLTB/INT2/RE9
14
47
SCL1/RG2
AN5/QEB/CN7/RB5
15
46
SDA1/RG3
AN4/QEA/CN6/RB4
16
45
EMUC3/SCK1/INT0/RF6
AN3/INDX/CN5/RB3
17
44
SDI1/RF7
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/CN3/RB1
18
43
SDO1/RF8
19
42
U1RX/RF2
PGD/EMUD/AN0/CN2/RB0
20
41
EMUD3/U1TX/RF3
31
32
33
34
35
36
37
38
39
40
VDD
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
IC7/CN20/RD14
IC8/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
28
AN9/RB9
30
27
AN8/RB8
VSS
25
26
AVDD
29
24
AN11/RB11
23
VREF-/RA9
VREF+/RA10
AN10/RB10
22
AN7/RB7
AVSS
21
AN6/OCFA/RB6
dsPIC33FJ128MC708*
*Device is marked with ‘PS’ designator.
DS70155C-page 78
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams (Continued)
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
PWM3L/RE4
PWM2H/RE3
PWM2L/RE2
CSDO/RG13
CSDI/RG12
CSCK/RG14
PWM1H/RE1
PWM1L/RE0
AN23/CN23/RA7
AN22/CN22/RA6
C2RX/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/UPDN//CN16/RD7
OC7/CN15/RD6
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
EMUD2/OC2/RD1
100-Pin TQFP
COFS/RG15
1
75
VDD
PWM3H/RE5
PWM4L/RE6
PWM4H/RE7
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
VSS
VDD
RA0
2
3
4
5
6
74
VSS
EMUC1/SOSCO/T1CK/CN0/RC14
73
EMUD1/SOSCI/CN1/RC13
72
71
70
69
68
67
EMUC2/OC1/RD0
IC4/RD11
IC3/RD10
IC2/RD9
AN20/FLTA/INT1/RA12
AN21/FLTB/INT2/RA13
AN5/QEB/CN7/RB5
AN4/QEA/CN6/RB4
AN3/INDX/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/CN3/RB1
66
64
63
INT3/RA14
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
62
61
VDD
RA5
65
12
13
14
15
16
17
18
19
20
21
22
23
24
25
dsPIC33FJ256MC710*
IC1/RD8
INT4/RA15
60
59
58
RA4
SDA2/RA3
SCL2/RA2
57
56
55
SCL1/RG2
54
53
52
SDI1/RF7
SDO1/RF8
51
SDA1/RG3
EMUC3/SCK1/INT0/RF6
U1RX/RF2
EMUD3/U1TX/RF3
AN6/OCFA/RB6
AN7/RB7
VREF-/RA9
VREF+/RA10
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
RA1
U2RTS/RF13
U2CTS/RF12
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
VSS
VDD
IC7/CN20/RD14
IC8/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
PGD/EMUD/AN0/CN2/RB0
7
8
9
10
11
*Device is marked with ‘PS’ designator.
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 79
dsPIC33F
Pin Diagrams (Continued)
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
PWM3L/RE4
PWM2H/RE3
PWM2L/RE2
PWM1H/RE1
PWM1L/RE0
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/UPDN/CN16/RD7
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
OC4/RD3
OC3/RD2
OC2/RD1
64-Pin TQFP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ64MC506
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PGD2/EMUD2/SOSCI/T4CK/CN1/RC13
OC1/RD0
IC4/INT4/RD11
IC3/INT3/RD10
IC2/U1CTS/FLTB/INT2/RD9
IC1/FLTA/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
SCL1/RG2
SDA1/RG3
U1RTS/SCK1/INT0/RF6
U1RX/SDI1/RF2
U1TX/SDO1/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
AVDD
AVSS
U2CTS/AN8/RB8
AN9/RB9
TMS/AN10/RB10
TDO/AN11/RB11
VSS
VDD
TCK/AN12/RB12
TDI/AN13/RB13
U2RTS/AN14/RB14
AN15/OCFB/CN12/RB15
U2RX/CN17/RF4
U2TX/CN18/RF5
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
PWM3H/RE5
PWM4L/RE6
PWM4H/RE7
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/T5CK/CN11/RG9
VSS
VDD
AN5/QEB/IC8/CN7/RB5
AN4/QEA/IC7/CN6/RB4
AN3/INDX/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/VREF-/CN3/RB1
PGD3/EMUD3/AN0/VREF+/CN2/RB0
DS70155C-page 80
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams (Continued)
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
PWM3L/RE4
PWM2H/RE3
PWM2L/RE2
PWM1H/RE1
PWM1L/RE0
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/UPDN/CN16/RD7
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
OC4/RD3
OC3/RD2
OC2/RD1
64-Pin TQFP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ128MC506
dsPIC33FJ64MC506
dsPIC33FJ128MC706
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PGD2/EMUD2/SOSCI/T4CK/CN1/RC13
OC1/RD0
IC4/INT4/RD11
IC3/INT3/RD10
IC2/U1CTS/FLTB/INT2/RD9
IC1/FLTA/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
SCL1/RG2
SDA1/RG3
U1RTS/SCK1/INT0/RF6
U1RX/SDI1/RF2
U1TX/SDO1/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
AVDD
AVSS
U2CTS/AN8/RB8
AN9/RB9
TMS/AN10/RB10
TDO/AN11/RB11
VSS
VDD
TCK/AN12/RB12
TDI/AN13/RB13
U2RTS/AN14/RB14
AN15/OCFB/CN12/RB15
U2RX/SDA2/CN17/RF4
U2TX/SCL2/CN18/RF5
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
PWM3H/RE5
PWM4L/RE6
PWM4H/RE7
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/T5CK/CN11/RG9
VSS
VDD
AN5/QEB/IC8/CN7/RB5
AN4/QEA/IC7/CN6/RB4
AN3/INDX/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/VREF-/CN3/RB1
PGD3/EMUD3/AN0/VREF+/CN2/RB0
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 81
dsPIC33F
Pin Diagrams (Continued)
IC5/RD12
OC4/RD3
OC3/RD2
OC2/RD1
63
62
61
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
OC7/CN15/RD6
OC8/CN16/UPDN/RD7
PWM2L/RE2
PWM1H/RE1
PWM1L/RE0
CRX2/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
PWM3L/RE4
PWM2H/RE3
80-Pin TQFP
PWM3H/RE5
1
60
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PWM4L/RE6
2
59
PGD2/EMUD2/SOSCI/CN1/RC13
PWM4H/RE7
3
58
OC1/RD0
AN16/T2CK/T7CK/RC1
4
57
IC4/RD11
AN17/T3CK/T6CK/RC2
5
56
IC3/RD10
SCK2/CN8/RG6
6
55
IC2/RD9
SDI2/CN9/RG7
7
54
IC1/RD8
SDO2/CN10/RG8
8
53
INT4/RA15
MCLR
9
52
SS2/CN11/RG9
VSS
10
51
INT3/RA14
VSS
50
OSC2/CLKO/RC15
VDD
12
49
OSC1/CLKIN/RC12
TMS/FLTA/INT1/RE8
13
48
VDD
TDO/FLTB/INT2/RE9
14
47
SCL1/RG2
AN5/QEB/CN7/RB5
AN4/QEA/CN6/RB4
15
16
46
SDA1/RG3
45
SCK1/INT0/RF6
AN3/INDX/CN5/RB3
17
44
SDI1/RF7
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/CN3/RB1
18
43
SDO1/RF8
19
42
U1RX/RF2
PGD3/EMUD3/AN0/CN2/RB0
20
41
U1TX/RF3
DS70155C-page 82
36
37
38
39
40
U2RTS/AN14/RB14
IC8/U1RTS/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
34
TDI/AN13/RB13
AN15/OCFB/CN12/RB15
IC7/U1CTS/CN20/RD14
33
Preliminary
35
32
28
AN9/RB9
TCK/AN12/RB12
27
U2CTS/AN8/RB8
31
26
AVSS
VDD
25
AVDD
30
24
VSS
23
VREF-/RA9
VREF+/RA10
29
22
PGD1/EMUD1/AN7/RB7
AN11/RB11
21
PGC1/EMUC1/AN6/OCFA/RB6
AN10/RB10
dsPIC33FJ64MC508
11
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams (Continued)
OC2/RD1
62
61
IC5/RD12
OC4/RD3
OC3/RD2
OC7/CN15/RD6
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/CN16/UPDN/RD7
CRX2/RG0
C2TX/RG1
PWM2L/RE2
PWM1H/RE1
PWM1L/RE0
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
PWM3L/RE4
PWM2H/RE3
80-Pin TQFP
PWM3H/RE5
1
60
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PWM4L/RE6
2
59
PGD2/EMUD2/SOSCI/CN1/RC13
PWM4H/RE7
3
58
OC1/RD0
AN16/T2CK/T7CK/RC1
4
57
AN17/T3CK/T6CK/RC2
SCK2/CN8/RG6
5
56
IC4/RD11
IC3/RD10
6
55
IC2/RD9
SDI2/CN9/RG7
SDO2/CN10/RG8
7
54
IC1/RD8
8
53
SDA2/INT4/RA15
MCLR
9
52
SCL2/INT3/RA14
SS2/CN11/RG9
10
51
VSS
VSS
11
12
50
OSC2/CLKO/RC15
49
OSC1/CLKIN/RC12
48
VDD
TDO/FLTB/INT2/RE9
13
14
47
SCL1/RG2
AN5/QEB/CN7/RB5
15
46
SDA1/RG3
AN4/QEA/CN6/RB4
16
45
SCK1/INT0/RF6
AN3/INDX/CN5/RB3
17
44
SDI1/RF7
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/CN3/RB1
18
43
SDO1/RF8
19
42
U1RX/RF2
PGD3/EMUD3/AN0/CN2/RB0
20
41
U1TX/RF3
35
36
37
38
39
40
IC7/U1CTS/CN20/RD14
IC8/U1RTS/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
34
U2RTS/AN14/RB14
33
TDI/AN13/RB13
Preliminary
AN15/OCFB/CN12/RB15
32
TCK/AN12/RB12
28
AN9/RB9
31
27
U2CTS/AN8/RB8
VDD
26
AVSS
30
25
AVDD
VSS
24
AN11/RB11
23
VREF-/RA9
VREF+/RA10
29
22
© 2005 Microchip Technology Inc.
AN10/RB10
21
PGD1/EMUD1/AN7/RB7
TMS/FLTA/INT1/RE8
PGC1/EMUC1/AN6/OCFA/RB6
VDD
dsPIC33FJ128MC708
DS70155C-page 83
dsPIC33F
Pin Diagrams (Continued)
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
PWM3L/RE4
PWM2H/RE3
PWM2L/RE2
CSDO/RG13
CSDI/RG12
CSCK/RG14
PWM1H/RE1
PWM1L/RE0
AN23/CN23/RA7
AN22/CN22/RA6
RG0
RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/UPDN//CN16/RD7
OC7/CN15/RD6
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
OC2/RD1
100-Pin TQFP
COFS/RG15
VDD
PWM3H/RE5
PWM4L/RE6
PWM4H/RE7
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
VSS
1
75
VSS
2
3
4
5
6
7
8
9
10
11
12
74
73
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
72
OC1/RD0
IC4/RD11
PGC3/EMUC3/AN1/CN3/RB1
13
14
15
16
17
18
19
20
21
22
23
24
PGD3/EMUD3/AN0/CN2/RB0
25
VDD
TMS/RA0
AN20/FLTA/INT1/RE8
AN21/FLTB/INT2/RE9
70
69
68
67
66
65
64
dsPIC33FJ64MC510
63
62
61
60
59
58
57
56
55
54
53
52
51
IC3/RD10
IC2/RD9
IC1/RD8
INT4/RA15
INT3/RA14
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
TDO/RA5
TDI/RA4
RA3
RA2
SCL1/RG2
SDA1/RG3
SCK1/INT0/RF6
SDI1/RF7
SDO1/RF8
U1RX/RF2
U1TX/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
VREF-/RA9
VREF+/RA10
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
TCK/RA1
U2RTS/RF13
U2CTS/RF12
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
VSS
VDD
IC7/U1CTS/CN20/RD14
IC8/U1RTS/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
AN5/QEB/CN7/RB5
AN4/QEA/CN6/RB4
AN3/INDX/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
71
PGD2/EMUD2/SOSCI/CN1/RC13
DS70155C-page 84
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
Pin Diagrams (Continued)
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
PWM3L/RE4
PWM2H/RE3
PWM2L/RE2
CSDO/RG13
CSDI/RG12
CSCK/RG14
PWM1H/RE1
PWM1L/RE0
AN23/CN23/RA7
AN22/CN22/RA6
RG0
RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/UPDN//CN16/RD7
OC7/CN15/RD6
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
OC2/RD1
100-Pin TQFP
COFS/RG15
VDD
PWM3H/RE5
PWM4L/RE6
PWM4H/RE7
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
VSS
VDD
TMS/RA0
AN20/FLTA/INT1/RE8
AN21/FLTB/INT2/RE9
AN5/QEB/CN7/RB5
AN4/QEA/CN6/RB4
AN3/INDX/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/CN3/RB1
75
VSS
2
3
4
5
6
7
8
9
10
11
12
74
73
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
13
14
15
16
17
18
19
20
21
22
23
24
25
72
71
70
69
68
67
66
dsPIC33FJ128MC510
dsPIC33FJ256MC510
65
64
63
62
61
60
59
PGD2/EMUD2/SOSCI/CN1/RC13
OC1/RD0
IC4/RD11
IC3/RD10
IC2/RD9
IC1/RD8
INT4/RA15
INT3/RA14
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
TDO/RA5
TDI/RA4
SDA2/RA3
58
57
56
55
54
SCL2/RA2
SCL1/RG2
SDA1/RG3
SCK1/INT0/RF6
53
52
51
SDO1/RF8
U1RX/RF2
SDI1/RF7
U1TX/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
VREF-/RA9
VREF+/RA10
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
TCK/RA1
U2RTS/RF13
U2CTS/RF12
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
VSS
VDD
IC7/U1CTS/CN20/RD14
IC8/U1RTS/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
PGD3/EMUD3/AN0/CN2/RB0
1
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 85
dsPIC33F
Pin Diagrams (Continued)
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
PWM3L/RE4
PWM2H/RE3
PWM2L/RE2
CSDO/RG13
CSDI/RG12
CSCK/RG14
PWM1H/RE1
PWM1L/RE0
AN23/CN23/RA7
AN22/CN22/RA6
C2RX/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
VDD
VDDCORE
OC8/UPDN//CN16/RD7
OC7/CN15/RD6
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
OC2/RD1
100-Pin TQFP
COFS/RG15
VDD
PWM3H/RE5
PWM4L/RE6
PWM4H/RE7
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
VSS
VDD
TMS/RA0
AN20/FLTA/INT1/RE8
AN21/FLTB/INT2/RE9
AN5/QEB/CN7/RB5
AN4/QEA/CN6/RB4
AN3/INDX/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC3/EMUC3/AN1/CN3/RB1
75
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
74
73
72
71
70
69
68
67
66
65
dsPIC33FJ64MC710
dsPIC33FJ128MC710
dsPIC33FJ256MC710
64
63
62
61
60
59
58
57
56
55
54
53
52
51
VSS
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PGD2/EMUD2/SOSCI/CN1/RC13
OC1/RD0
IC4/RD11
IC3/RD10
IC2/RD9
IC1/RD8
INT4/RA15
INT3/RA14
VSS
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
VDD
TDO/RA5
TDI/RA4
SDA2/RA3
SCL2/RA2
SCL1/RG2
SDA1/RG3
SCK1/INT0/RF6
SDI1/RF7
SDO1/RF8
U1RX/RF2
U1TX/RF3
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
VREF-/RA9
VREF+/RA10
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
TCK/RA1
U2RTS/RF13
U2CTS/RF12
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
VSS
VDD
IC7/U1CTS/CN20/RD14
IC8/U1RTS/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
PGD3/EMUD3/AN0/CN2/RB0
1
DS70155C-page 86
Preliminary
© 2005 Microchip Technology Inc.
dsPIC33F
NOTES:
© 2005 Microchip Technology Inc.
Preliminary
DS70155C-page 87
WORLDWIDE SALES AND SERVICE
AMERICAS
ASIA/PACIFIC
ASIA/PACIFIC
EUROPE
Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Technical Support:
http://support.microchip.com
Web Address:
www.microchip.com
Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
India - Bangalore
Tel: 91-80-2229-0061
Fax: 91-80-2229-0062
China - Beijing
Tel: 86-10-8528-2100
Fax: 86-10-8528-2104
India - New Delhi
Tel: 91-11-5160-8631
Fax: 91-11-5160-8632
Austria - Weis
Tel: 43-7242-2244-399
Fax: 43-7242-2244-393
Denmark - Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
China - Chengdu
Tel: 86-28-8676-6200
Fax: 86-28-8676-6599
India - Pune
Tel: 91-20-2566-1512
Fax: 91-20-2566-1513
France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
China - Fuzhou
Tel: 86-591-8750-3506
Fax: 86-591-8750-3521
Japan - Yokohama
Tel: 81-45-471- 6166
Fax: 81-45-471-6122
Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
China - Hong Kong SAR
Tel: 852-2401-1200
Fax: 852-2401-3431
Korea - Gumi
Tel: 82-54-473-4301
Fax: 82-54-473-4302
China - Qingdao
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 or
82-2-558-5934
Atlanta
Alpharetta, GA
Tel: 770-640-0034
Fax: 770-640-0307
Boston
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088
Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Dallas
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Farmington Hills, MI
Tel: 248-538-2250
Fax: 248-538-2260
Kokomo
Kokomo, IN
Tel: 765-864-8360
Fax: 765-864-8387
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
San Jose
Mountain View, CA
Tel: 650-215-1444
Fax: 650-961-0286
China - Shanghai
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
Malaysia - Penang
Tel: 604-646-8870
Fax: 604-646-5086
China - Shenzhen
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
China - Shunde
Tel: 86-757-2839-5507
Fax: 86-757-2839-5571
China - Wuhan
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
China - Xian
Tel: 86-29-8833-7250
Fax: 86-29-8833-7256
Philippines - Manila
Tel: 632-634-9065
Fax: 632-634-9069
Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Spain - Madrid
Tel: 34-91-352-30-52
Fax: 34-91-352-11-47
UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820
Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
Taiwan - Hsin Chu
Tel: 886-3-572-9526
Fax: 886-3-572-6459
Taiwan - Kaohsiung
Tel: 886-7-536-4818
Fax: 886-7-536-4803
Taiwan - Taipei
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
Toronto
Mississauga, Ontario,
Canada
Tel: 905-673-0699
Fax: 905-673-6509
08/24/05
DS70155C-page 88
Preliminary
© 2005 Microchip Technology Inc.