DSPIC30F2010-30I/SPG Microchip Technology, DSPIC30F2010-30I/SPG Datasheet - Page 46
![16BIT 30MIPS DSPIC, 30F2010, DIP28](/photos/19/0/190081/42268255_sml.jpg)
DSPIC30F2010-30I/SPG
Manufacturer Part Number
DSPIC30F2010-30I/SPG
Description
16BIT 30MIPS DSPIC, 30F2010, DIP28
Manufacturer
Microchip Technology
Series
DsPIC30Fr
Datasheet
1.DSPIC30F2010-30ISPG.pdf
(244 pages)
Specifications of DSPIC30F2010-30I/SPG
Core Frequency
30MHz
Embedded Interface Type
I2C, SPI, UART
No. Of I/o's
20
Flash Memory Size
12KB
Supply Voltage Range
2.5V To 5.5V
Operating Temperature Range
-40°C To
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
- Current page: 46 of 244
- Download datasheet (7Mb)
dsPIC30F
4.4
Modulo addressing is a method of providing an auto-
mated means to support circular data buffers using
hardware. The objective is to remove the need for soft-
ware to perform data address boundary checks when
executing tightly looped code, as is typical in many
DSP algorithms.
Modulo addressing can operate in either data or pro-
gram space (since the data pointer mechanism is essen-
tially the same for both). One circular buffer can be
supported in each of the X (which also provides the
pointers into Program space) and Y data spaces. Mod-
ulo addressing can operate on any W register pointer.
However, it is not advisable to use W14 or W15 for Mod-
ulo addressing, since these two registers are used as
the Stack Frame Pointer and Stack Pointer, respectively.
In general, any particular circular buffer can only be
configured to operate in one direction, as there are cer-
tain restrictions on the buffer start address (for incre-
menting buffers) or end address (for decrementing
buffers) based upon the direction of the buffer.
The only exception to the usage restrictions is for buff-
ers which have a power-of-2 length. As these buffers
satisfy the start and end address criteria, they may
operate in a Bi-Directional mode, (i.e., address bound-
ary checks will be performed on both the lower and
upper address boundaries).
4.4.1
The Modulo addressing scheme requires that a starting
and an end address be specified and loaded into the
16-bit modulo buffer address registers: XMODSRT,
XMODEND, YMODSRT, YMODEND (see Table 3-3).
If the length of an incrementing buffer is greater than
M = 2
last ’N’ bits of the data buffer start address must be
zeros. There are no such restrictions on the end
address of an incrementing buffer. For example, if the
buffer size (modulus value) is chosen to be 100 bytes
(0x64), then the buffer start address for an increment-
ing buffer must contain 7 Least Significant zeros. Valid
start addresses may, therefore, be 0xXX00 and
0xXX80, where ‘X’ is any hexadecimal value. Adding
the buffer length to this value and subtracting 1 will
give the end address to be written into X/YMODEND.
DS70082E-page 44
Note:
N-1
, but not greater than M = 2
Modulo Addressing
START AND END ADDRESS
The start and end addresses are the first
and last byte addresses of the buffer (irre-
spective of whether it is a word or byte
buffer, or an increasing or decreasing
buffer). Moreover, the start address must
be even and the end address must be odd
(for both word and byte buffers).
N
bytes, then the
Advance Information
For example, if the start address was chosen to be
0x2000, then the X/YMODEND would be set to
(0x2000 + 0x0064 – 1) = 0x2063.
In the case of a decrementing buffer, the last ‘N’ bits of
the data buffer end address must be ones. There are
no such restrictions on the start address of a decre-
menting buffer. For example, if the buffer size (modulus
value) is chosen to be 100 bytes (0x64), then the buffer
end address for a decrementing buffer must contain 7
Least Significant ones. Valid end addresses may,
therefore, be 0xXXFF and 0xXX7F, where ‘X’ is any
hexadecimal value. Subtracting the buffer length from
this value and adding 1 will give the start address to be
written into X/YMODSRT. For example, if the end
address was chosen to be 0x207F, then the start
address would be (0x207F – 0x0064+1) = 0x201C,
which is the first physical address of the buffer.
The length of a circular buffer is not directly specified. It
is determined by the difference between the corre-
sponding start and end addresses. The maximum pos-
sible length of the circular buffer is 32K words
(64 Kbytes).
A write operation to the MODCON register should not
be immediately followed by an indirect read operation
using any W register.
Note:
Note:
Note 1: Using a POP instruction to pop the con-
2: It should be noted that some instructions
‘Start address’ refers to the smallest
address boundary of the circular buffer.
The first access of the buffer may be at
any address within the modulus range
(see Section 4.4.4).
Y-space modulo addressing EA calcula-
tions assume word-sized data (LS bit of
every EA is always clear).
tents of the top-of-stack (TOS) location
into MODCON, also constitutes a write to
MODCON. Therefore, the instruction
immediately following such a POP cannot
be any instruction performing an indirect
read operation.
perform an indirect read operation implic-
itly. These are: POP, RETURN, RETFIE,
RETLW and ULNK.
2004 Microchip Technology Inc.
Related parts for DSPIC30F2010-30I/SPG
Image
Part Number
Description
Manufacturer
Datasheet
Request
R
![DSPIC30F2010-30I/SP](/photos/6/59/65908/150-28-dip_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28DIP
Manufacturer:
Microchip Technology
Datasheet:
![DSPIC30F2010-30I/SO](/photos/6/59/65909/150-28-soic_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28SOIC
Manufacturer:
Microchip Technology
Datasheet:
![DSPIC30F2010-20E/SO](/images/manufacturer_photos/0/4/439/microchip_technology_tmb.jpg)
Part Number:
Description:
IC,DSP,16-BIT,CMOS,SOP,28PIN,PLASTIC
Manufacturer:
Microchip Technology
Datasheet:
![DSPIC30F2010-20I/SO](/photos/6/59/65909/150-28-soic_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28SOIC
Manufacturer:
Microchip Technology
Datasheet:
![DSPIC30F2010-20I/MM](/photos/6/81/68120/150-28-qfn_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28QFN
Manufacturer:
Microchip Technology
Datasheet:
![DSPIC30F2010-30I/MM](/photos/6/81/68120/150-28-qfn_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28QFN
Manufacturer:
Microchip Technology
Datasheet:
![DSPIC30F2010-20I/SP](/photos/6/59/65908/150-28-dip_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28DIP
Manufacturer:
Microchip Technology
Datasheet:
![DSPIC30F2010-30I/SOG](/photos/6/59/65909/150-28-soic_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28SOIC
Manufacturer:
Microchip Technology
Datasheet:
![DSPIC30F2010-20E/SP](/photos/6/59/65908/150-28-dip_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28DIP
Manufacturer:
Microchip Technology
Datasheet:
![DSPIC30F2010-20E/SOG](/photos/6/59/65909/150-28-soic_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28SOIC
Manufacturer:
Microchip Technology
![DSPIC30F2010-20E/MMG](/photos/6/81/68120/150-28-qfn_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28QFN
Manufacturer:
Microchip Technology
![DSPIC30F2010-20E/SPG](/photos/6/59/65908/150-28-dip_tmb.jpg)
Part Number:
Description:
IC DSPIC MCU/DSP 12K 28DIP
Manufacturer:
Microchip Technology
![DSPIC30F2010-20E/MM](/photos/6/81/68120/150-28-qfn_tmb.jpg)
Part Number:
Description:
IC,DSP,16-BIT,CMOS,LLCC,28PIN,PLASTIC
Manufacturer:
Microchip Technology
Datasheet:
![DSPIC30F2010-20ISP](/images/manufacturer_photos/0/4/439/microchip_technology_tmb.jpg)
Part Number:
Description:
Digital Signal Processors & Controllers - DSP, DSC
Manufacturer:
Microchip Technology
![DSPIC30F2010-20I/MMG](/images/manufacturer_photos/0/4/439/microchip_technology_tmb.jpg)
Part Number:
Description:
Digital Signal Processors & Controllers - DSP, DSC 16 Bit MCU/DSP 28LD 20M 12KB FL
Manufacturer:
Microchip Technology