PIC16F1937-I/ML Microchip Technology, PIC16F1937-I/ML Datasheet - Page 17

IC PIC MCU FLASH 512KX14 44-QFN

PIC16F1937-I/ML

Manufacturer Part Number
PIC16F1937-I/ML
Description
IC PIC MCU FLASH 512KX14 44-QFN
Manufacturer
Microchip Technology
Series
PIC® XLP™ 16Fr

Specifications of PIC16F1937-I/ML

Core Size
8-Bit
Program Memory Size
14KB (8K x 14)
Core Processor
PIC
Speed
32MHz
Connectivity
I²C, LIN, SPI, UART/USART
Peripherals
Brown-out Detect/Reset, LCD, POR, PWM, WDT
Number Of I /o
36
Program Memory Type
FLASH
Eeprom Size
256 x 8
Ram Size
512 x 8
Voltage - Supply (vcc/vdd)
1.8 V ~ 5.5 V
Data Converters
A/D 14x10b
Oscillator Type
Internal
Operating Temperature
-40°C ~ 85°C
Package / Case
44-QFN
Controller Family/series
PIC16F
No. Of I/o's
36
Eeprom Memory Size
256Byte
Ram Memory Size
512Byte
Cpu Speed
32MHz
No. Of Timers
5
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
APPENDIX B:
The following code is a 24-bit IIR by Tony Kubek
extracted from
techref/microchip/dsp/iir-24b-256s-tk.htm). It is a good
example of a non-trivial algorithm that can be
accelerated
instructions and FSR features of the enhanced PIC12/
16. The original code is presented in Appendix C: “24-
Bit 256 Step IIR Filter (Original Code)”.
This is quite a lot of code to look over. There are a few
notable code blocks that can be noticed right away.
First the ADD_FSR_FILTER macros at the beginning
need to be adjusted. The original code is using the FSR
so it should be updated to use FSR0L. After further
study it can be seen that this code is simply a 24-bit add
with the source address in the FSR. That opens the
possibility of additional optimizations. The MOVIW
instruction can be used to eliminate redundant FSR
reloads. The ADDWFC instruction can be used to
eliminate the Carry propogation.
© 2009 Microchip Technology Inc.
ADD_FSR_FILTER MACRO
; 14-17 instructions
; add value pointed to by FSR to filter
ADDWF NewFilter+3,F
DECF
MOVF
SKPNC
INCFSZ INDF,W
ADDWF NewFilter+2,F
DECF
MOVF
SKPNC
INCFSZ INDF,W
ADDWF NewFilter+1,F
DECF
MOVF
SKPNC
INCFSZ INDF,W
ADDWF NewFilter,F
ENDM
MOVF
FSR,F
INDF,W
FSR,F
INDF,W
FSR,F
INDF,W
INDF,W
by
www.piclist.org (http://www.piclist.org/
taking
IIR FILTER CONVERSION EXAMPLE
advantage
; get msb
; get lowest byte
; add to filter sum
;lowest byte
; get next byte
;
; increase source
; and add to dest.
; get next byte
if overflow
of
the
new
Notice an immediate drop in instruction count from 14-
17 instructions to 8 instructions. That is a 50% size
advantage and a 2x speed-up. The multiply and divide
macros are the next interesting block of code in this
example.
ADD_FSR0_FILTER MACRO
ADDWF
lowest byte
; 8 instructions
; add value pointed to by FSR to filter
moviw
MOVIW
ADDWFC
MOVIW
ADDWFC
MOVIW
ADDWFC
ENDM
NewFilter+3,F
0[INDF0]
-1[INDF0]
NewFilter+2,F
-2[INDF0]
NewFilter+1,F
-3[INDF0]
NewFilter,F
; get next byte
; get next byte
; get msb
; add to filter sum
DS41375A-page 17

Related parts for PIC16F1937-I/ML