DSPIC30F4012-20I/SO Microchip Technology, DSPIC30F4012-20I/SO Datasheet - Page 12

no-image

DSPIC30F4012-20I/SO

Manufacturer Part Number
DSPIC30F4012-20I/SO
Description
IC, DSC, 16BIT, 48KB 20MHZ, 5.5V, SOIC28
Manufacturer
Microchip Technology
Series
DsPIC30Fr

Specifications of DSPIC30F4012-20I/SO

Core Frequency
20MHz
Embedded Interface Type
CAN, I2C, SPI, UART
No. Of I/o's
20
Flash Memory Size
48KB
Supply Voltage Range
2.5V To 5.5V
Core Processor
dsPIC
Core Size
16-Bit
Speed
20 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
Program Memory Size
48KB (16K x 24)
Program Memory Type
FLASH
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
Package / Case
28-SOIC (7.5mm Width)
Package
28SOIC W
Device Core
dsPIC
Family Name
dsPIC30
Maximum Speed
20 MHz
Operating Supply Voltage
2.5|3.3|5 V
Data Bus Width
16 Bit
Number Of Programmable I/os
20
Interface Type
CAN/I2C/SPI/UART
On-chip Adc
6-chx10-bit
Number Of Timers
5
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
For Use With
XLT28SO-1 - SOCKET TRANSITION 28SOIC 300MIL
Lead Free Status / RoHS Status
Lead free / RoHS Compliant, Lead free / RoHS Compliant
Other names
DSPIC30F401220ISO

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
DSPIC30F4012-20I/SO
Manufacturer:
MICROCHIP/微芯
Quantity:
20 000
dsPIC30F4011/4012
15. Module: Sleep Mode
EXAMPLE 10:
DS80454D-page 12
; ----------------------------------------------------------------------------------------------
.global __reset
.global _main
.global _GotoSleep
.global __AddressError
.global __INT1Interrupt
; ----------------------------------------------------------------------------------------------
_main:
_continue:
; ----------------------------------------------------------------------------------------------
; Address Error Trap
__AddressError:
; ----------------------------------------------------------------------------------------------
__INT1Interrupt:
; ----------------------------------------------------------------------------------------------
_GotoSleep:
; fill remainder of the last row with NOP instructions
; Place SLEEP instruction in the last word of program memory
Execution of the Sleep instruction (PWRSAV #0)
may cause incorrect program operation after the
device wakes up from Sleep. The current
consumption during Sleep may also increase
beyond the specifications listed in the device data
sheet.
Work arounds
To avoid this issue, implement any of the following
three work arounds, depending on the application
requirements.
Work around 1:
Ensure that the PWRSAV #0 instruction is located
at the end of the last row of program Flash memory
available on the target device and fill the
remainder of the row with NOP instructions.
.section *, code
BSET
BCLR
BSET
CALL
BRA
BCLR
; Set program memory return address to _continue
POP.D
MOV.B
MOV
PUSH.D W0
RETFIE
BCLR
RETFIE
.section *, code, address (0x1FC0)
.rept 31
.endr
PWRSAV #0
NOP
_continue
W0
#tblpage (_continue), W1
#tbloffset (_continue), W0
IFS1, #INT1IF
INTCON2, #INT1EP
IFS1, #INT1IF
IEC1, #INT1IE
_GotoSleep
INTCON1, #ADDRERR
; Set up INT pins to detect falling edge
; Clear interrupt pin interrupt flag bits
; Enable ISR processing for INT pins
; Call function to enter SLEEP mode
; Ensure flag is reset
; Return from Interrupt Service Routine
This can be accomplished by replacing all
occurrences of the PWRSAV #0 instruction with a
function call to a suitably aligned subroutine. The
address( ) attribute provided by the MPLAB
ASM30 assembler can be utilized to correctly align
the instructions in the subroutine. For an
application written in C, the function call would be
GotoSleep( ), while for an assembly language
application,
CALL _GotoSleep.
The address error Trap Service Routine (TSR)
software can then replace the invalid return
address saved on the stack with the address of the
instruction immediately following the _GotoSleep
or GotoSleep( ) function call. This ensures that
the device continues executing the correct code
sequence after waking up from Sleep mode.
Example 10 demonstrates the work around
described above.
the
© 2010 Microchip Technology Inc.
function
call
would
be

Related parts for DSPIC30F4012-20I/SO