DSPIC30F4012-30I/SP Microchip Technology, DSPIC30F4012-30I/SP Datasheet - Page 9
![IC DSPIC MCU/DSP 48K 28DIP](/photos/6/59/65908/150-28-dip_sml.jpg)
DSPIC30F4012-30I/SP
Manufacturer Part Number
DSPIC30F4012-30I/SP
Description
IC DSPIC MCU/DSP 48K 28DIP
Manufacturer
Microchip Technology
Series
dsPIC™ 30Fr
Datasheets
1.DSPIC30F4012-30ISO.pdf
(238 pages)
2.DSPIC30F4012-30ISO.pdf
(18 pages)
3.DSPIC30F4012-30ISO.pdf
(6 pages)
4.DSPIC30F4012-30ISO.pdf
(16 pages)
5.DSPIC30F4012-30ISO.pdf
(22 pages)
6.DSPIC30F4011-30IP.pdf
(228 pages)
Specifications of DSPIC30F4012-30I/SP
Program Memory Type
FLASH
Program Memory Size
48KB (16K x 24)
Package / Case
28-DIP (0.300", 7.62mm)
Core Processor
dsPIC
Core Size
16-Bit
Speed
30 MIPs
Connectivity
CAN, I²C, SPI, UART/USART
Peripherals
Brown-out Detect/Reset, Motor Control PWM, QEI, POR, PWM, WDT
Number Of I /o
20
Eeprom Size
1K x 8
Ram Size
2K x 8
Voltage - Supply (vcc/vdd)
2.5 V ~ 5.5 V
Data Converters
A/D 6x10b
Oscillator Type
Internal
Operating Temperature
-40°C ~ 85°C
Product
DSCs
Data Bus Width
16 bit
Processor Series
DSPIC30F
Core
dsPIC
Maximum Clock Frequency
30 MHz
Number Of Programmable I/os
20
Data Ram Size
2 KB
Maximum Operating Temperature
+ 85 C
Mounting Style
Through Hole
3rd Party Development Tools
52713-733, 52714-737, 53276-922, EWDSPIC
Development Tools By Supplier
PG164130, DV164035, DV244005, DV164005, PG164120, ICE4000, DM240002, DM300027, DM330011, DM300018, DM183021
Minimum Operating Temperature
- 40 C
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
For Use With
DV164005 - KIT ICD2 SIMPLE SUIT W/USB CABLE
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
Other names
DSPIC30F401230ISP
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
DSPIC30F4012-30I/SP
Manufacturer:
TI
Quantity:
17 600
Part Number:
DSPIC30F4012-30I/SP
Manufacturer:
MICROCHIP/微芯
Quantity:
20 000
14. Module: QEI Interrupt Generation
EXAMPLE 8:
© 2008 Microchip Technology Inc.
unsigned int POSCNT_b15 = 0;
unsigned int Motor_Position = 0;
int main(void)
{
}
void __attribute__((__interrupt__)) _QEIInterrupt(void)
{
}
The Quadrature Encoder Interface (QEI) module
does not generate an interrupt when MAXCNT is
set to 0xFFFF and the following events occur:
1. POSCNT underflows from 0x0000 to 0xFFFF.
2. POSCNT stops.
3. POSCNT overflows from 0xFFFF to 0x0000.
This sequence of events occurs when the motor is
running in one direction, which causes POSCNT to
underflow to 0xFFFF. Once this happens, the
motor stops and starts to run in the opposite
direction, which generates an overflow from
0xFFFF to 0x0000. The QEI module does not
generate an interrupt when this condition occurs.
// ... User's code
MAXCNT = 0x7FFF;
Motor_Position = POSCNT_b15 + POSCNT;
// ... User's code
IFSxbits.QEIIF = 0;
POSCNT_b15 ^= 0x8000; // Overflow or Underflow
// Instead of 0xFFFF
// Clear QEI interrupt flag
// x=2 for dsPIC30F
// x=3 for dsPIC33F
dsPIC30F4011/4012
Work around
To prevent this condition from occurring, set
MAXCNT to 0x7FFF, which will cause an interrupt
to be generated by the QEI module.
In addition, a global variable could be used to keep
track of bit 15, so that when an overflow or
underflow condition is present on POSCNT, the
variable will toggle bit 15. Example 8 shows the
code required for this global variable.
DS80215K-page 9