Dspic30F6010A/6015 Data Sheet: High-Performance, 16-Bit Digital Signal Controllers
Dspic30F6010A/6015 Data Sheet: High-Performance, 16-Bit Digital Signal Controllers
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.
Peripheral Features:
Note: This data sheet summarizes features of
this group of dsPIC30F devices and is not • High-current sink/source I/O pins: 25 mA/25 mA
intended to be a complete reference • Timer module with programmable prescaler:
source. For more information on the CPU,
- Five 16-bit timers/counters; optionally pair
peripherals, register descriptions and
16-bit timers into 32-bit timer modules
general device functionality, refer to the
“dsPIC30F Family Reference Manual” • 16-bit Capture input functions
(DS70046). For more information on the • 16-bit Compare/PWM output functions
device instruction set and programming, • 3-wire SPI modules (supports 4 Frame modes)
refer to the “dsPIC30F/33F Programmers • I2CTM module supports Multi-Master/Slave mode
Reference Manual” (DS70157). and 7-bit/10-bit addressing
• 2 UART modules with FIFO Buffers
High-Performance Modified RISC CPU: • 2 CAN modules, 2.0B compliant (dsPIC306010A)
• Modified Harvard architecture • 1 CAN module, 2.0B compliant (dsPIC306015)
• C compiler optimized instruction set architecture
with flexible Addressing modes Motor Control PWM Module Features:
• 83 base instructions
• 8 PWM output channels:
• 24-bit wide instructions, 16-bit wide data path
- Complementary or Independent Output
• 144 Kbytes on-chip Flash program space modes
(Instruction words)
- Edge and Center-Aligned modes
• 8 Kbytes of on-chip data RAM
• 4 duty cycle generators
• 4 Kbytes of nonvolatile data EEPROM
• Dedicated time base
• Up to 30 MIPS operation:
• Programmable output polarity
- DC to 40 MHz external clock input
• Dead-Time control for Complementary mode
- 4 MHz-10 MHz oscillator input with
• Manual output control
PLL active (4x, 8x, 16x)
• Trigger for A/D conversions
- 7.37 MHz internal RC with PLL active
(4x, 8x, 16x)
Quadrature Encoder Interface Module
• 44 interrupt sources:
Features:
- 5 external interrupt sources
- 8 user selectable priority levels for each • Phase A, Phase B and Index Pulse input
interrupt source • 16-bit up/down position counter
- 4 processor trap sources • Count direction status
• 16 x 16-bit working register array • Position Measurement (x2 and x4) mode
• Programmable digital noise filters on inputs
DSP Engine Features: • Alternate 16-bit Timer/Counter mode
• Dual data fetch • Interrupt on position counter rollover/underflow
• Accumulator write-back for DSP operations
Analog Features:
• Modulo and Bit-Reversed Addressing modes
• Two, 40-bit wide accumulators with optional • 10-bit Analog-to-Digital Converter (ADC) with
saturation logic 4 S/H Inputs:
• 17-bit x 17-bit single-cycle hardware fractional/ - 1 Msps conversion rate
integer multiplier - 16 input channels
• All DSP instructions single cycle - Conversion available during Sleep and Idle
• ±16-bit single-cycle shift • Programmable Brown-out Reset
UART
SRAM EEPROM Timer Input A/D 10-bit Quad
I2C™
CAN
SPI
Device Pins Mem. Bytes/ Comp/Std Control
Bytes Bytes 16-bit Cap 1 Msps Enc
Instructions PWM PWM
80-Pin TQFP
OC8/UPDN/CN16/RD7
EMUD2/OC2/RD1
OC6/CN14/RD5
OC7/CN15/RD6
IC6/CN19/RD13
OC5/CN13/RD4
PWM2H/RE3
PWM1H/RE1
PWM2L/RE2
PWM1L/RE0
PWM3L/RE4
C2RX/RG0
C2TX/RG1
C1RX/RF0
C1TX/RF1
IC5/RD12
OC4/RD3
OC3/RD2
VDD
VSS
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
1 60 EMUC1/SOSCO/T1CK/CN0/RC14
PWM3H/RE5
59 EMUD1/SOSCI/CN1/RC13
PWM4L/RE6 2
58 EMUC2/OC1/RD0
PWM4H/RE7 3
57 IC4/RD11
T2CK/RC1 4
56 IC3/RD10
T4CK/RC3 5
55 IC2/RD9
SCK2/CN8/RG6 6
54 IC1/RD8
SDI2/CN9/RG7 7
SDO2/CN10/RG8 8 53 INT4/RA15
MCLR 9 52 INT3/RA14
51 VSS
SS2/CN11/RG9 10 dsPIC30F6010A
VSS 11 50 OSC2/CLKO/RC15
49 OSC1/CLKI
VDD 12
FLTA/INT1/RE8 48 VDD
13
FLTB/INT2/RE9 47 SCL/RG2
14
AN5/QEB/CN7/RB5 46 SDA/RG3
15
AN4/QEA/CN6/RB4 16 45 EMUC3/SCK1/INT0/RF6
AN3/INDX/CN5/RB3 17 44 SDI1/RF7
AN2/SS1/CN4/RB2 18 43 EMUD3/SDO1/RF8
PGC/EMUC/AN1/CN3/RB1 19 42 U1RX/RF2
PGD/EMUD/AN0/CN2/RB0 20 41 U1TX/RF3
21
22
34
35
36
37
38
39
40
23
24
25
26
27
28
29
30
31
32
33
IC7/CN20/RD14
AVSS
VSS
VREF+/RA10
AN6/OCFA/RB6
AN7/RB7
VREF-/RA9
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
IC8/CN21/RD15
U2RX/CN17/RF4
U2TX/CN18/RF5
AVDD
VDD
64-Pin TQFP
OC8/UPDN/CN16/RD7
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
EMUD2/OC2/RD1
OC7/CN15/RD6
PWM2H/RE3
PWM1H/RE1
PWM3L/RE4
PWM2L/RE2
PWM1L/RE0
C1RX/RF0
C1TX/RF1
OC4/RD3
OC3/RD2
VDD
VSS
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
PWM3H/RE5 1 48 EMUC1/SOSCO/T1CK/CN0/RC14
PWM4L/RE6 2 47 EMUD1/SOSCI/T4CK/CN1/RC13
PWM4H/RE7 3 46 EMUC2/OC1/RD0
SCK2/CN8/RG6 4 45 IC4/INT4/RD11
SDI2/CN9/RG7 5 44 IC3/INT3/RD10
SDO2/CN10/RG8 6 43 IC2/FLTB/INT2/RD9
MCLR 7 42 IC1/FLTA/INT1/RD8
SS2/CN11/RG9 8 dsPIC30F6015 41 VSS
VSS 9 40 OSC2/CLKO/RC15
VDD 10 39 OSC1/CLKI
AN5/QEB/IC8/CN7/RB5 11 38 VDD
AN4/QEA/IC7/CN6/RB4 12 37 SCL/RG2
AN3/INDX/CN5/RB3 13 36 SDA/RG3
AN2/SS1/CN4/RB2 14 35 EMUC3/SCK1/INT0/RF6
AN1/VREF-/CN3/RB1 15 34 U1RX/SDI1/RF2
AN0/VREF+/CN2/RB0 16 33 EMUD3/U1TX/SDO1/RF3
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
PGD/EMUD/AN7/RB7
PGC/EMUC/AN6/OCFA/RB6
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
AVDD
AVSS
VSS
VDD
U2RX/CN17/RF4
U2TX/CN18/RF5
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.
Y Data Bus
X Data Bus
16 16 16 16 VREF-/RA9
16
VREF+/RA10
Interrupt Data Latch Data Latch
PSV & Table INT3/RA14
Controller Y Data X Data
Data Access 8 INT4/RA15
24 Control Block 16 RAM RAM
(4 Kbytes) (4 Kbytes)
PORTA
Address Address
24 Latch Latch PGD/EMUD/AN0/CN2/RB0
16 16 16 PGC/EMUC/AN1/CN3/RB1
AN2/SS1/CN4/RB2
24 X RAGU
Y AGU AN3/INDX/CN5/RB3
PCU PCH PCL X WAGU
AN4/QEA/CN6/RB4
Program Counter
AN5/QEB/CN7/RB5
Address Latch Stack Loop
Control Control AN6/OCFA/RB6
Program Memory Logic Logic AN7/RB7
(144 Kbytes) AN8/RB8
AN9/RB9
Data EEPROM
AN10/RB10
(4 Kbytes) Effective Address
AN11/RB11
Data Latch 16 AN12/RB12
AN13/RB13
AN14/RB14
ROM Latch 16 AN15/OCFB/CN12/RB15
24 PORTB
IR T2CK/RC1
T4CK/RC3
16 16 EMUD1/SOSCI/CN1/RC13
EMUC1/SOSCO/T1CK/CN0/RC14
16 x 16
OSC2/CLKO/RC15
W Reg Array
Decode
PORTC
Instruction
Decode & 16 16
Control EMUC2/OC1/RD0
EMUD2/OC2/RD1
OC3/RD2
Control Signals DSP
to Various Blocks Divide OC4/RD3
Power-up Engine Unit OC5/CN13/RD4
Timer OC6/CN14/RD5
Timing Oscillator OC7/CN15/RD6
OSC1/CLKI OC8/UPDN/CN16/RD7
Generation Start-up Timer
IC1/RD8
POR/BOR ALU<16> IC2/RD9
Reset IC3/RD10
Watchdog 16 16 IC4/RD11
MCLR IC5/RD12
Timer
IC6/CN19/RD13
Low-Voltage IC7/CN20/RD14
VDD, VSS Detect IC8/CN21/RD15
AVDD, AVSS PORTD
PWM1L/RE0
CAN1, Input Output PWM1H/RE1
CAN2 10-bit ADC Capture Compare I2C™ PWM2L/RE2
Module Module
PWM2H/RE3
PWM3L/RE4
PWM3H/RE5
PWM4L/RE6
PWM4H/RE7
SPI1, Motor Control UART1, FLTA/INT1/RE8
Timers QEI
SPI2 PWM UART2 FLTB/INT2/RE9
PORTE
C1RX/RF0
C2RX/RG0
C1TX/RF1
C2TX/RG1
U1RX/RF2
SCL/RG2
U1TX/RF3
SDA/RG3
SCK2/CN8/RG6 U2RX/CN17/RF4
SDI2/CN9/RG7 U2TX/CN18/RF5
SDO2/CN10/RG8 EMUC3/SCK1/INT0/RF6
SDI1/RF7
SS2/CN11/RG9
EMUD3/SDO1/RF8
PORTG PORTF
IR
EMUD1/SOSCI/T4CK/CN1/RC13
16 16 EMUC1/SOSCO/T1CK/CN0/RC14
OSC2/CLKO/RC15
16 x 16
W Reg Array
Decode
PORTC
Instruction
Decode & 16 16
Control
SCL/RG2 C1RX/RF0
SDA/RG3 C1TX/RF1
SCK2/CN8/RG6 U1RX/SDI1/RF2
SDI2/CN9/RG7 EMUD3/U1TX/SDO1/RF3
SDO2/CN10/RG8 U2RX/CN17/RF4
SS2/CN11/RG9 U2TX/CN18/RF5
EMUC3/SCK1/INT0/RF6
PORTG PORTF
• The upper 32 Kbytes of data space memory can be The core features a vectored exception processing
mapped into the lower half (user space) of program structure for traps and interrupts, with 62 independent
space at any 16K program word boundary, defined by vectors. The exceptions consist of up to 8 traps (of which
the 8-bit Program Space Visibility Page (PSVPAG) 4 are reserved) and 54 interrupts. Each interrupt is
register. This lets any instruction access program prioritized based on a user-assigned priority between 1
space as if it were data space, with a limitation that the and 7 (1 being the lowest priority and 7 being the highest)
access requires an additional cycle. Moreover, only in conjunction with a predetermined ‘natural order’.
the lower 16 bits of each instruction word can be Traps have fixed priorities, ranging from 8 to 15.
accessed using this method.
D15 D0
W0/WREG
PUSH.S Shadow
W1
DO Shadow
W2
W3 Legend
W4
DSP Operand W5
Registers
W6
W7
Working Registers
W8
W9
DSP Address
Registers W10
W11
W12/DSP Offset
W13/DSP Write-Back
W14/Frame Pointer
W15/Stack Pointer
PC22 PC0
0 Program Counter
7 0
TABPAG
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
S
a
40 40-bit Accumulator A 40 Round t 16
40-bit Accumulator B u
Logic r
a
Carry/Borrow Out t
Saturate 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
32
33
17-bit
Multiplier/Scaler
16 16
To/From W Array
User Memory
Alternate Vector Table 000084
is addressable by the 23-bit PC, table instruction 0000FE
Space
Effective Address (EA), or data space EA, when User Flash 000100
Program Memory
program space is mapped into data space, as defined (48K instructions)
by Table 3-1. Note that the program space address is 017FFE
incremented by two between successive program 018000
Reserved
words, in order to provide compatibility with data space (Read ‘0’s)
addressing. 7FEFFE
7FF000
User program space access is restricted to the lower Data EEPROM
4M instruction word address range (0x000000 to (4 Kbytes)
0x7FFFFE), for all accesses other than TBLRD/TBLWT, 7FFFFE
800000
which use TBLPAG<7> to determine user or
configuration space access. In Table 3-1, read/write
instructions, bit 23 allows access to the device ID, the
user ID and the Configuration bits. Otherwise, bit 23 is
always clear.
Reserved
Configuration Memory
8005BE
Space
8005C0
UNITID (32 instr.)
8005FE
800600
Reserved
F7FFFE
Device Configuration F80000
Registers F8000E
F80010
Reserved
FEFFFE
DEVID (2) FF0000
FFFFFE
23 bits
Using
Program 0 Program Counter 0
Counter
Select
1 EA
Using
Program 0 PSVPAG Reg
Space
Visibility 8 bits 15 bits
EA
User/ Byte
Configuration 24-bit EA
Space Select
Select
Note: Program Space Visibility cannot be used to access bits <23:16> of a word in program memory.
PC Address 23 16 8 0
0x000000 00000000
0x000002 00000000
0x000004 00000000
0x000006 00000000
TBLRDL.B (Wn<0> = 0)
TBLRDL.W
Program Memory
‘Phantom’ Byte
TBLRDL.B (Wn<0> = 1)
(Read as ‘0’).
TBLRDH.W
PC Address 23 16 8 0
0x000000 00000000
0x000002 00000000
0x000004 00000000
0x000006 00000000
TBLRDH.B (Wn<0> = 0)
Program Memory
‘Phantom’ Byte
(Read as ‘0’) TBLRDH.B (Wn<0> = 1)
3.1.2 DATA ACCESS FROM PROGRAM Note that by incrementing the PC by 2 for each
MEMORY USING PROGRAM SPACE program memory word, the Least Significant 15 bits of
VISIBILITY data space addresses directly map to the Least
Significant 15 bits in the corresponding program space
The upper 32 Kbytes of data space may optionally be addresses. The remaining bits are provided by the
mapped into any 16K word program space page. This Program Space Visibility Page register, PSVPAG<7:0>,
provides transparent access of stored constant data as shown in Figure 3-5.
from X data space, without the need to use special
instructions (i.e., TBLRDL/H, TBLWTL/H instructions). Note: PSV access is temporarily disabled during
table reads/writes.
Program space access through the data space occurs
if the MSb of the data space EA is set and program For instructions that use PSV which are executed
space visibility is enabled, by setting the PSV bit in the outside a REPEAT loop:
Core Control register (CORCON). The functions of • The following instructions will require one
CORCON are discussed in Section 2.4 “DSP instruction cycle in addition to the specified
Engine”. execution time:
Data accesses to this area add an additional cycle to - MAC class of instructions with data operand
the instruction being executed, since two program prefetch
memory fetches are required. - MOV instructions
Note that the upper half of addressable data space is - MOV.D instructions
always part of the X data space. Therefore, when a • All other instructions will require two instruction
DSP operation uses program space mapping to access cycles in addition to the specified execution time
this memory region, Y data space should typically of the instruction.
contain state (variable) data for DSP operations,
whereas X data space should typically contain For instructions that use PSV which are executed
coefficient (constant) data. inside a REPEAT loop:
Although each data space address, 0x8000 and higher, • The following instances will require two instruction
maps directly into a corresponding program memory cycles in addition to the specified execution time
address (see Figure 3-5), only the lower 16 bits of the of the instruction:
24-bit program word are used to contain the data. The - Execution in the first iteration
upper 8 bits should be programmed to force an illegal - Execution in the last iteration
instruction to maintain machine robustness. Refer - Execution prior to exiting the loop due to an
to the “dsPIC30F/33F Programmers Reference interrupt
Manual” (DS70157) for details on instruction encoding.
- Execution upon re-entering the loop after an
interrupt is serviced
• Any other iteration of the REPEAT loop will allow
the instruction, accessing data using PSV, to
execute in a single cycle.
15 PSVPAG(1)
EA<15> = 0 0x00
8
Data 16
Space 0x8000
EA 15 23 15 0
Address
EA<15> = 1 0x001200
15 Concatenation 23
Note: PSVPAG is an 8-bit register, containing bits <22:15> of the program space address
(i.e., it defines the page in program space to which the upper half of data space is being mapped).
3.2 Data Address Space When executing any instruction other than one of the
MAC class of instructions, the X block consists of the
The core has two data spaces. The data spaces can be 64 Kbyte data address space (including all Y
considered either separate (for some DSP addresses). When executing one of the MAC class of
instructions), or as one unified linear address range (for instructions, the X block consists of the 64 Kbyte data
MCU instructions). The data spaces are accessed address space excluding the Y address block (for data
using two Address Generation Units (AGUs) and reads only). In other words, all other instructions regard
separate data paths. the entire data memory as one composite address
space. The MAC class instructions extract the Y
3.2.1 DATA SPACE MEMORY MAP address space from data space and address it using
The data space memory is split into two blocks, X and EAs sourced from W10 and W11. The remaining X data
Y data space. A key element of this architecture is that space is addressed using W8 and W9. Both address
Y space is a subset of X space, and is fully contained spaces are concurrently accessed only with the MAC
within X space. In order to provide an apparent Linear class instructions.
Addressing space, X and Y spaces have contiguous A data space memory map is shown in Figure 3-6.
addresses.
Figure 3-7 shows a graphical summary of how X and Y
data spaces are accessed for MCU and DSP
instructions.
0x27FF 0x27FE
0x2801 0x2800
0x8001 0x8000
X Data
Unimplemented (X)
Optionally
Mapped
into Program
Memory
0xFFFF 0xFFFE
X SPACE
UNUSED
X SPACE
X SPACE
UNUSED
Indirect EA using any W Indirect EA using W10, W11 Indirect EA using W8, W9
Higher Address
An 8 Kbyte ‘near’ data space is reserved in X address
memory space between 0x0000 and 0x1FFF, which is PC<15:0> W15 (before CALL)
directly addressable via a 13-bit absolute address field
000000000 PC<22:16>
within all memory direct instructions. The remaining X
<Free Word> W15 (after CALL)
address space and all of the Y address space is
addressable indirectly. Additionally, the whole of X data
space is addressable using MOV instructions, which POP: [--W15]
PUSH: [W15++]
support memory direct addressing with a 16-bit
address field.
dsPIC30F6010A/6015
Address
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 Reset State
(Home)
Address
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 Reset State
(Home)
SR 0042 OA OB SA SB OAB SAB DA DC IPL2 IPL1 IPL0 RA N OV Z C 0000 0000 0000 0000
CORCON 0044 — — — US EDT DL2 DL1 DL0 SATA SATB SATDW ACCSAT IPL3 PSV RND IF 0000 0000 0010 0000
MODCON 0046 XMODEN YMODEN — — BWM<3:0> YWM<3:0> XWM<3:0> 0000 0000 0000 0000
XMODSRT 0048 XS<15:1> 0 uuuu uuuu uuuu uuu0
XMODEND 004A XE<15:1> 1 uuuu uuuu uuuu uuu1
YMODSRT 004C YS<15:1> 0 uuuu uuuu uuuu uuu0
YMODEND 004E YE<15:1> 1 uuuu uuuu uuuu uuu1
XBREV 0050 BREN XB<14:0> uuuu uuuu uuuu uuuu
DISICNT 0052 — — DISICNT<13:0> 0000 0000 0000 0000
BSRAM 0750 — — — — — — — — — — — — — IW_BSR IR_BSR RL_BSR 0000 0000 0000 0000
SSRAM 0752 — — — — — — — — — — — — — IW_SSR IR_SSR RL_SSR 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
dsPIC30F6010A/6015
DS70150D-page 33
dsPIC30F6010A/6015
NOTES:
File Register Direct The address of the file register is specified explicitly.
Register Direct The contents of a register are accessed directly.
Register Indirect The contents of Wn forms the EA.
Register Indirect Post-Modified The contents of Wn forms the EA. Wn is post-modified (incremented or
decremented) by a constant value.
Register Indirect Pre-Modified Wn is pre-modified (incremented or decremented) by a signed constant value
to form the EA.
Register Indirect with Register Offset The sum of Wn and Wb forms the EA.
Register Indirect with Literal Offset The sum of Wn and a literal forms the EA.
Byte
Address MOV #0x1100,W0
MOV W0, XMODSRT ;set modulo start address
MOV #0x1163,W0
MOV W0,MODEND ;set modulo end address
0x1100 MOV #0x8001,W0
MOV W0,MODCON ;enable W1, X AGU for modulo
MOV #0x0000,W0 ;W0 holds buffer fill value
MOV #0x1110,W1 ;point W1 to buffer
DO AGAIN,#0x31 ;fill the 50 buffer locations
MOV W0, [W1++] ;fill the next location
AGAIN: INC W0,W0 ;increment the fill value
0x1163
Pivot Point
XB = 0x0008 for a 16-word Bit-Reversed Buffer
2. The Stack Pointer is loaded with a value which IVT Reserved Vector
Reserved Vector
is less than 0x0800 (simple stack underflow). Reserved Vector
Interrupt 0 Vector 0x000014
Interrupt 1 Vector
Oscillator Fail Trap:
This trap is initiated if the external oscillator fails and
Interrupt 52 Vector
operation becomes reliant on an internal RC backup. Interrupt 53 Vector 0x00007E
Reserved 0x000080
Reserved 0x000082
Reserved 0x000084
Oscillator Fail Trap Vector
Stack Error Trap Vector
Address Error Trap Vector
Math Error Trap Vector
AIVT Reserved Vector
Reserved Vector
Reserved Vector
Interrupt 0 Vector 0x000094
Interrupt 1 Vector
Interrupt 52 Vector
Interrupt 53 Vector 0x0000FE
dsPIC30F6010A/6015
SFR
ADR 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 Reset State
Name
INTCON1 0080 NSTDIS — — — — OVATE OVBTE COVTE — — — MATHERR ADDRERR STKERR OSCFAIL — 0000 0000 0000 0000
INTCON2 0082 ALTIVT DISI — — — — — — — — — INT4EP INT3EP INT2EP INT1EP INT0EP 0000 0000 0000 0000
IFS0 0084 CNIF MI2CIF SI2CIF NVMIF ADIF U1TXIF U1RXIF SPI1IF T3IF T2IF OC2IF IC2IF T1IF OC1IF IC1IF INT0IF 0000 0000 0000 0000
IFS1 0086 IC6IF IC5IF IC4IF IC3IF C1IF SPI2IF U2TXIF U2RXIF INT2IF T5IF T4IF OC4IF OC3IF IC8IF IC7IF INT1IF 0000 0000 0000 0000
IFS2 0088 — — — FLTBIF FLTAIF — — QEIIF PWMIF C2IF INT4IF INT3IF OC8IF OC7IF OC6IF OC5IF 0000 0000 0000 0000
IEC0 008C CNIE MI2CIE SI2CIE NVMIE ADIE U1TXIE U1RXIE SPI1IE T3IE T2IE OC2IE IC2IE T1IE OC1IE IC1IE INT0IE 0000 0000 0000 0000
IEC1 008E IC6IE IC5IE IC4IE IC3IE C1IE SPI2IE U2TXIE U2RXIE INT2IE T5IE T4IE OC4IE OC3IE IC8IE IC7IE INT1IE 0000 0000 0000 0000
IEC2 0090 — — — FLTBIE FLTAIE — — QEIIE PWMIE C2IE INT4IE INT3IE OC8IE OC7IE OC6IE OC5IE 0000 0000 0000 0000
IPC0 0094 — T1IP<2:0> — OC1IP<2:0> — IC1IP<2:0> — INT0IP<2:0> 0100 0100 0100 0100
IPC1 0096 — T31P<2:0> — T2IP<2:0> — OC2IP<2:0> — IC2IP<2:0> 0100 0100 0100 0100
IPC2 0098 — ADIP<2:0> — U1TXIP<2:0> — U1RXIP<2:0> — SPI1IP<2:0> 0100 0100 0100 0100
IPC3 009A — CNIP<2:0> — MI2CIP<2:0> — SI2CIP<2:0> — NVMIP<2:0> 0100 0100 0100 0100
IPC4 009C — OC3IP<2:0> — IC8IP<2:0> — IC7IP<2:0> — INT1IP<2:0> 0100 0100 0100 0100
IPC5 009E — INT2IP<2:0> — T5IP<2:0> — T4IP<2:0> — OC4IP<2:0> 0100 0100 0100 0100
IPC6 00A0 — C1IP<2:0> — SPI2IP<2:0> — U2TXIP<2:0> — U2RXIP<2:0> 0100 0100 0100 0100
IPC7 00A2 — IC6IP<2:0> — IC5IP<2:0> — IC4IP<2:0> — IC3IP<2:0> 0100 0100 0100 0100
IPC8 00A4 — OC8IP<2:0> — OC7IP<2:0> — OC6IP<2:0> — OC5IP<2:0> 0100 0100 0100 0100
IPC9 00A6 — PWMIP<2:0> — C2IP<2:0> — INT41IP<2:0> — INT3IP<2:0> 0100 0100 0100 0100
IPC10 00A8 — FLTAIP<2:0> — — — — — — — — — QEIIP<2:0> 0100 0000 0000 0000
IPC11 00AA — — — — — — — — — — — — — FLTBIP<2:0> 0000 0000 0000 0100
INTTREG 00B0 — — — — ILR<3:0> — — VECNUM<5:0> 0000 0000 0000 0000
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
© 2008 Microchip Technology Inc.
TABLE 5-3: INTERRUPT CONTROLLER REGISTER MAP FOR dsPIC30F6015(1)
© 2008 Microchip Technology Inc.
SFR
ADR 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 Reset State
Name
INTCON1 0080 NSTDIS — — — — OVATE OVBTE COVTE — — — MATHERR ADDRERR STKERR OSCFAIL — 0000 0000 0000 0000
INTCON2 0082 ALTIVT DISI — — — — — — — — — INT4EP INT3EP INT2EP INT1EP INT0EP 0000 0000 0000 0000
IFS0 0084 CNIF MI2CIF SI2CIF NVMIF ADIF U1TXIF U1RXIF SPI1IF T3IF T2IF OC2IF IC2IF T1IF OC1IF IC1IF INT0IF 0000 0000 0000 0000
IFS1 0086 IC6IF IC5IF IC4IF IC3IF C1IF SPI2IF U2TXIF U2RXIF INT2IF T5IF T4IF OC4IF OC3IF IC8IF IC7IF INT1IF 0000 0000 0000 0000
IFS2 0088 — — — FLTBIF FLTAIF — — QEIIF PWMIF — INT4IF INT3IF OC8IF OC7IF OC6IF OC5IF 0000 0000 0000 0000
IEC0 008C CNIE MI2CIE SI2CIE NVMIE ADIE U1TXIE U1RXIE SPI1IE T3IE T2IE OC2IE IC2IE T1IE OC1IE IC1IE INT0IE 0000 0000 0000 0000
IEC1 008E IC6IE IC5IE IC4IE IC3IE C1IE SPI2IE U2TXIE U2RXIE INT2IE T5IE T4IE OC4IE OC3IE IC8IE IC7IE INT1IE 0000 0000 0000 0000
IEC2 0090 — — — FLTBIE FLTAIE — — QEIIE PWMIE — INT4IE INT3IE OC8IE OC7IE OC6IE OC5IE 0000 0000 0000 0000
IPC0 0094 — T1IP<2:0> — OC1IP<2:0> — IC1IP<2:0> — INT0IP<2:0> 0100 0100 0100 0100
IPC1 0096 — T31P<2:0> — T2IP<2:0> — OC2IP<2:0> — IC2IP<2:0> 0100 0100 0100 0100
IPC2 0098 — ADIP<2:0> — U1TXIP<2:0> — U1RXIP<2:0> — SPI1IP<2:0> 0100 0100 0100 0100
IPC3 009A — CNIP<2:0> — MI2CIP<2:0> — SI2CIP<2:0> — NVMIP<2:0> 0100 0100 0100 0100
IPC4 009C — OC3IP<2:0> — IC8IP<2:0> — IC7IP<2:0> — INT1IP<2:0> 0100 0100 0100 0100
IPC5 009E — INT2IP<2:0> — T5IP<2:0> — T4IP<2:0> — OC4IP<2:0> 0100 0100 0100 0100
IPC6 00A0 — C1IP<2:0> — SPI2IP<2:0> — U2TXIP<2:0> — U2RXIP<2:0> 0100 0100 0100 0100
IPC7 00A2 — IC6IP<2:0> — IC5IP<2:0> — IC4IP<2:0> — IC3IP<2:0> 0100 0100 0100 0100
IPC8 00A4 — OC8IP<2:0> — OC7IP<2:0> — OC6IP<2:0> — OC5IP<2:0> 0100 0100 0100 0100
IPC9 00A6 — PWMIP<2:0> — — — — — INT41IP<2:0> — INT3IP<2:0> 0100 0000 0100 0100
IPC10 00A8 — FLTAIP<2:0> — — — — — — — — — QEIIP<2:0> 0100 0000 0000 0000
dsPIC30F6010A/6015
IPC11 00AA — — — — — — — — — — — — — FLTBIP<2:0> 0000 0000 0000 0100
INTTREG 00B0 — — — — ILR<3:0> — — VECNUM<5:0> 0000 0000 0000 0000
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
DS70150D-page 47
dsPIC30F6010A/6015
NOTES:
24 bits
Using
Program 0 Program Counter 0
Counter
NVMADR Reg EA
Using
NVMADR 1/0 NVMADRU Reg
Addressing
8 bits 16 bits
Working Reg EA
Byte
User/Configuration Select
Space Select 24-bit EA
Note: In Example 6-2, the contents of the upper byte of W3 has no effect.
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 All Resets
NVMCON 0760 WR WREN WRERR — — — — TWRI — PROGOP<6:0> 0000 0000 0000 0000
NVMADR 0762 NVMADR<15:0> uuuu uuuu uuuu uuuu
NVMADRU 0764 — — — — — — — — NVMADR<23:16> 0000 0000 uuuu uuuu
NVMKEY 0766 — — — — — — — — KEY<7:0> 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
dsPIC30F6010A/6015
DS70150D-page 53
dsPIC30F6010A/6015
NOTES:
Read TRIS
I/O Cell
TRIS Latch
Data Bus D Q
WR TRIS CK
Data Latch
D Q I/O Pad
WR LAT+
CK
WR Port
Read LAT
Read Port
PIO Module 1
Output Data
0
Read TRIS
I/O Pad
Data Bus D Q
WR TRIS CK
TRIS Latch
D Q
WR LAT +
WR Port CK
Data Latch
Read LAT
Input Data
Read Port
8.2 Configuring Analog Port Pins 8.2.1 I/O PORT WRITE/READ TIMING
The use of the ADPCFG and TRIS registers control the One instruction cycle is required between a port
operation of the A/D port pins. The port pins that are direction change or port write operation and a read
desired as analog inputs must have their correspond- operation of the same port. Typically this instruction
ing TRIS bit set (input). If the TRIS bit is cleared would be a NOP.
(output), the digital output level (VOH or VOL) will be
converted. EXAMPLE 8-1: PORT WRITE/READ
When reading the PORT register, all pins configured as EXAMPLE
analog input channels will read as cleared (a low level). MOV 0xFF00, W0 ; Configure PORTB<15:8>
; as inputs
Pins configured as digital inputs will not convert an ana- MOV W0, TRISBB ; and PORTB<7:0> as outputs
log input. Analog levels on any pin that is defined as a NOP ; Delay 1 cycle
digital input (including the ANx pins) may cause the BTSS PORTB, #13 ; Next Instruction
input buffer to consume current that exceeds the
device specifications.
SFR 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 Reset State
Name
TRISA 02C0 TRISA15 TRISA14 — — — TRISA10 TRISA9 — — — — — — — — — 1100 0110 0000 0000
PORTA 02C2 RA15 RA14 — — — RA10 RA9 — — — — — — — — — 0000 0000 0000 0000
LATA 02C4 LATA15 LATA14 — — — LATA10 LATA9 — — — — — — — — — 0000 0000 0000 0000
TRISB 02C6 TRISB15 TRISB14 TRISB13 TRISB12 TRISB11 TRISB10 TRISB9 TRISB8 TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 1111 1111
PORTB 02C8 RB15 RB14 RB13 RB12 RB11 RB10 RB9 RB8 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 0000 0000 0000 0000
LATB 02CB LATB15 LATB14 LATB13 LATB12 LATB11 LATB10 LATB9 LATB8 LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0 0000 0000 0000 0000
TRISC 02CC TRISC15 TRISC14 TRISC13 — — — — — — — — — TRISC3 — TRISC1 — 1110 0000 0000 1010
PORTC 02CE RC15 RC14 RC13 — — — — — — — — — RC3 — RC1 — 0000 0000 0000 0000
LATC 02D0 LATC15 LATC14 LATC13 — — — — — — — — — LATC3 — LATC1 — 0000 0000 0000 0000
TRISD 02D2 TRISD15 TRISD14 TRISD13 TRISD12 TRISD11 TRISD10 TRISD9 TRISD8 TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 1111 1111 1111 1111
PORTD 02D4 RD15 RD14 RD13 RD12 RD11 RD10 RD9 RD8 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 0000 0000 0000 0000
LATD 02D6 LATD15 LATD14 LATD13 LATD12 LATD11 LATD10 LATD9 LATD8 LATD7 LATD6 LATD5 LATD4 LATD3 LATD2 LATD1 LATD0 0000 0000 0000 0000
TRISE 02D8 — — — — — — TRISE9 TRISE8 TRISE7 TRISE6 TRISE5 TRISE4 TRISE3 TRISE2 TRISE1 TRISE0 0000 0011 1111 1111
PORTE 02DA — — — — — — RE9 RE8 RE7 RE6 RE5 RE4 RE3 RE2 RE1 RE0 0000 0000 0000 0000
LATE 02DC — — — — — — LATE9 LATE8 LATE7 LATE6 LATE5 LATE4 LATE3 LATE2 LATE1 LATE0 0000 0000 0000 0000
TRISF 02EE — — — — — — — TRISF8 TRISF7 TRISF6 TRISF5 TRISF4 TRISF3 TRISF2 TRISF1 TRISF0 0000 0001 1111 1111
PORTF 02E0 — — — — — — — RF8 RF7 RF6 RF5 RF4 RF3 RF2 RF1 RF0 0000 0000 0000 0000
dsPIC30F6010A/6015
LATF 02E2 — — — — — — — LATF8 LATF7 LATF6 LATF5 LATF4 LATF3 LATF2 LATF1 LATF0 0000 0000 0000 0000
TRISG 02E4 — — — — — — TRISG9 TRISG8 TRISG7 TRISG6 — — TRISG3 TRISG2 TRISG1 TRISG0 0000 0011 1100 1111
PORTG 02E6 — — — — — — RG9 RG8 RG7 RG6 — — RG3 RG2 RG1 RG0 0000 0000 0000 0000
LATG 02E8 — — — — — — LATG9 LATG8 LATG7 LATG6 — — LATG3 LATG2 LATG1 LATG0 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
DS70150D-page 61
TABLE 8-2: dsPIC30F6015 PORT REGISTER MAP(1)
DS70150D-page 62
dsPIC30F6010A/6015
SFR 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 Reset State
Name
TRISA 02C0 — — — — — — — — — — — — — — — — 0000 0000 0000 0000
PORTA 02C2 — — — — — — — — — — — — — — — — 0000 0000 0000 0000
LATA 02C4 — — — — — — — — — — — — — — — — 0000 0000 0000 0000
TRISB 02C6 TRISB15 TRISB14 TRISB13 TRISB12 TRISB11 TRISB10 TRISB9 TRISB8 TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 1111 1111
PORTB 02C8 RB15 RB14 RB13 RB12 RB11 RB10 RB9 RB8 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 0000 0000 0000 0000
LATB 02CB LATB15 LATB14 LATB13 LATB12 LATB11 LATB10 LATB9 LATB8 LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0 0000 0000 0000 0000
TRISC 02CC TRISC15 TRISC14 TRISC13 — — — — — — — — — — — — — 1110 0000 0000 0000
PORTC 02CE RC15 RC14 RC13 — — — — — — — — — — — — — 0000 0000 0000 0000
LATC 02D0 LATC15 LATC14 LATC13 — — — — — — — — — — — — — 0000 0000 0000 0000
TRISD 02D2 — — — — TRISD11 TRISD10 TRISD9 TRISD8 TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 0000 1111 1111 1111
PORTD 02D4 — — — — RD11 RD10 RD9 RD8 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 0000 0000 0000 0000
LATD 02D6 — — — — LATD11 LATD10 LATD9 LATD8 LATD7 LATD6 LATD5 LATD4 LATD3 LATD2 LATD1 LATD0 0000 0000 0000 0000
TRISE 02D8 — — — — — — — — TRISE7 TRISE6 TRISE5 TRISE4 TRISE3 TRISE2 TRISE1 TRISE0 0000 0000 1111 1111
PORTE 02DA — — — — — — — — RE7 RE6 RE5 RE4 RE3 RE2 RE1 RE0 0000 0000 0000 0000
LATE 02DC — — — — — — — — LATE7 LATE6 LATE5 LATE4 LATE3 LATE2 LATE1 LATE0 0000 0000 0000 0000
TRISF 02EE — — — — — — — — — TRISF6 TRISF5 TRISF4 TRISF3 TRISF2 TRISF1 TRISF0 0000 0000 0111 1111
PORTF 02E0 — — — — — — — — — RF6 RF5 RF4 RF3 RF2 RF1 RF0 0000 0000 0000 0000
LATF 02E2 — — — — — — — — — LATF6 LATF5 LATF4 LATF3 LATF2 LATF1 LATF0 0000 0000 0000 0000
TRISG 02E4 — — — — — — TRISG9 TRISG8 TRISG7 TRISG6 — — TRISG3 TRISG2 — — 0000 0011 1100 1100
PORTG 02E6 — — — — — — RG9 RG8 RG7 RG6 — — RG3 RG2 — — 0000 0000 0000 0000
LATG 02E8 — — — — — — LATG9 LATG8 LATG7 LATG6 — — LATG3 LATG2 — — 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
© 2008 Microchip Technology Inc.
dsPIC30F6010A/6015
8.3 Input Change Notification Module
The input change notification module provides the
dsPIC30F 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 change-of-states, even in
Sleep mode when the clocks are disabled. There are 22
external signals (CN0 through CN21) for
dsPIC30F6010A and 19 external signals (CN0 through
CN19) for dsPIC30F6015 that may be selected (enabled)
for generating an interrupt request on a change-of-state.
Please refer to the Pin Diagrams for CN pin locations.
CNEN1 00C0 CN15IE CN14IE CN13IE CN12IE CN11IE CN10IE CN9IE CN8IE 0000 0000 0000 0000
CNEN2 00C2 — — — — — — — — 0000 0000 0000 0000
CNPU1 00C4 CN15PUE CN14PUE CN13PUE CN12PUE CN11PUE CN10PUE CN9PUE CN8PUE 0000 0000 0000 0000
CNPU2 00C6 — — — — — — — — 0000 0000 0000 0000
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
TABLE 8-4: INPUT CHANGE NOTIFICATION REGISTER MAP (BITS 7-0) FOR dsPIC30F6010A(1)
SFR
Addr. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Reset State
Name
CNEN1 00C0 CN7IE CN6IE CN5IE CN4IE CN3IE CN2IE CN1IE CN0IE 0000 0000 0000 0000
CNEN2 00C2 — — CN21IE CN20IE CN19IE CN18IE CN17IE CN16IE 0000 0000 0000 0000
CNPU1 00C4 CN7PUE CN6PUE CN5PUE CN4PUE CN3PUE CN2PUE CN1PUE CN0PUE 0000 0000 0000 0000
CNPU2 00C6 — — CN21PUE CN20PUE CN19PUE CN18PUE CN17PUE CN16PUE 0000 0000 0000 0000
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
TABLE 8-5: INPUT CHANGE NOTIFICATION REGISTER MAP (BITS 7-0) FOR dsPIC30F6015(1)
SFR
Addr. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Reset State
Name
CNEN1 00C0 CN7IE CN6IE CN5IE CN4IE CN3IE CN2IE CN1IE CN0IE 0000 0000 0000 0000
CNEN2 00C2 — — — — — CN18IE CN17IE CN16IE 0000 0000 0000 0000
CNPU1 00C4 CN7PUE CN6PUE CN5PUE CN4PUE CN3PUE CN2PUE CN1PUE CN0PUE 0000 0000 0000 0000
CNPU2 00C6 — — — — — CN18PUE CN17PUE CN16PUE 0000 0000 0000 0000
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
Further, the following operational characteristics are When the timer is configured for the Asynchronous mode
supported: of operation and the CPU goes into the Idle mode, the
timer will stop incrementing if TSIDL = 1.
• Timer gate operation
• 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
PR1
Equal
Comparator x 16 TSYNC
1 Sync
(3)
TMR1
Reset
0
0
T1IF
Event Flag 1 Q D TGATE
Q CK
TGATE
TGATE
TCS
TCKPS<1:0>
SOSCO/ TON 2
1X
T1CK
SOSCI
TCY 00
C1
SOSCI
C1 = C2 = 18 pF; R = 100K
dsPIC30F6010A/6015
SFR 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 Reset State
TMR3HLD
16
16
Write TMR2
Read TMR2
16
Reset
TMR3 TMR2 Sync
MSB LSB
ADC Event Trigger
Comparator x 32
Equal
PR3 PR2
0
T3IF
Event Flag 1 Q D TGATE (T2CON<6>)
Q CK
TGATE
(T2CON<6>)
TGATE
TCS
TCKPS<1:0>
TON 2
T2CK 1x
Prescaler
Gate 1, 8, 64, 256
Sync 01
TCY
00
Note: Timer Configuration bit T32, T2CON(<3>) must be set to ‘1’ for a 32-bit timer/counter operation. All control
bits are respective to the T2CON register.
TMR3HLD
16
16
Write TMR2
Read TMR2
16
Reset
TMR3 TMR2 Sync
MSB LSB
ADC Event Trigger
Comparator x 32
Equal
PR3 PR2
0
T3IF
Event Flag 1 Q D TGATE(T2CON<6>)
Q CK
TGATE
(T2CON<6>)
TGATE
TCS
TCKPS<1:0>
TON 2
1x
Prescaler
Gate 1, 8, 64, 256
Sync 01
TCY
00
Note: Timer Configuration bit T32, T2CON(<3>) must be set to ‘1’ for a 32-bit timer/counter operation. All control
bits are respective to the T2CON register.
PR2
Equal
Comparator x 16
TMR2 Sync
Reset
0
T2IF
Event Flag 1 Q D TGATE
Q CK
TGATE
TGATE
TCS
TCKPS<1:0>
TON 2
T2CK 1x
Gate Prescaler
Sync 01 1, 8, 64, 256
TCY 00
FIGURE 10-4: 16-BIT TIMER2 BLOCK DIAGRAM (TYPE B TIMER) FOR dsPIC30F6015
PR2
Equal
Comparator x 16
TMR2 Sync
Reset
0
T2IF
Event Flag 1 Q D TGATE
Q CK
TGATE
TGATE
TCS
TCKPS<1:0>
TON 2
1x
Gate Prescaler
Sync 01 1, 8, 64, 256
TCY 00
Note: The dsPIC30F6015 does not have an external pin input to TIMER2. The following modes should not be used:
1. TCS = 1
2. TCS = 0 and TGATE = 1 (gated time accumulation)
PR3
TMR3
Reset
0
T3IF
Event Flag 1 Q D TGATE
Q CK
TGATE
TGATE
TCS
TCKPS<1:0>
TON 2
Sync 1x
Prescaler
01 1, 8, 64, 256
TCY 00
Note: The dsPIC30F6010A/6015 devices do not have an external pin input to Timer3. These modes should not be used:
1. TCS = 1
2. TCS = 0 and TGATE = 1 (gated time accumulation)
SFR 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 Reset State
dsPIC30F6010A/6015
DS70150D-page 75
dsPIC30F6010A/6015
NOTES:
Data Bus<15:0>
TMR5HLD
16
16
Write TMR4
Read TMR4
16
Reset
TMR5 TMR4 Sync
MSB LSB
Comparator x 32
Equal
PR5 PR4
0
T5IF
Event Flag
1 Q D TGATE(T4CON<6>)
Q CK
TGATE
TGATE
(T4CON<6>)
TCS
TCKPS<1:0>
TON 2
T4CK 1x
Prescaler
Gate 1, 8, 64, 256
0 1
Sync
TCY 00
Note: Timer Configuration bit T45, T4CON(<3>) must be set to ‘1’ for a 32-bit timer/counter operation. All
control bits are respective to the T4CON register.
PR4
Equal
Comparator x 16
TMR4 Sync
Reset
0
T4IF
Event Flag 1 Q D TGATE
Q CK
TGATE
TGATE
TCS
TCKPS<1:0>
TON 2
T4CK 1x
Gate Prescaler
Sync 01 1, 8, 64, 256
TCY 00
PR5
TMR5
Reset
0
T5IF
Event Flag 1 Q D TGATE
Q CK
TGATE
TGATE
TCS
TCKPS<1:0>
TON 2
Sync 1x
Prescaler
01 1, 8, 64, 256
TCY 00
Note: The dsPIC30F6010A/6015 devices do not have an external pin input to Timer5. These modes should not be used:
1. TCS = 1
2. TCS = 0 and TGATE = 1 (gated time accumulation)
SFR 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 Reset State
dsPIC30F6010A/6015
DS70150D-page 79
dsPIC30F6010A/6015
NOTES:
16 16
ICx ICTMR
Pin 1 0
Edge FIFO
Prescaler Clock Detection R/W
1, 4, 16 Synchronizer Logic Logic
3 ICM<2:0> ICxBUF
Mode Select
ICBNE, ICOV
ICI<1:0>
Interrupt
ICxCON Logic
Note: Where ‘x’ is shown, reference is made to the registers or bits associated to the respective input
capture channels 1 through N.
SFR 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 Reset State
IC1BUF 0140 Input 1 Capture Register uuuu uuuu uuuu uuuu
IC1CON 0142 — — ICSIDL — — — — — ICTMR ICI<1:0> ICOV ICBNE ICM<2:0> 0000 0000 0000 0000
IC2CON 0146 — — ICSIDL — — — — — ICTMR ICI<1:0> ICOV ICBNE ICM<2:0> 0000 0000 0000 0000
IC3CON 014A — — ICSIDL — — — — — ICTMR ICI<1:0> ICOV ICBNE ICM<2:0> 0000 0000 0000 0000
IC4CON 014E — — ICSIDL — — — — — ICTMR ICI<1:0> ICOV ICBNE ICM<2:0> 0000 0000 0000 0000
IC5CON 0152 — — ICSIDL — — — — — ICTMR ICI<1:0> ICOV ICBNE ICM<2:0> 0000 0000 0000 0000
IC6CON 0156 — — ICSIDL — — — — — ICTMR ICI<1:0> ICOV ICBNE ICM<2:0> 0000 0000 0000 0000
IC7CON 015A — — ICSIDL — — — — — ICTMR ICI<1:0> ICOV ICBNE ICM<2:0> 0000 0000 0000 0000
IC8CON 015E — — ICSIDL — — — — — ICTMR ICI<1:0> ICOV ICBNE ICM<2:0> 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
dsPIC30F6010A/6015
DS70150D-page 83
dsPIC30F6010A/6015
NOTES:
OCxRS
3 Output Enable
OCM<2:0>
Comparator Mode Select OCFA
(for x = 1, 2, 3 or 4)
OCTSEL
0 1 0 1 or OCFB
(for x = 5, 6, 7 or 8)
Note: Where ‘x’ is shown, reference is made to the registers associated with the respective output compare
channels 1 through N.
13.3 Dual Output Compare Match Mode The user must perform the following steps in order to
configure the output compare module for PWM
When control bits OCM<2:0> (OCxCON<2:0>) = 100 operation:
or 101, the selected output compare channel is
1. Set the PWM period by writing to the appropriate
configured for one of two Dual Output Compare modes,
period register.
which are:
2. Set the PWM duty cycle by writing to the OCxRS
• Single Output Pulse mode register.
• Continuous Output Pulse mode 3. Configure the output compare module for PWM
operation.
13.3.1 SINGLE PULSE MODE
4. Set the TMRx prescale value and enable the
For the user to configure the module for the generation Timer, TON (TxCON<15>) = 1.
of a single output pulse, the following steps are
required (assuming timer is off): 13.4.1 INPUT PIN FAULT PROTECTION
• Determine instruction cycle time TCY. FOR PWM
• Calculate desired pulse-width value based on When control bits OCM<2:0> (OCxCON<2:0>) = 111,
TCY. the selected output compare channel is again
• Calculate time to start pulse from timer start value configured for the PWM mode of operation, with the
of 0x0000. additional feature of input Fault protection. While in this
• Write pulse-width start and stop times into OCxR mode, if a logic ‘0’ is detected on the OCFA/B pin, the
and OCxRS Compare registers (x denotes respective PWM output pin is placed in the
channel 1, 2, ...,N). high-impedance input state. The OCFLT bit
(OCxCON<4>) indicates whether a Fault condition has
• Set Timer Period register to value equal to, or
occurred. This state will be maintained until both of the
greater than, value in OCxRS Compare register.
following events have occurred:
• Set OCM<2:0> = 100.
• The external Fault condition has been removed.
• Enable timer, TON (TxCON<15>) = 1.
• The PWM mode has been re-enabled by writing
To initiate another single pulse, issue another write to to the appropriate control bits.
set OCM<2:0> = 100.
Duty Cycle
dsPIC30F6010A/6015
SFR 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 Reset State
OC1RS 0180 Output Compare 1 Secondary Register 0000 0000 0000 0000
OC1R 0182 Output Compare 1 Main Register 0000 0000 0000 0000
OC1CON 0184 — — OCSIDL — — — — — — — — OCFLT OCTSEL OCM<2:0> 0000 0000 0000 0000
OC2RS 0186 Output Compare 2 Secondary Register 0000 0000 0000 0000
OC2R 0188 Output Compare 2 Main Register 0000 0000 0000 0000
OC2CON 018A — — OCSIDL — — — — — — — — OCFLT OCTSE OCM<2:0> 0000 0000 0000 0000
OC3RS 018C Output Compare 3 Secondary Register 0000 0000 0000 0000
OC3R 018E Output Compare 3 Main Register 0000 0000 0000 0000
OC3CON 0190 — — OCSIDL — — — — — — — — OCFLT OCTSEL OCM<2:0> 0000 0000 0000 0000
OC4RS 0192 Output Compare 4 Secondary Register 0000 0000 0000 0000
OC4R 0194 Output Compare 4 Main Register 0000 0000 0000 0000
OC4CON 0196 — — OCSIDL — — — — — — — — OCFLT OCTSEL OCM<2:0> 0000 0000 0000 0000
OC5RS 0198 Output Compare 5 Secondary Register 0000 0000 0000 0000
OC5R 019A Output Compare 5 Main Register 0000 0000 0000 0000
OC5CON 019C — — OCSIDL — — — — — — — — OCFLT OCTSEL OCM<2:0> 0000 0000 0000 0000
OC6RS 019E Output Compare 6 Secondary Register 0000 0000 0000 0000
OC6R 01A0 Output Compare 6 Main Register 0000 0000 0000 0000
OC6CON 01A2 — — OCSIDL — — — — — — — — OCFLT OCTSEL OCM<2:0> 0000 0000 0000 0000
OC7RS 01A4 Output Compare 7 Secondary Register 0000 0000 0000 0000
OC7R 01A6 Output Compare 7 Main Register 0000 0000 0000 0000
OC7CON 01A8 — — OCSIDL — — — — — — — — OCFLT OCTSEL OCM<2:0> 0000 0000 0000 0000
OC8RS 01AA Output Compare 8 Secondary Register 0000 0000 0000 0000
OC8R 01AC Output Compare 8 Main Register 0000 0000 0000 0000
OC8CON 01AE — — OCSIDL — — — — — — — — OCFLT OCTSEL OCM<2:0> 0000 0000 0000 0000
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
© 2008 Microchip Technology Inc.
dsPIC30F6010A/6015
14.0 QUADRATURE ENCODER The operational features of the QEI include:
INTERFACE (QEI) MODULE • Three input channels for two phase signals and
index pulse
Note: This data sheet summarizes features of • 16-bit up/down position counter
this group of dsPIC30F devices and is not
• Count direction status
intended to be a complete reference
source. For more information on the CPU, • Position Measurement (x2 and x4) mode
peripherals, register descriptions and • Programmable digital noise filters on inputs
general device functionality, refer to the • Alternate 16-bit Timer/Counter mode
“dsPIC30F Family Reference Manual” • Quadrature Encoder Interface interrupts
(DS70046).
These operating modes are determined by setting the
This section describes the Quadrature Encoder Interface appropriate bits, QEIM<2:0> (QEICON<10:8>).
(QEI) module and associated operational modes. The Figure 14-1 depicts the Quadrature Encoder Interface
QEI module provides the interface to incremental block diagram.
encoders for obtaining mechanical position data.
TQCKPS<1:0>
Sleep Input TQCS
2
TCY
0
Synchronize
Prescaler
Det 1 1, 8, 64, 256
1
QEIM<2:0>
0
QEIIF
D Q
TQGATE Event
CK Q Flag
Programmable
QEB
Digital Filter
Programmable
INDX
Digital Filter
3
PCDOUT
UPDN
Up/Down
1
SFR
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 Reset State
Name
QEICON 0122 CNTERR — QEISIDL INDX UPDN QEIM<2:0> SWPAB PCDOUT TQGATE TQCKPS<1:0> POSRES TQCS UDSRC 0000 0000 0000 0000
DFLTCON 0124 — — — — — IMV<1:0> CEID QEOUT QECK<2:0> — — — — 0000 0000 0000 0000
POSCNT 0126 Position Counter<15:0> 0000 0000 0000 0000
MAXCNT 0128 Maximun Count<15:0> 1111 1111 1111 1111
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
dsPIC30F6010A/6015
DS70150D-page 93
dsPIC30F6010A/6015
NOTES:
PWMCON1
PWM Enable and Mode SFRs
PWMCON2
DTCON2
FLTBCON
PWM Manual
OVDCON
Control SFR
PWM Generator #4
PDC4 Buffer
16-bit Data Bus
PDC4
PWM Generator
#1 Channel 1 Dead-Time PWM1H
Generator and
PTPER Buffer Override Logic PWM1L
PTCON FLTA
FLTB
SEVTCMP PTDIR
Note: Details of PWM Generator #1, #2 and #3 not shown for clarity.
PWMxH
PWMxL
dsPIC30F6010A/6015
SFR 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 Reset State
PTCON 01C0 PTEN — PTSIDL — — — — — PTOPS<3:0> PTCKPS<1:0> PTMOD<1:0> 0000 0000 0000 0000
PTMR 01C2 PTDIR PWM Timer Count Value 0000 0000 0000 0000
PTPER 01C4 — PWM Time Base Period Register 0111 1111 1111 1111
SEVTCMP 01C6 SEVTDIR PWM Special Event Compare Register 0000 0000 0000 0000
PWMCON1 01C8 — — — — PTMOD4 PTMOD3 PTMOD2 PTMOD1 PEN4H PEN3H PEN2H PEN1H PEN4L PEN3L PEN2L PEN1L 0000 0000 1111 1111
PWMCON2 01CA — — — — SEVOPS<3:0> — — — — — IUE OSYNC UDIS 0000 0000 0000 0000
DTCON1 01CC DTBPS<1:0> Dead-Time B Value DTAPS<1:0> Dead-Time A Value 0000 0000 0000 0000
DTCON2 01CE — — — — — — — — DTS4A DTS4I DTS3A DTS3I DTS2A DTS2I DTS1A DTS1I 0000 0000 0000 0000
FLTACON 01D0 FAOV4H FAOV4L FAOV3H FAOV3L FAOV2H FAOV2L FAOV1H FAOV1L FLTAM — — — FAEN4 FAEN3 FAEN2 FAEN1 0000 0000 0000 0000
FLTBCON 01D2 FBOV4H FBOV4L FBOV3H FBOV3L FBOV2H FBOV2L FBOV1H FBOV1L FLTBM — — — FBEN4 FBEN3 FBEN2 FBEN1 0000 0000 0000 0000
OVDCON 01D4 POVD4H POVD4L POVD3H POVD3L POVD2H POVD2L POVD1H POVD1L POUT4H POUT4L POUT3H POUT3L POUT2H POUT2L POUT1H POUT1L 1111 1111 0000 0000
PDC1 01D6 PWM Duty Cycle 1 Register 0000 0000 0000 0000
PDC2 01D8 PWM Duty Cycle 2 Register 0000 0000 0000 0000
PDC3 01DA PWM Duty Cycle 3 Register 0000 0000 0000 0000
PDC4 01DC PWM Duty Cycle 4 Register 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
© 2008 Microchip Technology Inc.
dsPIC30F6010A/6015
16.0 SPI MODULE Transmit writes are also double-buffered. The user
writes to SPIxBUF. When the master or slave transfer
Note: This data sheet summarizes features of is completed, the contents of the shift register
this group of dsPIC30F devices and is not (SPIxSR) is moved to the receive buffer. If any
intended to be a complete reference transmit data has been written to the buffer register,
source. For more information on the CPU, the contents of the transmit buffer are moved to
peripherals, register descriptions and SPIxSR. The received data is thus placed in SPIxBUF
general device functionality, refer to the and the transmit data in SPIxSR is ready for the next
“dsPIC30F Family Reference Manual” transfer.
(DS70046).
Note: Both the transmit buffer (SPIxTXB) and
The Serial Peripheral Interface (SPI) module is a the receive buffer (SPIxRXB) are mapped
synchronous serial interface. It is useful for to the same register address, SPIxBUF.
communicating with other peripheral devices such as
In Master mode, the clock is generated by prescaling
EEPROMs, shift registers, display drivers and A/D
the system clock. Data is transmitted as soon as a
converters, or other microcontrollers. It is compatible
value is written to SPIxBUF. The interrupt is generated
with Motorola’s SPI and SIOP interfaces.
at the middle of the transfer of the last bit.
16.1 Operating Function Description In Slave mode, data is transmitted and received as
external clock pulses appear on SCK. Again, the
Each SPI module consists of a 16-bit shift register, interrupt is generated when the last bit is latched. If
SPIxSR (where x = 1 or 2), used for shifting data in SSx control is enabled, then transmission and
and out, and a buffer register, SPIxBUF. A control reception are enabled only when SSx = low. The
register, SPIxCON, configures the module. SDOx output will be disabled in SSx mode with SSx
Additionally, a STATUS register, SPIxSTAT, indicates high.
various status conditions. The clock provided to the module is (FOSC/4). This
The serial interface consists of 4 pins: SDIx (Serial clock is then prescaled by the primary (PPRE<1:0>)
Data Input), SDOx (Serial Data Output), SCKx (Shift and the secondary (SPRE<2:0>) prescale factors. The
Clock Input or Output) and SSx (active-low Slave CKE bit determines whether transmit occurs on
Select). transition from active clock state to Idle clock state, or
In Master mode operation, SCK is a clock output, but vice versa. The CKP bit selects the Idle state (high or
in Slave mode, it is a clock input. low) for the clock.
A series of eight (8) or sixteen (16) clock pulses shifts 16.1.1 WORD AND BYTE
out bits from the SPIxSR to SDOx pin and COMMUNICATION
simultaneously shifts in data from SDIx pin. An
interrupt is generated when the transfer is complete A control bit, MODE16 (SPIxCON<10>), allows the
and the corresponding interrupt flag bit (SPI1IF or module to communicate in either 16-bit or 8-bit mode.
SPI2IF) is set. This interrupt can be disabled through 16-bit operation is identical to 8-bit operation, except
an interrupt enable bit (SPI1IE or SPI2IE). that the number of bits transmitted is 16 instead of 8.
The receive operation is double-buffered. When a The user software must disable the module prior to
complete byte is received, it is transferred from changing the MODE16 bit. The SPI module is reset
SPIxSR to SPIxBUF. when the MODE16 bit is changed by the user.
If the receive buffer is full when new data is being A basic difference between 8-bit and 16-bit operation is
transferred from SPIxSR to SPIxBUF, the module will that the data is transmitted out of bit 7 of the SPIxSR for
set the SPIROV bit, indicating an overflow condition. 8-bit operation, and data is transmitted out of bit 15 of
The transfer of the data from SPIxSR to SPIxBUF will the SPIxSR for 16-bit operation. In both modes, data is
not be completed and the new data will be lost. The shifted into bit 0 of the SPIxSR.
module will not respond to SCL transitions while
16.1.2 SDOx DISABLE
SPIROV is ‘1’, effectively disabling the module until
SPIxBUF is read by user software. A control bit, DISSDO, is provided to the SPIxCON
register to allow the SDOx output to be disabled. This
Note: The user must perform reads of SPIxBUF will allow the SPI module to be connected in an input
if the module is used in a transmit only only configuration. SDO can also be used for general
configuration to avoid a receive overflow purpose I/O.
condition. (SPIROV = 1)
Internal
Data Bus
Read Write
SPIxBUF SPIxBUF
Receive Transmit
SPIxSR
SDIx bit 0
SDOx Shift
clock
SS & FSYNC Clock Edge
Control Select
Control
SSx
Secondary Primary
Prescaler Prescaler FCY
1:1-1:8 1, 4, 16, 64
SCKx
Note: x = 1 or 2.
SDOx SDIy
Note: x = 1 or 2, y = 1 or 2.
dsPIC30F6010A/6015
SFR
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 Reset State
Name
SPI1STAT 0220 SPIEN — SPISIDL — — — — — — SPIROV — — — — SPITBF SPIRBF 0000 0000 0000 0000
SPI1CON 0222 — FRMEN SPIFSD — DISSDO MODE16 SMP CKE SSEN CKP MSTEN SPRE2 SPRE1 SPRE0 PPRE1 PPRE0 0000 0000 0000 0000
SPI1BUF 0224 Transmit and Receive Buffer 0000 0000 0000 0000
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
SPI2STAT 0226 SPIEN — SPISIDL — — — — — — SPIROV — — — — SPITBF SPIRBF 0000 0000 0000 0000
SPI2CON 0228 — FRMEN SPIFSD — DISSDO MODE16 SMP CKE SSEN CKP MSTEN SPRE2 SPRE1 SPRE0 PPRE1 PPRE0 0000 0000 0000 0000
SPI2BUF 022A Transmit and Receive Buffer 0000 0000 0000 0000
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
© 2008 Microchip Technology Inc.
dsPIC30F6010A/6015
17.0 I2C™ MODULE 17.1.1 VARIOUS I2C MODES
The following types of I2C operation are supported:
Note: This data sheet summarizes features of
this group of dsPIC30F devices and is not • I2C Slave operation with 7-bit address
intended to be a complete reference • I2C Slave operation with 10-bit address
source. For more information on the CPU, • I2C Master operation with 7 or 10-bit address
peripherals, register descriptions and See the I2C programmer’s model in Figure 17-1.
general device functionality, refer to the
“dsPIC30F Family Reference Manual” 17.1.2 PIN CONFIGURATION IN I2C MODE
(DS70046).
I2C has a 2-pin interface; pin SCL is clock and pin SDA
2 is data.
The Inter-Integrated Circuit™ (I C™) module provides
complete hardware support for both Slave and
Multi-Master modes of the I2C serial communication 17.1.3 I2C REGISTERS
standard, with a 16-bit interface. I2CCON and I2CSTAT are control and STATUS
This module offers the following key features: registers, respectively. The I2CCON register is
readable and writable. The lower 6 bits of I2CSTAT are
• I2C interface supporting both Master and Slave
read-only. The remaining bits of the I2CSTAT are
operation.
read/write.
• I2C Slave mode supports 7 and 10-bit address.
I2CRSR is the shift register used for shifting data,
• I2C Master mode supports 7 and 10-bit address.
whereas I2CRCV is the buffer register to which data
• I2C port allows bidirectional transfers between bytes are written, or from which data bytes are read.
master and slaves. I2CRCV is the receive buffer, as shown in Figure 16-1.
• Serial clock synchronization for I2C port can be I2CTRN is the transmit register to which bytes are written
used as a handshake mechanism to suspend and during a transmit operation, as shown in Figure 16-2.
resume serial transfer (SCLREL control).
The I2CADD register holds the slave address. A Status
• I2C supports multi-master operation; detects bus bit, ADD10, indicates 10-bit Address mode. The
collision and will arbitrate accordingly. I2CBRG acts as the Baud Rate Generator reload
value.
17.1 Operating Function Description In receive operations, I2CRSR and I2CRCV together
The hardware fully implements all the master and form a double-buffered receiver. When I2CRSR receives
slave functions of the I2C Standard and Fast mode a complete byte, it is transferred to I2CRCV and an
specifications, as well as 7 and 10-bit addressing. interrupt pulse is generated. During transmission, the
I2CTRN is not double-buffered.
Thus, the I2C module can operate either as a slave or
a master on an I2C bus. Note: Following a Restart condition in 10-bit
mode, the user only needs to match the
first 7-bit address.
I2CRCV (8 bits)
bit 7 bit 0
I2CTRN (8 bits)
bit 7 bit 0
I2CBRG (9 bits)
bit 8 bit 0
I2CCON (16 bits)
bit 15 bit 0
I2CSTAT (16 bits)
bit 15 bit 0
I2CADD (10 bits)
bit 9 bit 0
Internal
Data Bus
I2CRCV
Read
Shift
SCL Clock
I2CRSR
LSB
SDA Addr_Match
Match Detect
Write
I2CADD
Read
Start and
Stop bit Detect
Write
I2CSTAT
Start, Restart,
Stop bit Generate
Read
Control Logic
Collision
Detect
Write
I2CCON
Acknowledge
Read
Generation
Clock
Stretching Write
I2CTRN
Shift LSB Read
Clock
Reload
Control Write
If the R_W bit received is a ‘1’, then the serial port will The low byte of the address is then received and
go into Transmit mode. It will send ACK on the ninth bit compared with I2CADD<7:0>. If an address match
and then hold SCL to ‘0’ until the CPU responds by occurs, the interrupt pulse is generated and the ADD10
writing to I2CTRN. SCL is released by setting the bit is set, indicating a complete 10-bit address match. If
SCLREL bit, and 8 bits of data are shifted out. Data bits an address match did not occur, the ADD10 bit is
are shifted out on the falling edge of SCL, such that cleared and the module returns to the Idle state.
SDA is valid during SCL high (see timing diagram). The
interrupt pulse is sent on the falling edge of the ninth
clock pulse, regardless of the status of the ACK
received from the master.
SFR 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 Reset State
dsPIC30F6010A/6015
DS70150D-page 115
dsPIC30F6010A/6015
NOTES:
Write Write
– Control TSR
– Control Buffer
– Generate Flags
– Generate Interrupt
Load TSR
UxTXIF
UTXBRK
Data
Transmit Shift Register (UxTSR)
‘0’ (Start)
UxTX
‘1’ (Stop)
Control
Signals
Note: x = 1 or 2.
UxMODE UxSTA
LPBACK 8-9
From UxTX
1 Load RSR
to Buffer Control
FERR
PERR
Receive Shift Register Signals
UxRX
0 (UxRSR)
SFR 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 Reset State
U1MODE 020C UARTEN — USIDL — — — — — WAKE LPBACK ABAUD — — PDSEL1 PDSEL0 STSEL 0000 0000 0000 0000
U1STA 020E UTXISEL — — — UTXBRK UTXEN UTXBF TRMT URXISEL1 URXISEL0 ADDEN RIDLE PERR FERR OERR URXDA 0000 0001 0001 0000
U1TXREG 0210 — — — — — — — UTX8 Transmit Register 0000 000u uuuu uuuu
U1RXREG 0212 — — — — — — — URX8 Receive Register 0000 0000 0000 0000
U1BRG 0214 Baud Rate Generator Prescaler 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
U2MODE 0216 UARTEN — USIDL — — — — — WAKE LPBACK ABAUD — — PDSEL1 PDSEL0 STSEL 0000 0000 0000 0000
U2STA 0218 UTXISEL — — — UTXBRK UTXEN UTXBF TRMT URXISEL1 URXISEL0 ADDEN RIDLE PERR FERR OERR URXDA 0000 0001 0001 0000
U2TXREG 021A — — — — — — — UTX8 Transmit Register 0000 000u uuuu uuuu
U2RXREG 021C — — — — — — — URX8 Receive Register 0000 0000 0000 0000
U2BRG 021E Baud Rate Generator Prescaler 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
dsPIC30F6010A/6015
DS70150D-page 123
dsPIC30F6010A/6015
NOTES:
Acceptance Mask
BUFFERS RXM1
Acceptance Filter
RXF2
MESSAGE
MESSAGE
MTXBUFF
MTXBUFF
MTXBUFF
MSGREQ
MSGREQ
MSGREQ
RXF0 RXF4
TXLARB
TXLARB
TXLARB
c p
TXERR
TXERR
TXERR
TXABT
TXABT
TXABT
e t
Acceptance Filter Acceptance Filter
p
RXF1 RXF5
t
R R
X Identifier M Identifier X
Message B A B
Queue 0 B 1
Control
Transmit Byte Sequencer Data Field Data Field
Receive RERRCNT
Error
PROTOCOL Counter
TERRCNT
Protocol
Finite
CRC Generator CRC Check
State
Machine
Bit
Transmit
Timing Bit Timing
Logic
Logic Generator
CiTX(1) CiRX(1)
Input Signal
Sample Point
TQ
19.6.6 SYNCHRONIZATION
19.6.3 PROPAGATION SEGMENT
To compensate for phase shifts between the oscillator
This part of the bit time is used to compensate physical frequencies of the different bus stations, each CAN
delay times within the network. These delay times controller must be able to synchronize to the relevant
consist of the signal propagation time on the bus line signal edge of the incoming signal. When an edge in
and the internal delay time of the nodes. The the transmitted data is detected, the logic will compare
Propagation Segment can be programmed from 1 TQ the location of the edge to the expected time
to 8 TQ by setting the PRSEG<2:0> bits (Synchronous Segment). The circuit will then adjust the
(CiCFG2<2:0>). values of Phase1 Seg and Phase2 Seg. There are 2
mechanisms used to synchronize.
19.6.4 PHASE SEGMENTS
The phase segments are used to optimally locate the 19.6.6.1 Hard Synchronization
sampling of the received bit within the transmitted bit Hard synchronization is only done whenever there is a
time. The sampling point is between Phase1 Seg and recessive to dominant edge during bus Idle, indicating
Phase2 Seg. These segments are lengthened or short- the start of a message. After hard synchronization, the
ened by re-synchronization. The end of the Phase1 bit time counters are restarted with the Synchronous
Seg determines the sampling point within a bit period. Segment. Hard synchronization forces the edge which
The segment is programmable from 1 TQ to 8 TQ. has caused the hard synchronization to lie within the
Phase2 Seg provides delay to the next transmitted data synchronization segment of the restarted bit time. If a
transition. The segment is programmable from 1 TQ to hard synchronization is done, there will not be a
8 TQ, or it may be defined to be equal to the greater of resynchronization within that bit time.
Phase1 Seg or the Information Processing Time
(2 TQ). The Phase1 Seg is initialized by setting bits 19.6.6.2 Re-synchronization
SEG1PH<2:0> (CiCFG2<5:3>), and Phase2 Seg is
As a result of re-synchronization, Phase1 Seg may be
initialized by setting SEG2PH<2:0> (CiCFG2<10:8>).
lengthened or Phase2 Seg may be shortened. The
The following requirement must be fulfilled while setting amount of lengthening or shortening of the phase
the lengths of the Phase Segments: buffer segment has an upper bound known as the
• Propagation Segment + Phase1 Seg > = Phase2 Seg synchronization jump width, and is specified by the
SJW<1:0> bits (CiCFG1<7:6>). The value of the
synchronization jump width will be added to Phase1
Seg or subtracted from Phase2 Seg. The
re-synchronization jump width is programmable
between 1 TQ and 4 TQ.
The following requirement must be fulfilled while setting
the SJW<1:0> bits:
• Phase2 Seg > Synchronization Jump Width
dsPIC30F6010A/6015
SFR 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 Reset State
C1RXF0SID 0300 — — — Receive Acceptance Filter 0 Standard Identifier<10:0> — EXIDE 000u uuuu uuuu uu0u
C1RXF0EIDH 0302 — — — — Receive Acceptance Filter 0 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C1RXF0EIDL 0304 Receive Acceptance Filter 0 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C1RXF1SID 0308 — — — Receive Acceptance Filter 1 Standard Identifier<10:0> — EXIDE 000u uuuu uuuu uu0u
C1RXF1EIDH 030A — — — — Receive Acceptance Filter 1 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C1RXF1EIDL 030C Receive Acceptance Filter 1 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C1RXF2SID 0310 — — — Receive Acceptance Filter 2 Standard Identifier <10:0> — EXIDE 000u uuuu uuuu uu0u
C1RXF2EIDH 0312 — — — — Receive Acceptance Filter 2 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C1RXF2EIDL 0314 Receive Acceptance Filter 2 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C1RXF3SID 0318 — — — Receive Acceptance Filter 3 Standard Identifier <10:0> — EXIDE 000u uuuu uuuu uu0u
C1RXF3EIDH 031A — — — — Receive Acceptance Filter 3 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C1RXF3EIDL 031C Receive Acceptance Filter 3 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C1RXF4SID 0320 — — — Receive Acceptance Filter 4 Standard Identifier<10:0> — EXIDE 000u uuuu uuuu uu0u
C1RXF4EIDH 0322 — — — — Receive Acceptance Filter 4 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C1RXF4EIDL 0324 Receive Acceptance Filter 4 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C1RXF5SID 0328 — — — Receive Acceptance Filter 5 Standard Identifier<10:0> — EXIDE 000u uuuu uuuu uu0u
C1RXF5EIDH 032A — — — — Receive Acceptance Filter 5 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C1RXF5EIDL 032C Receive Acceptance Filter 5 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C1RXM0SID 0330 — — — Receive Acceptance Mask 0 Standard Identifier<10:0> — MIDE 000u uuuu uuuu uu0u
C1RXM0EIDH 0332 — — — — Receive Acceptance Mask 0 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C1RXM0EIDL 0334 Receive Acceptance Mask 0 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C1RXM1SID 0338 — — — Receive Acceptance Mask 1 Standard Identifier<10:0> — MIDE 000u uuuu uuuu uu0u
C1RXM1EIDH 033A — — — — Receive Acceptance Mask 1 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C1RXM1EIDL 033C Receive Acceptance Mask 1 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C1TX2SID 0340 Transmit Buffer 2 Standard Identifier<10:6> — — — Transmit Buffer 2 Standard Identifier<5:0> SRR TXIDE uuuu u000 uuuu uuuu
C1TX2EID 0342 Transmit Buffer 2 Extended — — — — Transmit Buffer 2 Extended Identifier<13:6> uuuu 0000 uuuu uuuu
Identifier<17:14>
C1TX2DLC 0344 Transmit Buffer 2 Extended Identifier<5:0> TXRTR TXRB1 TXRB0 DLC<3:0> — — — uuuu uuuu uuuu u000
C1TX2B1 0346 Transmit Buffer 2 Byte 1 Transmit Buffer 2 Byte 0 uuuu uuuu uuuu uuuu
© 2008 Microchip Technology Inc.
C1TX2B2 0348 Transmit Buffer 2 Byte 3 Transmit Buffer 2 Byte 2 uuuu uuuu uuuu uuuu
C1TX2B3 034A Transmit Buffer 2 Byte 5 Transmit Buffer 2 Byte 4 uuuu uuuu uuuu uuuu
C1TX2B4 034C Transmit Buffer 2 Byte 7 Transmit Buffer 2 Byte 6 uuuu uuuu uuuu uuuu
C1TX2CON 034E — — — — — — — — — TXABT TXLARB TXERR TXREQ — TXPRI<1:0> 0000 0000 0000 0000
C1TX1SID 0350 Transmit Buffer 1 Standard Identifier<10:6> — — — Transmit Buffer 1 Standard Identifier<5:0> SRR TXIDE uuuu u000 uuuu uuuu
C1TX1EID 0352 Transmit Buffer 1 Extended — — — — Transmit Buffer 1 Extended Identifier<13:6> uuuu 0000 uuuu uuuu
Identifier<17:14>
C1TX1DLC 0354 Transmit Buffer 1 Extended Identifier<5:0> TXRTR TXRB1 TXRB0 DLC<3:0> — — — uuuu uuuu uuuu u000
C1TX1B1 0356 Transmit Buffer 1 Byte 1 Transmit Buffer 1 Byte 0 uuuu uuuu uuuu uuuu
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
TABLE 19-1: CAN1 REGISTER MAP FOR dsPIC30F6010A AND 6015 DEVICES(1) (CONTINUED)
© 2008 Microchip Technology Inc.
SFR 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 Reset State
C1TX1B2 0358 Transmit Buffer 1 Byte 3 Transmit Buffer 1 Byte 2 uuuu uuuu uuuu uuuu
C1TX1B3 035A Transmit Buffer 1 Byte 5 Transmit Buffer 1 Byte 4 uuuu uuuu uuuu uuuu
C1TX1B4 035C Transmit Buffer 1 Byte 7 Transmit Buffer 1 Byte 6 uuuu uuuu uuuu uuuu
C1TX1CON 035E — — — — — — — — — TXABT TXLARB TXERR TXREQ — TXPRI<1:0> 0000 0000 0000 0000
C1TX0SID 0360 Transmit Buffer 0 Standard Identifier<10:6> — — — Transmit Buffer 0 Standard Identifier<5:0> SRR TXIDE uuuu u000 uuuu uuuu
C1TX0EID 0362 Transmit Buffer 0 Extended — — — — Transmit Buffer 0 Extended Identifier<13:6> uuuu 0000 uuuu uuuu
Identifier<17:14>
C1TX0DLC 0364 Transmit Buffer 0 Extended Identifier<5:0> TXRTR TXRB1 TXRB0 DLC<3:0> — — — uuuu uuuu uuuu u000
C1TX0B1 0366 Transmit Buffer 0 Byte 1 Transmit Buffer 0 Byte 0 uuuu uuuu uuuu uuuu
C1TX0B2 0368 Transmit Buffer 0 Byte 3 Transmit Buffer 0 Byte 2 uuuu uuuu uuuu uuuu
C1TX0B3 036A Transmit Buffer 0 Byte 5 Transmit Buffer 0 Byte 4 uuuu uuuu uuuu uuuu
C1TX0B4 036C Transmit Buffer 0 Byte 7 Transmit Buffer 0 Byte 6 uuuu uuuu uuuu uuuu
C1TX0CON 036E — — — — — — — — — TXABT TXLARB TXERR TXREQ — TXPRI<1:0> 0000 0000 0000 0000
C1RX1SID 0370 — — — Receive Buffer 1 Standard Identifier<10:0> SRR RXIDE 000u uuuu uuuu uuuu
C1RX1EID 0372 — — — — Receive Buffer 1 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C1RX1DLC 0374 Receive Buffer 1 Extended Identifier<5:0> RXRTR RXRB1 — — — RXRB0 DLC<3:0> uuuu uuuu 000u uuuu
C1RX1B1 0376 Receive Buffer 1 Byte 1 Receive Buffer 1 Byte 0 uuuu uuuu uuuu uuuu
C1RX1B2 0378 Receive Buffer 1 Byte 3 Receive Buffer 1 Byte 2 uuuu uuuu uuuu uuuu
C1RX1B3 037A Receive Buffer 1 Byte 5 Receive Buffer 1 Byte 4 uuuu uuuu uuuu uuuu
C1RX1B4 037C Receive Buffer 1 Byte 7 Receive Buffer 1 Byte 6 uuuu uuuu uuuu uuuu
C1RX1CON 037E — — — — — — — — RXFUL — — — RXRTRRO FILHIT<2:0> 0000 0000 0000 0000
dsPIC30F6010A/6015
C1RX0SID 0380 — — — Receive Buffer 0 Standard Identifier<10:0> SRR RXIDE 000u uuuu uuuu uuuu
C1RX0EID 0382 — — — — Receive Buffer 0 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C1RX0DLC 0384 Receive Buffer 0 Extended Identifier<5:0> RXRTR RXRB1 — — — RXRB0 DLC<3:0> uuuu uuuu 000u uuuu
C1RX0B1 0386 Receive Buffer 0 Byte 1 Receive Buffer 0 Byte 0 uuuu uuuu uuuu uuuu
C1RX0B2 0388 Receive Buffer 0 Byte 3 Receive Buffer 0 Byte 2 uuuu uuuu uuuu uuuu
C1RX0B3 038A Receive Buffer 0 Byte 5 Receive Buffer 0 Byte 4 uuuu uuuu uuuu uuuu
C1RX0B4 038C Receive Buffer 0 Byte 7 Receive Buffer 0 Byte 6 uuuu uuuu uuuu uuuu
C1RX0CON 038E — — — — — — — — RXFUL — — — RXRTRRO DBEN JTOFF FILHIT0 0000 0000 0000 0000
C1CTRL 0390 CANCAP — CSIDLE ABAT CANCKS REQOP<2:0> OPMODE<2:0> — ICODE<2:0> — 0000 0100 1000 0000
C1CFG1 0392 — — — — — — — — SJW<1:0> BRP<5:0> 0000 0000 0000 0000
C1CFG2 0394 — WAKFIL — — — SEG2PH<2:0> SEG2PHTS SAM SEG1PH<2:0> PRSEG<2:0> 0u00 0uuu uuuu uuuu
C1INTF 0396 RX0OVR RX1OVR TXBO TXEP RXEP TXWAR RXWAR EWARN IVRIF WAKIF ERRIF TX2IF TX1IF TX0IF RX1IF RX0IF 0000 0000 0000 0000
C1INTE 0398 — — — — — — — — IVRIE WAKIE ERRIE TX2IE TX1IE TX0IE RX1E RX0IE 0000 0000 0000 0000
DS70150D-page 133
C1EC 039A Transmit Error Count Register Receive Error Count Register 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
TABLE 19-2: CAN2 REGISTER MAP FOR dsPIC30F6010A(1)
DS70150D-page 134
dsPIC30F6010A/6015
SFR 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 Reset State
C2RXF0SID 03C0 — — — Receive Acceptance Filter 0 Standard Identifier<10:0> — EXIDE 000u uuuu uuuu uu0u
C2RXF0EIDH 03C2 — — — — Receive Acceptance Filter 0 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C2RXF0EIDL 03C4 Receive Acceptance Filter 0 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C2RXF1SID 03C8 — — — Receive Acceptance Filter 1 Standard Identifier<10:0> — EXIDE 000u uuuu uuuu uu0u
C2RXF1EIDH 03CA — — — — Receive Acceptance Filter 1 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C2RXF1EIDL 03CC Receive Acceptance Filter 1 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C2RXF2SID 03D0 — — — Receive Acceptance Filter 2 Standard Identifier<10:0> — EXIDE 000u uuuu uuuu uu0u
C2RXF2EIDH 03D2 — — — — Receive Acceptance Filter 2 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C2RXF2EIDL 03D4 Receive Acceptance Filter 2 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C2RXF3SID 03D8 — — — Receive Acceptance Filter 3 Standard Identifier<10:0> — EXIDE 000u uuuu uuuu uu0u
C2RXF3EIDH 03DA — — — — Receive Acceptance Filter 3 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C2RXF3EIDL 03DC Receive Acceptance Filter 3 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C2RXF4SID 03E0 — — — Receive Acceptance Filter 4 Standard Identifier<10:0> — EXIDE 000u uuuu uuuu uu0u
C2RXF4EIDH 03E2 — — — — Receive Acceptance Filter 4 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C2RXF4EIDL 03E4 Receive Acceptance Filter 4 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C2RXF5SID 03E8 — — — Receive Acceptance Filter 5 Standard Identifier <10:0> — EXIDE 000u uuuu uuuu uu0u
C2RXF5EIDH 03EA — — — — Receive Acceptance Filter 5 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C2RXF5EIDL 03EC Receive Acceptance Filter 5 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C2RXM0SID 03F0 — — — Receive Acceptance Mask 0 Standard Identifier<10:0> — MIDE 000u uuuu uuuu uu0u
C2RXM0EIDH 03F2 — — — — Receive Acceptance Mask 0 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C2RXM0EIDL 03F4 Receive Acceptance Mask 0 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C2RXM1SID 03F8 — — — Receive Acceptance Mask 1 Standard Identifier<10:0> — MIDE 000u uuuu uuuu uu0u
C2RXM1EIDH 03FA — — — — Receive Acceptance Mask 1 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C2RXM1EIDL 03FC Receive Acceptance Mask 1 Extended Identifier<5:0> — — — — — — — — — — uuuu uu00 0000 0000
C2TX2SID 0400 Transmit Buffer 2 Standard Identifier<10:6> — — — Transmit Buffer 2 Standard Identifier<5:0> SRR TXIDE uuuu u000 uuuu uuuu
C2TX2EID 0402 Transmit Buffer 2 Extended Identifier<17:14> — — — — Transmit Buffer 2 Extended Identifier<13:6> uuuu 0000 uuuu uuuu
C2TX2DLC 0404 Transmit Buffer 2 Extended Identifier<5:0> TXRTR TXRB1 TXRB0 DLC<3:0> — — — uuuu uuuu uuuu u000
C2TX2B1 0406 Transmit Buffer 2 Byte 1 Transmit Buffer 2 Byte 0 uuuu uuuu uuuu uuuu
C2TX2B2 0408 Transmit Buffer 2 Byte 3 Transmit Buffer 2 Byte 2 uuuu uuuu uuuu uuuu
© 2008 Microchip Technology Inc.
C2TX2B3 040A Transmit Buffer 2 Byte 5 Transmit Buffer 2 Byte 4 uuuu uuuu uuuu uuuu
C2TX2B4 040C Transmit Buffer 2 Byte 7 Transmit Buffer 2 Byte 6 uuuu uuuu uuuu uuuu
C2TX2CON 040E — — — — — — — — — TXABT TXLARB TXERR TXREQ — TXPRI<1:0> 0000 0000 0000 0000
C2TX1SID 0410 Transmit Buffer 1 Standard Identifier<10:6> — — — Transmit Buffer 1 Standard Identifier<5:0> SRR TXIDE uuuu u000 uuuu uuuu
C2TX1EID 0412 Transmit Buffer 1 Extended Identifier<17:14> — — — — Transmit Buffer 1 Extended Identifier<13:6> uuuu 0000 uuuu uuuu
C2TX1DLC 0414 Transmit Buffer 1 Extended Identifier<5:0> TXRTR TXRB1 TXRB0 DLC<3:0> — — — uuuu uuuu uuuu u000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
TABLE 19-2: CAN2 REGISTER MAP FOR dsPIC30F6010A(1) (CONTINUED)
© 2008 Microchip Technology Inc.
SFR 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 Reset State
C2TX1B1 0416 Transmit Buffer 1 Byte 1 Transmit Buffer 1 Byte 0 uuuu uuuu uuuu uuuu
C2TX1B2 0418 Transmit Buffer 1 Byte 3 Transmit Buffer 1 Byte 2 uuuu uuuu uuuu uuuu
C2TX1B3 041A Transmit Buffer 1 Byte 5 Transmit Buffer 1 Byte 4 uuuu uuuu uuuu uuuu
C2TX1B4 041C Transmit Buffer 1 Byte 7 Transmit Buffer 1 Byte 6 uuuu uuuu uuuu uuuu
C2TX1CON 041E — — — — — — — — — TXABT TXLARB TXERR TXREQ — TXPRI<1:0> 0000 0000 0000 0000
C2TX0SID 0420 Transmit Buffer 0 Standard Identifier<10:6> — — — Transmit Buffer 0 Standard Identifier<5:0> SRR TXIDE uuuu u000 uuuu uuuu
C2TX0EID 0422 Transmit Buffer 0 Extended Identifier<17:14> — — — — Transmit Buffer 0 Extended Identifier<13:6> uuuu 0000 uuuu uuuu
C2TX0DLC 0424 Transmit Buffer 0 Extended Identifier<5:0> TXRTR TXRB1 TXRB0 DLC<3:0> — — — uuuu uuuu uuuu u000
C2TX0B1 0426 Transmit Buffer 0 Byte 1 Transmit Buffer 0 Byte 0 uuuu uuuu uuuu uuuu
C2TX0B2 0428 Transmit Buffer 0 Byte 3 Transmit Buffer 0 Byte 2 uuuu uuuu uuuu uuuu
C2TX0B3 042A Transmit Buffer 0 Byte 5 Transmit Buffer 0 Byte 4 uuuu uuuu uuuu uuuu
C2TX0B4 042C Transmit Buffer 0 Byte 7 Transmit Buffer 0 Byte 6 uuuu uuuu uuuu uuuu
C2TX0CON 042E — — — — — — — — — TXABT TXLARB TXERR TXREQ — TXPRI<1:0> 0000 0000 0000 0000
C2RX1SID 0430 — — — Receive Buffer 1 Standard Identifier<10:0> SRR RXIDE 000u uuuu uuuu uuuu
C2RX1EID 0432 — — — — Receive Buffer 1 Extended Identifier <17:6> 0000 uuuu uuuu uuuu
C2RX1DLC 0434 Receive Buffer 1 Extended Identifier<5:0> RXRTR RXRB1 — — — RXRB0 DLC<3:0> uuuu uuuu 000u uuuu
C2RX1B1 0436 Receive Buffer 1 Byte 1 Receive Buffer 1 Byte 0 uuuu uuuu uuuu uuuu
C2RX1B2 0438 Receive Buffer 1 Byte 3 Receive Buffer 1 Byte 2 uuuu uuuu uuuu uuuu
C2RX1B3 043A Receive Buffer 1 Byte 5 Receive Buffer 1 Byte 4 uuuu uuuu uuuu uuuu
C2RX1B4 043C Receive Buffer 1 Byte 7 Receive Buffer 1 Byte 6 uuuu uuuu uuuu uuuu
C2RX1CON 043E — — — — — — — — RXFUL — — — RXRTRRO FILHIT<2:0> 0000 0000 0000 0000
dsPIC30F6010A/6015
C2RX0SID 0440 — — — Receive Buffer 0 Standard Identifier<10:0> SRR RXIDE 000u uuuu uuuu uuuu
C2RX0EID 0442 — — — — Receive Buffer 0 Extended Identifier<17:6> 0000 uuuu uuuu uuuu
C2RX0DLC 0444 Receive Buffer 0 Extended Identifier<5:0> RXRTR RXRB1 — — — RXRB0 DLC<3:0> uuuu uuuu 000u uuuu
C2RX0B1 0446 Receive Buffer 0 Byte 1 Receive Buffer 0 Byte 0 uuuu uuuu uuuu uuuu
C2RX0B2 0448 Receive Buffer 0 Byte 3 Receive Buffer 0 Byte 2 uuuu uuuu uuuu uuuu
C2RX0B3 044A Receive Buffer 0 Byte 5 Receive Buffer 0 Byte 4 uuuu uuuu uuuu uuuu
C2RX0B4 044C Receive Buffer 0 Byte 7 Receive Buffer 0 Byte 6 uuuu uuuu uuuu uuuu
C2RX0CON 044E — — — — — — — — RXFUL — — — RXRTRRO DBEN JTOFF FILHIT0 0000 0000 0000 0000
C2CTRL 0450 CANCAP — CSIDLE ABAT CANCKS REQOP<2:0> OPMODE<2:0> — ICODE<2:0> — 0000 0100 1000 0000
C2CFG1 0452 — — — — — — — — SJW<1:0> BRP<5:0> 0000 0000 0000 0000
C2CFG2 0454 WAKFIL — — — SEG2PH<2:0> SEG2PHTS SAM SEG1PH<2:0> PRSEG<2:0> 0u00 0uuu uuuu uuuu
C2INTF 0456 RX0OVR RX1OVR TXBO TXEP RXEP TXWAR RXWAR EWARN IVRIF WAKIF ERRIF TX2IF TX1IF TX0IF RX1IF RX0IF 0000 0000 0000 0000
C2INTE 0458 — — — — — — — — IVRIE WAKIE ERRIE TX2IE TX1IE TX0IE RX1E RX0IE 0000 0000 0000 0000
DS70150D-page 135
C2EC 045A Transmit Error Count Register Receive Error Count Register 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
dsPIC30F6010A/6015
NOTES:
AN0 AN0
AN3 +
S/H CH1 ADC
AN6 -
AN9
Format
Data
AN7 -
AN10 16-word, 10-bit
Dual Port
Buffer
Bus Interface
AN2 AN2
AN5 +
S/H CH3
AN8 - CH1,CH2,
AN11 CH3,CH0 Sample/Sequence
sample Control
AN0
AN1 input
AN2 switches Input MUX
AN3 AN3 Control
AN4 AN4
AN5 AN5
AN6 AN6
AN7 AN7
AN8 AN8
AN9 AN9
AN10 AN10
AN11 AN11
AN12 AN12
AN13 AN13
AN14 AN14
AN15 AN15 +
S/H CH0
AN1 -
TAD Sampling
A/D Speed RS Max VDD Temperature A/D Channels Configuration
Minimum Time Min
Up to 83.33 ns 12 TAD 500Ω 4.5V to 5.5V -40°C to +85°C VREF- VREF+
1 Msps(1)
CH1, CH2 or CH3
ANx
S/H
ADC
CH0
S/H
CHX
ANx
S/H ADC
ADC
CH0
S/H
ANx CHX
S/H ADC
ANx or VREF-
ANx CHX
S/H ADC
ANx or VREF-
Note 1: External VREF- and VREF+ pins must be used for correct operation. See Figure 20-2 for recommended
circuit.
VDD
VSS
VDD VDD VDD
C8 C7 C6
1 μF 0.1 μF 0.01 μF
dsPIC30F6010A VSS
VDD VSS
VDD VDD
VDD VDD VDD VDD
C5 C4 C3
1 μF 0.1 μF 0.01 μF
VDD
VREF-
AVDD
AVSS
VREF
+
R2
VDD
VSS
10
R1 VDD
C2 C1 10
0.1 μF 0.01 μF VDD
CHOLD
VA CPIN I leakage = DAC capacitance
VT = 0.6V ± 500 nA = 4.4 pF
VSS
Note: CPIN value depends on device package and is not tested. Effect of CPIN negligible if Rs ≤ 5 kΩ.
RAM Contents: d09 d08 d07 d06 d05 d04 d03 d02 d01 d00
Read to Bus:
Signed Fractional (1.15) d09 d08 d07 d06 d05 d04 d03 d02 d01 d00 0 0 0 0 0 0
Fractional (1.15) d09 d08 d07 d06 d05 d04 d03 d02 d01 d00 0 0 0 0 0 0
Signed Integer d09 d09 d09 d09 d09 d09 d09 d08 d07 d06 d05 d04 d03 d02 d01 d00
Integer 0 0 0 0 0 0 d09 d08 d07 d06 d05 d04 d03 d02 d01 d00
SFR 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 Reset State
dsPIC30F6010A/6015
ADCHS 02A6 CH123NB<1:0> CH123SB CH0NB CH0SB<3:0> CH123NA<1:0> CH123SA CH0NA CH0SA<3:0> 0000 0000 0000 0000
ADPCFG 02A8 PCFG15 PCFG14 PCFG13 PCFG12 PCFG11 PCFG10 PCFG9 PCFG8 PCFG7 PCFG6 PCFG5 PCFG4 PCFG3 PCFG2 PCFG1 PCFG0 0000 0000 0000 0000
ADCSSL 02AA CSSL15 CSSL14 CSSL13 CSSL12 CSSL11 CSSL10 CSSL9 CSSL8 CSSL7 CSSL6 CSSL5 CSSL4 CSSL3 CSSL2 CSSL1 CSSL0 0000 0000 0000 0000
Legend: u = uninitialized bit; — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
DS70150D-page 147
dsPIC30F6010A/6015
NOTES:
Wake-up Request
FPLL
OSC1
Primary PLL
Oscillator x4, x8, x16 PLL
OSC2
Lock COSC<2:0>
Primary Osc
TUN<5:0> NOSC<2:0>
6
Primary
Oscillator OSWEN
Stability Detector
Internal Fast RC
Oscillator (FRC)
Oscillator
POR Done Start-up
Clock
Timer
Switching
Programmable
Secondary Osc and Control Clock Divider System
Block
Clock
SOSCO
Secondary 2
32 kHz LP
Oscillator
SOSCI Oscillator
Stability Detector POST<1:0>
CF
Fail-Safe Clock
FCKSM<1:0> Monitor (FSCM)
2 Oscillator Trap
to Timer1
RESET
Instruction
Digital
Glitch Filter
MCLR
Sleep or Idle
WDT
Module
Illegal Opcode/
Uninitialized W Register
VDD
MCLR
Internal POR
TOST
OST Time-out
TPWRT
PWRT Time-out
Internal Reset
FIGURE 21-4: TIME-OUT SEQUENCE ON POWER-UP (MCLR NOT TIED TO VDD): CASE 1
VDD
MCLR
Internal POR
TOST
OST Time-out
TPWRT
PWRT Time-out
Internal Reset
VDD
MCLR
Internal POR
TOST
OST Time-out
TPWRT
PWRT Time-out
Internal Reset
21.3.1.1 POR with Long Crystal Start-up Time 21.3.2 BOR: PROGRAMMABLE
(with FSCM Enabled) BROWN-OUT RESET
The oscillator start-up circuitry is not linked to the POR The BOR (Brown-out Reset) module is based on an
circuitry. Some crystal circuits (especially low frequency internal voltage reference circuit. The main purpose of
crystals) will have a relatively long start-up time. the BOR module is to generate a device Reset when a
Therefore, one or more of the following conditions is brown-out condition occurs. Brown-out conditions are
possible after the POR timer and the PWRT have generally caused by glitches on the AC mains (i.e.,
expired: missing portions of the AC cycle waveform due to bad
• The oscillator circuit has not begun to oscillate. power transmission lines or voltage sags due to exces-
sive current draw when a large inductive load is turned
• The Oscillator Start-up Timer has NOT expired (if
on).
a crystal oscillator is used).
• The PLL has not achieved a LOCK (if PLL is The BOR module allows selection of one of the
used). following voltage trip points:
If the FSCM is disabled and the Power-up Timer A BOR will generate a Reset pulse which will reset the
(PWRT) is also disabled, then the device will exit rapidly device. The BOR will select the clock source, based on
from Reset on power-up. If the clock source is FRC, the device Configuration bit values (FOS<2:0> and
LPRC, EXTRC or EC, it will be active immediately. FPR<4:0>). Furthermore, if an oscillator mode is
selected, the BOR will activate the Oscillator Start-up
If the FSCM is disabled and the system clock has not Timer (OST). The system clock is held until OST
started, the device will be in a frozen state at the Reset expires. If the PLL is used, then the clock will be held
vector until the system clock starts. From the user’s until the LOCK bit (OSCCON<5>) is ‘1’.
perspective, the device will appear to be in Reset until
a system clock is available.
The Watchdog Timer can be “Enabled” or “Disabled” Note: If a POR or BOR occurred, the selection of
only through a Configuration bit (FWDTEN) in the the oscillator is based on the FOS<2:0>
Configuration register FWDT. and FPR<4:0> Configuration bits.
Setting FWDTEN = 1 enables the Watchdog Timer. If the clock source is an oscillator, the clock to the
The enabling is done when programming the device. device is held off until OST times out (indicating a
By default, after chip-erase, FWDTEN bit = 1. Any stable oscillator). If PLL is used, the system clock is
device programmer capable of programming held off until LOCK = 1 (indicating that the PLL is
dsPIC30F devices allows programming of this and stable). Either way, TPOR, TLOCK and TPWRT delays are
other Configuration bits. applied.
If enabled, the WDT will increment until it overflows or If EC, FRC, LPRC or ERC oscillators are used, then a
“times out”. A WDT time-out will force a device Reset delay of TPOR (~ 10 μs) is applied. This is the smallest
(except during Sleep). To prevent a WDT time-out, the delay possible on wake-up from Sleep.
user must clear the Watchdog Timer using a CLRWDT Moreover, if LP oscillator was active during Sleep, and
instruction. LP is the oscillator used on wake-up, then the start-up
If a WDT times out during Sleep, the device will delay will be equal to TPOR. PWRT delay and OST
wake-up. The WDTO bit in the RCON register will be timer delay are not applied. In order to have the
cleared to indicate a wake-up resulting from a WDT smallest possible start-up delay when waking up from
time-out. Sleep, one of these faster wake-up options should be
selected before entering Sleep.
Setting FWDTEN = 0 allows user software to
enable/disable the Watchdog Timer via the SWDTEN Any interrupt that is individually enabled (using the
(RCON<5>) control bit. corresponding IE bit) and meets the prevailing priority
level will be able to wake-up the processor. The
21.5 Power-Saving Modes processor will process the interrupt and branch to the
ISR. The Sleep Status bit in RCON register is set upon
There are two power-saving states that can be entered wake-up.
through the execution of a special instruction, PWRSAV.
Note: In spite of various delays applied (TPOR,
These are: Sleep and Idle.
TLOCK and TPWRT), the crystal oscillator
The format of the PWRSAV instruction is as follows: (and PLL) may not be active at the end of
PWRSAV <parameter>, where ‘parameter’ defines the time-out (e.g., for low-frequency
Idle or Sleep mode. crystals). In such cases, if FSCM is
enabled, then the device will detect this as
21.5.1 SLEEP MODE a clock failure and process the clock failure
trap, the FRC oscillator will be enabled, and
In Sleep mode, the clock to the CPU and peripherals is
the user will have to re-enable the crystal
shut down. If an on-chip oscillator is being used, it is
oscillator. If FSCM is not enabled, then the
shut down.
device will simply suspend execution of
The Fail-Safe Clock Monitor is not functional during code until the clock is stable, and will
Sleep, since there is no clock to monitor. However, remain in Sleep until the oscillator clock has
LPRC clock remains active if WDT is operational during started.
Sleep.
All Resets will wake-up the processor from Sleep
The Brown-out protection circuit, if enabled, will remain mode. Any Reset, other than POR, will set the Sleep
functional during Sleep. Status bit. In a POR, the Sleep bit is cleared.
SFR
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 Reset State
Name
RCON 0740 TRAPR IOPUWR BGST — — — — — EXTR SWR SWDTEN WDTO SLEEP IDLE BOR POR Depends on type of Reset.
OSCCON 0742 — COSC<2:0> — NOSC<2:0> POST<1:0> LOCK — CF — LPOSCEN OSWEN Depends on Configuration bits.
OSCTUN 0744 — — — — — — — — — — TUN<5:0> 0000 0000 0000 0000
PMD1 0770 T5MD T4MD T3MD T2MD T1MD QEIMD PWMMD — I2CMD U2MD U1MD SPI2MD SPI1MD C2MD C1MD ADCMD 0000 0000 0000 0000
PMD2 0772 IC8MD IC7MD IC6MD IC5MD IC4MD IC3MD IC2MD IC1MD OC8MD OC7MD OC6MD OC5MD OC4MD OC3MD OC2MD OC1MD 0000 0000 0000 0000
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
RCON 0740 TRAPR IOPUWR BGST — — — — — EXTR SWR SWDTEN WDTO SLEEP IDLE BOR POR Depends on type of Reset.
OSCCON 0742 — COSC<2:0> — NOSC<2:0> POST<1:0> LOCK — CF — LPOSCEN OSWEN Depends on Configuration bits.
OSCTUN 0744 — — — — — — — — — — TUN<5:0> 0000 0000 0000 0000
PMD1 0770 T5MD T4MD T3MD T2MD T1MD QEIMD PWMMD — I2CMD U2MD U1MD SPI2MD SPI1MD — C1MD ADCMD 0000 0000 0000 0000
PMD2 0772 IC8MD IC7MD IC6MD IC5MD IC4MD IC3MD IC2MD IC1MD OC8MD OC7MD OC6MD OC5MD OC4MD OC3MD OC2MD OC1MD 0000 0000 0000 0000
Legend: — = unimplemented bit, read as ‘0’
Note 1: Refer to “dsPIC30F Family Reference Manual” (DS70046) for descriptions of register bit fields.
dsPIC30F6010A/6015
TABLE 21-9: DEVICE CONFIGURATION REGISTER MAP(1)
File Name Addr. Bits 23-16 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
For easy source level debugging, the compilers provide The MPLAB SIM Software Simulator fully supports
symbol information that is optimized to the MPLAB IDE symbolic debugging using the MPLAB C18 and
debugger. MPLAB C30 C Compilers, and the MPASM and
MPLAB ASM30 Assemblers. The software simulator
offers the flexibility to develop and debug code outside
23.4 MPLINK Object Linker/
of the hardware laboratory environment, making it an
MPLIB Object Librarian excellent, economical software development tool.
The MPLINK Object Linker combines relocatable
objects created by the MPASM Assembler and the
MPLAB C18 C Compiler. It can link relocatable objects
from precompiled libraries, using directives from a
linker script.
The MPLIB Object Librarian manages the creation and
modification of library files of precompiled code. When
a routine from a library is called from a source file, only
the modules that contain that routine will be linked in
with the application. This allows large libraries to be
used efficiently in many different applications.
The object linker/library features include:
• Efficient linking of single libraries instead of many
smaller files
• Enhanced code maintainability by grouping
related modules together
• Flexible creation of libraries with easy module
listing, replacement, deletion and extraction
†NOTICE:
Stresses above those listed under “Absolute Maximum Ratings” may 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 may affect device reliability.
VDD
Load Condition 1 – for all pins except OSC2 Load Condition 2 – for OSC2
VDD/2
RL Pin CL
VSS
Legend:
CL
Pin RL = 464 Ω
CL = 50 pF for all pins except OSC2
VSS 5 pF for OSC2 output
Q4 Q1 Q2 Q3 Q4 Q1
OSC1
OS20
OS30 OS30 OS31 OS31
OS25
CLKO
OS40 OS41
Param
Characteristic Min Typ Max Units Conditions
No.
Internal FRC Accuracy @ FRC Freq. = 7.37 MHz(1)
OS63 FRC — — ±2.00 % -40°C ≤ TA ≤ +85°C VDD = 3.0-5.5V
— — ±5.00 % -40°C ≤ TA ≤ +125°C VDD = 3.0-5.5V
Note 1: Frequency calibrated at 25°C and 5V. TUN bits can be used to compensate for temperature drift.
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
VBGAP
0V
TxCK
Tx10 Tx11
Tx15 Tx20
OS60
TMRX
QEB
TQ10 TQ11
TQ15 TQ20
POSCNT
ICX
IC10 IC11
IC15
OCx
(Output Compare
or PWM Mode) OC11 OC10
OC20
OCFA/OCFB
OC15
OCx
MP30
FLTA/B
MP20
PWMx
MP11 MP10
PWMx
TQ36
QEA
(input)
TQ31 TQ30
TQ35
QEB
(input) TQ41 TQ40
TQ31 TQ30
TQ35
QEB
Internal
QEA
(input)
QEB
(input)
Ungated
Index TQ50
TQ51
Index Internal
TQ55
Position Coun-
SCKx
(CKP = 0)
SCKx
(CKP = 1)
SP31 SP30
SP40 SP41
SP36
SCKX
(CKP = 0)
SCKX
(CKP = 1)
SP35
SP20 SP21
SP40 SP30,SP31
SP41
SSX
SP50 SP52
SCKX
(CKP = 0)
SCKX
(CKP = 1)
SP72 SP73
SP35
SP30,SP31 SP51
SP41
SP40 Note: Refer to Figure 24-2 for load conditions.
SP50 SP52
SCKX
(CKP = 0)
SCKX
(CKP = 1)
SP35
SP72 SP73
SP52
SP30,SP31 SP51
SDIX
MSb IN BIT14 - - - -1 LSb IN
SP41
SP40 Note: Refer to Figure 24-2 for load conditions.
SCL
IM31 IM34
IM30 IM33
SDA
Start Stop
Condition Condition
SDA
Out
SCL
IS31 IS34
IS30 IS33
SDA
Start Stop
Condition Condition
SDA
Out
CA10 CA11
CXRX Pin
(input)
CA20
AD50
ADCLK
Instruction
Execution SET SAMP CLEAR SAMP
SAMP
ch0_dischrg
ch0_samp
ch1_dischrg
ch1_samp
eoc
AD61
AD60
DONE
ADIF
ADRES(0)
ADRES(1)
1 2 3 4 5 6 8 9 5 6 8 9
AD50
ADCLK
Instruction
Execution SET ADON
SAMP
ch0_dischrg
ch0_samp
ch1_dischrg
ch1_samp
eoc
TSAMP TSAMP
AD55 AD55 TCONV
DONE
ADIF
ADRES(0)
ADRES(1)
1 2 3 4 5 6 7 3 4 5 6 8 3 4
2 - Sampling starts after discharge period. 6 - One TAD for end of conversion.
TSAMP is described in Section 17. “10-bit A/D Converter”
of the “dsPIC30F Family Reference Manual” (DS70046). 7 - Begin conversion of next channel.
XXXXXXXXXXXX dsPIC30F6015
XXXXXXXXXXXX -30I/PT e3
YYWWNNN 0712XXX
XXXXXXXXXXXX dsPIC30F6010
XXXXXXXXXXXX A-30I/PT e3
YYWWNNN 0712XXX
Note: In the event the full Microchip part number cannot be marked on one line, it will
be carried over to the next line, thus limiting the number of available
characters for customer-specific information.
D
D1
E
e
E1
N
b
β A1
L L1
Units MILLIMETERS
Dimension Limits MIN NOM MAX
Number of Leads N 64
Lead Pitch e 0.50 BSC
Overall Height A – – 1.20
Molded Package Thickness A2 0.95 1.00 1.05
Standoff A1 0.05 – 0.15
Foot Length L 0.45 0.60 0.75
Footprint L1 1.00 REF
Foot Angle φ 0° 3.5° 7°
Overall Width E 12.00 BSC
Overall Length D 12.00 BSC
Molded Package Width E1 10.00 BSC
Molded Package Length D1 10.00 BSC
Lead Thickness c 0.09 – 0.20
Lead Width b 0.17 0.22 0.27
Mold Draft Angle Top α 11° 12° 13°
Mold Draft Angle Bottom β 11° 12° 13°
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. Chamfers at corners are optional; size may vary.
3. Dimensions D1 and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed 0.25 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-085B
80-Lead Plastic Thin Quad Flatpack (PT) – 12x12x1 mm Body, 2.00 mm Footprint [TQFP]
Note: For the most current package drawings, please see the Microchip Packaging Specification located at
http://www.microchip.com/packaging
D
D1
E
e
E1
b N
NOTE 1
12 3 NOTE 2 α
A
c
φ
β A2
A1
L L1
Units MILLIMETERS
Dimension Limits MIN NOM MAX
Number of Leads N 80
Lead Pitch e 0.50 BSC
Overall Height A – – 1.20
Molded Package Thickness A2 0.95 1.00 1.05
Standoff A1 0.05 – 0.15
Foot Length L 0.45 0.60 0.75
Footprint L1 1.00 REF
Foot Angle φ 0° 3.5° 7°
Overall Width E 14.00 BSC
Overall Length D 14.00 BSC
Molded Package Width E1 12.00 BSC
Molded Package Length D1 12.00 BSC
Lead Thickness c 0.09 – 0.20
Lead Width b 0.17 0.22 0.27
Mold Draft Angle Top α 11° 12° 13°
Mold Draft Angle Bottom β 11° 12° 13°
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. Chamfers at corners are optional; size may vary.
3. Dimensions D1 and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed 0.25 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-092B
80-Lead Plastic Thin Quad Flatpack (PF) – 14x14x1 mm Body, 2.00 mm Footprint [TQFP]
Note: For the most current package drawings, please see the Microchip Packaging Specification located at
http://www.microchip.com/packaging
D
D1
e E
E1
N
NOTE 1
1 23 α
NOTE 2
c
φ
A
β L A1 L1 A2
Units MILLIMETERS
Dimension Limits MIN NOM MAX
Number of Leads N 80
Lead Pitch e 0.65 BSC
Overall Height A – – 1.20
Molded Package Thickness A2 0.95 1.00 1.05
Standoff A1 0.05 – 0.15
Foot Length L 0.45 0.60 0.75
Footprint L1 1.00 REF
Foot Angle φ 0° 3.5° 7°
Overall Width E 16.00 BSC
Overall Length D 16.00 BSC
Molded Package Width E1 14.00 BSC
Molded Package Length D1 14.00 BSC
Lead Thickness c 0.09 – 0.20
Lead Width b 0.22 0.32 0.38
Mold Draft Angle Top α 11° 12° 13°
Mold Draft Angle Bottom β 11° 12° 13°
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. Chamfers at corners are optional; size may vary.
3. Dimensions D1 and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed 0.25 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-116B
U
UART
Address Detect Mode .............................................. 121
Auto-Baud Support .................................................. 122
Baud Rate Generator (BRG) .................................... 121
Disabling .................................................................. 119
Enabling and Setup .................................................. 119
Loopback Mode ....................................................... 121
Module Overview ..................................................... 117
Operation During CPU Sleep and Idle Modes ......... 122
Receiving Data ......................................................... 120
In 8-bit or 9-bit Data Mode ............................... 120
Interrupt ........................................................... 120
Receive Buffer (UxRXB) .................................. 120
Reception Error Handling ......................................... 120
Framing Error (FERR) ..................................... 121
Idle Status ........................................................ 121
Parity Error (PERR) ......................................... 121
Receive Break ................................................. 121
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?
d s P I C 3 0 F 6 0 1 0 AT- 3 0 I / P F - 0 0 0
Custom ID (3 digits) or
Trademark Engineering Sample (ES)
Architecture
Package
Flash PF = TQFP 14x14
PT = TQFP 12x12
PT = TQFP 10x10
Memory Size in Bytes S = Die (Waffle Pack)
0 = ROMless W = Die (Wafers)
1 = 1K to 6K
2 = 7K to 12K
3 = 13K to 24K
4 = 25K to 48K Temperature
5 = 49K to 96K I = Industrial -40°C to +85°C
6 = 97K to 192K E = Extended High Temp -40°C to +125°C
7 = 193K to 384K
8 = 385K to 768K
9 = 769K and Up Speed
20 = 20 MIPS
30 = 30 MIPS
Device ID
T = Tape and Reel
Example:
dsPIC30F6010AT-30I/PF = 30 MIPS, Industrial temp., TQFP package, Rev. A
01/02/08