PIC18F45K20-I/ML Microchip Technology, PIC18F45K20-I/ML Datasheet - Page 68

IC PIC MCU FLASH 16KX16 44QFN

PIC18F45K20-I/ML

Manufacturer Part Number
PIC18F45K20-I/ML
Description
IC PIC MCU FLASH 16KX16 44QFN
Manufacturer
Microchip Technology
Series
PIC® XLP™ 18Fr

Specifications of PIC18F45K20-I/ML

Program Memory Type
FLASH
Program Memory Size
32KB (16K x 16)
Package / Case
44-QFN
Core Processor
PIC
Core Size
8-Bit
Speed
64MHz
Connectivity
I²C, SPI, UART/USART
Peripherals
Brown-out Detect/Reset, HLVD, POR, PWM, WDT
Number Of I /o
35
Eeprom Size
256 x 8
Ram Size
1.5K x 8
Voltage - Supply (vcc/vdd)
1.8 V ~ 3.6 V
Data Converters
A/D 14x10b
Oscillator Type
Internal
Operating Temperature
-40°C ~ 85°C
Processor Series
PIC18F
Core
PIC
Data Bus Width
8 bit
Data Ram Size
1.5 KB
Interface Type
CCP/ECCP/EUSART/I2C/MSSP/SPI
Maximum Clock Frequency
64 MHz
Number Of Programmable I/os
36
Number Of Timers
4
Maximum Operating Temperature
+ 85 C
Mounting Style
SMD/SMT
3rd Party Development Tools
52715-96, 52716-328, 52717-734, 52712-325, EWPIC18
Development Tools By Supplier
PG164130, DV164035, DV244005, DV164005, PG164120, DV164136
Minimum Operating Temperature
- 40 C
On-chip Adc
14-ch x 10-bit
Package
44QFN EP
Device Core
PIC
Family Name
PIC18
Maximum Speed
64 MHz
Operating Supply Voltage
2.5|3.3 V
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
For Use With
DM240313 - BOARD DEMO 8BIT XLPAC164112 - VOLTAGE LIMITER MPLAB ICD2 VPPDM164124 - KIT STARTER FOR PIC18F4XK20AC164322 - MODULE SOCKET MPLAB PM3 28/44QFN
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
PICkit™ 3 Debug Express
DS41370C-page 64
When the 32 locations are written with the pointer, they are not actually written to
program until the completion of the entire sequence. The pointer writes actually store
the data in 32 temporary hardware registers. When the actual write sequence is
executed, it is the contents of this 32-byte buffer that is written to the program memory
array. For example, we might use a for loop to write the contents of a RAM array to
these buffers using a ROM pointer.
This data is not actually in program memory yet, and won’t be until the entire write
sequence is completed as shown in Figure 3-51.
As an example for the above note, suppose using the following code we intended to
write to the 32 block of program memory from address 0x100 to 0x11F. The data would
actually be written to address 0x120 because the pointer is incremented to address
0x120 after the last write.
If the rom_pointer value were left at 0x11F, the data would be written as intended
started at 0x100.
for
{
*(rom_pointer
}
rom_pointer
for
{
*(rom_pointer++)
}
//
Note:
after the for loop, the rom_pointer address value is 0x120.
(i = 0; i < 32; i++)
(i = 0; i < 32; i++)
The program memory block that is written to is determined by the address
in the TBLPTRU:TBLPTRH:TBLPRTL Special Function Registers, exclud-
ing the 5 Least Significant bits. These bits are excluded to ensure the write
block begins on a 32-byte boundary. Therefore, it is critically important
that the pointer address is not incremented past the last address in
the block. If this occurs, the 32 bytes will be written at the next block
boundary instead of the intended one.
=
+
(near rom unsigned char *)0x100;
i)
=
ram_array[i];
=
ram_array[i];//
//
write to the holding registers
write to the holding registers
© 2009 Microchip Technology Inc.

Related parts for PIC18F45K20-I/ML