AN1095. Emulating Data EEPROM for PIC18 and PIC24 Microcontrollers and dspic Digital Signal Controllers INTRODUCTION THEORY OF OPERATION
|
|
|
- Charles Simmons
- 9 years ago
- Views:
Transcription
1 A1095 Emulating Data EEPROM for PIC18 and PIC24 Microcontrollers and dspic Digital Signal Controllers Author: ITRODUCTIO Microchip Technology has expanded its product portfolio to include a wide variety of cost-effective PIC microcontrollers without an internal data EEPROM Many applications store nonvolatile information in the Flash program memory using table write and read operations Applications that need to frequently update this data may have greater endurance requirements than the specified Flash endurance for the device The alternate solution of using an external, serial EEPROM device may not be appropriate for cost-sensitive or pin-constrained applications This application note presents a third alternative that addresses these issues This algorithm features an interface similar to an internal data EEPROM, uses available program memory and can improve endurance by a factor as high as 500 ote: David Otten and Stephen Cowden Microchip Technology Inc To use this solution, the device must have word write capability Refer to the specific device data sheet to verify this feature is available Definition of Terms Page The minimum amount of program memory affected by an erase operation Row The maximum amount of program memory affected by a programming operation Erase/Write Cycle The number of erase and write operation pairs Endurance A specification indicating the maximum number of erase/write cycles and associated conditions Retention A specification indicating the minimum length of time and associated conditions for the retention of data in Flash memory Effective Endurance The improved endurance of the emulated data EEPROM as a result of using an efficient programming algorithm Current (Active) Page A page in program memory that is being written and read by the data EEPROM emulation algorithm Packed Page The new current page after the pack routine is complete Page Status Program memory location(s) at the beginning of the current page that stores data EEPROM emulation status The PIC18 implementation uses two locations and the PIC24/dsPIC33F uses one THEOR OF OPERATIO This application note s algorithm supports a selectable, emulated data EEPROM size of up to 255 locations The address range is between 0 and the size of the emulated data EEPROM minus one For example, if the implemented size of data EEPROM is five, only the addresses between 0 and 4 are available ote: For the PIC18 implementation, data is 8 bits and for PIC24/dsPIC33F, data is 16 bits Due to architectural differences of the program memory, the emulated data EEPROM information is stored differently for 8-bit and 16-bit implementations For these formats, see Table 1 and Table 2 TABLE 1: TABLE 2: Data EE address, 0xFF, is reserved and indicates an available location in program memory PIC18 DATA EEPROM IFORMATIO FORMAT I PROGRAM MEMOR Bits 15-8 Bits 7-0 Data EE Data Data EE Address PIC24/dsPIC33F DATA EEPROM IFORMATIO FORMAT I PROGRAM MEMOR Bits Bits 15-0 Data EE Address Data EE Data The algorithm takes advantage of the PIC microcontroller s ability to self-program a single location of program memory This location is an 8-bit operation for PIC18 and either an 8 or 16-bit operation for PIC24 and dspic33f, depending on whether an odd or even address is being written, respectively ote: For more information on program memory organization, refer to the applicable product data sheet 2007 Microchip Technology Inc DS01095A-page 1
2 A1095 PIC24/dsPIC33F Scenario To better understand how the algorithm works, here is a simple scenario for the PIC24 and dspic33f After the first page has been initialized, the first location is reserved for the page status information This indicates whether a page is active or expired and how many erase/write cycles have been performed This information is not directly accessible by the user, but is used by the algorithm to find available pages and update status flags This page is designated as the current or active page In this example, a write operation has been performed to store a data value of 0x0202 to data EEPROM address, 0x2 As shown in Table 3, this information is stored in the first available location in the page As more writes are performed, the algorithm continues to write the information in a similar fashion, as shown in Table 4 through Table 6 In this example, data EEPROM address 0x7 is written to 0x0707, 0x2 is updated to 0x2222 and address 0xA is written to 0x0A0A In Table 7, the last location in the page is written with a rewrite to address 0x7 to 0x7777 Since the currently active page is now full, the data EEPROM information will move to the next available page This new page is referred to as the packed page The pack routine performs this task Since only the most current data for each data EEPROM address is needed, the amount of information decreases After the data is moved, this page is designated as the current page If the current page has incremented through all allocated pages in program memory, the erase/write count is incremented as shown in Table 8 The page is now ready to store more information via write operations The PIC18 algorithm works in a similar way, but instead of reserving one location of program memory for page status information, two locations are used Also, 8-bit data is stored instead of 16-bit data TABLE 3: WRITE DATA EEPROM (0x0202,2) TABLE 4: WRITE DATA EEPROM (0x0707,7) Page Address Data EE Address Data EE Data Page Address Data EE Address Data EE Data Page + 0 Page Status<23:16> 0x0000 Page + 0 Page Status<23:16> 0x0001 Page x0202 Page x0202 Page + 4 0xFF 0xFFFF Page x0707 Page + 6 0xFF 0xFFFF Page + 6 0xFF 0xFFFF Page + 8 0xFF 0xFFFF Page + 8 0xFF 0xFFFF Page xFF 0xFFFF Page xFF 0xFFFF TABLE 5: WRITE DATA EEPROM (0x2222,2) TABLE 6: WRITE DATA EEPROM (0x0A0A,0xA) Page Address Data EE Address Data EE Data Page Address Data EE Address Data EE Data Page + 0 Page Status<23:16> 0x0000 Page + 0 Page Status<23:16> 0x0000 Page x0202 Page x0202 Page x0707 Page x0707 Page x2222 Page x2222 Page + 8 0xFF 0xFFFF Page + 8 0xA 0x0A0A Page xFF 0xFFFF Page xFF 0xFFFF TABLE 7: WRITE DATA EEPROM (0x7777,7) TABLE 8: PAGE AFTER PACK OPERATIO Page Address Data EE Address Data EE Data Page Address Data EE Address Data EE Data Page + 0 Page Status<23:16> 0x0000 Page + 0 Page Status<23:16> 0x0001 Page x0202 Page x2222 Page x0707 Page x7777 Page x2222 Page + 2 0xA 0x0A0A Page + 8 0xA 0x0A0A Page + 8 0xFF 0xFFFF Page x7777 Page xFF 0xFFFF DS01095A-page Microchip Technology Inc
3 A1095 Since each location within the page is programmed once prior to the page erase, only one erase/write cycle is consumed for the page As a result, the algorithm multiplicatively improves the emulated data EEPROM effective endurance The previously filled page is erased only after the latest information has been programmed into the next available page and successfully verified Through this process, the information is always stored in nonvolatile memory which minimizes the effects of an unexpected loss of power As the program memory page is filled sequentially from beginning to end, the algorithm assumes the most current data EEPROM information is the closest instance to the end of the page To simplify the read operation, the search begins at the end of the current program memory page and works toward the start of the page looking for the specified data EEPROM address When a match is found, the associated data is returned for the first instance of the provided address If the address is not found, the return value of all ones 0xFF or 0xFFFF is returned to emulate the result of an unwritten address in an independent data EEPROM s Status flags have been provided to indicate whether an error or warning condition occurs during the emulation process These indicators are accessed in the dataeeflags register All flags are active-high The status bits and return values are defined as follows: addrotfound(0xff/0xffff) A read operation occurred on a previously unwritten data EEPROM address expiredpage(0x1) The program memory erase/ write cycle count has exceeded the user-defined limit The algorithm will attempt to execute the write operation packbeforepagefull(0x2) The pack routine was called before the currently active page was full The routine will attempt to move the latest data EEPROM information to the packed page even though the active page is not full packbeforeinit(0x3) The pack routine was executed before the initialization routine The pack operation was aborted packskipped(0x4) A page was written beyond the page boundary This may be a result of the pack routine not being executed properly The pack operation was aborted illegaladdress(0x5) There was an attempt to write or read with a data EEPROM address equal to or greater than the size of data EEPROM The read or write operation was aborted pagecorrupt(0x6) The page status information was corrupted The current operation was aborted writeerror(0x7) The information written into program memory failed verification The current operation was aborted Status flags differ in severity and how they are serviced Informational status flags are expected to occur during normal processing and are serviced by simply clearing the flag with the associated macro These include: addrotfound, packbeforepagefull and illegaladdress flags Warning status flags indicate a condition has been exceeded but processing will continue This includes the expiredpage status flag With this flag set, the algorithm will attempt to process read and write requests, but the flag will be set after each operation The most severe flags are the system error status flags These imply either the integrity of the data EEPROM information has been compromised and/or the algorithm cannot continue until the offending condition has been resolved These include packbeforeinit, pagecorrupt and writeerror flags To avoid a packbeforeinit event, ensure the initialization routine, DataEEInit, is called prior to performing any other emulation routine Since this routine accesses the current state of the emulation process, it will take action only if it is required Therefore, it can be called at any time during data EEPROM emulation The pagecorrupt and writeerror flags indicate that a write operation failed to verify and the current operation was aborted If this occurs, the integrity of the data EEPROM information has been compromised o further emulation operations should be attempted The only recourse is to erase all of the pages of program memory reserved for data EEPROM emulation and attempt to reinitialize them Macros are available to retrieve and clear the status flag values Status flags are cleared only by the user o operation is affected by the value of any flag, but the flag s value will indicate whether an operation completed successfully Macros use this naming convention: Example macros: Getx Setx y x = Flag name y = Value assigned to flag All of the flags can be read or cleared in a single operation using the 8-bit character, dataeeflagsval 2007 Microchip Technology Inc DS01095A-page 3
4 A1095 Page Status Each program memory page reserves space for the page status using the first two-word locations for the PIC18 implementation or the first location for PIC24/ dspic33f Status contains information about the page whether it is expired or active, and the number of erase/write cycles performed These values are used by the algorithm to monitor and control page information and are not directly accessible by the user Refer to Register 1, Register 2 and Register 3 for formats of PIC24/dsPIC33F and PIC18 page status information ote: Applications with bootloaders should be careful to not change the page status information This can be done by programming 1 s into these locations REGISTER 1: PAGE STATUS FOR PIC24 AD dspic33f ALGORITHM U-1 U-1 U-1 R-1 R-1 R-1 U-1 U-1 Page Expired Page Current Page Available bit 23 bit 16 R-1 R-1 R-1 R-1 R-1 R-1 R-1 R-1 Page Erase/Write Count bit 15 bit 8 R-1 R-1 R-1 R-1 R-1 R-1 R-1 R-1 Page Erase/Write Count bit 7 bit 0 Legend: R = Reserved bit U = Unused bit, read as 1 U = Unused bit, read as 1 -n = Value prior to initialization 1 = Bit is in erased state 0 = Bit is in programmed state bit Unimplemented: Read as 1 bit 20 Page Expired 1 = Page not expired 0 = Page expired bit 19 Page Current 1 = Page not current 0 = Page current bit 18 Page Available 1 = Page available 0 = Page not available bit Unimplemented: Read as 1 bit 15-0 Page Erase/Write Count: umber of Page Erase/Write Cycles DS01095A-page Microchip Technology Inc
5 A1095 REGISTER 2: PAGE STATUS FOR PIC18 ALGORITHM (START OF PAGE) U-1 U-1 U-1 U-1 U-1 U-1 U-1 U-1 bit 15 bit 8 U-1 U-1 U-1 U-1 U-1 R-1 R-1 R-1 Page Expired Page Current Page Available bit 7 bit 0 Legend: R = Reserved bit U = Unused bit, read as 1 U = Unused bit, read as 1 -n = Value prior to initialization 1 = Bit is in erased state 0 = Bit is in programmed state bit 15-3 Unimplemented: Read as 1 bit 2 Page Expired 1 = Page not expired 0 = Page expired bit 1 Page Current 1 = Page not current 0 = Page current bit 0 Page Available 1 = Page available 0 = Page not available REGISTER 3: PAGE STATUS FOR PIC18 ALGORITHM (START OF PAGE + 2) R-1 R-1 R-1 R-1 R-1 R-1 R-1 R-1 Page Erase/Write Count bit 15 bit 8 R-1 R-1 R-1 R-1 R-1 R-1 R-1 R-1 Page Erase/Write Count bit 7 bit 0 Legend: R = Reserved bit U = Unused bit, read as 1 U = Unused bit, read as 1 -n = Value prior to initialization 1 = Bit is in erased state 0 = Bit is in programmed state bit 15-0 Page Erase/Write Count: umber of Page Erase/Write Cycles 2007 Microchip Technology Inc DS01095A-page 5
6 A1095 IITIALIZATIO OPERATIO The initialization routine, DataEEInit, must be called before any other data EEPROM operation can occur If the routine determines that program memory has not been initialized for emulation, it will find the first allocated page of program memory and initialize its status information Afterwards, the read and write functions may be called as needed The routine may also determine whether data EEPROM emulation is already underway If so, one of three scenarios may occur: If only one active page is found, the routine assumes a Reset occurred o action is taken and the routine exits normally Any read or write operation that may have been active during the Reset should be repeated If two active pages are found, the routine assumes that an unexpected Reset occurred during a pack operation The routine will erase the second active page and call the pack routine to permit the refresh to complete If more than two active pages are found, the routine assumes program memory has been corrupted by the application code and sets the pagecorrupt flag It is important to monitor the page status bits as well as the RCO and VMCO (PIC24/dsPIC33F) or EECO1 (PIC18) registers By doing so, the application can respond appropriately to Resets and supply voltage changes For a flowchart of the initialization routine, see Figure 1 FIGURE 1: EMULATIO DATA EEPROM IITIALIZATIO Find an Available Page Are all pages expired? Set expiredpage Count umber of Active Pages Are no active pages found? Erase First Allocated Page of Program Memory Mark First Page as Active and Assign E/W Count to 0 Is 1 active page found? Are 2 active pages found? Erase Second Active Page Pack First Active Page Set pagecorrupt DS01095A-page Microchip Technology Inc
7 A1095 READ OPERATIO The DataEERead function is used to retrieve data EEPROM information It returns the data associated with the data EEPROM address If the provided address is equal to or greater than the amount of defined data EEPROM, the illegaladdress flag is set and a value of all 1 s is returned This return value mimics the response of dedicated data EEPROM where an unwritten address returns an erased value The routine then searches for the active page Once located, the active page is searched for an address match, starting from the last location in the page For details on how data EEPROM information is stored in program memory, see Table 1 and Table 2 Since the page is filled sequentially, the latest data EEPROM information will be the first location found with the reverse search Once found, the routine returns the data EEPROM data value associated with the data EEPROM address If an active page is not found, the pagecorrupt flag is set For a flowchart of the read operation, see Figure 2 FIGURE 2: READ OPERATIO Is data EEPROM address valid? Set illegaladdress Is active page found? Set pagecorrupt 0xFF or 0xFFFF Set Table Pointer to End of Current Page Does data EEPROM address match? Data EEPROM Data Has entire page been read? Set addrotfound 0xFF or 0xFFFF Decrement Table Pointer 2007 Microchip Technology Inc DS01095A-page 7
8 A1095 WRITE OPERATIO FIGURE 3: WRITE OPERATIO To write emulated data EEPROM, the application uses the DataEEWrite function Like the read function, it verifies that the data EEPROM address is between 0 and one less than the size of the emulated data EEPROM If an unimplemented address is supplied, the illegaladdress flag is set and write operation is aborted The routine then searches for the active page After the active page is located, a read operation is performed To minimize the number of erase/write cycles, the value is programmed only if it has changed If an active page is not found, the pagecorrupt flag is set and a nonzero value is returned A forward search of the active page returns the offset for the next available address If the next available address is equal or greater than the last address in the page, the packskipped flag is set and the write operation is aborted Otherwise, the data EEPROM information is written to the next available address in the page If the information does not verify, the writeerror flag is set and a nonzero value is returned The user can attempt to rewrite the data or respond as needed The algorithm is designed to maintain at least one available location in the active page for the next write operation After a successful verification of the write operation, the pack routine is called if no available locations remain After the routine completes successfully, a zero value is returned For a flowchart of the write operation, see Figure 3 Is data EEPROM address valid? Is active page found? Set Table Pointer to Start of Current Page Read Current Data EEPROM Value Did data EEPROM value change? Find ext Available Address in Page Is page full? Write and Verify Data EEPROM Address and Data Set illegaladdress Set packbeforeinit Set packskipped Does data verify? Set writeerror Find ext Available Address in Page Is page full? Pack Active Page DS01095A-page Microchip Technology Inc
9 A1095 PACK OPERATIO The pack routine, PackEE, is called from either a DataEEWrite, after the current page is filled, or by DataEEInit, to initialize program memory for data EEPROM emulation It can also be called by the user, which may benefit timing-sensitive applications Because the routine performs multiple Flash operations which stall the CPU, it can be executed at a time more convenient for the application The disadvantage in doing so is that effective endurance is reduced since unwritten program memory locations are spent The function begins by reading the Page Current status bit, for each page of program memory allocated, for emulation to find the filled page If it is not be found, the routine assumes that the pack function was called prior to initializing program memory The packbeforeinit flag is then set and the operation is aborted A new page is needed to program the latest data EEPROM information This page is referred to as the packed page It always tries to assign the next page in program memory as the packed page If all of the available pages have reached the user-specified erase/ write limit, the expiredpage flag is set and the routine will continue the pack operation The erase/write counter is only incremented when the packed page rolls around to be the first page allocated for data EEPROM memory At this point, every page has the same number of erase/write cycles If the erase/write counter exceeds the specified limit, the page status is marked as expired by programming the Page Expired bit in the Page Status register Since the number of pages of program memory and the erase/write limits are defined at compile time, all pages will expire sequentially A search of every defined data EEPROM address is made into the active page using the read function This information is written into the program memory write latches After a row of write latches is filled, the data is programmed until all information is stored into the packed array If the last row is not full, the remaining write latches are written to all 1 s prior to programming If the active page is not full, it is assumed the routine was called by the user At this point, the packbeforepagefull status flag is set and the routine continues into the programming portion After all of the data has been programmed into the packed page, the current page data is read and compared to the packed page data If a mismatch occurs, the writeerror flag is set and the function exits with an error code The page status information is also programmed and verified If the verify routine is successful, the active page is erased and the packed page is designated as the new active page A zero return value from the pack function indicates the routine completed normally For a flowchart of the pack operation, see Figure 4 ote: The maximum data EEPROM size must be no greater than Microchip Technology Inc DS01095A-page 9
10 A1095 FIGURE 4: PACK OPERATIO Find the Active Page Load Most Current Data EEPROM Information into Write Latches, Skipping Unwritten Addresses Is active page found? Set packbeforeinit All data EEPROM addresses read? Increment Data EEPROM Address Find an Available Page for Pack Operation Program Data EEPROM Information into Packed Page Is a packed page available? Set expiredpage Does programmed data verify? Set Page writeerror Program Page Status into Packed Page Set Table Pointer to Start of Packed Page Does programmed data verify? Set Page writeerror Is packed page full? Set packbeforepagefull Erase Active Page and Mark Page as ot Active and ot Expired Write 1 s over Page Status Register(s) Update Status of Packed Page to Active Page DS01095A-page Microchip Technology Inc
11 A1095 PERFORMACE Effective Endurance Determining effective endurance is not a trivial calculation since it is dependent on many factors Traditionally, endurance is defined as how many times a single address can be safely written This definition doesn t apply to emulated data EEPROM for a few different reasons First, writing a data EEPROM address five times does not mean five erase/write cycles of endurance were consumed From the perspective of the program memory, five writes were made to five different program memory addresses These five writes will not cost any additional endurance cycles until the page is filled and the pack routine is called Second, calculating effective endurance is more than simply multiplying program memory page size and the size of the emulated data EEPROM The entire page is not available for emulation Page status information is stored in the beginning of the page, which is either one location of program memory for the 16-bit algorithm or two for 8-bit In addition, more locations will be consumed after the pack routine depending on how many data EEPROM addresses were written As a result, writing an address once has a significant impact to endurance since one less location is available after the array is packed Based on the discussion to this point, a simplified equation (see Equation 1) can be made for total effective endurance Refer to the Definition of Terms section for more information on the terms Working through an example for the PIC24FJ128GA010, this device has a 512 word page The 16-bit algorithm reserves one location for page status Equation 2 shows the calculation for two pages of program memory, 10 locations of emulated data EEPROM and the typical endurance limit An average effective endurance can be calculated by dividing the total effective endurance by the size of the emulated data EEPROM, but this does not tell the whole story It assumes that every data EEPROM address is updated at the same rate In most applications, this is not true Some data, such as calibration data or user information, may be rarely updated while sensor information can be written more frequently Addresses written more often will consume a greater amount of program memory endurance Therefore, how writes are distributed across the data EEPROM addresses significantly affects effective endurance Ratios could be assigned to each address to create a more accurate calculation but this is still only an approximation It is difficult to predict how often each address will be written during an application s lifetime EQUATIO 1: Total Effective Endurance = (Page Size Page Status Size Data EEPROM Size) * umber of Pages * Endurance EQUATIO 2: Total Effective Endurance = ( ) * 2 * 1000 = 1,002,000 cycles 2007 Microchip Technology Inc DS01095A-page 11
12 A1095 CPU Stall During program memory operations, the CPU stalls until the write operation is complete The algorithm performs a program memory write operation in the DataEEWrite routine When that routine is called, the CPU stall time will depend on whether the page is filled If the write operation does not fill the page, the stall time will be shorter approximately the amount of time to program one word If the write operation fills the current page, the delay will be longer This is because the pack routine may perform multiple row program operations on the packed page and an erase operation on the active page The GetextAvailCount function can be used to determine how full the current page is and how many writes can be made before the pack routine is invoked This function returns the offset of the next available address in the current page The range of values is between 2 and Page Size times two The pack routine can be called before the current page is full, if desired It can be helpful to perform a pack operation prematurely to minimize the impact of a CPU stall time ote: APPLICATIO For more information on program memory operation timings, refer to the applicable product data sheet To implement the data EEPROM emulation for an application, use the appropriate checklist given in the sections PIC18 Emulation Checklist or PIC24/dsPIC33F Emulation Checklist Both the 8 and 16-bit algorithms requires approximately 27 Kbytes of program memory for software This total does not include the amount of program memory reserved for data EEPROM information They also require approximately 82 bytes of data memory The MPLAB C30 C compiler used optimization level s to minimize code size, although other settings can be used Program memory for storing data EEPROM information is allocated using a two-dimensional array The array size is dependent on the page erase size of the device and the number of pages reserved for emulation For the 16-bit implementation, the compiler automatically aligns the array to the beginning of the next available page of program memory at compile time For the 8-bit version, the user must specify the starting address for an available page A compile-time error will generate if this address does not align with a page boundary The array is used to determine program memory addresses for table operations A compile-time error will be generated if the required amount of program memory is not available ote: For PIC18FXXJ and PIC24F devices, the last page of program memory stores the Configuration Word information It can not be allocated for data EEPROM emulation Code size and data memory requirements are not significantly affected by the size of the emulated data EEPROM These algorithms are designed to be configurable, not only for different devices, but also for specific endurance needs (see Equation 1 and Equation 2) If greater endurance is needed, more pages can be allocated to program memory Alternatively, the erase/ write limit can be set to the typical endurance rating instead of the minimum These options are selected by simply changing constants in the associated include file PIC18 Emulation Checklist Make the following changes to the ofildeeinc file Refer to the product data sheet for information on program memory 1 Specify emulation page start address in EMULATIO_PAGES_START_ADDRESS 2 Specify the number of program memory pages in UM_DATA_EE_PAGES The minimum is two pages A compile-time error will generate if fewer than two pages are defined 3 Specify the amount of data EEPROM needed in DATA_EE_SIZE The maximum is 255 (0xFE) A compile-time error will generate if the data EEPROM size exceeds Verify the ERASE, PROGRAM_ROW and PROGRAM_WORD opcode values 5 Specify the minimum page erase size (in instructions) in UMBER_OF_ISTRUCTIOS_I_PAGE (512 typical) 6 Specify the maximum programming size (in instructions) in UMBER_OF_ISTRUCTIOS_I_ROW (64 typical) 7 Select the maximum erase/write cycle count per location in ERASE_WRITE_CCLE_MAX The maximum is 65,535 A compile-time error will generate if the limit is exceeded 8 Add a function call to DataEEInit prior to any other operation to emulated data EEPROM 9 Add the following files to your project: DEE Emulation 8-bitc GenericTypeDefsh DEE Emulation 8-bith ofildeeasm ofildeeinc DS01095A-page Microchip Technology Inc
13 A1095 PIC24/dsPIC33F Emulation Checklist Make the following changes to DEE Emulation 16-bith Refer to product data sheet for information on program memory 1 Specify the number of program memory pages in UM_DATA_EE_PAGES The minimum is two pages A compile-time error will generate if fewer than two pages are defined 2 Specify the amount of data EEPROM needed in DATA_EE_SIZE The maximum is 255 (0xFE) A compile-time error will generate if the data EEPROM size exceeds Verify the ERASE, PROGRAM_ROW and PROGRAM_WORD opcode values 4 Specify the minimum page erase size (in instructions) in UMBER_OF_ISTRUCTIOS_I_PAGE (512 typical) 5 Specify the maximum programming size (in instructions) in UMBER_OF_ISTRUCTIOS_I_ROW (64 typical) 6 Select the maximum erase/write cycle count in ERASE_WRITE_CCLE_MAX The maximum is 65,535 A compile-time error will generate if the limit is exceeded 7 Add a function call to DataEEInit prior to any other operation to emulated data EEPROM 8 Add the following files to your project: DEE Emulation 16-bitc COCLUSIO Emulated data EEPROM is an effective solution for cost-sensitive applications that require highendurance, nonvolatile data memory Applications suited for Microchip Technology s cost-effective 025 μm PIC devices can employ unused program memory and increase nonvolatile data endurance by a factor in excess of 500 This effective endurance can be customized by selecting the number of program memory pages, size of emulated data EEPROM and the erase/write limit This flexible algorithm will enable you to add high-endurance data EEPROM to your applications SOFTWARE The tools and versions used to create both the PIC24/ dspic33f and PIC18 solutions are listed in Table 9 Later versions of the tools will also work, but should be tested for compatibility with any application TABLE 9: Tool TOOLS USED FOR SOLUTIOS Version MPLAB IDE 751 MPLAB C30 C Compiler 201 MPLAB C18 C Compiler 302 The latest source code and development tools are available on Microchip Technology s web site (wwwmicrochipcom) For the latest information on this application note, read the associated README file included with the software 2007 Microchip Technology Inc DS01095A-page 13
14 A1095 OTES: DS01095A-page Microchip Technology Inc
15 ote the following details of the code protection feature on Microchip devices: Microchip products meet the specification contained in their particular Microchip Data Sheet Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions There are dishonest and possibly illegal methods used to breach the code protection feature All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip s Data Sheets Most likely, the person doing so is engaged in theft of intellectual property Microchip is willing to work with the customer who is concerned about the integrity of their code either Microchip nor any other semiconductor manufacturer can guarantee the security of their code Code protection does not mean that we are guaranteeing the product as unbreakable Code protection is constantly evolving We at Microchip are committed to continuously improving the code protection features of our products Attempts to break Microchip s code protection feature may be a violation of the Digital Millennium Copyright Act If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act Information contained in this publication regarding device applications and the like is provided only for your convenience and may be superseded by updates It is your responsibility to ensure that your application meets with your specifications MICROCHIP MAKES O REPRESETATIOS OR WARRATIES OF A KID WHETHER EXPRESS OR IMPLIED, WRITTE OR ORAL, STATUTOR OR OTHERWISE, RELATED TO THE IFORMATIO, ICLUDIG BUT OT LIMITED TO ITS CODITIO, QUALIT, PERFORMACE, MERCHATABILIT OR FITESS FOR PURPOSE Microchip disclaims all liability arising from this information and its use Use of Microchip devices in life support and/or safety applications is entirely at the buyer s risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use o licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights Trademarks The Microchip name and logo, the Microchip logo, Accuron, dspic, KEELOQ, KEELOQ logo, microid, MPLAB, PIC, PICmicro, PICSTART, PRO MATE, rfpic and SmartShunt are registered trademarks of Microchip Technology Incorporated in the USA and other countries AmpLab, FilterLab, Linear Active Thermistor, Migratable Memory, MXDEV, MXLAB, SEEVAL, SmartSensor and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the USA Analog-for-the-Digital Age, Application Maestro, CodeGuard, dspicdem, dspicdemnet, dspicworks, ECA, ECOOMOITOR, FanSense, FlexROM, fuzzylab, In-Circuit Serial Programming, ICSP, ICEPIC, Mindi, MiWi, MPASM, MPLAB Certified logo, MPLIB, MPLIK, PICkit, PICDEM, PICDEMnet, PICLAB, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, REAL ICE, rflab, Select Mode, Smart Serial, SmartTel, Total Endurance, UI/O, WiperLock and ZEA are trademarks of Microchip Technology Incorporated in the USA and other countries SQTP is a service mark of Microchip Technology Incorporated in the USA All other trademarks mentioned herein are property of their respective companies 2007, Microchip Technology Incorporated, Printed in the USA, All Rights Reserved Printed on recycled paper Microchip received ISO/TS-16949:2002 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona; Gresham, Oregon and design centers in California and India The Company s quality system processes and procedures are for its PIC MCUs and dspic DSCs, KEELOQ code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products In addition, Microchip s quality system for the design and manufacture of development systems is ISO 9001:2000 certified 2007 Microchip Technology Inc DS01095A-page 15
16 WORLDWIDE SALES AD SERVICE AMERICAS Corporate Office 2355 West Chandler Blvd Chandler, AZ Tel: Fax: Technical Support: Web Address: wwwmicrochipcom Atlanta Duluth, GA Tel: Fax: Boston Westborough, MA Tel: Fax: Chicago Itasca, IL Tel: Fax: Dallas Addison, TX Tel: Fax: Detroit Farmington Hills, MI Tel: Fax: Kokomo Kokomo, I Tel: Fax: Los Angeles Mission Viejo, CA Tel: Fax: Santa Clara Santa Clara, CA Tel: Fax: Toronto Mississauga, Ontario, Canada Tel: Fax: ASIA/PACIFIC Asia Pacific Office Suites , 37th Floor Tower 6, The Gateway Habour City, Kowloon Hong Kong Tel: Fax: Australia - Sydney Tel: Fax: China - Beijing Tel: Fax: China - Chengdu Tel: Fax: China - Fuzhou Tel: Fax: China - Hong Kong SAR Tel: Fax: China - Qingdao Tel: Fax: China - Shanghai Tel: Fax: China - Shenyang Tel: Fax: China - Shenzhen Tel: Fax: China - Shunde Tel: Fax: China - Wuhan Tel: Fax: China - Xian Tel: Fax: ASIA/PACIFIC India - Bangalore Tel: Fax: India - ew Delhi Tel: Fax: India - Pune Tel: Fax: Japan - okohama Tel: Fax: Korea - Gumi Tel: Fax: Korea - Seoul Tel: Fax: or Malaysia - Penang Tel: Fax: Philippines - Manila Tel: Fax: Singapore Tel: Fax: Taiwan - Hsin Chu Tel: Fax: Taiwan - Kaohsiung Tel: Fax: Taiwan - Taipei Tel: Fax: Thailand - Bangkok Tel: Fax: EUROPE Austria - Wels Tel: Fax: Denmark - Copenhagen Tel: Fax: France - Paris Tel: Fax: Germany - Munich Tel: Fax: Italy - Milan Tel: Fax: etherlands - Drunen Tel: Fax: Spain - Madrid Tel: Fax: UK - Wokingham Tel: Fax: /08/06 DS01095A-page Microchip Technology Inc
TB3016. Using the PIC MCU CTMU for Temperature Measurement IMPLEMENTATION BASIC PRINCIPLE MEASUREMENT CIRCUIT
Using the PIC MCU CTMU for Temperature Measurement Author: Padmaraja Yedamale Microchip Technology Inc. The Charge Time Measurement Unit (CTMU), introduced on the latest generation of PIC24F and PIC18F
AN1286. Water-Resistant Capacitive Sensing INTRODUCTION THEORY OF OPERATION. Sensing Steps. Sensing Steps Description DESIGN
Water-Resistant Capacitive Sensing AN1286 Author: INTRODUCTION Thomas Perme Steven Lin Microchip Technology Inc. This application note describes a new hardware sensing method which is resilient to water
AN1303. Software Real-Time Clock and Calendar Using PIC16F1827 DATA INTERFACE INTRODUCTION IMPLEMENTATION INTERNAL REGISTER MAP
Software Real-Time Clock and Calendar Using PIC16F1827 Author: INTRODUCTION Cristian Toma Microchip Technology Inc. This application note describes the implementation of software Real-Time Clock and Calendar
AN1142. USB Mass Storage Class on an Embedded Host INTRODUCTION. USB Mass Storage Class. Overview
USB Mass Storage Class on an Embedded Host Author: INTRODUCTION With the introduction of Microchip's microcontrollers with the USB OTG peripheral, microcontroller applications can easily support USB Embedded
Installing and Licensing MPLAB XC C Compilers
Installing and Licensing MPLAB XC C Compilers DS50002059G Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification contained in their particular
AN1199. 1-Wire Communication with PIC Microcontroller INTRODUCTION. OVERVIEW OF THE 1-Wire BUS. 1-Wire Protocol. Prerequisites
1-Wire Communication with PIC Microcontroller Author: INTRODUCTION This application note introduces the user to the 1-Wire communication protocol and describes how a 1-Wire device can be interfaced to
Recommended Usage of Microchip 23X256/23X640 SPI Serial SRAM Devices RECOMMENDED CONNECTIONS FOR 23X256,23X640 SERIES DEVICES VCC 23X256/ HOLD.
Recommended Usage of Microchip 23X256/23X640 SPI Serial SRAM Devices Author: INTRODUCTION Martin Bowman Microchip Technology Inc. This document details recommended usage of the Microchip 23X256 and 23X640
AN687. Precision Temperature-Sensing With RTD Circuits RTD OVERVIEW INTRODUCTION EQUATION 1:
Precision Temperature-Sensing With RTD Circuits Author: INTRODUCTION Bonnie C. Baker Microchip Technology Inc. The most widely measured phenomena in the process control environment is temperature. Common
AN1325. mtouch Metal Over Cap Technology THEORY OF OPERATION INTRODUCTION CROSS SECTION OF METAL OVER CAPACITIVE (UNPRESSED)
mtouch Metal Over Cap Technology AN1325 Authors: INTRODUCTION Keith Curtis Dieter Peter Microchip Technology Inc. As a user interface, capacitive touch has several advantages: it is low power, low cost,
AN1156. Battery Fuel Measurement Using Delta-Sigma ADC Devices INTRODUCTION REVIEW OF BATTERY CHARGING AND DISCHARGING CHARACTERISTICS
Battery Fuel Measurement Using Delta-Sigma ADC Devices Author: INTRODUCTION Youbok Lee, Ph.D. Microchip Technology Inc. The battery fuel status indicator is a common feature of the battery-supported handheld
Timers: Timer0 Tutorial (Part 1)
Timers: Timer0 Tutorial (Part 1) 2007 Microchip Technology Inc. DS51682A Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification contained
Universal Programming Module 2
Universal Programming Module OVERVIEW The Universal Programming Module (UPM) is a handy, low-cost board that supports the programming of Microchip devices using MPLAB in-circuit emulators and debuggers.
WORKSHOP-IN-A-BOX 2: LOW POWER SOLUTIONS DEMONSTRATION BOARD
WORKSHOP-IN-A-BOX 2: LOW POWER SOLUTIONS DEMONSTRATION BOARD 2004 Microchip Technology Inc. DS51512A Note the following details of the code protection feature on Microchip devices: Microchip products meet
TC1047/TC1047A. Precision Temperature-to-Voltage Converter. General Description. Applications. Block Diagram. Features.
Precision Temperature-to-Voltage Converter Features Supply Voltage Range: - TC147: 2.7V to 4.4V - TC147A: 2.V to.v Wide Temperature Measurement Range: - -4 o C to +12 o C High Temperature Converter Accuracy:
TCP/IP Networking: Web-Based Status Monitoring
TCP/IP Networking: Web-Based Status Monitoring Microchip TCP/IP Stack HTTP2 Module 2007 Microchip Technology Incorporated. All Rights Reserved. Web-Based Status Monitoring Slide 1 Welcome to the first
AN1265. KEELOQ with AES Microcontroller-Based Code Hopping Encoder INTRODUCTION DUAL ENCODER OPERATION BACKGROUND FUNCTIONAL INPUTS AND
KEELOQ with AES Microcontroller-Based Code Hopping Encoder Authors: INTRODUCTION This application note describes the design of a microcontroller-based KEELOQ Hopping Encoder using the AES encryption algorithm.
Uninstalling Incorrect USB Device Drivers
DEVELOPMENT SYSTEMS Uninstalling Incorrect USB Device Drivers RECOMMENDED UNINSTALL METHODS When using the Microchip development tools listed below, trouble may be experienced as a result of incorrect
AN1275. KEELOQ with Advanced Encryption Standard (AES) Receiver/Decoder KEY FEATURES OVERVIEW. Microchip Technology Inc.
KEELOQ with Advanced Encryption Standard (AES) Receiver/Decoder Author: OVERVIEW Enrique Aleman Microchip Technology Inc. This application note describes a KEELOQ with AES code hopping decoder implemented
Features, Value and Benefits of Digital Control for Power Supplies
Author: INTRODUCTION Sagar Khare Microchip Technology Inc. Control of Switch Mode Power Supplies (SMPSs) has traditionally been a purely analog domain. The advent of low-cost, high-performance Digital
dspic30f3012/3013 dspic30f3012/3013 Rev. B0 Silicon Errata dspic30f3012/3013 (Rev. B0) Silicon Errata Silicon Errata Summary
dspic30f3012/3013 Rev. B0 Silicon Errata dspic30f3012/3013 (Rev. B0) Silicon Errata The dspic30f3012/3013 (Rev. B0) samples you have received were found to conform to the specifications and functionality
AN1470. Manchester Decoder Using the CLC and NCO ABSTRACT INTRODUCTION MANCHESTER ENCODED DATA (AS PER G.E. THOMAS)
Manchester Decoder Using the CLC and NCO Authors: ABSTRACT A Manchester decoder can be built using Microchip s award winning CLC (Configurable Logic Cell) blocks and NCO (Numerically Controlled Oscillator)
AN956. Migrating Applications to USB from RS-232 UART with Minimal Impact on PC Software OVERVIEW INTRODUCTION. Microchip Technology Inc.
Migrating Applications to USB from RS-232 UART with Minimal Impact on PC Software Author: INTRODUCTION Rawin Rojvanit Microchip Technology Inc. The RS-232 serial interface is no longer a common port found
AN1857. RGBW Color Mixing DALI Control Gear. COLOR MIXING USING RED, GREEN, BLUE AND WHITE LEDs INTRODUCTION HARDWARE
RGBW Color Mixing DALI Control Gear AN1857 Author: INTRODUCTION Mihai Cuciuc Microchip Technology Inc. This application note provides an example of obtaining custom colors by combining the spectra of the
PIC10F200/202/204/206
Memory Programming Specification This document includes the programming specifications for the following devices: PIC10F200 PIC10F202 PIC10F204 PIC10F206 1.0 PROGRAMMING THE PIC10F200/202/204/206 The PIC10F200/202/204/206
MCP1701A. 2 µa Low-Dropout Positive Voltage Regulator. Features. General Description. Applications. Package Types
2 µa Low-Dropout Positive Voltage Regulator Features 2.0 µa Typical Quiescent Current Input Operating Voltage Range up to 10.0V Low-Dropout Voltage (LDO): - 120 mv (typical) @ 100 ma - 380 mv (typical)
Integrated Development Environment
Development Tools Integrated Development Environment Transforming Ideas Into Realities The typical product development life cycle is comprised of smaller cycles each representing an iterative process toward
Designing A Li-Ion Battery Charger and Load Sharing System With Microchip s Stand-Alone Li-Ion Battery Charge Management Controller
Designing A Li-Ion Battery Charger and Load Sharing System With Microchip s Stand-Alone Li-Ion Battery Charge Management Controller Author: INTRODUCTION Brian Chu Microchip Technology Inc. Batteries often
AN1332. Current Sensing Circuit Concepts and Fundamentals CURRENT SENSING RESISTOR INTRODUCTION. Description. Microchip Technology Inc.
Current Sensing Circuit Concepts and Fundamentals Author: INTRODUCTION Yang Zhen Microchip Technology Inc. Current sensing is a fundamental requirement in a wide range of electronic applications. Typical
AN1212. Using USB Keyboard with an Embedded Host INTRODUCTION. USB Keyboard Overview. USB Keyboard with an Embedded Host USB KEYBOARD OUTPUT REPORT
Using USB Keyboard with an Embedded Host Author: INTRODUCTION Amardeep Gupta Microchip Technology Inc. Microcontroller applications can easily support USB embedded host functionality with the introduction
AN1543. Using MRF24W with PIC32 Internal Program Flash Memory For EZ_CONFIG_STORE ALTERNATIVE LOW-COST SOLUTIONS OVERVIEW SCOPE
Using MRF24W with PIC32 Internal Program Flash Memory For EZ_CONFIG_STORE Author: OVERVIEW This application note describes the EZ_CONFIG_STORE feature used in the Wi-Fi G Demo Board and TCPIP-WiFi EZConfig
AN1492. Microchip Capacitive Proximity Design Guide INTRODUCTION CAPACITIVE SENSING BASICS SENSING
Microchip Capacitive Proximity Design Guide Author: INTRODUCTION Xiang Gao Microchip Technology Inc. Proximity detection provides a new way for users to interact with electronic devices without having
Section 15. Input Capture
Section 15. Input Capture HIGHLIGHTS This section of the manual contains the following topics: 15.1 Introduction...15-2 15.2 Input Capture Registers...15-4 15.3 Timer Selection...15-8 15.4 Input Capture
PIC32 Microcontroller Families
32-bit Microcontrollers Winter 2009 PIC32 Microcontroller Families With USB, CAN and Ethernet www.microchip.com/pic32 Building on the heritage of Microchip Technology s world-leading 8- and 16-bit PIC
MCP73X23 Lithium Iron Phosphate (LiFePO 4 ) Battery Charger Evaluation Board User s Guide
MCP73X23 Lithium Iron Phosphate (LiFePO 4 ) Battery Charger Evaluation Board User s Guide 2009 Microchip Technology Inc. DS51850A Note the following details of the code protection feature on Microchip
AN1256. Microchip s Power MOSFET Driver Simulation Models INTRODUCTION MODEL DESCRIPTION. Using The Power MOSFET Simulation Models
Microchip s Power MOSFET Driver Simulation Models Author: INTRODUCTION Cliff Ellison (Microchip Technology Inc.) Ron Wunderlich (Innovative Ideas and Design) The simulation models for Microchip s power
AN905. Brushed DC Motor Fundamentals INTRODUCTION PRINCIPLES OF OPERATION. Stator. Rotor SIMPLE TWO-POLE BRUSHED DC MOTOR. Microchip Technology Inc.
Brushed DC Motor Fundamentals AN905 Author: Reston Condit Microchip Technology Inc. INTRODUCTION Brushed DC motors are widely used in applications ranging from toys to push-button adjustable car seats.
AN1066. Microchip MiWi Wireless Networking Protocol Stack INTRODUCTION CONSIDERATIONS TERMINOLOGY FEATURES
Microchip MiWi Wireless Networking Protocol Stack Author: INTRODUCTION Implementing applications with wireless networking is now common. From consumer devices to industrial applications, there is a growing
Bootloader for dspic30f/33f and PIC24F/24H Devices
Bootloader for dspic30f/33f and PIC24F/24H Devices Author: Leonard Elevich and Veena Kudva Microchip Technology, Inc INTRODUCTION The bootloader for dspic30f/33f and PIC24H/24F devices is used to load
TC7660. Charge Pump DC-to-DC Voltage Converter. Package Types. Features. General Description. Applications. Functional Block Diagram TC7660
Charge Pump DC-to-DC Voltage Converter Features Wide Input Voltage Range:.V to V Efficient Voltage Conversion (99.9%, typ) Excellent Power Efficiency (9%, typ) Low Power Consumption: µa (typ) @ V IN =
AN1353. Op Amp Rectifiers, Peak Detectors and Clamps INTRODUCTION BASIC RECTIFIERS. Choosing the Components. Positive Half-Wave Rectifier.
Op Amp Rectifiers, Peak Detectors and Clamps Author: Dragos Ducu, Microchip Technology Inc. INTRODUCTION This application note covers a wide range of applications, such as halfwave rectifiers, fullwave
Section 5. Flash Programming
Section 5. Flash Programming HIGHLIGHTS This section of the manual contains the following topics: 5.1 Introduction...5-2 5.2 Control Registers... 5-3 5.3 Run-Time Self-Programming (RTSP) Operation... 5-10
MCP2515 CAN Bus Monitor Demo Board User s Guide
MCP2515 CAN Bus Monitor Demo Board User s Guide 2008 Microchip Technology Inc. DS51757A Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification
LIN Serial Analyzer User s Guide Rev2.0
LIN Serial Analyzer User s Guide Rev2.0 2008 Microchip Technology Inc. DS51675B Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification
MCP73811/2. Simple, Miniature Single-Cell, Fully Integrated Li-Ion / Li-Polymer Charge Management Controllers. Description. Features.
Simple, Miniature Single-Cell, Fully Integrated Li-Ion / Li-Polymer Charge Management Controllers Features Complete Linear Charge Management Controller - Integrated Pass Transistor - Integrated Current
Integrated Development Environment
Development Tools Integrated Development Environment Transforming Ideas Into Realities The typical product development life cycle is comprised of smaller cycles each representing an iterative process toward
TABLE 1: BUCK REGULATOR
A Digital Constant Current Power LED Driver Author: INTRODUCTION Stephen Bowling Microchip Technology Inc. This document describes a power LED driver solution using the PIC12HV615 microcontroller (MCU).
MCP2200 USB to RS-232 Demo Board User s Guide
MCP2200 USB to RS-232 Demo Board User s Guide DS51901A Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification contained in their particular
AN709. System Level Design Considerations When Using I 2 C TM Serial EEPROM Devices INTRODUCTION INSURING BUS-FREE DURING POWER-UP
M AN709 System Level Design Considerations When Using I 2 C TM Serial EEPROM Devices Author: INTRODUCTION Rick Stoneking Developing systems that implement the I 2 C protocol for communicating with serial
Resistive Temperature Detector (RTD) Reference Design
Resistive Temperature Detector (RTD) Reference Design DS51891A Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification contained in their
How To Use Microchip.Com
PICkit 2 Programmer/Debugger User s Guide 2008 Microchip Technology Inc. DS51553E Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification
AN990. Analog Sensor Conditioning Circuits An Overview INTRODUCTION SENSOR APPLICATIONS. Target Audience. Goals. Description.
Analog Conditioning Circuits An Overview Author: INTRODUCTION Target Audience This application note is intended for hardware design engineers that need to condition the output of common analog sensors.
TC4423A/TC4424A/TC4425A
3A Dual High-Speed Power MOSFET Drivers Features High Peak Output Current: 4.5A (typical) Wide Input Supply Voltage Operating Range: - 4.5V to 18V High Capacitive Load Drive Capability: - 18 pf in 12 ns
AN1465. Digitally Addressable Lighting Interface (DALI) Communication TERMINOLOGY PHYSICAL LAYER DALI FREE-FORM LAYOUT. Topology FIGURE 1:
Digitally Addressable Lighting Interface (DALI) Communication Author: Shaima Husain Microchip Technology Inc. The Digitally Addressable Lighting Interface (DALI) has emerged as a standard in Europe to
MCRF202. 125 khz Passive RFID Device with Sensor Input. Not recommended for new designs. Package Type. Features. Description. Applications PDIP/SOIC
Not recommended for new designs. MCRF202 125 khz Passive RFID Device with Sensor Input Features External Sensor input Data polarity changes with Sensor input condition Read-only data transmission 96 or
PICkit 2 Microcontroller Programmer USER S GUIDE
PICkit 2 Microcontroller Programmer USER S GUIDE 2007 Microchip Technology Inc. DS51553D Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification
PICkit 3 Programmer/Debugger User s Guide
PICkit 3 Programmer/Debugger User s Guide 2009 Microchip Technology Inc. DS51795A Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification
28-PIN DEMO BOARD USER S GUIDE
28-PIN DEMO BOARD USER S GUIDE 2006-2015 Microchip Technology Inc. DS40001301B Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification
MPLAB XC8 GETTING STARTED GUIDE. MPLAB XC8 Getting Started Guide
MPLAB XC8 GETTING STARTED GUIDE MPLAB XC8 Getting Started Guide This document provides a starting point for programmers who are just starting out with the MPLAB XC8 C Compiler, particularly those who are
TC4421/TC4422. Functional Block Diagram. TC4421 Inverting. TC4422 Non-Inverting V DD. 300 mv Output. Input 4.7V. GND Effective. Input.
9A High-Speed MOSFET Drivers Features High Peak Output Current: 9A Wide Input Supply Voltage Operating Range: - 4.5V to 18V High Continuous Output Current: 2A Max Fast Rise and Fall Times: - 3 ns with
PICmicro DC Motor Control Tips n Tricks
PICmicro DC Motor Control Tips n Tricks M Table of Contents Tips n Tricks Tips N Tricks Introduction TIP #1: Brushed DC Motor Drive Circuits...2 TIP #2: Brushless DC Motor Drive Circuits...5 TIP #3: Stepper
Serial EEPROM Powered for Automotive
Automotive Memory Products Serial EEPROM Powered for Automotive www.microchip.com/memory Microchip Serial Memory Products Microchip Technology has developed industry-leading processes for each step in
AN688. Layout Tips for 12-Bit A/D Converter Application GETTING A GOOD START INTRODUCTION. Microchip Technology Inc. / 2 MCP602
Layout Tips for 12-Bit A/D Converter Application Author: INTRODUCTION Bonnie C. Baker Microchip Technology Inc. This Application Note originally started as a cook book for a true 12-bit layout. The assumption
AN1861. Bluetooth Smart Communication Using Microchip RN4020 Module and 16-bit PIC Microcontroller BLUETOOTH SMART COMMUNICATION INTRODUCTION
Bluetooth Smart Communication Using Microchip RN4020 Module and 16-bit PIC Microcontroller Author: Venkatesh Bengeri and Pradeep Shamanna INTRODUCTION Most of the embedded applications require real-time
Touch Through Metal. mtouch Metal Over Capacitive Technology Part 1
Touch Through Metal mtouch Metal Over Capacitive Technology Part 1 2010 Microchip Technology Incorporated. All Rights Reserved. Touch Through Metal Slide 1 Hello and welcome to Microchip s Touch Through
AN1140. USB Embedded Host Stack INTRODUCTION USB OVERVIEW. Host vs. Embedded Host. USB Hosts and Peripheral Devices
USB Embedded Host Stack AN1140 Author: INTRODUCTION USB has become the standard method for devices to communicate with a PC. From general purpose devices, such as Flash drives and mice, to special purpose
MPLAB Code Configurator User s Guide
MPLAB Code Configurator User s Guide 2013-2014 Microchip Technology Inc. DS40001725B MPLAB CODE CONFIGURATOR USER S GUIDE Note the following details of the code protection feature on Microchip devices:
AN1307 FULL STEP MODE PHASE VOLTAGE AND PHASE CURRENT MICROSTEPPING WITH 1/4 STEP SIZE
Stepper Motor Control with dspic DSCs AN1307 Author: INTRODUCTION Sorin Manea Microchip Technology Inc. This application note describes how to drive a stepper motor with a dspic33f motor control family
PIC18F26K20/46K20 Rev. B2/B3/B5/B6 Silicon Errata and Data Sheet Clarification
PIC18F26K20/46K20 Rev. B2/B3/B5/B6 Silicon Errata and Data Sheet Clarification The PIC18F26K20/46K20 family devices that you have received conform functionally to the current Device Data Sheet (DS41303G),
Analog-to-Digital Converters
Analog-to-Digital Converters In this presentation we will look at the Analog-to-Digital Converter Peripherals with Microchip s midrange PICmicro Microcontrollers series. 1 Analog-to-Digital Converters
How To Improve Electromagnetic Compatibility
Introducing the EMC Newsletter What is EMC? Issue 1, November 2004 NOVEMBER 2004 Rodger Richey Senior Applications Manager Welcome to the first issue of the EMC Newsletter created by the Application Engineers
MPLAB IDE USER S GUIDE
MPLAB IDE USER S GUIDE 2005 Microchip Technology Inc. DS51519A Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification contained in their
AN645. PIC16C57 Based Code Hopping Security System PINOUT OVERVIEW FEATURES BLOCK DIAGRAM RECOMMENDED READING
PI657 Based ode Hopping Security System Author: OVERVIEW This document describes a PI657 based code hopping automotive security system. The security system implements all the basic features found on security
M Floating Point to ASCII Conversion
M Floating Point to ASCII Conversion AN670 Authors: INTRODUCTION It is often necessary to output a floating point number to a display. For example, to check calculations, one might want to output floating
Getting Started with dspic30f Digital Signal Controllers User s Guide
Getting Started with dspic30f Digital Signal Controllers User s Guide 2005 Microchip Technology Inc. DS70151A Note the following details of the code protection feature on Microchip devices: Microchip products
ZENA Wireless Network Analyzer User s Guide
ZENA Wireless Network Analyzer User s Guide 2007 Microchip Technology Inc. DS51606B Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification
AN1106. Power Factor Correction in Power Conversion Applications Using the dspic DSC INTRODUCTION
Power Factor Correction in Power Conversion Applications Using the dspic DSC Author: INTRODUCTION Vinaya Skanda Microchip Technology Inc. Most of the power conversion applications consist of an AC-to-DC
AN232. Low-Frequency Magnetic Transmitter Design ABOUT THIS APPLICATION NOTE INTRODUCTION LFMC LINK COMPONENTS
Low-Frequency Magnetic Transmitter Design AN232 Author: INTRODUCTION Ruan Lourens Microchip Technology Inc. Low-frequency magnetic communications (LFMC) is a viable wireless communications alternative
AN1370. Smart Card Communication Using PIC MCUs INTRODUCTION SMART CARD COMMUNICATION USING PC APPLICATION
Smart Card Communication Using PIC MCUs Author: INTRODUCTION Abhay Deshmukh Microchip Technology Inc. This application note describes the fundamentals of the contact type smart cards and how they are communicated
PICkit TM 2 Microcontroller Programmer USER S GUIDE
PICkit TM 2 Microcontroller Programmer USER S GUIDE 2006 Microchip Technology Inc. DS51553B Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification
TB056. Demonstrating the Set_Report Request With a PS/2 to USB Keyboard Translator Example INTRODUCTION. The Set_Report Request.
Demonstrating the Set_Report Request With a PS/2 to USB Keyboard Translator Example Author: INTRODUCTION This Technical Brief details the translation of a PS/2 keyboard to a USB keyboard using the PIC16C745/
Peripheral Brief: Programmable Switch Mode Controller (PSMC) 1, 2, 4, 8 PSMCXTMR CLR PSMCXPR = Period. Event PSMCXPRS. Rising.
Peripheral Brief: Programmable Switch Mode Controller (PSMC) Author: INTRODUCTION John Mouton Microchip Technology Inc. This peripheral brief reviews the basic functionality of the Programmable Switch
AN562. Using Endurance Predictive Software. Using the Microchip Endurance Predictive Software INTRODUCTION TOTAL ENDURANCE PREDICTIVE SOFTWARE
AN562 Using the Microchip Endurance Predictive Software INTRODUCTION Endurance, as it applies to non-volatile memory, refers to the number of times an individual memory cell can be erased and/or written
dspic Digital Signal Controllers
dspic Digital Signal Controllers Spring 2011 dspic Digital Signal Controllers Digital Signal Controller Solutions Building on the legacy of Microchip s world-leading 8-bit PIC microcontrollers, 16-bit
16-bit Microcontrollers. High-Performance PIC24 Microcontroller Family. www.microchip.com/16bit
16-bit Microcontrollers High-Performance PIC24 Microcontroller Family www.microchip.com/16bit The top challenges facing today s embedded system designer are attaining product specifi cation and performance
AN905. Brushed DC Motor Fundamentals INTRODUCTION PRINCIPLES OF OPERATION. Stator. Rotor SIMPLE TWO-POLE BRUSHED DC MOTOR. Microchip Technology Inc.
Brushed DC Motor Fundamentals AN905 Author: Reston Condit Microchip Technology Inc. INTRODUCTION Brushed DC motors are widely used in applications ranging from toys to push-button adjustable car seats.
TCM809/TCM810. 3-Pin Microcontroller Reset Monitors. General Description. Features. Applications. Pin Configurations. Typical Application Circuit
3-Pin Microcontroller Reset Monitors Features Precision Monitor for 2.5V, 3.V, 3.3V, 5.V Nominal System Voltage Supplies 14 msec Minimum RESET Time-Out Period RESET Output to = 1.V (TCM89) Low Supply Current,
ZENA Wireless Network Analyzer User s Guide
ZENA Wireless Network Analyzer User s Guide 2008 Microchip Technology Inc. DS51606C Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification
MPLAB ICD 3 In-Circuit Debugger User s Guide For MPLAB X IDE
MPLAB ICD 3 In-Circuit Debugger User s Guide For MPLAB X IDE DS52081A Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification contained
AN1305. Sensorless 3-Phase Brushless Motor Control with the PIC16FXXX TYPICAL MOTOR CONNECTION OVERVIEW DRIVE AND CONTROL CIRCUITRY
Sensorless 3-Phase Brushless Motor Control with the PIC16FXXX Author: OVERVIEW Ward Brown Microchip Technology Inc. In 2002, I wrote my first application note on brushless motor control, AN857, which described
How To Write To An Eeprom Memory On A Flash Memory On An Iphone Or Ipro Memory On Microsoft Flash Memory (Eeprom) On A Microsoft Microsoft Powerbook (Ai) 2.2.2
Application note EEPROM emulation in STM32F10x microcontrollers Introduction Many applications require EEPROM (electrically erasable programmable read-only memory) for non-volatile data storage. For low-cost
8-bit Microcontroller. Application Note. AVR105: Power Efficient High Endurance Parameter Storage in Flash Memory
AVR105: Power Efficient High Endurance Parameter Storage in Flash Memory Features Fast Storage of Parameters High Endurance Flash Storage 350K Write Cycles Power Efficient Parameter Storage Arbitrary Size
TB055. PS/2 to USB Mouse Translator IMPLEMENTATION OVERVIEW. Hardware FIGURE 1: PS/2 TO USB MOUSE TRANSLATOR HARDWARE DIAGRAM (1)
PS/2 to USB Mouse Translator TB55 Author: OVERVIEW Reston Condit Microchip Technology Inc. This Technical Brief details the translation of a PS/2 mouse to a USB mouse using the PIC16C745/765. The PIC16C745/765
In-Circuit Serial Programming (ICSP ) Guide
In-Circuit Serial Programming (ICSP ) Guide 2003 Microchip Technology Inc. May 2003 DS30277D te the following details of the code protection feature on Microchip devices: Microchip products meet the specification
MCP3004/3008. 2.7V 4-Channel/8-Channel 10-Bit A/D Converters with SPI Serial Interface. Features. Description. Applications.
2.7V 4-Channel/8-Channel 10-Bit A/D Converters with SPI Serial Interface Features 10-bit resolution ± 1 LSB max DNL ± 1 LSB max INL 4 (MCP3004) or 8 (MCP3008) input channels Analog inputs programmable
MPLAB IDE QUICK START GUIDE
MPLAB IDE QUICK START GUIDE 2004 Microchip Technology Inc. DS51281D Note the following details of the code protection feature on Microchip devices: Microchip products meet the specification contained in
AN1387. Using PIC32 MCUs to Develop Low-Cost Controllerless (LCC) Graphics Solutions INTRODUCTION. Basic Graphics Definitions
Using PIC32 MCUs to Develop Low-Cost Controllerless (LCC) Graphics Solutions Author: INTRODUCTION Adam Folts, Microchip Technology Inc. As the demand for Graphical Embedded Applications becomes more popular,
AN1426. Design Tips for the MCP3911 INTRODUCTION. Addressable Devices on Single SPI Bus. Addressable SPI for Poly-phase Meter Designs.
Design Tips for the MCP3911 AN1426 Author: Craig King Microchip Technology Inc. Here, pushing the limits of the analog-to-digital conversion will be the focus, showing the true performance limits of the
