| Datenblatt-Suchmaschine für elektronische Bauteile |
|
PIC24FV32KA304 Datenblatt(PDF) 67 Page - Microchip Technology |
|
|
|||||||||||||||||||||||||||||
PIC24FV32KA304 Datenblatt(HTML) 67 Page - Microchip Technology |
|
67 / 364 page ![]() 2011-2013 Microchip Technology Inc. DS39995D-page 67 PIC24FV32KA304 FAMILY 6.4.1.1 Data EEPROM Bulk Erase To erase the entire data EEPROM (bulk erase), the address registers do not need to be configured because this operation affects the entire data EEPROM. The following sequence helps in performing a bulk erase: 1. Configure NVMCON to Bulk Erase mode. 2. Clear the NVMIF status bit and enable the NVM interrupt (optional). 3. Write the key sequence to NVMKEY. 4. Set the WR bit to begin the erase cycle. 5. Either poll the WR bit or wait for the NVM interrupt (NVMIF is set). A typical bulk erase sequence is provided in Example 6-3. 6.4.2 SINGLE-WORD WRITE To write a single word in the data EEPROM, the following sequence must be followed: 1. Erase one data EEPROM word (as mentioned in the previous section) if the PGMONLY bit (NVMCON<12>) is set to ‘1’. 2. Write the data word into the data EEPROM latch. 3. Program the data word into the EEPROM: - Configure the NVMCON register to program one EEPROM word (NVMCON<5:0> = 0001xx). - Clear the NVMIF status bit and enable the NVM interrupt (optional). - Write the key sequence to NVMKEY. - Set the WR bit to begin the erase cycle. - Either poll the WR bit or wait for the NVM interrupt (NVMIF is set). - To get cleared, wait until NVMIF is set. A typical single-word write sequence is provided in Example 6-4. EXAMPLE 6-3: DATA EEPROM BULK ERASE EXAMPLE 6-4: SINGLE-WORD WRITE TO DATA EEPROM // Set up NVMCON to bulk erase the data EEPROM NVMCON = 0x4050; // Disable Interrupts For 5 Instructions asm volatile ("disi #5"); // Issue Unlock Sequence and Start Erase Cycle __builtin_write_NVM(); int __attribute__ ((space(eedata))) eeData = 0x1234; int newData; // New data to write to EEPROM /*--------------------------------------------------------------------------------------------- The variable eeData must be a Global variable declared outside of any method the code following this comment can be written inside the method that will execute the write ----------------------------------------------------------------------------------------------- */ unsigned int offset; // Set up NVMCON to erase one word of data EEPROM NVMCON = 0x4004; // Set up a pointer to the EEPROM location to be erased TBLPAG = __builtin_tblpage(&eeData); // Initialize EE Data page pointer offset = __builtin_tbloffset(&eeData); // Initizlize lower word of address __builtin_tblwtl(offset, newData); // Write EEPROM data to write latch asm volatile ("disi #5"); // Disable Interrupts For 5 Instructions __builtin_write_NVM(); // Issue Unlock Sequence & Start Write Cycle while(NVMCONbits.WR=1); // Optional: Poll WR bit to wait for // write sequence to complete |
|
Link URL |
| War ALLDATASHEET hilfreich? [ DONATE ] |
Über Alldatasheet | Werbung | Kontakt | Privatsphäre und Datenschutz | Link zum Datenblatt | Linktausch | Hersteller All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |