Beruflich Dokumente
Kultur Dokumente
Data Sheet
High-Performance,
16-bit Digital Signal Controllers
• 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.
ISBN: 978-1-61341-358-6
10-Bit/12-Bit ADC
External Interrupts(2)
Packages
Input Capture
Remappable
(Kbyte)
16-bit Timer
(Kbyte)
Std. PWM
I2C™
RAM
Pins
Device
UART
Pins
SPI
dsPIC33FJ12GP201 18 12 1 8 3(1) 4 2 1 3 1 1 ADC, 1 13 PDIP
6 ch SOIC
dsPIC33FJ12GP202 28 12 1 16 3(1) 4 2 1 3 1 1 ADC, 1 21 SPDIP
10 ch SOIC
SSOP
QFN
Note 1: Only two out of three timers are remappable.
2: Only two out of three interrupts are remappable.
MCLR 1 18 VDD
PGED2/AN0/VREF+/CN2/RA0 2 17 VSS
dsPIC33FJ12GP201
PGEC2/AN1/VREF-/CN3/RA1 3 16 AN6/RP15(1)/CN11/RB15
PGED1/AN2/RP0(1)/CN4/RB0 4 15 AN7/RP14(1)/CN12/RB14
PGEC1/AN3/RP1(1)/CN5/RB1 5 14 VCAP
OSC1/CLKI/CN30/RA2 6 13 VSS
OSC2/CLKO/CN29/RA3 7 12 SDA1/RP9(1)/CN21/RB9
PGED3/SOSCI/RP4(1)/CN1/RB4 8 11 SCL1/RP8(1)/CN22/RB8
PGEC3/SOSCO/T1CK/CN0/RA4 9 10 INT0/RP7(1)/CN23/RB7
MCLR 1 28 AVDD
PGED2/AN0/VREF+/CN2/RA0 2 27 AV ss
PGEC2/AN1/VREF-/CN3/RA1 3 26 AN6/RP15(1)/CN11/RB15
(1)
PGED1/AN2/RP0 /CN4/RB0 4 25 AN7/RP14(1)/CN12/RB14
dsPIC33FJ12GP202
(1)
PGEC1/AN3/RP1 /CN5/RB1 5 24 AN8/RP13(1)/CN13/RB13
(1)
AN4/RP2 /CN6/RB2 6 23 AN9/RP12(1)/CN14/RB12
AN5/RP3(1)/CN7/RB3 7 22 TMS/RP11(1)/CN15/RB11
Vss 8 21 TDI/RP10(1)/CN16/RB10
OSC1/CLKI/CN30/RA2 9 20 VCAP
OSC2/CLKO/CN29/RA3 10 19 Vss
PGED3/SOSC/RP4(1)/CN1/RB4 11 18 TDO/SDA1/RP9(1)/CN21/RB9
PGEC3/SOSCO/T1CK/CN0/RA4 12 17 TCK/SCL1/RP8(1)/CN22/RB8
VDD 13 16 INT0/RP7(1)/CN23/RB7
ASDA1/RP5(1)/CN27/RB5 14 15 ASCL1/RP6(1)/CN24/RB6
Note 1: The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available
peripherals.
PGED2/AN0/VREF+/CN2/RA0
PGEC2/AN1/VREF-/CN3/RA1
AN7/RP14(1)/CN12/RB14
AN6/RP15(1)/CN11/RB15
MCLR
AVSS
AVDD
28 27 26 25 24 23 22
PGED1/AN2/RP0(1)/CN4/RB0 1 21 AN8/RP13(1)/CN13/RB13
PGEC1/AN3/RP1(1)/CN5/RB1 2 20 AN9/RP12(1)/CN14/RB12
AN4/RP2(1)/CN6/RB2 3 19 TMS/RP11(1)/CN15/RB11
AN5/RP3(1)/CN7/RB3 4 dsPIC33FJ12GP202 18 TDI/RP10(1)/CN16/RB10
VSS 5 17 VCAP
OSC1/CLKI/CN30/RA2 6 16 VSS
OSC2/CLKO/CN29/RA3 7 15 TDO/SDA1/RP9(1)/CN21/RB9
8 9 10 11 12 13 14
PGED3/SOSCI/RP4(1)/CN1/RB4
VDD
ASDA1/RP5 /CN27/RB5
ASCL1/RP6 /CN24/RB6
INT0/RP7(1)/CN23/RB7
TCK/SCL1/RP8(1)/CN22/RB8
PGEC3/SOSCO/T1CK/CN0/RA4
(1)
(1)
Note 1: The RPn pins can be used by any remappable peripheral. See Table 1 for the list of available
peripherals.
2: The metal plane at the bottom of the device is not connected to any pins and is recommended to
be connected to VSS externally.
Errata
An errata sheet, describing minor operational differences from the data sheet and recommended workarounds, may exist for current
devices. As device/documentation issues become known to us, we will publish an errata sheet. The errata will specify the revision of
silicon and revision of document to which it applies.
To determine if an errata sheet exists for a particular device, please check with one of the following:
• Microchip’s Worldwide Web site; http://www.microchip.com
• Your local Microchip sales office (see last page)
When contacting a sales office, please specify which device, revision of silicon and data sheet (include literature number) you are
using.
16
8 16 16 16
Program Memory
EA MUX
Instruction
Decode and
Control Instruction Reg
16
Control Signals
to Various Blocks DSP Engine
16 x 16
OSC2/CLKO Timing Power-up W Register Array
OSC1/CLKI Generation Timer Divide Support
16
Oscillator
FRC/LPRC Start-up Timer
Oscillators
Power-on
Reset
Precision
16-bit ALU
Band Gap Watchdog
Reference Timer
16
Brown-out
Voltage Reset
Regulator
Timers OC/
UART1 ADC1
1-3 PWM1-2
Note: Not all pins or features are implemented on all device pinout configurations. See “Pin Diagrams” for the specific pins and features
on each device.
VDD
VSS
R VCAP
R1
resistance and capacitance that can be added to the
MCLR pin must be considered. Device programmers and
debuggers drive the MCLR pin. Consequently,
C specific voltage levels (VIH and VIL) and fast signal
dsPIC33F transitions must not be adversely affected. Therefore,
specific values of R and C will need to be adjusted
VSS VDD
based on the application and PCB requirements.
VDD VSS For example, as shown in Figure 2-2, it is
0.1 µF 0.1 µF recommended that the capacitor C, be isolated from
AVDD
AVSS
VDD
Ceramic
VSS
Ceramic
the MCLR pin during programming and debugging
operations.
0.1 µF 0.1 µF
10 Ω Ceramic Ceramic Place the components shown in Figure 2-2 within
one-quarter inch (6 mm) from the MCLR pin.
16 16 16
8 16
Program Memory
EA MUX
Instruction
Decode &
Control Instruction Reg
Control Signals
to Various Blocks 16
DSP Engine
16 x 16
W Register Array
Divide Support 16
16-bit ALU
16
To Peripheral Modules
PC22 PC0
0 Program Counter
7 0
TBLPAG Data Table Page Address
7 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
DOEND DO Loop End Address
15 0
CORCON Core Configuration Register
SRH SRL
Legend:
C = Clear only bit R = Readable bit U = Unimplemented bit, read as ‘0’
S = Set only bit W = Writable bit -n = Value at POR
‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
S
40 a
40-bit Accumulator A
40 Round t 16
40-bit Accumulator B u
Logic r
Carry/Borrow Out a
Saturate t
e
Carry/Borrow In Adder
Negate
40 40 40
Barrel
16
Shifter
X Data Bus
40
Sign-Extend
Y Data Bus
32 16
Zero Backfill
33 32
17-bit
Multiplier/Scaler
16 16
To/From W Array
(4K instructions)
0x001FFE
0x002000
Unimplemented
(Read ‘0’s)
0x7FFFFE
0x800000
Reserved
Configuration Memory Space
0xF7FFFE
Device Configuration 0xF80000
Registers 0xF80017
0xF80018
Reserved
0xFEFFFE
0xFF0000
DEVID (2) 0xFFFFFE
msw most significant word (msw) least significant word (lsw) PC Address
Address (lsw Address)
23 16 8 0
0x000001 00000000 0x000000
0x000003 00000000 0x000002
0x000005 00000000 0x000004
0x000007 00000000 0x000006
0x1FFF 0x1FFFF
0x2001 0x2000
0x8001 0x8000
X Data
Optionally Unimplemented (X)
Mapped
into Program
Memory
0xFFFF 0xFFFE
4.2.5 X AND Y DATA SPACES The Y data space is used in concert with the X data
space by the MAC class of instructions (CLR, ED,
The core has two data spaces, X and Y. These data
EDAC, MAC, MOVSAC, MPY, MPY.N, and MSC) to
spaces can be considered either separate (for some
provide two concurrent data read paths.
DSP instructions), or as one unified linear address
range (for MCU instructions). The data spaces are Both the X and Y data spaces support Modulo Address-
accessed using two Address Generation Units (AGUs) ing mode for all instructions, subject to addressing
and separate data paths. This feature allows certain mode restrictions. Bit-Reversed Addressing mode is
instructions to concurrently fetch two words from RAM, only supported for writes to X data space.
thereby enabling efficient execution of DSP algorithms All data memory writes, including in DSP instructions,
such as Finite Impulse Response (FIR) filtering and view data space as combined X and Y address space.
fast Fourier transform (FFT). The boundary between the X and Y data spaces is
The X data space is used by all instructions and device-dependent and is not user-programmable.
supports all addressing modes. X data space has All effective addresses are 16 bits wide and point to
separate read and write data buses. The X read data bytes within the data space. Therefore, the data space
bus is the read data path for all instructions that view address range is 64 Kbytes, or 32K words, though the
data space as combined X and Y address space. It is implemented memory locations vary by device.
also the X data prefetch path for the dual operand DSP
instructions (MAC class).
dsPIC33FJ12GP201/202
SPLIM 0020 Stack Pointer Limit Register xxxx
ACCAL 0022 Accumulator A Low Word Register 0000
ACCAH 0024 Accumulator A High Word Register 0000
ACCAU 0026 Accumulator A Upper Word Register 0000
ACCBL 0028 Accumulator B Low Word Register 0000
ACCBH 002A Accumulator B High Word Register 0000
ACCBU 002C Accumulator B Upper Word Register 0000
PCL 002E Program Counter Low Word Register 0000
PCH 0030 — — — — — — — — Program Counter High Byte Register 0000
TBLPAG 0032 — — — — — — — — Table Page Address Pointer Register 0000
PSVPAG 0034 — — — — — — — — Program Memory Visibility Page Address Pointer Register 0000
RCOUNT 0036 Repeat Loop Counter Register xxxx
DCOUNT 0038 DCOUNT<15:0> xxxx
DOSTARTL 003A DOSTARTL<15:1> 0 xxxx
DOSTARTH 003C — — — — — — — — — — DOSTARTH<5:0> 00xx
DOENDL 003E DOENDL<15:1> 0 xxxx
DS70264E-page 35
dsPIC33FJ12GP201/202
SFR All
SFR Name Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Addr Resets
XMODSRT 0048 XS<15:1> 0 xxxx
XMODEND 004A XE<15:1> 1 xxxx
YMODSRT 004C YS<15:1> 0 xxxx
YMODEND 004E YE<15:1> 1 xxxx
XBREV 0050 BREN XB<14:0> xxxx
DISICNT 0052 — — Disable Interrupts Counter Register xxxx
Legend: x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
CNEN1 0060 CN15IE CN14IE CN13IE CN12IE CN11IE —- — — CN7IE CN6IE CN5IE CN4IE CN3IE CN2IE CN1IE CN0IE 0000
CNEN2 0062 — CN30IE CN29IE — CN27IE — — CN24IE CN23IE CN22IE CN21IE — — — — CN16IE 0000
CNPU1 0068 CN15PUE CN14PUE CN13PUE CN12PUE CN11PUE — — — CN7PUE CN6PUE CN5PUE CN4PUE CN3PUE CN2PUE CN1PUE CN0PUE 0000
CNPU2 006A — CN30PUE CN29PUE — CN27PUE — — CN24PUE CN23PUE CN22PUE CN21PUE — — — — CN16PUE 0000
Legend: x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
CNEN1 0060 — — — CN12IE CN11IE — — — — — CN5IE CN4IE CN3IE CN2IE CN1IE CN0IE 0000
CNEN2 0062 — CN30IE CN29IE — — — — — CN23IE CN22IE CN21IE — — — — — 0000
CNPU1 0068 — — — CN12PUE CN11PUE — — — — — CN5PUE CN4PUE CN3PUE CN2PUE CN1PUE CN0PUE 0000
© 2007-2011 Microchip Technology Inc.
INTCON1 0080 NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE SFTACERR DIV0ERR — MATHERR ADDRERR STKERR OSCFAIL — 0000
INTCON2 0082 ALTIVT DISI — — — — — — — — — — — INT2EP INT1EP INT0EP 0000
IFS0 0084 — — AD1IF U1TXIF U1RXIF SPI1IF SPI1EIF T3IF T2IF OC2IF IC2IF — T1IF OC1IF IC1IF INT0IF 0000
IFS1 0086 — — INT2IF — — — — — IC8IF IC7IF — INT1IF CNIF — MI2C1IF SI2C1IF 0000
IFS4 008C — — — — — — — — — — — — — — U1EIF — 0000
IEC0 0094 — — AD1IE U1TXIE U1RXIE SPI1IE SPI1EIE T3IE T2IE OC2IE IC2IE — T1IE OC1IE IC1IE INT0IE 0000
IEC1 0096 — — INT2IE — — — — — IC8IE IC7IE — INT1IE CNIE — MI2C1IE SI2C1IE 0000
IEC4 009C — — — — — — — — — — — — — — U1EIE — 0000
IPC0 00A4 — T1IP<2:0> — OC1IP<2:0> — IC1IP<2:0> — INT0IP<2:0> 4444
IPC1 00A6 — T2IP<2:0> — OC2IP<2:0> — IC2IP<2:0> — — — — 4440
IPC2 00A8 — U1RXIP<2:0> — SPI1IP<2:0> — SPI1EIP<2:0> — T3IP<2:0> 4444
IPC3 00AA — — — — — — — — — AD1IP<2:0> — U1TXIP<2:0> 0044
IPC4 00AC — CNIP<2:0> — — — — — MI2C1IP<2:0> — SI2C1IP<2:0> 4044
IPC5 00AE — IC8IP<2:0> — IC7IP<2:0> — — — — — INT1IP<2:0> 4404
IPC7 00B2 — — — — — — — — — INT2IP<2:0> — — — — 0040
dsPIC33FJ12GP201/202
IPC16 00C4 — — — — — — — — — U1EIP<2:0> — — — — 0040
INTTREG 00E0 — — — — ILR<3:0>> — VECNUM<6:0> 0000
Legend: x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
DS70264E-page 37
DS70264E-page 38
dsPIC33FJ12GP201/202
TABLE 4-5: TIMER REGISTER MAP
SFR Name SFR All
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Addr Resets
U1MODE 0220 UARTEN — USIDL IREN RTSMD — UEN1 UEN0 WAKE LPBACK ABAUD URXINV BRGH PDSEL<1:0> STSEL 0000
U1STA 0222 UTXISEL1 UTXINV UTXISEL0 — UTXBRK UTXEN UTXBF TRMT URXISEL<1:0> ADDEN RIDLE PERR FERR OERR URXDA 0110
U1TXREG 0224 — — — — — — — UART Transmit Register xxxx
U1RXREG 0226 — — — — — — — UART Receive Register
dsPIC33FJ12GP201/202
0000
U1BRG 0228 Baud Rate Generator Prescaler 0000
Legend: x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
dsPIC33FJ12GP201/202
TABLE 4-11: PERIPHERAL PIN SELECT INPUT REGISTER MAP
File All
Addr Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Name Resets
TABLE 4-12: PERIPHERAL PIN SELECT OUTPUT REGISTER MAP FOR dsPIC33FJ12GP202
File All
Addr Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Name Resets
TABLE 4-13: PERIPHERAL PIN SELECT OUTPUT REGISTER MAP FOR dsPIC33FJ12GP201
All
File Name Addr Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Resets
dsPIC33FJ12GP201/202
ADC1BUFE 031C ADC Data Buffer 14 xxxx
ADC1BUFF 031E ADC Data Buffer 15 xxxx
AD1CON1 0320 ADON — ADSIDL — — AD12B FORM<1:0> SSRC<2:0> — SIMSAM ASAM SAMP DONE 0000
AD1CON2 0322 VCFG<2:0> — — CSCNA CHPS<1:0> BUFS — SMPI<3:0> BUFM ALTS 0000
AD1CON3 0324 ADRC — — SAMC<4:0> ADCS<7:0> 0000
AD1CHS123 0326 — — — — — CH123NB<1:0> CH123SB — — — — — CH123NA<1:0> CH123SA 0000
AD1CHS0 0328 CH0NB — — CH0SB<4:0> CH0NA — — CH0SA<4:0> 0000
AD1PCFGL 032C — — — — — — — — PCFG7 PCFG6 — — PCFG3 PCFG2 PCFG1 PCFG0 0000
AD1CSSL 0330 — — — — — — — — CSS7 CSS6 — — CSS3 CSS2 CSS1 CSS0 0000
Legend: x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
DS70264E-page 41
DS70264E-page 42
dsPIC33FJ12GP201/202
TABLE 4-15: ADC1 REGISTER MAP FOR dsPIC33FJ12GP202
All
File Name Addr Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Resets
Legend: x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
© 2007-2011 Microchip Technology Inc.
TRISB 02C8 TRISB15 TRISB14 TRISB13 TRISB12 TRISB11 TRISB10 TRISB9 TRISB8 TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 FFFF
PORTB 02CA RB15 RB14 RB13 RB12 RB11 RB10 RB9 RB8 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx
LATB 02CC LATB15 LATB14 LATB13 LATB12 LATB11 LATB10 LATB9 LATB8 LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0 xxxx
ODCB 02CE ODCB15 ODCB14 ODCB13 ODCB12 ODCB11 ODCB10 ODCB9 ODCB8 ODCB7 ODCB6 ODCB5 ODCB4 ODCB3 ODCB2 ODCB1 ODCB0 0000
Legend: x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
dsPIC33FJ12GP201/202
All
File Name Addr Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Resets
TRISB 02C8 TRISB15 TRISB14 — — — — TRISB9 TRISB8 TRISB7 — — TRISB4 — — TRISB1 TRISB0 C393
PORTB 02CA RB15 RB14 — — — — RB9 RB8 RB7 — — RB4 — — RB1 RB0 xxxx
LATB 02CC LATB15 LATB14 — — — — LATB9 LATB8 LATB7 — — LATB4 — — LATB1 LATB0 xxxx
ODCB 02CE ODCB15 ODCB14 — — — — ODCB9 ODCB8 ODCB7 — — ODCB4 — — ODCB1 ODCB0 0000
Legend: x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
RCON 0740 TRAPR IOPUWR — — — — CM VREGS EXTR SWR SWDTEN WDTO SLEEP IDLE BOR POR xxxx(1)
OSCCON 0742 — COSC<2:0> — NOSC<2:0> CLKLOCK IOLOCK LOCK — CF — LPOSCEN OSWEN 0300(2)
CLKDIV 0744 ROI DOZE<2:0> DOZEN FRCDIV<2:0> PLLPOST<1:0> — PLLPRE<4:0> 3040
DS70264E-page 43
dsPIC33FJ12GP201/202
TABLE 4-20: NVM REGISTER MAP
All
File Name Addr Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Resets
PMD1 0770 — — T3MD T2MD T1MD — — — I2C1MD — U1MD — SPI1MD — — AD1MD 0000
PMD2 0772 IC8MD IC7MD — — — — IC2MD IC1MD — — — — — — OC2MD OC1MD 0000
Legend: x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
© 2007-2011 Microchip Technology Inc.
dsPIC33FJ12GP201/202
4.2.6 SOFTWARE STACK 4.2.7 DATA RAM PROTECTION FEATURE
In addition to its use as a working register, the W15 The dsPIC33F product family supports Data RAM
register in the dsPIC33FJ12GP201/202 devices is also protection features that enable segments of RAM to be
used as a software Stack Pointer. The Stack Pointer protected when used in conjunction with Boot and
always points to the first available free word and grows Secure Code Segment Security. BSRAM (Secure RAM
from lower to higher addresses. It pre-decrements for segment for BS) is accessible only from the Boot
stack pops and post-increments for stack pushes, as Segment Flash code, when it is enabled. SSRAM
shown in Figure 4-4. For a PC push during any CALL (Secure RAM segment for RAM) is accessible only
instruction, the MSB of the PC is zero-extended before from the Secure Segment Flash code, when it is
the push, ensuring that the MSB is always clear. enabled. See Table 4-1 for an overview of the BSRAM
and SSRAM SFRs.
Note: A PC push during exception processing
concatenates the SRL register to the MSB
of the PC prior to the push. 4.3 Instruction Addressing Modes
The Stack Pointer Limit register (SPLIM) associated The addressing modes shown in Table 4-22 form the
with the Stack Pointer sets an upper address boundary basis of the addressing modes that are optimized to
for the stack. SPLIM is uninitialized at Reset. As is the support the specific features of individual instructions.
case for the Stack Pointer, SPLIM<0> is forced to ‘0’ The addressing modes provided in the MAC class of
because all stack operations must be word-aligned. instructions differ from those provided in the other
instruction types.
When an EA is generated using W15 as a source or
destination pointer, the resulting address is compared 4.3.1 FILE REGISTER INSTRUCTIONS
with the value in SPLIM. If the contents of the Stack
Pointer (W15) and the SPLIM register are equal and a Most file register instructions use a 13-bit address field
push operation is performed, a stack error trap will not (f) to directly address data present in the first 8192
occur. However, the stack error trap will occur on a sub- bytes of data memory (near data space). Most file
sequent push operation. For example, to cause a stack register instructions employ a working register, W0,
error trap when the stack grows beyond address which is denoted as WREG in these instructions. The
0x0C00 in RAM, initialize the SPLIM with the value destination is typically either the same file register or
0x0BFE. WREG (with the exception of the MUL instruction),
which writes the result to a register or register pair. The
Similarly, a Stack Pointer underflow (stack error) trap is MOV instruction allows additional flexibility and can
generated when the Stack Pointer address is found to access the entire data space.
be less than 0x0800. This prevents the stack from
interfering with the SFR space. 4.3.2 MCU INSTRUCTIONS
A write to the SPLIM register should not be immediately The three-operand MCU instructions are of the form:
followed by an indirect read operation using W15.
Operand 3 = Operand 1 <function> Operand 2
Sequential Address
b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 0
Pivot Point
XB = 0x0008 for a 16-Word, Bit-Reversed Buffer
A3 A2 A1 A0 Decimal A3 A2 A1 A0 Decimal
0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 0 0 0 8
0 0 1 0 2 0 1 0 0 4
0 0 1 1 3 1 1 0 0 12
0 1 0 0 4 0 0 1 0 2
0 1 0 1 5 1 0 1 0 10
0 1 1 0 6 0 1 1 0 6
0 1 1 1 7 1 1 1 0 14
1 0 0 0 8 0 0 0 1 1
1 0 0 1 9 1 0 0 1 9
1 0 1 0 10 0 1 0 1 5
1 0 1 1 11 1 1 0 1 13
1 1 0 0 12 0 0 1 1 3
1 1 0 1 13 1 0 1 1 11
1 1 1 0 14 0 1 1 1 7
1 1 1 1 15 1 1 1 1 15
23 bits
EA 1/0
8 bits 16 bits
24 bits
Select
1 EA 0
Program Space Visibility(1)
(Remapping)
0 PSVPAG
8 bits 15 bits
23 bits
Note 1: The LSb of program space addresses is always fixed as ‘0’ to maintain word alignment of
data in the program and data spaces.
2: Table operations are not required to be word-aligned. Table read operations are permitted
in the configuration memory space.
‘Phantom’ Byte
TBLRDH.B (Wn<0> = 0)
TBLRDL.B (Wn<0> = 1)
TBLRDL.B (Wn<0> = 0)
TBLRDL.W
PSV Area
...while the lower 15 bits
of the EA specify an
exact address within
0xFFFF the PSV area. This
corresponds exactly to
the same lower 15 bits
of the actual program
space address.
0x800000
24 bits
Using
0 Program Counter 0
Program Counter
Working Reg EA
Using
1/0 TBLPAG Reg
Table Instruction
8 bits 16 bits
User/Configuration Byte
Space Select 24-bit EA Select
T
---------------------------------------------------------------------------------------------------------------------------
-
7.37 MHz × ( FRC Accuracy )% × ( FRC Tuning )%
If ERASE = 0:
1111 = No operation
1101 = No operation
1100 = No operation
0011 = Memory word program operation
0010 = No operation
0001 = Memory row program operation
0000 = Program a single Configuration register byte
Glitch Filter
MCLR
WDT
Module
Sleep or Idle
Internal BOR
Regulator SYSRST
VDD
Trap Conflict
Illegal Opcode
Uninitialized W Register
Configuration Mismatch
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Note 1: All of the Reset status bits can be set or cleared in software. Setting one of these bits in software does not
cause a device Reset.
2: If the FWDTEN Configuration bit is ‘1’ (unprogrammed), the WDT is always enabled, regardless of the
SWDTEN bit setting.
Note 1: All of the Reset status bits can be set or cleared in software. Setting one of these bits in software does not
cause a device Reset.
2: If the FWDTEN Configuration bit is ‘1’ (unprogrammed), the WDT is always enabled, regardless of the
SWDTEN bit setting.
Vbor
VBOR
VPOR
VDD
TPOR
1
POR Reset TBOR
2
BOR Reset 3
TPWRT
SYSRST
4
Oscillator Clock
TOSCD TOST TLOCK
6
TFSCM
FSCM
5
Time
1. POR Reset: A POR circuit holds the device in Reset when the power supply is turned on. The POR circuit is active until VDD crosses
the VPOR threshold and the delay TPOR has elapsed.
2. BOR Reset: The on-chip voltage regulator has a BOR circuit that keeps the device in Reset until VDD crosses the VBOR threshold
and the delay TBOR has elapsed. The delay TBOR ensures the voltage regulator output becomes stable.
3. PWRT Timer: The programmable power-up timer continues to hold the processor in Reset for a specific period of time (TPWRT)
after a BOR. The delay TPWRT ensures that the system power supplies have stabilized at the appropriate level for full-speed
operation. After the delay TPWRT has elapsed, the SYSRST becomes inactive, which in turn enables the selected oscillator to start
generating clock cycles.
4. Oscillator Delay: The total delay for the clock to be ready for various clock source selections are given in Table 6-1. Refer to
Section 8.0 “Oscillator Configuration” for more information.
5. When the oscillator clock is ready, the processor begins execution from location 0x000000. The user application programs a GOTO
instruction at the Reset address, which redirects program execution to the appropriate start-up routine.
6. The Fail-safe clock monitor (FSCM), if enabled, begins to monitor the system clock when the system clock is ready and the delay
TFSCM elapsed.
VBOR
TBOR + TPWRT
SYSRST
VDD
VBOR
TBOR + TPWRT
SYSRST
VDD
VBOR
TBOR + TPWRT
SYSRST
Note 1: See Table 7-1 for the list of implemented interrupt vectors.
Legend:
C = Clear only bit R = Readable bit U = Unimplemented bit, read as ‘0’
S = Set only bit W = Writable bit -n = Value at POR
‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
3. Clear the interrupt flag status bit associated with The DISI instruction provides a convenient way to
the peripheral in the associated IFSx register. disable interrupts of priority levels 1-6 for a fixed period
of time. Level 7 interrupt sources are not disabled by
4. Enable the interrupt source by setting the
the DISI instruction.
interrupt enable control bit associated with the
source in the appropriate IECx register.
DOZE
(1) S1/S3
S1 PLL
OSC2
POSCMD<1:0>
FP
FRC
FRCDIV
FRCDIVN
Oscillator S7 ÷ 2
FOSC
FRCDIV<2:0>
TUN<5:0>
FRCDIV16
S6
÷ 16
FRC S0
LPRC LPRC
S5
Oscillator
Secondary Oscillator
SOSC
SOSCO S4
LPOSCEN
SOSCI Clock Fail Clock Switch Reset
Timer 1
FVCO
0.8-8.0 MHz 12.5-80 MHz
100-200 MHz
Here(1) Here(1)
Here(1)
PLLDIV
N1 N2
Divide by Divide by
2-33 M 2, 4, 8
Divide by
2-513
Note 1: Writes to this register require an unlock sequence. Refer to Section 7. “Oscillator” (DS70186) in the
“dsPIC33F/PIC24H Family Reference Manual” (available from the Microchip website) for details.
2: Direct clock switches between any primary oscillator mode with PLL and FRCPLL mode are not permitted.
This applies to clock switches in either direction. In these instances, the application must switch to FRC
mode as a transition clock source between the two PLL modes.
3: This register is reset only on a Power-on Reset (POR).
Note 1: Writes to this register require an unlock sequence. Refer to Section 7. “Oscillator” (DS70186) in the
“dsPIC33F/PIC24H Family Reference Manual” (available from the Microchip website) for details.
2: Direct clock switches between any primary oscillator mode with PLL and FRCPLL mode are not permitted.
This applies to clock switches in either direction. In these instances, the application must switch to FRC
mode as a transition clock source between the two PLL modes.
3: This register is reset only on a Power-on Reset (POR).
Note 1: This bit is cleared when the ROI bit is set and an interrupt occurs.
2: This register is reset only on a Power-on Reset (POR).
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Note 1: OSCTUN functionality has been provided to help customers compensate for temperature effects on the
FRC frequency over a wide range of temperatures. The tuning step size is an approximation and is neither
characterized nor tested.
2: This register is reset only on a Power-on Reset (POR).
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Note 1: PCFGx bits have no effect if the ADC module is disabled by setting this bit. When the bit is set, all port
pins that have been multiplexed with ANx will be in Digital mode.
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
PIO Module 1
Output Data
Read TRIS
0
Data Bus D Q
I/O Pin
WR TRIS CK
TRIS Latch
D Q
WR LAT +
WR Port CK
Data Latch
Read LAT
Input Data
Read Port
Default
0
U1TX Output
3
U1RTS Output 4
RPn
Output Data
OC1 Output
18
OC2 Output
19
10.4.3.1 Control Register Lock 10.4.3.3 Configuration Bit Pin Select Lock
Under normal operation, writes to the RPINRx and As an additional level of safety, the device can be con-
RPORx registers are not allowed. Attempted writes figured to prevent more than one write session to the
appear to execute normally, but the contents of the RPINRx and RPORx registers. The IOL1WAY
registers remain unchanged. To change these (FOSC<5>) configuration bit blocks the IOLOCK bit
registers, they must be unlocked in hardware. The from being cleared after it has been set once.
register lock is controlled by the IOLOCK bit In the default (unprogrammed) state, the IOL1WAY bit
(OSCCON<6>). Setting the IOLOCK bit prevents is set, restricting users to one write session. Program-
writes to the control registers; clearing the IOLOCK bit ming IOL1WAY allows user applications unlimited
allows writes. access (with the proper use of the unlock sequence) to
To set or clear the IOLOCK bit, a specific command the peripheral pin select registers.
sequence must be executed:
1. Write 0x46 to OSCCON<7:0>. 10.5 Peripheral Pin Select Registers
2. Write 0x57 to OSCCON<7:0>. The dsPIC33FJ12GP201/202 devices implement 17
3. Clear (or set) the IOLOCK bit as a single registers for remappable peripheral configuration:
operation.
• Input Remappable Peripheral Registers (9)
Note: MPLAB® C30 provides built-in C • Output Remappable Peripheral Registers (8)
language functions for unlocking the
OSCCON register: Note: Input and Output register values can only
be changed if the IOLOCK bit
__builtin_write_OSCCONL(value) (OSCCON<6>) = 0. See Section 10.4.3.1
__builtin_write_OSCCONH(value)
“Control Register Lock” for a specific
See the MPLAB IDE help files for more command sequence.
information.
Unlike the similar sequence with the oscillator’s LOCK
bit, IOLOCK remains in one state until changed. This
allows all of the peripheral pin selects to be configured
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
2: Some registers and associated bits 1. Set the TON bit (= 1) in the T1CON register.
described in this section may not be 2. Select the timer prescaler ratio using the
available on all devices. Refer to TCKPS<1:0> bits in the T1CON register.
Section 4.0 “Memory Organization” in 3. Set the Clock and Gating modes using the TCS
this data sheet for device-specific register and TGATE bits in the T1CON register.
and bit information. 4. Set or clear the TSYNC bit in T1CON to select
synchronous or asynchronous operation.
The Timer1 module is a 16-bit timer, which can serve
as the time counter for the real-time clock, or operate 5. Load the timer period value into the PR1
as a free-running interval timer/counter. Timer1 can register.
operate in three modes: 6. If interrupts are required, set the interrupt enable
bit, T1IE. Use the priority bits, T1IP<2:0>, to set
• 16-bit Timer
the interrupt priority.
• 16-bit Synchronous Counter
• 16-bit Asynchronous Counter
TCKPS<1:0>
SOSCO/ TON 2
1x
T1CK
Gate Prescaler
SOSCEN Sync 01 1, 8, 64, 256
SOSCI
TCY 00
TGATE
TGATE TCS
1 Q D
Set T1IF
0 Q CK
0
Reset
TMR1
1 Sync
Comparator TSYNC
Equal
PR1
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
TCKPS<1:0>
TON 2
T2CK 1x
Gate Prescaler
Sync 01 1, 8, 64, 256
TCY 00
TGATE TGATE
TCS
1 Q D
Set T3IF
Q CK
0
PR3 PR2
MSb LSb
16
Read TMR2
Write TMR2
16
16
TMR3HLD
16
Data Bus<15:0>
Note 1: The 32-bit timer control bit, T32, must be set for 32-bit timer/counter operation. All control bits are respective
to the T2CON register.
2: The ADC event trigger is available only on Timer2/3.
TCKPS<1:0>
TON 2
T2CK 1x
Gate Prescaler
Sync 01 1, 8, 64, 256
TGATE 00
TCY TCS
1 Q D TGATE
Set T2IF Q CK
0
Reset
TMR2 Sync
Comparator
Equal
PR2
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Note 1: When 32-bit timer operation is enabled (T32 = 1) in the Timer Control register (T2CON<3>), the TSIDL bit
must be cleared to operate the 32-bit timer in Idle mode.
2: When the 32-bit timer operation is enabled (T32 = 1) in the Timer Control (T2CON<3>) register, these bits
have no effect.
16 16
ICTMR
1 0
(ICxCON<7>)
Prescaler Edge Detection Logic FIFO
Counter and R/W
(1, 4, 16) Clock Synchronizer Logic
ICx Pin
ICM<2:0> (ICxCON<2:0>)
3 Mode Select
FIFO
System Bus
Set Flag ICxIF
(in IFSn Register)
Note: An ‘x’ in a signal, register or bit name denotes the number of the capture channel.
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
OCxRS
OCxR Output S Q
OCx
Logic R
3
Output
OCM<2:0> Output Enable
Mode Select Enable Logic
Comparator
OCFA
0 1 OCTSEL 0 1
16 16
OCxRS
TMRy
OCxR
Active-Low One-Shot
(OCM = 001)
Active-High One-Shot
(OCM = 010)
Toggle Mode
(OCM = 011)
Delayed One-Shot
(OCM = 100)
PWM Mode
(OCM = 110 or 111)
Transfer Transfer
SPIxRXB SPIxTXB
SPIxBUF
16
Internal Data Bus
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Note 1: The CKE bit is not used in the Framed SPI modes. Program this bit to ‘0’ for the Framed SPI modes
(FRMEN = 1).
2: This bit must be cleared when FRMEN = 1.
3: Do not set both Primary and Secondary prescalers to a value of 1:1.
Note 1: The CKE bit is not used in the Framed SPI modes. Program this bit to ‘0’ for the Framed SPI modes
(FRMEN = 1).
2: This bit must be cleared when FRMEN = 1.
3: Do not set both Primary and Secondary prescalers to a value of 1:1.
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Internal
Data Bus
I2CxRCV
Read
Shift
SCLx Clock
I2CxRSR
LSb
I2CxMSK
Write Read
I2CxADD
Read
Read
Collision Write
Detect
I2CxCON
Acknowledge
Generation Read
Clock
Stretching
Write
I2CxTRN
LSb
Shift Clock Read
Reload
Control
Write
Read
TCY/2
R/C-0 HS R/C-0 HS R-0 HSC R/C-0 HSC R/C-0 HSC R-0 HSC R-0 HSC R-0 HSC
IWCOL I2COV D_A P S R_W RBF TBF
bit 7 bit 0
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
IrDA®
Note 1: Refer to Section 17. “UART” (DS70188) in the “dsPIC33F/PIC24H Family Reference Manual” for
information on enabling the UART module for receive or transmit operation.
2: This feature is only available for the 16x BRG mode (BRGH = 0).
Note 1: Refer to Section 17. “UART” (DS70188) in the “dsPIC33F/PIC24H Family Reference Manual” for
information on enabling the UART module for receive or transmit operation.
2: This feature is only available for the 16x BRG mode (BRGH = 0).
Note 1: Refer to Section 17. “UART” (DS70188) in the “dsPIC33F/PIC24H Family Reference Manual” for
information on enabling the UART module for transmit operation.
Note 1: Refer to Section 17. “UART” (DS70188) in the “dsPIC33F/PIC24H Family Reference Manual” for
information on enabling the UART module for transmit operation.
AN0
AN7
S/H0
Channel
Scan +
CH0SA<4:0> CH0SB<4:0>
-
CH0 CSCNA
AN1
VREFL
CH0NA CH0NB
VREF+(1) AVDD VREF-(1) AVSS
AN0
AN3 S/H1
+
CH123SA CH123SB -
CH1(2)
AN6
VREFL ADC1BUF0
ADC1BUF1
ADC1BUF2
VREFH VREFL
CH123NA CH123NB
SAR ADC
AN1
S/H2
+ ADC1BUFE
CH123SA CH123SB - ADC1BUFF
CH2(2) AN7
VREFL
CH123NA CH123NB
AN2
S/H3
+
CH123SA CH123SB
-
CH3(2)
VREFL
CH123NA CH123NB
Alternate
Input Selection
Note 1: VREF+, VREF- inputs can be multiplexed with other analog inputs.
2: Channels 1, 2, and 3 are not applicable for the 12-bit mode of operation.
AN0
AN9
S/H0
Channel
Scan +
CH0SA<4:0> CH0SB<4:0>
-
CH0 CSCNA
AN1
VREFL
CH123SA CH123SB -
CH1(2)
AN6
AN9
VREFL ADC1BUF0
ADC1BUF1
ADC1BUF2
VREFH VREFL
CH123NA CH123NB
SAR ADC
AN1
AN4
S/H2
+ ADC1BUFE
CH123SA CH123SB - ADC1BUFF
CH2(2) AN7
VREFL
CH123NA CH123NB
AN2
AN5
S/H3
+
CH123SA CH123SB
-
CH3(2)
AN8
VREFL
CH123NA CH123NB
Alternate
Input Selection
Note 1: VREF+, VREF- inputs can be multiplexed with other analog inputs.
2: Channels 1, 2, and 3 are not applicable for the 12-bit mode of operation.
AD1CON3<15>
ADC Internal
RC Clock(2) 1
TAD
AD1CON3<5:0> 0
ADC Conversion
TCY Clock Multiplier
TOSC(1) X2
1, 2, 3, 4, 5,..., 64
Note 1: Refer to Figure 8-2 for the derivation of FOSC when the PLL is enabled. If the PLL is not used, FOSC is equal
to the clock frequency. TOSC = 1/FOSC.
2: See the ADC Electrical Characteristics for the exact RC clock value.
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
ADREF+ ADREF-
000 AVDD AVSS
001 External VREF+ AVSS
010 AVDD External VREF-
011 External VREF+ External VREF-
1xx AVDD AVss
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Note 1: These bits are used only if the SSRC<2:0> bits (AD1CON1<7:5>) = 111.
2: These bits are not used if the ADRC bit (AD1CON3<15>) = 1.
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
If AD12B = 0:
11 = Reserved
10 = CH1 negative input is AN6, CH2 negative input is AN7, CH3 negative input is not connected
01 = CH1, CH2, CH3 negative input is VREF-
00 = CH1, CH2, CH3 negative input is VREF-
If AD12B = 0:
11 = CH1 negative input is AN9, CH2 and CH3 negative inputs are not connected
10 = CH1 negative input is AN6, CH2 negative input is AN7, CH3 negative input is AN8
01 = CH1, CH2, CH3 negative input is VREF-
00 = CH1, CH2, CH3 negative input is VREF-
bit 8 CH123SB: Channel 1, 2, 3 Positive Input Select for Sample B bit
dsPIC33FJ12GP201 devices only:
If AD12B = 1:
1 = Reserved
0 = Reserved
If AD12B = 0:
1 = CH1 positive input is AN3, CH2 and CH3 positive inputs are note connected
0 = CH1 positive input is AN0, CH2 positive input is AN1, CH3 positive input is AN2
If AD12B = 0:
1 = CH1 positive input is AN3, CH2 positive input is AN4, CH3 positive input is AN5
0 = CH1 positive input is AN0, CH2 positive input is AN1, CH3 positive input is AN2
bit 7-3 Unimplemented: Read as ‘0’
If AD12B = 0:
11 = Reserved
10 = CH1 negative input is AN6, CH2 negative input is AN7, CH3 negative input is not connected
01 = CH1, CH2, CH3 negative input is VREF-
00 = CH1, CH2, CH3 negative input is VREF-
If AD12B = 0:
11 = CH1 negative input is AN9, CH2 and CH3 negative inputs are not connected
10 = CH1 negative input is AN6, CH2 negative input is AN7, CH3 negative input is AN8
01 = CH1, CH2, CH3 negative input is VREF-
00 = CH1, CH2, CH3 negative input is VREF-
bit 0 CH123SA: Channel 1, 2, 3 Positive Input Select for Sample A bit
dsPIC33FJ12GP201 devices only:
If AD12B = 1:
1 = Reserved
0 = Reserved
If AD12B = 0:
1 = CH1 positive input is AN3, CH2 and CH3 positive inputs are not connected
0 = CH1 positive input is AN0, CH2 positive input is AN1, CH3 positive input is AN2
If AD12B = 0:
1 = CH1 positive input is AN3, CH2 positive input is AN4, CH3 positive input is AN5
0 = CH1 positive input is AN0, CH2 positive input is AN1, CH3 positive input is AN2
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Note 1: On devices without 10 analog inputs, all AD1CSSL bits can be selected by user application. However,
inputs selected for scan without a corresponding input on device converts VREFL.
2: CSSx = ANx, where x = 0 through 9.
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Note 1: On devices without 10 analog inputs, all PCFG bits are R/W by user. However, PCFG bits are ignored on
ports without a corresponding input on device.
2: PCFGx = ANx, where x = 0 through 9.
3: PCFGx bits have no effect if the ADC module is disabled by setting the ADxMD bit in the PMDx register.
When that bit is set, all port pins that have been multiplexed with ANx will be in Digital mode.
3.3V
dsPIC33F
VDD
CEFC VCAP
10 µF
Tantalum VSS
Sleep/Idle
WDTPRE WDTPOST<3:0>
SWDTEN WDT
FWDTEN Wake-up
RS RS 1
Prescaler Postscaler
LPRC Clock (divide by N1) (divide by N2) WDT
0 Reset
CLRWDT Instruction
VS = 256 IW 000000h
When MPLAB® ICD 2 is selected as a debugger, the 0001FEh
000200h
in-circuit debugging functionality is enabled. This BS = 256 IW 0003FEh
BSS<2:0> = x10 000400h
function allows simple debugging functions when used 0007FEh
with MPLAB IDE. Debugging functionality is controlled 000800h
256 000FFEh
through the PGECx (Emulation/Debug Clock) and 001000h
PGEDx (Emulation/Debug Data) pin functions. GS = 3584 IW
001FFEh
Any of the three pairs of debugging clock/data pins can
VS = 256 IW 000000h
be used: 0001FEh
000200h
• PGEC1 and PGED1 BSS<2:0> = x01 BS = 768 IW 0003FEh
000400h
• PGEC2 and PGED2 0007FEh
000800h
• PGEC3 and PGED3 768 000FFEh
001000h
To use the in-circuit debugger function of the device, GS = 3072 IW
the design must implement ICSP connections to 001FFEh
MCLR, VDD, VSS, and the PGECx/PGEDx pin pair. In VS = 256 IW
000000h
0001FEh
addition, when the feature is enabled, some of the 000200h
resources are not available for general use. These BSS<2:0> = x00 BS = 1792 IW 0003FEh
000400h
resources include the first 80 bytes of data RAM and 0007FEh
two I/O pins. 000800h
1792 000FFEh
001000h
GS = 2048 IW
001FFEh
Wm*Wm Multiplicand and Multiplier working register pair for Square instructions ∈
{W4 * W4,W5 * W5,W6 * W6,W7 * W7}
Wm*Wn Multiplicand and Multiplier working register pair for DSP instructions ∈
{W4 * W5,W4 * W6,W4 * W7,W5 * W6,W5 * W7,W6 * W7}
Wn One of 16 working registers ∈ {W0..W15}
Wnd One of 16 destination working registers ∈ {W0...W15}
Wns One of 16 source working registers ∈ {W0...W15}
WREG W0 (working register used in file register instructions)
Ws Source W register ∈ { Ws, [Ws], [Ws++], [Ws--], [++Ws], [--Ws] }
Wso Source W register ∈
{ Wns, [Wns], [Wns++], [Wns--], [++Wns], [--Wns], [Wns+Wb] }
Wx X data space prefetch address register for DSP instructions
∈ {[W8] + = 6, [W8] + = 4, [W8] + = 2, [W8], [W8] - = 6, [W8] - = 4, [W8] - = 2,
[W9] + = 6, [W9] + = 4, [W9] + = 2, [W9], [W9] - = 6, [W9] - = 4, [W9] - = 2,
[W9 + W12], none}
Wxd X data space prefetch destination register for DSP instructions ∈ {W4...W7}
Wy Y data space prefetch address register for DSP instructions
∈ {[W10] + = 6, [W10] + = 4, [W10] + = 2, [W10], [W10] - = 6, [W10] - = 4, [W10] - = 2,
[W11] + = 6, [W11] + = 4, [W11] + = 2, [W11], [W11] - = 6, [W11] - = 4, [W11] - = 2,
[W11 + W12], none}
Wyd Y data space prefetch destination register for DSP instructions ∈ {W4...W7}
Note 1: Stresses above those listed under “Absolute Maximum Ratings” can cause permanent damage to the
device. This is a stress rating only, and functional operation of the device at those or any other conditions
above those indicated in the operation listings of this specification is not implied. Exposure to maximum
rating conditions for extended periods can affect device reliability.
2: Maximum allowable current is a function of device maximum power dissipation (see Table 22-2).
3: Exceptions are CLKOUT, which is able to sink/source 25 mA, and the VREF+, VREF-, SCLx, SDAx, PGECx,
and PGEDx pins, which are able to sink/source 12 mA.
4: See the “Pin Diagrams” section for 5V tolerant pins.
Load Condition 1 – for all pins except OSC2 Load Condition 2 – for OSC2
VDD/2
RL Pin CL
VSS
CL
Pin RL = 464Ω
CL = 50 pF for all pins except OSC2
VSS 15 pF for OSC2 output
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
OSC1
OS20
OS30 OS30 OS31 OS31
OS25
CLKO
OS41 OS40
D CLK 3% 3%
SPI SCK Jitter = ------------------------------ = ---------- = -------- = 0.75%
16 4
⎛ 32 MHz-⎞
-------------------
⎝ 2 MHz ⎠
I/O Pin
(Input)
DI35
DI40
VDD SY12
MCLR
Internal SY10
POR
SY11
PWRT
Time-out
SY30
OSC
Time-out
Internal
Reset
Watchdog
Timer
Reset
SY20
SY13
SY13
I/O Pins
SY35
FSCM
Delay
TxCK
Tx10 Tx11
Tx15 Tx20
OS60
TMRx
ICx
IC10 IC11
IC15
OCx
(Output Compare
or PWM Mode) OC11 OC10
OC20
OCFA/OCFB
OC15
FIGURE 22-9: SPIx MASTER MODE (HALF-DUPLEX, TRANSMIT ONLY CKE = 0) TIMING
CHARACTERISTICS
SCKx
(CKP = 0)
SCKx
(CKP = 1)
FIGURE 22-10: SPIx MASTER MODE (HALF-DUPLEX, TRANSMIT ONLY CKE = 1) TIMING
CHARACTERISTICS
SP36
SCKx
(CKP = 0)
SCKx
(CKP = 1)
SP30, SP31
SCKx
(CKP = 1)
SP41
TABLE 22-30: SPIx MASTER MODE (FULL-DUPLEX, CKE = 1, CKP = x, SMP = 1) TIMING
REQUIREMENTS
Standard Operating Conditions: 3.0V to 3.6V
(unless otherwise stated)
AC CHARACTERISTICS
Operating temperature -40°C ≤TA ≤+85°C for Industrial
-40°C ≤TA ≤+125°C for Extended
Param
Symbol Characteristic(1) Min Typ(2) Max Units Conditions
No.
SP10 TscP Maximum SCK Frequency — — 9 MHz See Note 3
SP20 TscF SCKx Output Fall Time — — — ns See parameter DO32
and Note 4
SP21 TscR SCKx Output Rise Time — — — ns See parameter DO31
and Note 4
SP30 TdoF SDOx Data Output Fall Time — — — ns See parameter DO32
and Note 4
SP31 TdoR SDOx Data Output Rise Time — — — ns See parameter DO31
and Note 4
SP35 TscH2doV, SDOx Data Output Valid after — 6 20 ns —
TscL2doV SCKx Edge
SP36 TdoV2sc, SDOx Data Output Setup to 30 — — ns —
TdoV2scL First SCKx Edge
SP40 TdiV2scH, Setup Time of SDIx Data 30 — — ns —
TdiV2scL Input to SCKx Edge
SP41 TscH2diL, Hold Time of SDIx Data Input 30 — — ns —
TscL2diL to SCKx Edge
Note 1: These parameters are characterized, but are not tested in manufacturing.
2: Data in “Typ” column is at 3.3V, 25°C unless otherwise stated.
3: The minimum clock period for SCKx is 111 ns. The clock generated in Master mode must not violate this
specification.
4: Assumes 50 pF load on all SPIx pins.
SCKx
(CKP = 0)
SCKx
(CKP = 1)
SP40 SP41
TABLE 22-31: SPIx MASTER MODE (FULL-DUPLEX, CKE = 0, CKP = x, SMP = 1) TIMING
REQUIREMENTS
Standard Operating Conditions: 3.0V to 3.6V
(unless otherwise stated)
AC CHARACTERISTICS
Operating temperature -40°C ≤TA ≤+85°C for Industrial
-40°C ≤TA ≤+125°C for Extended
Param
Symbol Characteristic(1) Min Typ(2) Max Units Conditions
No.
SP10 TscP Maximum SCK Frequency — — 9 MHz -40ºC to +125ºC and
see Note 3
SP20 TscF SCKx Output Fall Time — — — ns See parameter DO32
and Note 4
SP21 TscR SCKx Output Rise Time — — — ns See parameter DO31
and Note 4
SP30 TdoF SDOx Data Output Fall Time — — — ns See parameter DO32
and Note 4
SP31 TdoR SDOx Data Output Rise Time — — — ns See parameter DO31
and Note 4
SP35 TscH2doV, SDOx Data Output Valid after — 6 20 ns —
TscL2doV SCKx Edge
SP36 TdoV2scH, SDOx Data Output Setup to 30 — — ns —
TdoV2scL First SCKx Edge
SP40 TdiV2scH, Setup Time of SDIx Data 30 — — ns —
TdiV2scL Input to SCKx Edge
SP41 TscH2diL, Hold Time of SDIx Data Input 30 — — ns —
TscL2diL to SCKx Edge
Note 1: These parameters are characterized, but are not tested in manufacturing.
2: Data in “Typ” column is at 3.3V, 25°C unless otherwise stated.
3: The minimum clock period for SCKx is 111 ns. The clock generated in Master mode must not violate this
specification.
4: Assumes 50 pF load on all SPIx pins.
SP60
SSx
SP50 SP52
SCKx
(CKP = 0)
SCKx
(CKP = 1)
SP35
SP72 SP73
SP30,SP31 SP51
SDI
SDIx
MSb In Bit 14 - - - -1 LSb In
SP41
SP40
SP60
SSx
SP50 SP52
SCKx
(CKP = 0)
SCKx
(CKP = 1)
SP35
SP72 SP73
SP52
SP30,SP31 SP51
SDI
SDIx
MSb In Bit 14 - - - -1 LSb In
SP41
SP40
SSX
SP50 SP52
SCKX
(CKP = 0)
SCKX
(CKP = 1)
SP72 SP73
SP35
SP30,SP31 SP51
SP41
SP40
SSX
SP50 SP52
SCKX
(CKP = 0)
SCKX
(CKP = 1)
SP72 SP73
SP35
SP30,SP31 SP51
SP41
SP40
SCLx
IM31 IM34
IM30 IM33
SDAx
Start Stop
Condition Condition
SDAx
Out
SCLx
IS31 IS34
IS30 IS33
SDAx
Start Stop
Condition Condition
SDAx
Out
AD50
ADCLK
Instruction
Execution Set SAMP Clear SAMP
SAMP
AD61
AD60
TSAMP AD55
DONE
AD1IF
1 2 3 4 5 6 7 8 9
AD50
ADCLK
Instruction
Execution Set SAMP Clear SAMP
SAMP
AD61
AD60
DONE
AD1IF
Buffer(0)
Buffer(1)
1 2 3 4 5 6 7 8 5 6 7 8
FIGURE 22-23: ADC CONVERSION (10-BIT MODE) TIMING CHARACTERISTICS (CHPS<1:0> = 01,
SIMSAM = 0, ASAM = 1, SSRC<2:0> = 111, SAMC<4:0> = 00001)
AD50
ADCLK
Instruction
Set ADON
Execution
SAMP
TSAMP AD55 AD55 TSAMP AD55
AD1IF
DONE
1 2 3 4 5 6 7 3 4 5 6 8
XXXXXXXXXXXXXXXXX dsPIC33FJ12GP
XXXXXXXXXXXXXXXXX 201-E/P e3
YYWWNNN 0730235
XXXXXXXXXXXXXXXXX dsPIC33FJ12GP
XXXXXXXXXXXXXXXXX 202-E/SP e3
YYWWNNN 0730235
XXXXXXXXXXXX dsPIC33FJ12
XXXXXXXXXXXX GP201-E/SO e3
XXXXXXXXXXXX 0730235
YYWWNNN
XXXXXXXXXXXXXXXXXXXX dsPIC33FJ12GP
XXXXXXXXXXXXXXXXXXXX 202-E/SO e3
XXXXXXXXXXXXXXXXXXXX
0730235
YYWWNNN
Note: If the full Microchip part number cannot be marked on one line, it is carried over to the next
line, thus limiting the number of available characters for customer-specific information.
XXXXXXXXXXXX 33FJ12GP
XXXXXXXXXXXX 202-E/SS e3
YYWWNNN 0730235
XXXXXXXX 33FJJ12GP
XXXXXXXX 202EML e3
YYWWNNN 0730235
Note: If the full Microchip part number cannot be marked on one line, it is carried over to the next
line, thus limiting the number of available characters for customer-specific information.
NOTE 1
E1
1 2 3
D
A A2
L c
A1
b1
b e eB
Units INCHES
Dimension Limits MIN NOM MAX
Number of Pins N 18
Pitch e .100 BSC
Top to Seating Plane A – – .210
Molded Package Thickness A2 .115 .130 .195
Base to Seating Plane A1 .015 – –
Shoulder to Shoulder Width E .300 .310 .325
Molded Package Width E1 .240 .250 .280
Overall Length D .880 .900 .920
Tip to Seating Plane L .115 .130 .150
Lead Thickness c .008 .010 .014
Upper Lead Width b1 .045 .060 .070
Lower Lead Width b .014 .018 .022
Overall Row Spacing § eB – – .430
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. § Significant Characteristic.
3. Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed .010" per side.
4. Dimensioning and tolerancing per ASME Y14.5M.
BSC: Basic Dimension. Theoretically exact value shown without tolerances.
28-Lead Skinny Plastic Dual In-Line (SP) – 300 mil Body [SPDIP]
Note: For the most current package drawings, please see the Microchip Packaging Specification located at
http://www.microchip.com/packaging
N
NOTE 1
E1
1 2 3
A A2
L c
A1 b1
b e eB
Units INCHES
Dimension Limits MIN NOM MAX
Number of Pins N 28
Pitch e .100 BSC
Top to Seating Plane A – – .200
Molded Package Thickness A2 .120 .135 .150
Base to Seating Plane A1 .015 – –
Shoulder to Shoulder Width E .290 .310 .335
Molded Package Width E1 .240 .285 .295
Overall Length D 1.345 1.365 1.400
Tip to Seating Plane L .110 .130 .150
Lead Thickness c .008 .010 .015
Upper Lead Width b1 .040 .050 .070
Lower Lead Width b .014 .018 .022
Overall Row Spacing § eB – – .430
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. § Significant Characteristic.
3. Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed .010" per side.
4. Dimensioning and tolerancing per ASME Y14.5M.
BSC: Basic Dimension. Theoretically exact value shown without tolerances.
E1
NOTE 1
1 2 3
e
b
α
h
h
c
φ
A A2
β
A1 L
L1
Units MILLMETERS
Dimension Limits MIN NOM MAX
Number of Pins N 18
Pitch e 1.27 BSC
Overall Height A – – 2.65
Molded Package Thickness A2 2.05 – –
Standoff § A1 0.10 – 0.30
Overall Width E 10.30 BSC
Molded Package Width E1 7.50 BSC
Overall Length D 11.55 BSC
Chamfer (optional) h 0.25 – 0.75
Foot Length L 0.40 – 1.27
Footprint L1 1.40 REF
Foot Angle φ 0° – 8°
Lead Thickness c 0.20 – 0.33
Lead Width b 0.31 – 0.51
Mold Draft Angle Top α 5° – 15°
Mold Draft Angle Bottom β 5° – 15°
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. § Significant Characteristic.
3. Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed 0.15 mm per side.
4. Dimensioning and tolerancing per ASME Y14.5M.
BSC: Basic Dimension. Theoretically exact value shown without tolerances.
REF: Reference Dimension, usually without tolerance, for information purposes only.
Microchip Technology Drawing C04-051B
D
N
E
E1
NOTE 1
1 2 3
e
b
h
α
h
φ c
A A2
L
A1 L1 β
Units MILLIMETERS
Dimension Limits MIN NOM MAX
Number of Pins N 28
Pitch e 1.27 BSC
Overall Height A – – 2.65
Molded Package Thickness A2 2.05 – –
Standoff § A1 0.10 – 0.30
Overall Width E 10.30 BSC
Molded Package Width E1 7.50 BSC
Overall Length D 17.90 BSC
Chamfer (optional) h 0.25 – 0.75
Foot Length L 0.40 – 1.27
Footprint L1 1.40 REF
Foot Angle Top φ 0° – 8°
Lead Thickness c 0.18 – 0.33
Lead Width b 0.31 – 0.51
Mold Draft Angle Top α 5° – 15°
Mold Draft Angle Bottom β 5° – 15°
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. § Significant Characteristic.
3. Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed 0.15 mm per side.
4. Dimensioning and tolerancing per ASME Y14.5M.
BSC: Basic Dimension. Theoretically exact value shown without tolerances.
REF: Reference Dimension, usually without tolerance, for information purposes only.
Microchip Technology Drawing C04-052B
/HDG3ODVWLF6KULQN6PDOO2XWOLQH66±PP%RG\>6623@
1RWH )RUWKHPRVWFXUUHQWSDFNDJHGUDZLQJVSOHDVHVHHWKH0LFURFKLS3DFNDJLQJ6SHFLILFDWLRQORFDWHGDW
KWWSZZZPLFURFKLSFRPSDFNDJLQJ
D
N
E
E1
1 2
b
NOTE 1
e
c
A A2
φ
A1
L1 L
8QLWV 0,//,0(7(56
'LPHQVLRQ/LPLWV 0,1 120 0$;
1XPEHURI3LQV 1
3LWFK H %6&
2YHUDOO+HLJKW $ ± ±
0ROGHG3DFNDJH7KLFNQHVV $
6WDQGRII $ ± ±
2YHUDOO:LGWK (
0ROGHG3DFNDJH:LGWK (
2YHUDOO/HQJWK '
)RRW/HQJWK /
)RRWSULQW / 5()
/HDG7KLFNQHVV F ±
)RRW$QJOH
/HDG:LGWK E ±
1RWHV
3LQYLVXDOLQGH[IHDWXUHPD\YDU\EXWPXVWEHORFDWHGZLWKLQWKHKDWFKHGDUHD
'LPHQVLRQV'DQG(GRQRWLQFOXGHPROGIODVKRUSURWUXVLRQV0ROGIODVKRUSURWUXVLRQVVKDOOQRWH[FHHGPPSHUVLGH
'LPHQVLRQLQJDQGWROHUDQFLQJSHU$60(<0
%6& %DVLF'LPHQVLRQ7KHRUHWLFDOO\H[DFWYDOXHVKRZQZLWKRXWWROHUDQFHV
5() 5HIHUHQFH'LPHQVLRQXVXDOO\ZLWKRXWWROHUDQFHIRULQIRUPDWLRQSXUSRVHVRQO\
28-Lead Plastic Quad Flat, No Lead Package (ML) – 6x6 mm Body [QFN]
with 0.55 mm Contact Length
Note: For the most current package drawings, please see the Microchip Packaging Specification located at
http://www.microchip.com/packaging
D D2
EXPOSED
PAD
E
b
E2
2 2
1 1 K
N N
NOTE 1 L
TOP VIEW BOTTOM VIEW
A3 A1
Units MILLIMETERS
Dimension Limits MIN NOM MAX
Number of Pins N 28
Pitch e 0.65 BSC
Overall Height A 0.80 0.90 1.00
Standoff A1 0.00 0.02 0.05
Contact Thickness A3 0.20 REF
Overall Width E 6.00 BSC
Exposed Pad Width E2 3.65 3.70 4.20
Overall Length D 6.00 BSC
Exposed Pad Length D2 3.65 3.70 4.20
Contact Width b 0.23 0.30 0.35
Contact Length L 0.50 0.55 0.70
Contact-to-Exposed Pad K 0.20 – –
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. Package is saw singulated.
3. Dimensioning and tolerancing per ASME Y14.5M.
BSC: Basic Dimension. Theoretically exact value shown without tolerances.
REF: Reference Dimension, usually without tolerance, for information purposes only.
Microchip Technology Drawing C04-105B
Added Note 1 to all pin diagrams, which references RPn pin usage by
remappable peripherals (see “Pin Diagrams”).
Section 1.0 “Device Overview” Changed Capture Input pin names from IC0-IC1 to IC1-IC2 and updated
description for AVDD (see Table 1-1).
Section 4.0 “Memory Organization” Added SFR definitions (ACCAL, ACCAH, ACCAU, ACCBL, ACCBH, and
ACCBU) to the CPU Core Register Map (see Table 4-1).
Updated Reset values for the following SFRs: IPC1, IPC2-ICP7, IPC16, and
INTTREG (see Table 4-4).
Updated the Reset value for CLKDIV in the System Control Register Map
(see Table 4-19).
Section 5.0 “Flash Program Updated Section 5.3 “Programming Operations” with programming time
Memory” formula.
Section 6.0 “Resets” Entire section was replaced to maintain consistency with other dsPIC33F
data sheets.
Section 8.0 “Oscillator Removed the first sentence of the third clock source item (External Clock) in
Configuration” Section 8.1.1.2 “Primary”
Updated the default bit values for DOZE and FRCDIV in the Clock Divisor
Register (see Register 8-2).
Added the center frequency in the OSCTUN register for the FRC Tuning bits
(TUN<5:0>) value 011111 and updated the center frequency for bits value
011110 (see Register 8-4)
Section 9.0 “Power-Saving Added the following two registers:
Features” • PMD1: Peripheral Module Disable Control Register 1
• PMD2: Peripheral Module Disable Control Register 2
Removed the following sections, which are now available in the related
section of the “dsPIC33F Family Reference Manual”:
• 9.4.2 “Available Peripherals”
• 9.4.3.3 “Mapping”
• 9.4.5 “Considerations for Peripheral Pin Selection”
Section 14.0 “Output Compare” Replaced sections 13.1, 13.2, and 13.3 and related figures and tables with
entirely new content.
Section 15.0 “Serial Peripheral Removed the following sections, which are now available in the related
Interface (SPI)” section of the “dsPIC33F Family Reference Manual”:
• 14.1 “Interrupts”
• 14.2 “Receive Operations”
• 14.3 “Transmit Operations”
• 14.4 “SPI Setup” (retained Figure 15-1: SPI Module Block Diagram)
Section 16.0 “Inter-Integrated Removed the following sections, which are now available in the related
Circuit™ (I2C™)” section of the “dsPIC33F Family Reference Manual”:
• 15.3 “I2C Interrupts”
• 15.4 “Baud Rate Generator” (retained Figure 16-1: I2C Block Diagram)
• 15.5 “I2C Module Addresses
• 15.6 “Slave Address Masking”
• 15.7 “IPMI Support”
• 15.8 “General Call Address Support”
• 15.9 “Automatic Clock Stretch”
• 15.10 “Software Controlled Clock Stretching (STREN = 1)”
• 15.11 “Slope Control”
• 15.12 “Clock Arbitration”
• 15.13 “Multi-Master Communication, Bus Collision, and Bus Arbitration
• 15.14 “Peripheral Pin Select Limitations
Section 17.0 “Universal Removed the following sections, which are now available in the related
Asynchronous Receiver Transmitter section of the “dsPIC33F Family Reference Manual”:
(UART)” • 16.1 “UART Baud Rate Generator”
• 16.2 “Transmitting in 8-bit Data Mode
• 16.3 “Transmitting in 9-bit Data Mode
• 16.4 “Break and Sync Transmit Sequence”
• 16.5 “Receiving in 8-bit or 9-bit Data Mode”
• 16.6 “Flow Control Using UxCTS and UxRTS Pins”
• 16.7 “Infrared Support”
Removed IrDA references and Note 1, and updated the bit and bit value
descriptions for UTXINV (UxSTA<14>) in the UARTx Status and Control
Register (see Register 17-2).
Removed Equation 17-1: ADC Conversion Clock Period and Figure 17-2:
ADC Transfer Function (10-Bit Example).
Added Note 2 to Figure 18-3: ADC Conversion Clock Period Block Diagram.
Modified Notes 1 and 2 in the ADC1 Input Scan Select Register Low (see
Register 18-6)
Modified Notes 1 and 2 in the ADC1 Port Configuration Register Low (see
Register 18-7)
Section 19.0 “Special Features” Added FICD register information for address 0xF8000E in the Device
Configuration Register Map (see Table 19-1).
Added FICD register content (BKBUG, COE, JTAGEN, and ICS<1:0> to the
dsPIC33FJ12GP201/202 Configuration Bits Description (see Table 19-2).
Removed the words “if enabled” from the second sentence in the fifth
paragraph of Section 19.3 “BOR: Brown-Out Reset”
• Updated Min and Max values for both AD21a parameters (measure-
ments with internal and external VREF+/VREF-).
• Updated Min, Typ, and Max values for parameter AD24a.
• Updated Max value for parameter AD32a.
• Removed Note 1.
• Removed VREFL from Conditions for parameters AD21a, AD22a,
AD23a, and AD24a (measurements with internal VREF+/VREF-).
The following changes were made to the ADC Module Specifications (10-bit
Mode) (Table 22-36):
• Updated Min and Max values for parameter AD21b (measurements
with external VREF+/VREF-).
• Removed ± symbol from Min, Typ, and Max values for parameters
AD23b and AD24b (measurements with internal VREF+/VREF-).
• Updated Typ and Max values for parameter AD32b.
• Removed Note 1.
• Removed VREFL from Conditions for parameters AD21a, AD22a,
AD23a, and AD24a (measurements with internal VREF+/VREF-).
Updated Min and Typ values for parameters AD60, AD61, AD62, and AD63
and removed Note 3 (see Table 22-37 and Table 22-38).
Updated the Min value for parameter DI35 (see Table 22-20).
Updated the All Resets values for TMR1, TMR2, and TMR3 in the
Timer Register Map (see Table 4-5).
Section 8.0 “Oscillator Configuration” Added Note 3 to the Oscillator Control Register (see Register 8-1).
Added Note 1 to the PLL Feedback Divisor Register (see Register 8-3).
Added Note 2 to the FRC Oscillator Tuning Register (see Register 8-4).
Section 10.0 “I/O Ports” Revised the second paragraph in Section 10.1.1 “Open-Drain
Configuration”.
Section 14.0 “Output Compare” Updated the Output Compare Module Block Diagram (see Figure 14-1).
Section 17.0 “Universal Asynchronous Revised the UART module Baud Rate features, replacing both items
Receiver Transmitter (UART)” with “Baud rates ranging from 10 Mbps to 38 bps at 40 MIPS”.
Section 19.0 “Special Features” Revised all paragraphs in Section 19.1 “Configuration Bits”.
Updated the maximum value for parameter OC15 and the minimum
value for parameter OC20 in the Simple OC/PWM Mode Timing
Requirements (see Table 22-27).
Updated all SPI specifications (see Table 22-28 through Table 22-35
and Figure 22-9 through Figure 22-16).
Updated the minimum values for parameters AD05 and AD07, and the
maximum value for parameter AD06 in the ADC Module Specifications
(see Table 22-38).
S W
Serial Peripheral Interface (SPI) ....................................... 143 Watchdog Time-out Reset (WDTR).................................... 67
Software Reset Instruction (SWR) ...................................... 67 Watchdog Timer (WDT)............................................ 175, 179
Software Simulator (MPLAB SIM)..................................... 191 Programming Considerations ................................... 179
Software Stack Pointer, Frame Pointer WWW Address ................................................................. 257
CALL Stack Frame...................................................... 45 WWW, On-Line Support ....................................................... 8
Special Features of the CPU ............................................ 175
SPI Module
SPI1 Register Map...................................................... 39
Symbols Used in Opcode Descriptions............................. 182
System Control
Register Map............................................................... 43
T
Temperature and Voltage Specifications
AC ............................................................................. 204
Timer1 ............................................................................... 129
Timer2/3 ............................................................................ 131
Timing Characteristics
CLKO and I/O ........................................................... 207
Timing Diagrams
10-bit A/D Conversion............................................... 234
10-bit A/D Conversion (CHPS = 01, SIMSAM = 0, ASAM
= 0, SSRC = 000) ............................................. 234
12-bit A/D Conversion (ASAM = 0, SSRC = 000) ..... 233
Brown-out Situations................................................... 66
External Clock........................................................... 205
I2Cx Bus Data (Master Mode) .................................. 226
I2Cx Bus Data (Slave Mode) .................................... 228
I2Cx Bus Start/Stop Bits (Master Mode) ................... 226
I2Cx Bus Start/Stop Bits (Slave Mode) ..................... 228
Input Capture (CAPx)................................................ 212
OC/PWM................................................................... 213
Output Compare (OCx)............................................. 212
Reset, Watchdog Timer, Oscillator Start-up Timer and
Power-up Timer ................................................ 208
Timer1, 2 and 3 External Clock................................. 210
Timing Requirements
CLKO and I/O ........................................................... 207
DCI AC-Link Mode .................................................... 230
DCI Multi-Channel, I2S Modes.................................. 230
External Clock........................................................... 205
Input Capture ............................................................ 212
Timing Specifications
10-bit A/D Conversion Requirements ....................... 235
12-bit A/D Conversion Requirements ....................... 233
I2Cx Bus Data Requirements (Master Mode) ........... 226
I2Cx Bus Data Requirements (Slave Mode) ............. 229
Output Compare Requirements ................................ 212
PLL Clock.................................................................. 206
From: Name
Company
Address
City / State / ZIP / Country
Telephone: (_______) _________ - _________ FAX: (______) _________ - _________
Application (optional):
Would you like a reply? Y N
Questions:
2. How does this document meet your hardware and software development needs?
3. Do you find the organization of this document easy to follow? If not, why?
4. What additions to the document do you think would enhance the structure and subject?
5. What deletions from the document could be made without affecting the overall usefulness?