MICROCHIP PIC24 Programmazione Flash

Informazioni sul prodotto
Programmazione flash
Le famiglie di dispositivi dsPIC33/PIC24 dispongono di una memoria di programma Flash interna programmabile per l'esecuzione del codice utente. Ci sono fino a tre metodi per programmare questa memoria:
- Funzionamento delle istruzioni della tabella
- Programmazione seriale su circuito (ICSP)
- Programmazione in applicazione (IAP)
Le istruzioni della tabella forniscono il metodo di trasferimento dei dati tra lo spazio di memoria del programma Flash e lo spazio di memoria dei dati dei dispositivi dsPIC33/PIC24. L'istruzione TBLRDL viene utilizzata per leggere dai bit[15:0] dello spazio di memoria del programma. L'istruzione TBLWTL viene utilizzata per scrivere nei bit[15:0] dello spazio di memoria del programma Flash. TBLRDL e TBLWTL possono accedere alla memoria di programma Flash in modalità Word o in modalità Byte.
Oltre all'indirizzo di memoria del programma Flash, l'istruzione della tabella specifica anche un registro W (o un puntatore di registro W a una posizione di memoria), che è l'origine dei dati della memoria del programma Flash da scrivere o la destinazione di un programma Flash memoria letta.
Questa sezione descrive la tecnica per programmare la memoria di programma Flash. Le famiglie di dispositivi dsPIC33/ PIC24 dispongono di una memoria di programma Flash interna programmabile per l'esecuzione del codice utente. Ci sono fino a tre metodi per programmare questa memoria:
- Autoprogrammazione in fase di esecuzione (RTSP)
- Programmazione seriale in-circuit™ (ICSP™)
- Programmazione seriale su circuito avanzata (EICSP)
RTSP viene eseguito dal software applicativo durante l'esecuzione, mentre ICSP ed EICSP vengono eseguiti da un programmatore esterno utilizzando una connessione dati seriale al dispositivo. ICSP ed EICSP consentono tempi di programmazione molto più rapidi rispetto a RTSP. Le tecniche RTSP sono descritte nella Sezione 4.0 “Run-Time Self-Programming (RTSP)”. I protocolli ICSP ed EICSP sono definiti nei documenti di Specifica di Programmazione dei rispettivi dispositivi, scaricabili dal Microchip webposto (http://www.microchip.com). Quando si programma in linguaggio C, sono disponibili diverse funzioni integrate che facilitano la programmazione Flash. Vedere la "Guida dell'utente del compilatore C MPLAB® XC16" (DS50002071) per i dettagli relativi alle funzioni integrate.
Istruzioni per l'uso del prodotto
Per programmare la memoria del programma Flash, attenersi alla seguente procedura:
- Fare riferimento alla scheda tecnica del dispositivo per verificare se la sezione del manuale di riferimento della famiglia supporta il dispositivo che si sta utilizzando.
- Scarica la scheda tecnica del dispositivo e le sezioni del manuale di riferimento della famiglia da Microchip Worldwide Websito a: http://www.microchip.com.
- Scegliere uno dei tre metodi per programmare la memoria (Table Instruction Operation, In-Circuit Serial Programming (ICSP), In-Application Programming (IAP)).
- Se si utilizza Table Instruction Operation, utilizzare l'istruzione TBLRDL per leggere dai bit[15:0] dello spazio di memoria del programma e l'istruzione TBLWTL per scrivere nei bit[15:0] dello spazio di memoria del programma Flash.
- Assicurarsi di specificare un registro W (o un puntatore di registro W a una posizione di memoria) come origine dei dati della memoria del programma Flash da scrivere o destinazione per una lettura della memoria del programma Flash.
Per ulteriori informazioni e dettagli sulla programmazione della memoria di programma Flash, fare riferimento al manuale di riferimento della famiglia dsPIC33/PIC24.
TABELLA ISTRUZIONI FUNZIONAMENTO
Le istruzioni della tabella forniscono il metodo di trasferimento dei dati tra lo spazio di memoria del programma Flash e lo spazio di memoria dei dati dei dispositivi dsPIC33/PIC24. Questa sezione fornisce un riepilogo delle istruzioni della tabella utilizzate durante la programmazione della memoria di programma Flash. Ci sono quattro istruzioni di base della tabella:
- TBLRDL: Tabella letta bassa
- TBLRDH: Tabella letta alta
- TBLWTL: Tabella scrittura bassa
- TBLWTH: Tabella scrittura alta
L'istruzione TBLRDL viene utilizzata per leggere dai bit[15:0] dello spazio di memoria del programma. L'istruzione TBLWTL viene utilizzata per scrivere nei bit[15:0] dello spazio di memoria del programma Flash. TBLRDL e TBLWTL possono accedere alla memoria di programma Flash in modalità Word o in modalità Byte.
Le istruzioni TBLRDH e TBLWTH vengono utilizzate per leggere o scrivere nei bit[23:16] dello spazio di memoria del programma. TBLRDH e TBLWTH possono accedere alla memoria di programma Flash in modalità Word o Byte. Poiché la memoria del programma Flash è larga solo 24 bit, le istruzioni TBLRDH e TBLWTH possono indirizzare un byte superiore della memoria del programma Flash che non esiste. Questo byte è chiamato "byte fantasma". Qualsiasi lettura del byte fantasma restituirà 0x00. Una scrittura nel byte fantasma non ha effetto. La memoria del programma Flash a 24 bit può essere considerata come due spazi affiancati a 16 bit, con ciascuno spazio che condivide lo stesso intervallo di indirizzi. Pertanto, le istruzioni TBLRDL e TBLWTL accedono allo spazio di memoria del programma "basso" (PM[15:0]). Le istruzioni TBLRDH e TBLWTH accedono allo spazio di memoria del programma “alto” (PM[31:16]). Qualsiasi lettura o scrittura su PM[31:24] accederà al byte fantasma (non implementato). Quando una qualsiasi delle istruzioni della tabella viene utilizzata in modalità Byte, il bit meno significativo (LSb) dell'indirizzo della tabella verrà utilizzato come bit di selezione del byte. LSb determina a quale byte nello spazio di memoria del programma alto o basso si accede.
La Figura 2-1 illustra come viene indirizzata la memoria del programma Flash utilizzando le istruzioni della tabella. Un indirizzo di memoria di programma a 24 bit viene formato utilizzando i bit [7:0] del registro TBLPAG e l'indirizzo effettivo (EA) da un registro W specificato nell'istruzione della tabella. Il Program Counter (PC) a 24 bit è illustrato nella Figura 2-1 come riferimento. I 23 bit superiori dell'EA vengono utilizzati per selezionare la posizione di memoria del programma Flash.
Per le istruzioni della tabella in modalità Byte, l'LSb del registro W EA viene utilizzato per selezionare quale byte della parola di memoria del programma Flash a 16 bit è indirizzato; '1' seleziona i bit[15:8] e '0' seleziona i bit[7:0]. L'LSb del registro W EA viene ignorato per un'istruzione di tabella in modalità Word. Oltre all'indirizzo di memoria del programma Flash, l'istruzione della tabella specifica anche un registro W (o un puntatore di registro W a una posizione di memoria), che è l'origine dei dati della memoria del programma Flash da scrivere o la destinazione di un programma Flash memoria letta. Per un'operazione di scrittura della tabella in modalità Byte, i bit [15:8] del registro di lavoro sorgente vengono ignorati.
Utilizzo della tabella Leggere le istruzioni
Le letture della tabella richiedono due passaggi:
- L'Address Pointer è impostato utilizzando il registro TBLPAG e uno dei registri W.
- È possibile leggere il contenuto della memoria del programma Flash nella posizione dell'indirizzo.
- LEGGI LA MODALITÀ PAROLA
Il codice riportato nell'Esample 2-1 ed esample 2-2 mostra come leggere una parola della memoria di programma Flash utilizzando le istruzioni della tabella in modalità Word.

- MODALITÀ LETTURA BYTE
Il codice riportato nell'Esample 2-3 mostra l'operatore di post-incremento sulla lettura del byte basso, che fa incrementare di uno l'indirizzo nel Working register. Questo imposta EA[0] su '1' per l'accesso al byte centrale nella terza istruzione di scrittura. L'ultimo post-incremento riporta W0 a un indirizzo pari, puntando alla successiva posizione di memoria del programma Flash.
- TABELLA SCRIVERE CHIUSURA
Le istruzioni di scrittura della tabella non scrivono direttamente nella memoria non volatile del programma. Invece, le istruzioni di scrittura della tabella caricano i latch di scrittura che memorizzano i dati di scrittura. I registri degli indirizzi NVM devono essere caricati con il primo indirizzo in cui devono essere scritti i dati bloccati. Quando tutti i latch di scrittura sono stati caricati, l'effettiva operazione di programmazione della memoria viene avviata eseguendo una speciale sequenza di istruzioni. Durante la programmazione, l'hardware trasferisce i dati nei latch di scrittura alla memoria Flash. I latch di scrittura iniziano sempre all'indirizzo 0xFA0000 e si estendono fino a 0xFA0002 per la programmazione a parole o fino a 0xFA00FE per i dispositivi con programmazione a righe.
Nota: Il numero di latch di scrittura varia in base al dispositivo. Fare riferimento al capitolo “Flash Program Memory” della scheda tecnica del dispositivo specifico per il numero di write latch disponibili.
REGISTRI DI CONTROLLO
Diversi registri di funzioni speciali (SFR) vengono utilizzati per programmare le operazioni di cancellazione e scrittura della memoria del programma Flash: NVMCON, NVMKEY e i registri degli indirizzi NVM, NVMADR e NVMADRU.
Registro NVMCON
Il registro NVMCON è il registro di controllo principale per le operazioni Flash e di programma/cancellazione. Questo registro seleziona se verrà eseguita un'operazione di cancellazione o di programmazione e può avviare il programma o il ciclo di cancellazione. Il registro NVMCON è mostrato nel registro 3-1. Il byte inferiore di NVMCON configura il tipo di operazione NVM che verrà eseguita.
Registro NVMKEY
Il registro NVMKEY (vedere Registro 3-4) è un registro di sola scrittura utilizzato per prevenire scritture accidentali di NVMCON che possono danneggiare la memoria Flash. Una volta sbloccate, le scritture su NVMCON sono consentite per un ciclo di istruzione in cui il bit WR può essere impostato per richiamare una routine di cancellazione o programma. Dati i requisiti di temporizzazione, è necessario disabilitare gli interrupt.
Effettuare le seguenti operazioni per avviare una sequenza di cancellazione o programmazione:
- Disabilita gli interrupt.
- Scrivi 0x55 in NVMKEY.
- Scrivi 0xAA in NVMKEY.
- Avviare il ciclo di scrittura della programmazione impostando il bit WR (NVMCON[15]).
- Eseguire due istruzioni NOP.
- Ripristina interruzioni.

DISABILITAZIONE INTERRUZIONI
La disabilitazione degli interrupt è necessaria per tutte le operazioni Flash per garantire un risultato positivo. Se si verifica un'interruzione durante la sequenza di sblocco NVMKEY, può bloccare la scrittura sul bit WR. La sequenza di sblocco NVMKEY deve essere eseguita senza interruzioni, come discusso nella Sezione 3.2 “Registro NVMKEY”.
Gli interrupt possono essere disabilitati in uno dei due modi seguenti, disabilitando Global Interrupt Enable (bit GIE) o utilizzando l'istruzione DISI. L'istruzione DISI non è consigliata poiché disabilita solo gli interrupt di priorità 6 o inferiore; pertanto, dovrebbe essere utilizzato il metodo Global Interrupt Enable.
Le scritture della CPU su GIE richiedono due cicli di istruzioni prima di influenzare il flusso del codice. Successivamente sono necessarie due istruzioni NOP o possono essere sostituite con qualsiasi altra utile istruzione di lavoro, come il caricamento di NVMKEY; questo è applicabile sia alle operazioni impostate che a quelle chiare. È necessario prestare attenzione quando si riattivano gli interrupt in modo che la routine mirata NVM non consenta gli interrupt quando una funzione chiamata in precedenza li ha disabilitati per altri motivi. Per risolvere questo problema in Assembly, è possibile utilizzare uno stack push e pop per mantenere lo stato del bit GIE. In C, una variabile nella RAM può essere utilizzata per memorizzare INTCON2 prima di cancellare GIE. Utilizzare la seguente sequenza per disabilitare gli interrupt:
- Spingi INTCON2 nello stack.
- Cancella il bit GIE.
- Due NOP o scritture su NVMKEY.
- Avviare il ciclo di programmazione impostando il bit WR (NVMCON[15]).
- Ripristina lo stato GIE tramite POP di INTCON2.

Registri di indirizzi NVM
I due registri di indirizzo NVM, NVMADRU e NVMADR, quando concatenati, formano l'EA a 24 bit della riga o parola selezionata per le operazioni di programmazione. Il registro NVMADRU viene utilizzato per contenere gli otto bit superiori dell'EA e il registro NVMADR viene utilizzato per contenere i 16 bit inferiori dell'EA. Alcuni dispositivi possono fare riferimento a questi stessi registri come NVMADRL e NVMADRH. I registri degli indirizzi NVM dovrebbero sempre puntare a un limite di parola di doppia istruzione quando si esegue un'operazione di programmazione di parola di doppia istruzione, un limite di riga quando si esegue un'operazione di programmazione di riga o un limite di pagina quando si esegue un'operazione di cancellazione della pagina.
Registro 3-1: NVMCON: registro di controllo della memoria flash

Nota
- Questo bit può essere reimpostato (ovvero azzerato) solo con un Power-on Reset (POR).
- Quando si esce dalla modalità Idle, si verifica un ritardo di accensione (TVREG) prima che la memoria di programma Flash diventi operativa. Fare riferimento al capitolo “Caratteristiche Elettriche” della scheda tecnica del dispositivo specifico per maggiori informazioni.
- Tutte le altre combinazioni di NVMOP[3:0] non sono implementate.
- Questa funzionalità non è disponibile su tutti i dispositivi. Fare riferimento al capitolo “Flash Program Memory” nella scheda tecnica del dispositivo specifico per le operazioni disponibili.
- L'ingresso in una modalità di risparmio energetico dopo l'esecuzione di un'istruzione PWRSAV è subordinato al completamento di tutte le operazioni NVM in sospeso.
- Questo bit è disponibile solo su dispositivi che supportano la programmazione di righe con buffer RAM. Fare riferimento alla scheda tecnica specifica del dispositivo per la disponibilità.

Nota
- Questo bit può essere reimpostato (ovvero azzerato) solo con un Power-on Reset (POR).
- Quando si esce dalla modalità Idle, si verifica un ritardo di accensione (TVREG) prima che la memoria di programma Flash diventi operativa. Fare riferimento al capitolo “Caratteristiche Elettriche” della scheda tecnica del dispositivo specifico per maggiori informazioni.
- Tutte le altre combinazioni di NVMOP[3:0] non sono implementate.
- Questa funzionalità non è disponibile su tutti i dispositivi. Fare riferimento al capitolo “Flash Program Memory” nella scheda tecnica del dispositivo specifico per le operazioni disponibili.
- L'ingresso in una modalità di risparmio energetico dopo l'esecuzione di un'istruzione PWRSAV è subordinato al completamento di tutte le operazioni NVM in sospeso.
- Questo bit è disponibile solo su dispositivi che supportano la programmazione di righe con buffer RAM. Fare riferimento alla scheda tecnica specifica del dispositivo per la disponibilità.
Registro 3-2: NVMADRU: registro dell'indirizzo superiore della memoria non volatile

Registro 3-3: NVMADR: registro indirizzo memoria non volatile

Registro 3-4: NVMKEY: registro della chiave di memoria non volatile

AUTOPROGRAMMAZIONE IN RUN-TIME (RTSP)
RTSP consente all'applicazione utente di modificare il contenuto della memoria del programma Flash. RTSP viene eseguito utilizzando le istruzioni TBLRD (Table Read) e TBLWT (Table Write), il registro TBLPAG e i registri di controllo NVM. Con RTSP, l'applicazione utente può cancellare una singola pagina della memoria Flash e programmare due parole di istruzioni o fino a 128 parole di istruzioni su determinati dispositivi.
Operazione RTSP
L'array di memoria di programma Flash dsPIC33/PIC24 è organizzato in pagine di cancellazione che possono contenere fino a 1024 istruzioni. L'opzione di programmazione a parola doppia è disponibile in tutti i dispositivi delle famiglie dsPIC33/PIC24. Inoltre, alcuni dispositivi sono dotati di capacità di programmazione delle righe, che consente la programmazione di un massimo di 128 parole di istruzione alla volta. Le operazioni di programmazione e cancellazione avvengono sempre su un limite di parola, riga o pagina di programmazione pari. Fare riferimento al capitolo “Flash Program Memory” della scheda tecnica del dispositivo specifico per la disponibilità e le dimensioni di una riga di programmazione e la dimensione della pagina per la cancellazione. La memoria di programma Flash implementa buffer di mantenimento, chiamati latch di scrittura, che possono contenere fino a 128 istruzioni di dati di programmazione a seconda del dispositivo. Prima dell'effettiva operazione di programmazione, i dati di scrittura devono essere caricati nei latch di scrittura. La sequenza di base per RTSP consiste nell'impostare il puntatore della tabella, il registro TBLPAG e quindi eseguire una serie di istruzioni TBLWT per caricare i latch di scrittura. La programmazione viene eseguita impostando i bit di controllo nel registro NVMCON. Il numero di istruzioni TBLWTL e TBLWTH necessarie per caricare i latch di scrittura è uguale al numero di parole di programma da scrivere.
Nota: Si consiglia di salvare il registro TBLPAG prima della modifica e di ripristinarlo dopo l'uso.
ATTENZIONE
Su alcuni dispositivi, i bit di configurazione sono memorizzati nell'ultima pagina dello spazio di memoria utente Flash del programma in una sezione denominata "Byte di configurazione flash". Con questi dispositivi, l'esecuzione di un'operazione di cancellazione della pagina sull'ultima pagina della memoria del programma cancella i byte di configurazione Flash, che abilita la protezione del codice. Pertanto, gli utenti non devono eseguire operazioni di cancellazione della pagina sull'ultima pagina della memoria del programma. Questo non è un problema quando i bit di configurazione sono memorizzati nello spazio di memoria di configurazione in una sezione chiamata "Device Configuration Registers". Fare riferimento alla Program Memory Map nel capitolo “Memory Organization” della specifica scheda tecnica del dispositivo per determinare dove si trovano i bit di configurazione.
Operazioni di programmazione Flash
È necessaria un'operazione di programmazione o cancellazione per programmare o cancellare la memoria di programma Flash interna in modalità RTSP. L'operazione di programmazione o cancellazione viene programmata automaticamente dal dispositivo (fare riferimento alla scheda tecnica del dispositivo specifico per informazioni sulla temporizzazione). L'impostazione del bit WR (NVMCON[15]) avvia l'operazione. Il bit WR viene azzerato automaticamente al termine dell'operazione. La CPU va in stallo fino al termine dell'operazione di programmazione. La CPU non eseguirà alcuna istruzione né risponderà agli interrupt durante questo periodo. Se si verificano interruzioni durante il ciclo di programmazione, rimarranno in sospeso fino al completamento del ciclo. Alcuni dispositivi dsPIC33/PIC24 possono fornire una memoria di programma Flash ausiliaria (fare riferimento al capitolo "Organizzazione della memoria" della scheda tecnica del dispositivo specifico per i dettagli), che consente l'esecuzione delle istruzioni senza stalli della CPU mentre la memoria del programma Flash dell'utente viene cancellata e/o programmata. Al contrario, la memoria del programma Flash ausiliaria può essere programmata senza stalli della CPU, a condizione che il codice venga eseguito dalla memoria del programma Flash dell'utente. L'interrupt NVM può essere utilizzato per indicare che l'operazione di programmazione è stata completata.
Nota
- Se si verifica un evento POR o BOR mentre è in corso un'operazione di cancellazione o programmazione RTSP, l'operazione RTSP viene interrotta immediatamente. L'utente deve eseguire nuovamente l'operazione RTSP dopo che il dispositivo è uscito dal ripristino.
- Se si verifica un evento di ripristino EXTR, SWR, WDTO, TRAPR, CM o IOPUWR mentre è in corso un'operazione di cancellazione o programmazione RTSP, il dispositivo verrà ripristinato solo dopo il completamento dell'operazione RTSP.
ALGORITMO DI PROGRAMMAZIONE RTSP
Questa sezione descrive la programmazione RTSP, che consiste in tre processi principali.
Creazione di un'immagine RAM della pagina dati da modificare
Eseguire questi due passaggi per creare un'immagine RAM della pagina dati da modificare:
- Leggere la pagina della memoria del programma Flash e memorizzarla nella RAM dei dati come "immagine" dei dati. L'immagine RAM deve essere letta a partire da un limite di indirizzo di pagina.
- Modificare l'immagine dei dati RAM secondo necessità.
Cancellazione della memoria di programma flash
Dopo aver completato i passaggi 1 e 2 di cui sopra, eseguire i seguenti quattro passaggi per cancellare la pagina della memoria del programma Flash:
- Impostare i bit NVMOP[3:0] (NVMCON[3:0]) per cancellare la pagina della memoria del programma Flash letta dal passaggio 1.
- Scrivere l'indirizzo iniziale della pagina da cancellare nei registri NVMADRU e NMVADR.
- Con gli interrupt disabilitati:
- a) Scrivere la sequenza di tasti nel registro NVMKEY per abilitare l'impostazione del bit WR (NVMCON[15]).
- b) Impostare il bit WR; questo avvierà il ciclo di cancellazione.
- c) Eseguire due istruzioni NOP.
- Il bit WR viene azzerato al termine del ciclo di cancellazione.
Programmazione della pagina della memoria flash
La parte successiva del processo consiste nel programmare la pagina della memoria Flash. La pagina di memoria Flash viene programmata utilizzando i dati dell'immagine creata nel passaggio 1. I dati vengono trasferiti ai latch di scrittura in incrementi di parole o righe di istruzioni doppie. Tutti i dispositivi hanno la possibilità di programmare parole a doppia istruzione. (Fare riferimento al capitolo "Memoria di programma flash" nella scheda tecnica del dispositivo specifico per determinare se e quale tipo di programmazione di riga è disponibile.) Dopo che i latch di scrittura sono stati caricati, viene avviata l'operazione di programmazione, che trasferisce i dati dal scrivere i fermi nella memoria Flash. Questo viene ripetuto fino a quando l'intera pagina è stata programmata. Ripetere i seguenti tre passaggi, iniziando dalla prima parola di istruzione della pagina Flash e incrementando in passaggi di parole di programma doppie o righe di istruzioni, fino a quando l'intera pagina non è stata programmata:
- Carica i latch di scrittura:
- a) Impostare il registro TBLPAG in modo che punti alla posizione dei latch di scrittura.
- b) Caricare il numero desiderato di chiusure utilizzando coppie di istruzioni TBLWTL e TBLWTH:
- Per la programmazione a parola doppia sono necessarie due coppie di istruzioni TBLWTL e TBLWTH
- Per la programmazione delle righe, è richiesta una coppia di istruzioni TBLWTL e TBLWTH per ogni elemento della riga della parola di istruzione
- Avviare l'operazione di programmazione:
- a) Impostare i bit NVMOP[3:0] (NVMCON[3:0]) per programmare parole di istruzioni doppie o una riga di istruzioni, a seconda dei casi.
b) Scrivere nei registri NVMADRU e NVMADR il primo indirizzo della parola doppia istruzione o della riga istruzione da programmare.
c) Con interrupt disabilitati:
• Scrivere la sequenza di tasti nel registro NVMKEY per abilitare l'impostazione del bit WR (NVMCON[15])
• Impostare il bit WR; questo avvierà il ciclo di cancellazione
• Eseguire due istruzioni NOP
- a) Impostare i bit NVMOP[3:0] (NVMCON[3:0]) per programmare parole di istruzioni doppie o una riga di istruzioni, a seconda dei casi.
- Il bit WR viene azzerato al termine del ciclo di programmazione.
Ripetere l'intero processo secondo necessità per programmare la quantità desiderata di memoria di programma Flash.
Nota
- L'utente deve ricordare che la quantità minima di memoria del programma Flash che può essere cancellata utilizzando RTSP è una singola pagina cancellata. Pertanto, è importante che un'immagine di queste posizioni sia memorizzata nella RAM per uso generico prima che venga avviato un ciclo di cancellazione.
- Una riga o una parola nella memoria di programma Flash non deve essere programmata più di due volte prima di essere cancellata.
- Sui dispositivi con i byte di configurazione memorizzati nell'ultima pagina di Flash, l'esecuzione di un'operazione di cancellazione della pagina nell'ultima pagina della memoria del programma cancella i byte di configurazione, abilitando la protezione del codice. Su questi dispositivi, l'ultima pagina della memoria Flash non dovrebbe essere cancellata.
CANCELLAZIONE DI UNA PAGINA DI FLASH
La sequenza di codici mostrata nell'Esample 4-1 può essere utilizzato per cancellare una pagina della memoria del programma Flash. Il registro NVMCON è configurato per cancellare una pagina della memoria del programma. I registri NVMADR e NMVADRU vengono caricati con l'indirizzo iniziale della pagina da cancellare. La memoria del programma deve essere cancellata in corrispondenza di un limite di indirizzo di pagina "pari". Consultare il capitolo “Flash Program Memory” della scheda tecnica del dispositivo specifico per determinare la dimensione della pagina Flash.
L'operazione di cancellazione viene avviata scrivendo uno speciale sblocco, o sequenza di tasti, nel registro NVMKEY prima di impostare il bit WR (NVMCON[15]). La sequenza di sblocco deve essere eseguita nell'ordine esatto, come mostrato nell'Esample 4-1, senza interruzioni; pertanto, gli interrupt devono essere disabilitati.
Due istruzioni NOP devono essere inserite nel codice dopo il ciclo di cancellazione. Su alcuni dispositivi, i bit di configurazione sono memorizzati nell'ultima pagina del programma Flash. Con questi dispositivi, l'esecuzione di un'operazione di cancellazione della pagina sull'ultima pagina della memoria del programma cancella i byte di configurazione Flash, abilitando di conseguenza la protezione del codice. Gli utenti non devono eseguire operazioni di cancellazione della pagina sull'ultima pagina della memoria del programma.

CARICAMENTO SCRITTURA LATCH
I latch di scrittura vengono utilizzati come meccanismo di archiviazione tra le scritture della tabella dell'applicazione utente e la sequenza di programmazione effettiva. Durante l'operazione di programmazione, il dispositivo trasferirà i dati dai latch di scrittura nella memoria Flash. Per i dispositivi che supportano la programmazione delle righe, esample 4-3 mostra la sequenza di istruzioni che possono essere utilizzate per caricare 128 latch di scrittura (128 word di istruzioni). Sono necessarie 128 istruzioni TBLWTL e 128 TBLWTH per caricare i latch di scrittura per programmare una riga di memoria di programma Flash. Fare riferimento al capitolo "Memoria di programma flash" della scheda tecnica del dispositivo specifico per determinare il numero di latch di programmazione disponibili sul dispositivo. Per i dispositivi che non supportano la programmazione delle righe, esample 4-4 mostra la sequenza di istruzioni che possono essere utilizzate per caricare due latch di scrittura (due parole di istruzione). Sono necessarie due istruzioni TBLWTL e due istruzioni TBLWTH per caricare i latch di scrittura.
Nota
- Il codice per Load_Write_Latch_Row è mostrato nell'Esample 4-3 e il codice per Load_Write_Latch_Word è mostrato nell'Esample 4-4. Il codice in entrambi questi examples è richiamato nel successivo exampmeno.
- Fare riferimento alla scheda tecnica del dispositivo specifico per il numero di chiusure.

PROGRAMMAZIONE SINGOLA RIGA ESAMPLE
Il registro NVMCON è configurato per programmare una riga della memoria di programma Flash. L'operazione del programma viene avviata scrivendo uno speciale sblocco, o sequenza di tasti, nel registro NVMKEY prima di impostare il bit WR (NVMCON[15]). La sequenza di sblocco deve essere eseguita senza interruzioni e nell'ordine esatto, come mostrato nell'Esample 4-5. Pertanto, gli interrupt devono essere disabilitati prima di scrivere la sequenza.
Nota: Non tutti i dispositivi dispongono della capacità di programmazione delle righe. Fare riferimento al capitolo “Flash Program Memory” della scheda tecnica del dispositivo specifico per determinare se questa opzione è disponibile.
Due istruzioni NOP devono essere inserite nel codice dopo il ciclo di programmazione.

PROGRAMMAZIONE DI RIGHE UTILIZZANDO IL RAM BUFFER
Alcuni dispositivi dsPIC33 consentono di eseguire la programmazione delle righe direttamente da uno spazio buffer nella RAM dati, piuttosto che passare attraverso i fermi di mantenimento per trasferire i dati con le istruzioni TBLWT. La posizione del buffer RAM è determinata dai registri NVMSRCADR, che vengono caricati con l'indirizzo RAM dati contenente la prima parola di dati del programma da scrivere.
Prima di eseguire l'operazione del programma, lo spazio del buffer nella RAM deve essere caricato con la riga di dati da programmare. La RAM può essere caricata in formato compresso (impacchettato) o non compresso. La memoria compressa utilizza una parola di dati per memorizzare i byte più significativi (MSB) di due parole di dati di programma adiacenti. Il formato non compresso utilizza due parole di dati per ogni parola di dati del programma, con il byte superiore di ogni altra parola 00h. Il formato compresso utilizza circa 3/4 dello spazio nella RAM dati rispetto al formato non compresso. Il formato non compresso, d'altra parte, imita la struttura della parola dati del programma a 24 bit, completa del byte fantasma superiore. Il formato dei dati è selezionato dal bit RPDF (NVMCON[9]). Questi due formati sono mostrati nella Figura 4-1.
Una volta caricato il buffer RAM, i Flash Address Pointer, NVMADR e NVMADRU, vengono caricati con l'indirizzo iniziale a 24 bit della riga Flash da scrivere. Come per la programmazione dei latch di scrittura, il processo viene avviato scrivendo la sequenza di sblocco NVM, seguita dall'impostazione del bit WR. Una volta avviato, il dispositivo carica automaticamente i latch giusti e incrementa i registri degli indirizzi NVM finché tutti i byte non sono stati programmati. Example 4-7 mostra un example del processo. Se NVMSRCADR è impostato su un valore tale che si verifica una condizione di errore di data underrun, il bit URERR (NVMCON[8]) verrà impostato per indicare la condizione.
I dispositivi che implementano la programmazione delle righe del buffer RAM implementano anche uno o due latch di scrittura. Questi vengono caricati utilizzando le istruzioni TBLWT e vengono utilizzati per eseguire operazioni di programmazione di parole.
PROGRAMMAZIONE DI PAROLE
Il registro NVMCON è configurato per programmare due parole di istruzione della memoria di programma Flash. L'operazione del programma viene avviata scrivendo uno speciale sblocco, o sequenza di tasti, nel registro NVMKEY prima di impostare il bit WR (NVMCON[15]). La sequenza di sblocco deve essere eseguita nell'ordine esatto, come mostrato nell'Esample 4-8, senza interruzione. Pertanto, gli interrupt devono essere disabilitati prima di scrivere la sequenza.
Due istruzioni NOP devono essere inserite nel codice dopo il ciclo di programmazione.

Scrittura nei registri di configurazione del dispositivo
Su alcuni dispositivi, i bit di configurazione sono archiviati nello spazio di memoria di configurazione in una sezione denominata "Device Configuration Registers". Su altri dispositivi, i bit di configurazione sono memorizzati nell'ultima pagina dello spazio di memoria utente Flash del programma in una sezione denominata "Byte di configurazione flash". Con questi dispositivi, l'esecuzione di un'operazione di cancellazione della pagina sull'ultima pagina della memoria del programma cancella i byte di configurazione Flash, che abilita la protezione del codice. Pertanto, gli utenti non devono eseguire operazioni di cancellazione della pagina sull'ultima pagina della memoria del programma. Fare riferimento alla Program Memory Map nel capitolo “Memory Organization” della specifica scheda tecnica del dispositivo per determinare dove si trovano i bit di configurazione.
Quando i bit di configurazione sono archiviati nello spazio di memoria di configurazione, RTSP può essere utilizzato per scrivere nei registri di configurazione del dispositivo e RTSP consente di riscrivere individualmente ciascun registro di configurazione senza prima eseguire un ciclo di cancellazione. È necessario prestare attenzione quando si scrivono i registri di configurazione poiché controllano i parametri operativi critici del dispositivo, come la sorgente del clock di sistema, l'abilitazione PLL e WDT.
La procedura per la programmazione di un registro di configurazione del dispositivo è simile alla procedura per la programmazione della memoria di programma Flash, ad eccezione del fatto che sono richieste solo le istruzioni TBLWTL. Ciò è dovuto al fatto che gli otto bit superiori in ciascun registro di configurazione del dispositivo non sono utilizzati. Inoltre, il bit 23 dell'indirizzo Table Write deve essere impostato per accedere ai registri di configurazione. Fare riferimento a "Configurazione del dispositivo" (DS70000618) nel "Manuale di riferimento della famiglia dsPIC33/PIC24" e al capitolo "Funzioni speciali" nella scheda tecnica del dispositivo specifico per una descrizione completa dei registri di configurazione del dispositivo.
Nota
- La scrittura nei registri di configurazione del dispositivo non è disponibile in tutti i dispositivi. Fare riferimento al capitolo "Funzioni speciali" nella scheda tecnica del dispositivo specifico per determinare le modalità disponibili in base alla definizione dei bit NVMOP[3:0] specifici del dispositivo.
- Durante l'esecuzione di RTSP sui registri di configurazione del dispositivo, il dispositivo deve essere in funzione utilizzando l'oscillatore FRC interno (senza PLL). Se il dispositivo funziona da una diversa sorgente di clock, è necessario eseguire un passaggio di clock all'oscillatore FRC interno (NOSC[2:0] = 000) prima di eseguire l'operazione RTSP nei registri di configurazione del dispositivo.
- Se i bit Primary Oscillator Mode Select (POSCMD[1:0]) nel registro Oscillator Configuration (FOSC) vengono riprogrammati su un nuovo valore, l'utente deve assicurarsi che i bit Clock Switching Mode (FCKSM[1:0]) in il registro FOSC ha un valore iniziale programmato di '0', prima di eseguire questa operazione RTSP.
ALGORITMO DI SCRITTURA DEL REGISTRO DI CONFIGURAZIONE
La procedura generale è la seguente:
- Scrivere il nuovo valore di configurazione nel Table Write latch utilizzando un'istruzione TBLWTL.
- Configurare NVMCON per una scrittura del registro di configurazione (NVMCON = 0x4000).
- Scrivere l'indirizzo del registro di configurazione da programmare nei registri NVMADRU e NVMADR.
- Disabilita gli interrupt, se abilitati.
- Scrivere la sequenza di tasti nel registro NVMKEY.
- Avviare la sequenza di scrittura impostando il bit WR (NVMCON[15]).
- Riattivare gli interrupt, se necessario.
Example 4-10 mostra la sequenza di codici che può essere utilizzata per modificare un registro di configurazione del dispositivo.
REGISTRATI MAPPA
Un riepilogo dei registri associati alla programmazione Flash è fornito nella Tabella 5-1.
Questa sezione elenca le note applicative relative a questa sezione del manuale. Queste note applicative potrebbero non essere scritte specificamente per le famiglie di prodotti dsPIC33/PIC24, ma i concetti sono pertinenti e potrebbero essere utilizzati con modifiche e possibili limitazioni. Le attuali note applicative relative alla programmazione Flash sono:
Nota: Si prega di visitare il Microchip webposto (www.microchip.com) per ulteriori Application Notes e codice example per le famiglie di dispositivi dsPIC33/PIC24.
CRONOLOGIA DELLE REVISIONI
Revisione A (agosto 2009)
Questa è la versione iniziale rilasciata di questo documento.
Revisione B (febbraio 2011)
Questa revisione include i seguenti aggiornamenti:
- Examples:
- Rimosso esample 5-3 ed esampil 5-4
- Es. aggiornatoample 4-1, Esample 4-5 ed esampil 4-10
- Tutti i riferimenti a #WR sono stati aggiornati a #15 nell'Esample 4-1, Esample 4-5 ed esampil 4-8
- Aggiornato quanto segue nell'Esamplato 4-3:
- Aggiornato il titolo "Programmazione di parole" in "Caricamento dei latch di scrittura per la programmazione delle righe"
- Qualsiasi riferimento a #ram_image è stato aggiornato a #0xFA
- Aggiunto esampil 4-4
- Aggiornato il titolo nell'Esampil 4-8
- Note:
- Aggiunte due note nella Sezione 4.2 “Operazioni di programmazione Flash”
- Aggiornata la nota nella Sezione 4.5.2 “Caricamento dei Write Latch”
- Aggiunte tre note nella sezione 4.6 "Scrittura nei registri di configurazione del dispositivo"
- Aggiunta nota 1 nella tabella 5-1
- Registri:
- Aggiornati i valori dei bit per NVMOP[3:0]: NVM Operation Select bit nel registro Flash Memory Control (NVMCON) (vedere Registro 3-1)
- Sezioni:
- Rimosse le sezioni 5.2.1.4 "Write Word Mode" e 5.2.1.5 "Write Byte Mode"
- Sezione 3.0 aggiornata “Registri di controllo”
- Aggiornato quanto segue nella Sezione 4.5.5 "Programmazione Word":
- Modificato il titolo della sezione "Programmazione di una parola di memoria flash" in "Programmazione di parole"
- Aggiornato il primo comma
- Modificati i termini "una parola" in "un paio di parole" nel secondo paragrafo
- Aggiunto un nuovo passaggio 1 alla sezione 4.6.1 "Algoritmo di scrittura del registro di configurazione"
- Tabelle:
- Tabella aggiornata 5-1
- Alcuni riferimenti alla memoria del programma sono stati aggiornati alla memoria del programma Flash
- Altri aggiornamenti minori come gli aggiornamenti della lingua e della formattazione sono stati incorporati in tutto il documento
Revisione C (giugno 2011)
Questa revisione include i seguenti aggiornamenti:
- Examples:
- Es. aggiornatoampil 4-1
- Es. aggiornatoampil 4-8
- Note:
- Aggiunta una nota nella sezione 4.1 "Operazione RTSP"
- Aggiunta nota 3 nella sezione 4.2 "Operazioni di programmazione Flash"
- Aggiunta nota 3 nella sezione 4.2.1 "Algoritmo di programmazione RTSP"
- Aggiunta una nota nella Sezione 4.5.1 "Cancellazione di una pagina di Flash"
- Aggiunta nota 2 nella sezione 4.5.2 "Caricamento di Write Latch"
- Registri:
- Aggiornata la descrizione dei bit 15-0 nel registro degli indirizzi di memoria non volatile (vedere registro 3-3)
- Sezioni:
- Sezione 4.1 aggiornata "Operazioni RTSP"
- Sezione aggiornata 4.5.5 "Programmazione Word"
- Altri aggiornamenti minori come gli aggiornamenti della lingua e della formattazione sono stati incorporati in tutto il documento
Revisione D (dicembre 2011)
Questa revisione include i seguenti aggiornamenti:
- Sezione 2.1.3 aggiornata "Latch scrittura tabella"
- Sezione 3.2 aggiornata "Registro NVMKEY"
- Aggiornate le note in NVMCON: Flash Memory Control Register (vedi Registro 3-1)
- Sono stati apportati aggiornamenti estesi in tutta la Sezione 4.0 "Run-Time Self-Programming (RTSP)"
- Altri aggiornamenti minori come gli aggiornamenti della lingua e della formattazione sono stati incorporati in tutto il documento
Revisione E (ottobre 2018)
Questa revisione include i seguenti aggiornamenti:
- Aggiunto esample 2-2, Esample 4-2, Esample 4-6 ed esampil 4-9
- Aggiunta sezione 4.5.4 "Programmazione di righe utilizzando il buffer RAM"
- Sezione 1.0 "Introduzione", Sezione 3.3 "Registri indirizzi NVM", Sezione 4.0 "Programmazione automatica in fase di esecuzione (RTSP)" e Sezione 4.5.3 "Programmazione a riga singola Example "
- Registro aggiornato 3-1
- Es. aggiornatoampil 4-7
- Tabella aggiornata 5-1
Revisione F (novembre 2021)
Aggiunta sezione 3.2.1 "Disabilitazione degli interrupt".
Es. aggiornatoample 3-1, Esample 4-1, Esample 4-2, Esample 4-5, Esample 4-6, Esample 4-7, Esample 4-8, Esample 4-9 ed esample 4-10.
Sezione 3.2 "Registro NVMKEY", Sezione 4.5.1 "Cancellazione di una pagina di Flash", Sezione 4.5.3 "Programmazione a riga singola Example” e Sezione 4.6.1 “Algoritmo di scrittura del registro di configurazione”.
Si noti quanto segue in merito alla funzionalità di protezione del codice sui prodotti Microchip:
- I prodotti Microchip soddisfano le specifiche contenute nella rispettiva scheda tecnica Microchip.
- Microchip ritiene che la sua famiglia di prodotti sia sicura se utilizzata nel modo previsto, nel rispetto delle specifiche operative e in condizioni normali.
- Microchip apprezza e protegge in modo aggressivo i suoi diritti di proprietà intellettuale. I tentativi di violare le funzionalità di protezione del codice del prodotto Microchip sono severamente vietati e possono violare il Digital Millennium Copyright Act.
- Né Microchip né altri produttori di semiconduttori possono garantire la sicurezza del suo codice. La protezione del codice non significa che garantiamo che il prodotto è "indistruttibile". La protezione del codice è in continua evoluzione. Microchip si impegna a migliorare continuamente le funzionalità di protezione del codice dei nostri prodotti
Questa pubblicazione e le informazioni ivi contenute possono essere utilizzate solo con i prodotti Microchip, anche per progettare, testare e integrare i prodotti Microchip con l'applicazione. L'uso di queste informazioni in qualsiasi altro modo viola questi termini. Le informazioni relative alle applicazioni del dispositivo sono fornite solo per comodità dell'utente e possono essere sostituite da aggiornamenti. È tua responsabilità assicurarti che la tua applicazione soddisfi le tue specifiche. Contattare l'ufficio vendite Microchip locale per ulteriore supporto o ottenere ulteriore supporto all'indirizzo https://www.microchip.com/en-us/support/design-help/client-supportservices.
QUESTE INFORMAZIONI SONO FORNITE DA MICROCHIP “COSÌ COME SONO”. MICROCHIP NON FORNISCE ALCUNA DICHIARAZIONE O GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, SCRITTA O ORALE, LEGALE O ALTRO, IN RELAZIONE ALLE INFORMAZIONI INCLUSE MA NON LIMITATE A GARANZIE IMPLICITE DI NON VIOLAZIONE, COMMERCIABILITÀ E IDONEITÀ PER UNO SCOPO PARTICOLARE O GARANZIE RELATIVE A LA SUA CONDIZIONE, QUALITÀ O PRESTAZIONI. IN NESSUN CASO MICROCHIP SARÀ RESPONSABILE PER QUALSIASI PERDITA, DANNO, COSTO O SPESA INDIRETTI, SPECIALI, PUNITIVI, INCIDENTALI O CONSEQUENZIALI DI QUALSIASI TIPO RELATIVI ALLE INFORMAZIONI O AL SUO UTILIZZO, COMUNQUE CAUSATI, ANCHE SE MICROCHIP È STATA INFORMATA DEL LA POSSIBILITÀ OI DANNI SONO PREVEDIBILI. NELLA MISURA MASSIMA CONSENTITA DALLA LEGGE, LA TOTALE RESPONSABILITÀ DI MICROCHIP PER TUTTE LE RIVENDICAZIONI IN QUALSIASI MODO RELATIVE ALLE INFORMAZIONI O AL SUO UTILIZZO NON SUPERERÀ L'IMPORTO DELLE EVENTUALI TARIFFE CHE HAI PAGATO DIRETTAMENTE A MICROCHIP PER LE INFORMAZIONI.
L'uso dei dispositivi Microchip in applicazioni di supporto vitale e/o di sicurezza è interamente a rischio dell'acquirente, il quale accetta di difendere, indennizzare e tenere indenne Microchip da qualsiasi danno, reclamo, causa o spesa risultante da tale uso. Nessuna licenza viene trasferita, implicitamente o in altro modo, in base ai diritti di proprietà intellettuale di Microchip, salvo diversamente specificato.
Per informazioni sui sistemi di gestione della qualità di Microchip, visitare www.microchip.com/qualità.
Marchi
Il nome e il logo Microchip, il logo Microchip, Adaptec, AnyRate, AVR, logo AVR, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, logo Microsemi, MOST, logo MOST, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, logo PIC32, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, logo SST, SuperFlash , Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron e XMEGA sono marchi registrati di Microchip Technology Incorporated negli Stati Uniti e in altri paesi. AgileSwitch, APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed Control, HyperLight Load, IntelliMOS, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, logo ProASIC Plus, QuietWire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime, WinPath e ZL sono marchi registrati di Microchip Technology Incorporated negli Stati Uniti
Soppressione della chiave adiacente, AKS, Analog-for-The-Digital Age, Any Capacitor, AnyIn, AnyOut, Augmented Switching, BlueSky, BodyCom, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM , ECAN, Espresso T1S, EtherGREEN, GridTime, IdealBridge, In-Circuit Serial Programming, ICSP, INICnet, Intelligent Paralleling, Inter-Chip Connectivity, JitterBlocker, Knob-on-Display, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, logo certificato MPLAB, MPLIB, MPLINK, MultiTRAK, NetDetach, NVM Express, NVMe, generazione di codice onnisciente, PICDEM, PICDEM.net, PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE , Ripple Blocker, RTAX, RTG4, SAM-ICE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, TSHARC, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect e ZENA sono marchi registrati di Microchip Technology Incorporated negli Stati Uniti e in altri paesi.
SQTP è un marchio di servizio di Microchip Technology Incorporated negli USA
Il logo Adaptec, Frequency on Demand, Silicon Storage Technology, Symmcom e Trusted Time sono marchi registrati di Microchip Technology Inc. in altri paesi.
GestIC è un marchio registrato di Microchip Technology Germany II GmbH & Co. KG, una sussidiaria di Microchip Technology Inc., in altri paesi.
Tutti gli altri marchi qui menzionati sono di proprietà delle rispettive aziende.
© 2009-2021, Microchip Technology Incorporated e le sue sussidiarie.
Tutti i diritti riservati.
ISBN: 978-1-5224-9314-3
Vendite e assistenza in tutto il mondo
AMERICHE
- Sede aziendale
2355 West Chandler Boulevard.
Chandler, AZ 85224-6199
Tel: Numero di telefono: 480-792-7200
Fax: Numero di telefono: 480-792-7277
Supporto tecnico: http://www.microchip.com/
supporto Web Indirizzo: www.microchip.com - Atlanta
Duluth, Georgia
Tel: Numero di telefono: 678-957-9614
Fax: Numero di telefono: 678-957-1455 - Austin, Texas
Tel: Numero di telefono: 512-257-3370 - Boston
Westborough, MA
Tel: Numero di telefono: 774-760-0087
Fax: Numero di telefono: 774-760-0088 - Chicago
Itasca, IL
Tel: Numero di telefono: 630-285-0071
Fax: Numero di telefono: 630-285-0075 - Dallas
Addison, TX
Tel: Numero di telefono: 972-818-7423
Fax: Numero di telefono: 972-818-2924 - Detroit
Novi, MI
Tel: Numero di telefono: 248-848-4000 - Houston, Texas
Tel: Numero di telefono: 281-894-5983 - Indianapolis
Noblesville, Indiana
Tel: Numero di telefono: 317-773-8323
Fax: Numero di telefono: 317-773-5453
Tel: Numero di telefono: 317-536-2380 - Los Angeles
Missione Viejo, California
Tel: Numero di telefono: 949-462-9523
Fax: Numero di telefono: 949-462-9608
Tel: Numero di telefono: 951-273-7800 - Raleigh, Carolina del Nord
Tel: Numero di telefono: 919-844-7510 - Nuova York, Stati Uniti
Tel: Numero di telefono: 631-435-6000 - San Jose, California
Tel: Numero di telefono: 408-735-9110
Tel: Numero di telefono: 408-436-4270 - Canada – Toronto
Tel: Numero di telefono: 905-695-1980
Fax: Numero di telefono: 905-695-2078
ASIA/PACIFICO
- Australia – Sidney
Tel: Numero di parte 61-2-9868-6733 - Cina – Pechino
Tel: Numero di parte 86-10-8569-7000 - Cina – Chengdu
Tel: Numero di parte 86-28-8665-5511 - Cina – Chongqing
Tel: Numero di parte 86-23-8980-9588 - Cina – Dongguan
Tel: Numero di parte 86-769-8702-9880 - Cina – Canton
Tel: Numero di parte 86-20-8755-8029 - Cina – Hangzhou
Tel: Numero di parte 86-571-8792-8115 - Cina – RAS di Hong Kong
Tel: Numero di telefono: 852-2943-5100 - Cina – Nanchino
Tel: Numero di parte 86-25-8473-2460 - Cina – Qingdao
Tel: Numero di parte 86-532-8502-7355 - Cina – Shanghai
Tel: Numero di parte 86-21-3326-8000 - Cina – Shenyang
Tel: Numero di parte 86-24-2334-2829 - Cina – Shenzhen
Tel: Numero di parte 86-755-8864-2200 - Cina – Suzhou
Tel: Numero di parte 86-186-6233-1526 - Cina – Wuhan
Tel: Numero di parte 86-27-5980-5300 - Cina – Xian
Tel: Numero di parte 86-29-8833-7252 - Cina – Xiamen
Tel: Numero di telefono: 86-592-2388138 - Cina – Zhuhai
Tel: Numero di telefono: 86-756-3210040 - India – Bangalore
Tel: Numero di parte 91-80-3090-4444 - India – Nuova Delhi
Tel: Numero di parte 91-11-4160-8631 - India – Puna
Tel: Numero di parte 91-20-4121-0141 - Giappone – Osaka
Tel: Numero di parte 81-6-6152-7160 - Giappone – Tokyo
Tel: 81-3-6880- 3770 - Corea – Daegu
Tel: Numero di parte 82-53-744-4301 - Corea – Seul
Tel: Numero di parte 82-2-554-7200 - Malesia – Kuala Lumpur
Tel: Numero di parte 60-3-7651-7906 - Malesia – Penang
Tel: Numero di parte 60-4-227-8870 - Filippine – Manila
Tel: Numero di parte 63-2-634-9065 - Singapore
Tel: Numero di telefono: 65-6334-8870 - Taiwan – Hsin Chu
Tel: Numero di parte 886-3-577-8366 - Taiwan-Kaohsiung
Tel: Numero di parte 886-7-213-7830 - Taiwan-Taipei
Tel: Numero di parte 886-2-2508-8600 - Thailandia – Bangkok
Tel: Numero di parte 66-2-694-1351 - Vietnam-Ho Chi Minh
Tel: Numero di parte 84-28-5448-2100
EUROPA
- Austria – Wels
Tel: Numero di parte 43-7242-2244-39
Fax: Numero di parte 43-7242-2244-393 - Danimarca – Copenaghen
Tel: Numero di telefono: 45-4485-5910
Fax: Numero di telefono: 45-4485-2829 - Finlandia – Espoo
Tel: 358-9-4520-820 - Francia – Parigi
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79 - Germania – Garching
Tel: Numero di telefono: 49-8931-9700 - Germania – Haan
Tel: Numero di telefono: 49-2129-3766400 - Germania – Heilbronn
Tel: Numero di telefono: 49-7131-72400 - Germania – Karlsruhe
Tel: Numero di telefono: 49-721-625370 - Germania – Monaco di Baviera
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44 - Germania – Rosenheim
Tel: Numero di parte 49-8031-354-560 - Italia – Milano
Tel: Numero di telefono: 39-0331-742611
Fax: Numero di telefono: 39-0331-466781 - Italia – Padova
Tel: Numero di telefono: 39-049-7625286 - Paesi Bassi – Drunen
Tel: Numero di telefono: 31-416-690399
Fax: Numero di telefono: 31-416-690340 - Norvegia – Trondheim
Tel: Numero di telefono: 47-7288-4388 - Polonia – Varsavia
Tel: Numero di telefono: 48-22-3325737 - Romania – Bucarest
Tel: 40-21-407-87-50 - Spagna – Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91 - Svezia – Göteborg
Tel: 46-31-704-60-40 - Svezia – Stoccolma
Tel: Numero di parte 46-8-5090-4654 - Regno Unito – Wokingham
Tel: Numero di parte 44-118-921-5800
Fax: Numero di parte 44-118-921-5820
Nota:
Questa sezione del manuale di riferimento della famiglia ha lo scopo di fungere da complemento alle schede tecniche del dispositivo. A seconda della variante del dispositivo, questa sezione del manuale potrebbe non essere applicabile a tutti i dispositivi dsPIC33/PIC24. Si prega di consultare la nota all'inizio del capitolo "Memoria di programma flash" nella scheda tecnica del dispositivo corrente per verificare se questo documento supporta il dispositivo che si sta utilizzando.
Le schede tecniche del dispositivo e le sezioni del manuale di riferimento della famiglia sono disponibili per il download da Microchip Worldwide Websito a: http://www.microchip.com.
Documenti / Risorse
![]() |
MICROCHIP PIC24 Programmazione Flash [pdf] Guida utente Programmazione Flash PIC24, PIC24, Programmazione Flash, Programmazione |
![]() |
MICROCHIP PIC24 Programmazione Flash [pdf] Guida utente Programmazione Flash PIC24, PIC24, Programmazione Flash |






