MICROCHIP PIC24 Flash-Programmierung Benutzerhandbuch

MICROCHIP-PIC24-Flash-Programming-FEA

MIKROCHIP-LOGO

MICROCHIP PIC24 Flash-Programmierung

MICROCHIP-PIC24-Flash-Programmierung-PRO

Produktinformationen

Flash-Programmierung
Die Gerätefamilien dsPIC33/PIC24 verfügen über einen internen programmierbaren Flash-Programmspeicher zur Ausführung von Benutzercode. Es gibt bis zu drei Methoden, um diesen Speicher zu programmieren:

  • Tabelle Anweisung Betrieb
  • Serielle In-Circuit-Programmierung (ICSP)
  • In-Application-Programmierung (IAP)

Tabellenbefehle bieten die Methode zum Übertragen von Daten zwischen dem Flash-Programmspeicherbereich und dem Datenspeicherbereich von dsPIC33/PIC24-Geräten. Der TBLRDL-Befehl wird verwendet, um aus den Bits [15:0] des Programmspeicherplatzes zu lesen. Der TBLWTL-Befehl wird verwendet, um in die Bits [15:0] des Flash-Programmspeicherplatzes zu schreiben. TBLRDL und TBLWTL können im Word-Modus oder im Byte-Modus auf den Flash-Programmspeicher zugreifen.

Zusätzlich zur Flash-Programmspeicheradresse spezifiziert der Tabellenbefehl auch ein W-Register (oder einen W-Registerzeiger auf eine Speicherstelle), das heißt die Quelle der zu schreibenden Flash-Programmspeicherdaten oder das Ziel für ein Flash-Programm Speicher gelesen.

Dieser Abschnitt beschreibt die Technik zum Programmieren des Flash-Programmspeichers. Die Gerätefamilien dsPIC33/PIC24 verfügen über einen internen programmierbaren Flash-Programmspeicher zur Ausführung von Benutzercode. Es gibt bis zu drei Methoden, um diesen Speicher zu programmieren:

  • Laufzeit-Selbstprogrammierung (RTSP)
  • In-Circuit Serial Programming™ (ICSP™)
  • Verbesserte serielle In-Circuit-Programmierung (EICSP)

RTSP wird von der Anwendungssoftware während der Ausführung durchgeführt, während ICSP und EICSP von einem externen Programmierer unter Verwendung einer seriellen Datenverbindung zum Gerät durchgeführt werden. ICSP und EICSP ermöglichen eine viel schnellere Programmierzeit als RTSP. RTSP-Techniken werden in Abschnitt 4.0 „Run-Time Self-Programming (RTSP)“ beschrieben. Die ICSP- und EICSP-Protokolle sind in den Programmierspezifikationsdokumenten für die jeweiligen Geräte definiert, die von Microchip heruntergeladen werden können webSeite? ˅ (http://www.microchip.com). Beim Programmieren in der Sprache C stehen mehrere integrierte Funktionen zur Verfügung, die die Flash-Programmierung erleichtern. Einzelheiten zu integrierten Funktionen finden Sie im „MPLAB® XC16 C Compiler User's Guide“ (DS50002071).

Anweisungen zur Produktverwendung

Um den Flash-Programmspeicher zu programmieren, gehen Sie folgendermaßen vor:

  1. Sehen Sie im Gerätedatenblatt nach, ob der Abschnitt des Familien-Referenzhandbuchs das von Ihnen verwendete Gerät unterstützt.
  2. Laden Sie die Abschnitte des Gerätedatenblatts und des Familienreferenzhandbuchs von Microchip Worldwide herunter WebWebsite unter: http://www.microchip.com.
  3. Wählen Sie eine der drei Methoden zum Programmieren des Speichers (Table Instruction Operation, In-Circuit Serial Programming (ICSP), In-Application Programming (IAP)).
  4. Wenn Sie den Tabellenbefehlsbetrieb verwenden, verwenden Sie den TBLRDL-Befehl zum Lesen von Bits[15:0] des Programmspeicherbereichs und den TBLWTL-Befehl zum Schreiben in Bits[15:0] des Flash-Programmspeicherbereichs.
  5. Achten Sie darauf, ein W-Register (oder einen W-Registerzeiger auf eine Speicherstelle) als Quelle der zu schreibenden Flash-Programmspeicherdaten oder als Ziel für das Lesen eines Flash-Programmspeichers anzugeben.

Weitere Informationen und Details zur Programmierung des Flash-Programmspeichers finden Sie im dsPIC33/PIC24 Family Reference Manual.

TISCHANWEISUNG BETRIEB

Die Tabellenanweisungen bieten die Methode zum Übertragen von Daten zwischen dem Flash-Programmspeicherbereich und dem Datenspeicherbereich von dsPIC33/PIC24-Geräten. Dieser Abschnitt enthält eine Zusammenfassung der Tabellenbefehle, die während der Programmierung des Flash-Programmspeichers verwendet werden. Es gibt vier grundlegende Tabellenanweisungen:

  • TBLRDL: Tabellenlesewert niedrig
  • TBLRDH: Tabelle hoch gelesen
  • TBLWTL: Tabelle schreiben niedrig
  • TBLWTH: Tabelle schreiben hoch

Der TBLRDL-Befehl wird verwendet, um aus den Bits [15:0] des Programmspeicherplatzes zu lesen. Der TBLWTL-Befehl wird verwendet, um in die Bits [15:0] des Flash-Programmspeicherplatzes zu schreiben. TBLRDL und TBLWTL können im Word-Modus oder im Byte-Modus auf den Flash-Programmspeicher zugreifen.

Die Befehle TBLRDH und TBLWTH werden verwendet, um Bits [23:16] des Programmspeicherplatzes zu lesen oder zu schreiben. TBLRDH und TBLWTH können im Word- oder Byte-Modus auf den Flash-Programmspeicher zugreifen. Da der Flash-Programmspeicher nur 24 Bit breit ist, können die Befehle TBLRDH und TBLWTH ein nicht vorhandenes oberes Byte des Flash-Programmspeichers adressieren. Dieses Byte wird als „Phantombyte“ bezeichnet. Jeder Lesevorgang des Phantombytes gibt 0x00 zurück. Ein Schreiben auf das Phantombyte hat keine Auswirkung. Der 24-Bit-Flash-Programmspeicher kann als zwei nebeneinander liegende 16-Bit-Räume betrachtet werden, wobei sich jeder Raum denselben Adressbereich teilt. Daher greifen die Befehle TBLRDL und TBLWTL auf den "niedrigen" Programmspeicherplatz (PM[15:0]) zu. Die Befehle TBLRDH und TBLWTH greifen auf den "hohen" Programmspeicherplatz (PM[31:16]) zu. Alle Lese- oder Schreibvorgänge an PM[31:24] greifen auf das Phantom-Byte (nicht implementiert) zu. Wenn einer der Tabellenbefehle im Bytemodus verwendet wird, wird das niederwertigste Bit (LSb) der Tabellenadresse als Byteauswahlbit verwendet. Das LSb bestimmt, auf welches Byte im hohen oder niedrigen Programmspeicherraum zugegriffen wird.

Abbildung 2-1 zeigt, wie der Flash-Programmspeicher mit Hilfe der Tabellenanweisungen adressiert wird. Eine 24-Bit-Programmspeicheradresse wird unter Verwendung von Bits[7:0] des TBLPAG-Registers und der effektiven Adresse (EA) aus einem in der Tabellenanweisung spezifizierten W-Register gebildet. Der 24-Bit-Programmzähler (PC) ist in Abbildung 2-1 als Referenz dargestellt. Die oberen 23 Bits des EA werden verwendet, um den Speicherort des Flash-Programms auszuwählen.

Für die Byte-Modus-Tabellenbefehle wird das LSb des W-Registers EA verwendet, um auszuwählen, welches Byte des 16-Bit-Flash-Programmspeicherworts adressiert wird; '1' wählt Bits[15:8] und '0' wählt Bits[7:0] aus. Das LSb des W-Registers EA wird für einen Tabellenbefehl im Wortmodus ignoriert. Zusätzlich zur Flash-Programmspeicheradresse spezifiziert der Tabellenbefehl auch ein W-Register (oder einen W-Registerzeiger auf eine Speicherstelle), das heißt die Quelle der zu schreibenden Flash-Programmspeicherdaten oder das Ziel für ein Flash-Programm Speicher gelesen. Für eine Tabellenschreiboperation im Byte-Modus werden die Bits[15:8] des Quellen-Arbeitsregisters ignoriert.MICROCHIP-PIC24-Flash-Programmierung- (1)

Verwenden von Tabellenleseanweisungen
Tabellenlesevorgänge erfordern zwei Schritte:

  1. Der Adresszeiger wird unter Verwendung des TBLPAG-Registers und eines der W-Register eingerichtet.
  2. Der Inhalt des Flash-Programmspeichers an der Adressstelle kann gelesen werden.

 

  1. MODUS WORT LESEN
    Der Code in Bspample 2-1 und Bspample 2-2 zeigt, wie ein Wort aus dem Flash-Programmspeicher mit den Tabellenanweisungen im Wortmodus gelesen wird.MICROCHIP-PIC24-Flash-Programmierung- (2) MICROCHIP-PIC24-Flash-Programmierung- (3)
  2. BYTE-MODUS LESEN
    Der Code in Bspample 2-3 zeigt den Post-Increment-Operator beim Lesen des Low-Bytes, der bewirkt, dass die Adresse im Working-Register um eins erhöht wird. Dies setzt EA[0] auf '1' für den Zugriff auf das mittlere Byte im dritten Schreibbefehl. Das letzte Post-Inkrement setzt W0 auf eine gerade Adresse zurück und zeigt auf die nächste Speicherstelle des Flash-Programms.MICROCHIP-PIC24-Flash-Programmierung- (4)
  3. TABELLE SCHREIBVERSCHLÜSSE
    Tabellenschreibbefehle schreiben nicht direkt in den nichtflüchtigen Programmspeicher. Stattdessen laden die Tabellenschreibbefehle Schreiblatches, die die Schreibdaten speichern. Die NVM-Adressregister müssen mit der ersten Adresse geladen werden, wo zwischengespeicherte Daten geschrieben werden sollen. Wenn alle Schreib-Latches geladen sind, wird die eigentliche Speicherprogrammieroperation gestartet, indem eine spezielle Befehlsfolge ausgeführt wird. Während des Programmierens überträgt die Hardware die Daten in den Schreiblatches zum Flash-Speicher. Die Schreiblatches beginnen immer bei Adresse 0xFA0000 und erstrecken sich bis 0xFA0002 für Wortprogrammierung oder bis 0xFA00FE für Geräte mit Zeilenprogrammierung.

Notiz: Die Anzahl der Schreib-Latches variiert je nach Gerät. Informationen zur Anzahl der verfügbaren Schreib-Latches finden Sie im Kapitel „Flash-Programmspeicher“ des jeweiligen Gerätedatenblatts.

KONTROLLREGISTER

Mehrere Spezialfunktionsregister (SFRs) werden verwendet, um die Lösch- und Schreiboperationen des Flash-Programmspeichers zu programmieren: NVMCON, NVMKEY und die NVM-Adressregister NVMADR und NVMADRU.

NVMCON-Register
Das NVMCON-Register ist das primäre Steuerregister für Flash- und Programmier-/Löschoperationen. Dieses Register wählt aus, ob eine Lösch- oder Programmieroperation durchgeführt wird, und kann den Programmier- oder Löschzyklus starten. Das NVMCON-Register wird in Register 3-1 angezeigt. Das untere Byte von NVMCON konfiguriert die Art der NVM-Operation, die durchgeführt wird.

NVMKEY-Register
Das NVMKEY-Register (siehe Register 3-4) ist ein Nur-Schreiben-Register, das verwendet wird, um versehentliche Schreibvorgänge von NVMCON zu verhindern, die den Flash-Speicher beschädigen können. Nach dem Entsperren sind Schreibvorgänge in NVMCON für einen Befehlszyklus erlaubt, in dem das WR-Bit gesetzt werden kann, um eine Lösch- oder Programmierroutine aufzurufen. Angesichts der zeitlichen Anforderungen ist das Deaktivieren von Interrupts erforderlich.
Führen Sie die folgenden Schritte aus, um eine Lösch- oder Programmiersequenz zu starten:

  1. Interrupts deaktivieren.
  2. Schreiben Sie 0x55 in NVMKEY.
  3. Schreiben Sie 0xAA in NVMKEY.
  4. Starten Sie den Programmierschreibzyklus durch Setzen des WR-Bits (NVMCON[15]).
  5. Führen Sie zwei NOP-Befehle aus.
  6. Interrupts wiederherstellen.

MICROCHIP-PIC24-Flash-Programmierung- (5)

UNTERBRECHUNGEN DEAKTIVIEREN
Das Deaktivieren von Interrupts ist für alle Flash-Vorgänge erforderlich, um ein erfolgreiches Ergebnis sicherzustellen. Wenn während der NVMKEY-Entsperrsequenz ein Interrupt auftritt, kann er das Schreiben in das WR-Bit blockieren. Die NVMKEY-Entsperrsequenz muss ohne Unterbrechung ausgeführt werden, wie in Abschnitt 3.2 „NVMKEY-Registrierung“ beschrieben.

Interrupts können auf eine von zwei Arten deaktiviert werden, indem das Global Interrupt Enable (GIE-Bit) deaktiviert wird oder indem der DISI-Befehl verwendet wird. Der DISI-Befehl wird nicht empfohlen, da er nur Interrupts mit Priorität 6 oder darunter deaktiviert; daher sollte die Methode Global Interrupt Enable verwendet werden.

CPU-Schreibvorgänge in GIE benötigen zwei Befehlszyklen, bevor sie den Codefluss beeinflussen. Danach werden zwei NOP-Anweisungen benötigt oder können durch andere nützliche Arbeitsanweisungen ersetzt werden, z. B. das Laden von NVMKEY; dies gilt sowohl für Setz- als auch für Löschoperationen. Beim erneuten Aktivieren von Interrupts sollte darauf geachtet werden, dass die NVM-Zielroutine keine Interrupts zulässt, wenn eine zuvor aufgerufene Funktion sie aus anderen Gründen deaktiviert hat. Um dies in Assembly anzugehen, kann ein Stack-Push und -Pop verwendet werden, um den Zustand des GIE-Bits beizubehalten. In C kann eine Variable im RAM verwendet werden, um INTCON2 vor dem Löschen von GIE zu speichern. Verwenden Sie die folgende Sequenz, um Interrupts zu deaktivieren:

  1. Schieben Sie INTCON2 auf den Stack.
  2. Löschen Sie das GIE-Bit.
  3. Zwei NOPs oder Schreibvorgänge in NVMKEY.
  4. Starten Sie den Programmierzyklus durch Setzen des WR-Bits (NVMCON[15]).
  5. Stellen Sie den GIE-Zustand durch POP von INTCON2 wieder her.MICROCHIP-PIC24-Flash-Programmierung- (6)

NVM-Adressregister
Die beiden NVM-Adressregister NVMADRU und NVMADR bilden, wenn sie verkettet sind, den 24-Bit-EA der ausgewählten Zeile oder des ausgewählten Worts für Programmieroperationen. Das NVMADRU-Register wird verwendet, um die oberen acht Bits des EA zu halten, und das NVMADR-Register wird verwendet, um die unteren 16 Bits des EA zu halten. Einige Geräte beziehen sich möglicherweise auf dieselben Register wie NVMADRL und NVMADRH. Die NVM-Adressregister sollten immer auf eine Doppelbefehlswortgrenze zeigen, wenn eine Doppelbefehlswort-Programmieroperation durchgeführt wird, eine Reihengrenze, wenn eine Reihenprogrammieroperation durchgeführt wird, oder eine Seitengrenze, wenn eine Seitenlöschoperation durchgeführt wird.

Register 3-1: NVMCON: Flash-Speicher-SteuerregisterMICROCHIP-PIC24-Flash-Programmierung- (7) MICROCHIP-PIC24-Flash-Programmierung- (8)

Notiz

  1. Dieses Bit kann nur bei einem Power-on Reset (POR) zurückgesetzt (dh gelöscht) werden.
  2. Beim Verlassen des Leerlaufmodus gibt es eine Einschaltverzögerung (TVREG), bevor der Flash-Programmspeicher betriebsbereit wird. Weitere Informationen finden Sie im Kapitel „Elektrische Eigenschaften“ des jeweiligen Gerätedatenblatts.
  3. Alle anderen Kombinationen von NVMOP[3:0] sind nicht implementiert.
  4. Diese Funktion ist nicht auf allen Geräten verfügbar. Informationen zu den verfügbaren Funktionen finden Sie im Kapitel „Flash-Programmspeicher“ im Datenblatt des jeweiligen Geräts.
  5. Der Eintritt in einen Stromsparmodus nach dem Ausführen eines PWRSAV-Befehls hängt von der Beendigung aller anhängigen NVM-Operationen ab.
  6. Dieses Bit ist nur auf Geräten verfügbar, die eine RAM-gepufferte Zeilenprogrammierung unterstützen. Verfügbarkeit siehe gerätespezifisches Datenblatt.

MICROCHIP-PIC24-Flash-Programmierung- (9)

Notiz

  1. Dieses Bit kann nur bei einem Power-on Reset (POR) zurückgesetzt (dh gelöscht) werden.
  2. Beim Verlassen des Leerlaufmodus gibt es eine Einschaltverzögerung (TVREG), bevor der Flash-Programmspeicher betriebsbereit wird. Weitere Informationen finden Sie im Kapitel „Elektrische Eigenschaften“ des jeweiligen Gerätedatenblatts.
  3. Alle anderen Kombinationen von NVMOP[3:0] sind nicht implementiert.
  4. Diese Funktion ist nicht auf allen Geräten verfügbar. Informationen zu den verfügbaren Funktionen finden Sie im Kapitel „Flash-Programmspeicher“ im Datenblatt des jeweiligen Geräts.
  5. Der Eintritt in einen Stromsparmodus nach dem Ausführen eines PWRSAV-Befehls hängt von der Beendigung aller anhängigen NVM-Operationen ab.
  6. Dieses Bit ist nur auf Geräten verfügbar, die eine RAM-gepufferte Zeilenprogrammierung unterstützen. Verfügbarkeit siehe gerätespezifisches Datenblatt.

Register 3-2: NVMADRU: Oberes Adressregister des nichtflüchtigen Speichers

MICROCHIP-PIC24-Flash-Programmierung- (10)

Register 3-3: NVMADR: Adressregister des nichtflüchtigen Speichers

MICROCHIP-PIC24-Flash-Programmierung- (11)

Register 3-4: NVMKEY: Schlüsselregister für nichtflüchtigen Speicher

MICROCHIP-PIC24-Flash-Programmierung- (12)

LAUFZEIT-SELBSTPROGRAMMIERUNG (RTSP)

RTSP ermöglicht der Benutzeranwendung, den Inhalt des Flash-Programmspeichers zu ändern. RTSP wird unter Verwendung der Befehle TBLRD (Table Read) und TBLWT (Table Write), des TBLPAG-Registers und der NVM-Steuerregister ausgeführt. Mit RTSP kann die Benutzeranwendung eine einzelne Seite des Flash-Speichers löschen und entweder zwei Befehlswörter oder bis zu 128 Befehlswörter auf bestimmten Geräten programmieren.

RTSP-Betrieb
Der Flash-Programmspeicher der dsPIC33/PIC24-Familien ist in Löschseiten organisiert, die bis zu 1024 Befehle enthalten können. Die Doppelwortprogrammierung ist bei allen Geräten der dsPIC33/PIC24-Familien verfügbar. Einige Geräte bieten zusätzlich die Möglichkeit der Zeilenprogrammierung, wodurch bis zu 128 Befehlswörter gleichzeitig programmiert werden können. Programmier- und Löschvorgänge erfolgen stets an geraden Doppelwort-, Zeilen- oder Seitengrenzen. Informationen zur Verfügbarkeit und Größe einer Programmierzeile sowie zur Seitengröße finden Sie im Kapitel „Flash-Programmspeicher“ des jeweiligen Gerätedatenblatts.asing. Der Flash-Programmspeicher verfügt über Zwischenspeicher, sogenannte Schreibspeicher, die je nach Gerät bis zu 128 Programmierbefehle aufnehmen können. Vor dem eigentlichen Programmiervorgang müssen die Schreibdaten in die Schreibspeicher geladen werden. Die grundlegende Sequenz für RTSP (Remotely Time Programming) besteht darin, den Tabellenzeiger (TBLPAG-Register) zu setzen und anschließend eine Reihe von TBLWT-Befehlen auszuführen, um die Schreibspeicher zu laden. Die Programmierung erfolgt durch Setzen der Steuerbits im NVMCON-Register. Die Anzahl der zum Laden der Schreibspeicher benötigten TBLWTL- und TBLWTH-Befehle entspricht der Anzahl der zu schreibenden Programmwörter.

Notiz: Es wird empfohlen, das TBLPAG-Register vor der Änderung zu speichern und nach der Verwendung wiederherzustellen.

VORSICHT
Bei einigen Geräten werden die Konfigurationsbits auf der letzten Seite des Flash-Benutzerspeicherplatzes des Programms in einem Abschnitt namens „Flash Configuration Bytes“ gespeichert. Bei diesen Geräten werden durch die Durchführung einer Seitenlöschoperation auf der letzten Seite des Programmspeichers die Flash-Konfigurationsbytes gelöscht, wodurch der Codeschutz aktiviert wird. Daher sollten Benutzer keine Seitenlöschoperationen auf der letzten Seite des Programmspeichers durchführen. Dies ist kein Problem, wenn die Konfigurationsbits im Konfigurationsspeicherraum in einem Abschnitt mit der Bezeichnung „Gerätekonfigurationsregister“ gespeichert werden. Beziehen Sie sich auf die Program Memory Map im Kapitel „Memory Organization“ des jeweiligen Gerätedatenblatts, um zu bestimmen, wo sich die Konfigurationsbits befinden.

Flash-Programmiervorgänge
Für das Programmieren oder Löschen ist ein Programmier- oder Löschvorgang erforderlich.asinDer interne Flash-Programmspeicher wird im RTSP-Modus beschrieben. Die Programmier- oder Löschvorgänge werden vom Gerät automatisch getaktet (siehe Datenblatt des jeweiligen Geräts für detaillierte Informationen). Durch Setzen des WR-Bits (NVMCON[15]) wird der Vorgang gestartet. Das WR-Bit wird nach Abschluss des Vorgangs automatisch gelöscht. Die CPU pausiert, bis der Programmiervorgang abgeschlossen ist. Während dieser Zeit führt die CPU keine Befehle aus und reagiert nicht auf Interrupts. Treten während des Programmierzyklus Interrupts auf, bleiben diese bis zum Abschluss des Zyklus ausstehend. Einige dsPIC33/PIC24-Geräte verfügen über einen zusätzlichen Flash-Programmspeicher (siehe Kapitel „Speicherorganisation“ im Datenblatt des jeweiligen Geräts für Details). Dieser ermöglicht die Befehlsausführung ohne CPU-Pausen, während der Benutzer-Flash-Programmspeicher gelöscht und/oder programmiert wird. Umgekehrt kann der zusätzliche Flash-Programmspeicher ohne CPU-Pausen programmiert werden, solange Code aus dem Benutzer-Flash-Programmspeicher ausgeführt wird. Der NVM-Interrupt signalisiert das Ende des Programmiervorgangs.

Notiz

  1. Wenn ein POR- oder BOR-Ereignis auftritt, während eine RTSP-Lösch- oder Programmieroperation im Gange ist, wird die RTSP-Operation sofort abgebrochen. Der Benutzer sollte den RTSP-Vorgang erneut ausführen, nachdem das Gerät den Reset beendet hat.
  2. Wenn ein EXTR-, SWR-, WDTO-, TRAPR-, CM- oder IOPUWR-Reset-Ereignis auftritt, während ein RTSP-Lösch- oder Programmiervorgang ausgeführt wird, wird das Gerät erst zurückgesetzt, nachdem der RTSP-Vorgang abgeschlossen ist.

RTSP-PROGRAMMIERALGORITHMUS
Dieser Abschnitt beschreibt die RTSP-Programmierung, die aus drei Hauptprozessen besteht.

Erstellen eines RAM-Images der zu ändernden Datenseite
Führen Sie diese beiden Schritte aus, um ein RAM-Image der zu ändernden Datenseite zu erstellen:

  1. Lesen Sie die Seite des Flash-Programmspeichers und speichern Sie sie als Daten-„Bild“ im Daten-RAM. Das RAM-Bild muss beginnend von einer Seitenadressengrenze gelesen werden.
  2. Ändern Sie das RAM-Datenabbild nach Bedarf.

Erasing Flash-Programmspeicher
Führen Sie nach Abschluss der Schritte 1 und 2 oben die folgenden vier Schritte aus, um die Flash-Programmspeicherseite zu löschen:

  1. Setzen Sie die NVMOP[3:0]-Bits (NVMCON[3:0]), um die in Schritt 1 gelesene Seite des Flash-Programmspeichers zu löschen.
  2. Schreiben Sie die Startadresse der zu löschenden Seite in die NVMADRU- und NMVADR-Register.
  3. Mit deaktivierten Interrupts:
    • a) Schreiben Sie die Schlüsselsequenz in das NVMKEY-Register, um das Setzen des WR-Bits (NVMCON[15]) zu ermöglichen.
    • b) Setzen Sie das WR-Bit; Dadurch wird der Löschzyklus gestartet.
    • c) Führen Sie zwei NOP-Befehle aus.
  4. Das WR-Bit wird gelöscht, wenn der Löschzyklus abgeschlossen ist.

Programmieren der Flash-Speicherseite
Der nächste Teil des Prozesses besteht darin, die Flash-Speicherseite zu programmieren. Die Flash-Speicherseite wird unter Verwendung der Daten aus dem in Schritt 1 erstellten Abbild programmiert. Die Daten werden in Inkrementen von entweder doppelten Befehlswörtern oder Zeilen zu den Schreib-Latches übertragen. Alle Geräte verfügen über eine Doppelbefehlswort-Programmierfunktion. (Lesen Sie im Kapitel „Flash-Programmspeicher“ im Datenblatt des jeweiligen Geräts nach, ob und welche Art von Zeilenprogrammierung verfügbar ist.) Nachdem die Schreib-Latches geladen wurden, wird der Programmiervorgang eingeleitet, der die Daten vom überträgt Latches in den Flash-Speicher schreiben. Dies wird wiederholt, bis die gesamte Seite programmiert ist. Wiederholen Sie die folgenden drei Schritte, beginnend mit dem ersten Anweisungswort der Flash-Seite und in Schritten von entweder doppelten Programmwörtern oder Anweisungszeilen inkrementierend, bis die gesamte Seite programmiert ist:

  1. Laden Sie die Schreiblatches:
    • a) Setzen Sie das TBLPAG-Register so, dass es auf den Ort der Schreib-Latches zeigt.
    • b) Laden Sie die gewünschte Anzahl von Latches mit Paaren von TBLWTL- und TBLWTH-Anweisungen:
    • Für die Doppelwortprogrammierung sind zwei Paare von TBLWTL- und TBLWTH-Befehlen erforderlich
    • Für die Zeilenprogrammierung ist ein Paar TBLWTL- und TBLWTH-Befehle für jedes Befehlswort-Zeilenelement erforderlich
  2. Programmiervorgang einleiten:
    • a) Setze die NVMOP[3:0]-Bits (NVMCON[3:0]), um entweder doppelte Anweisungswörter oder eine Anweisungsreihe zu programmieren, je nach Bedarf.
      b) Schreiben Sie die erste Adresse entweder des doppelten Befehlsworts oder der zu programmierenden Befehlsreihe in die NVMADRU- und NVMADR-Register.
      c) Mit deaktivierten Interrupts:
      • Schreiben Sie die Tastenfolge in das NVMKEY-Register, um das Setzen des WR-Bits (NVMCON[15]) zu ermöglichen.
      • Setzen Sie das WR-Bit; Dadurch wird der Löschzyklus gestartet
      • Führen Sie zwei NOP-Befehle aus
  3. Das WR-Bit wird gelöscht, wenn der Programmierzyklus abgeschlossen ist.

Wiederholen Sie den gesamten Vorgang nach Bedarf, um die gewünschte Menge an Flash-Programmspeicher zu programmieren.

Notiz

  1. Der Benutzer sollte bedenken, dass die Mindestmenge an Flash-Programmspeicher, die mit RTSP gelöscht werden kann, eine einzelne gelöschte Seite ist. Daher ist es wichtig, dass ein Abbild dieser Orte im Allzweck-RAM gespeichert wird, bevor ein Löschzyklus eingeleitet wird.
  2. Eine Zeile oder ein Wort im Flash-Programmspeicher sollte nicht mehr als zweimal programmiert werden, bevor es gelöscht wird.
  3. Bei Geräten mit Konfigurationsbytes, die auf der letzten Seite des Flash gespeichert sind, werden durch Ausführen eines Seitenlöschvorgangs auf der letzten Seite des Programmspeichers die Konfigurationsbytes gelöscht, wodurch der Codeschutz aktiviert wird. Auf diesen Geräten sollte die letzte Seite des Flash-Speichers nicht gelöscht werden.

ERASING EINE SEITE IM BLITZ
Die in Bspample 4-1 kann verwendet werden, um eine Seite des Flash-Programmspeichers zu löschen. Das NVMCON-Register ist so konfiguriert, dass es eine Seite des Programmspeichers löscht. Die Register NVMADR und NMVADRU werden mit der Startadresse der zu löschenden Seite geladen. Der Programmspeicher muss an einer "geraden" Seitenadressengrenze gelöscht werden. Informationen zur Größe der Flash-Seite finden Sie im Kapitel „Flash-Programmspeicher“ des jeweiligen Gerätedatenblatts.
Die Löschoperation wird eingeleitet, indem eine spezielle Entriegelungs- oder Schlüsselsequenz in das NVMKEY-Register geschrieben wird, bevor das WR-Bit (NVMCON[15]) gesetzt wird. Die Entsperrsequenz muss in der exakten Reihenfolge ausgeführt werden, wie in BspampLe 4-1, ohne Unterbrechung; daher müssen Interrupts deaktiviert werden.
Nach dem Löschzyklus sollten zwei NOP-Befehle in den Code eingefügt werden. Bei bestimmten Geräten werden die Konfigurationsbits auf der letzten Seite des Programm-Flash gespeichert. Bei diesen Geräten werden durch die Durchführung einer Seitenlöschoperation auf der letzten Seite des Programmspeichers die Flash-Konfigurationsbytes gelöscht, wodurch der Codeschutz aktiviert wird. Benutzer sollten keine Seitenlöschoperationen auf der letzten Seite des Programmspeichers durchführen.MICROCHIP-PIC24-Flash-Programmierung- (13)MICROCHIP-PIC24-Flash-Programmierung- (14)

LADEN SCHREIBEN LATCHES
Die Schreiblatches werden als Speichermechanismus zwischen den Tabellenschreibvorgängen der Benutzeranwendung und der tatsächlichen Programmiersequenz verwendet. Während des Programmiervorgangs überträgt das Gerät die Daten von den Schreib-Latches in den Flash-Speicher. Für Geräte, die Zeilenprogrammierung unterstützen, zample 4-3 zeigt die Befehlsfolge, die verwendet werden kann, um 128 Schreib-Latches (128 Befehlsworte) zu laden. 128 TBLWTL- und 128 TBLWTH-Befehle werden benötigt, um die Schreib-Latches zum Programmieren einer Zeile des Flash-Programmspeichers zu laden. Schlagen Sie im Kapitel „Flash-Programmspeicher“ des jeweiligen Gerätedatenblatts nach, um die Anzahl der auf Ihrem Gerät verfügbaren Programmierspeicher zu ermitteln. Für Geräte, die keine Zeilenprogrammierung unterstützen, zample 4-4 zeigt die Befehlsfolge, die verwendet werden kann, um zwei Schreiblatches (zwei Befehlswörter) zu laden. Zwei TBLWTL- und zwei TBLWTH-Befehle werden benötigt, um die Schreib-Latches zu laden.

Notiz

  1. Der Code für Load_Write_Latch_Row ist in Bsp. gezeigtample 4-3 und der Code für Load_Write_Latch_Word ist in Bspample 4-4. Der Code in diesen beiden examples wird im folgenden ex bezeichnetamples.
  2. Die Anzahl der Verriegelungen finden Sie im jeweiligen Gerätedatenblatt.MICROCHIP-PIC24-Flash-Programmierung- (15)

EINZELNE PROGRAMMIERUNG EXAMPLE
Das NVMCON-Register ist so konfiguriert, dass es eine Zeile des Flash-Programmspeichers programmiert. Der Programmiervorgang wird eingeleitet, indem eine spezielle Entriegelungs- oder Schlüsselsequenz in das NVMKEY-Register geschrieben wird, bevor das WR-Bit (NVMCON[15]) gesetzt wird. Die Entsperrsequenz muss ohne Unterbrechung und in der exakten Reihenfolge ausgeführt werden, wie in Bspample 4-5. Daher müssen Interrupts vor dem Schreiben der Sequenz deaktiviert werden.

Notiz: Nicht alle Geräte verfügen über Zeilenprogrammierungsfunktionen. Ob diese Option verfügbar ist, erfahren Sie im Kapitel „Flash-Programmspeicher“ des jeweiligen Gerätedatenblatts.

Nach dem Programmierzyklus sollten zwei NOP-Anweisungen in den Code eingefügt werden.MICROCHIP-PIC24-Flash-Programmierung- (16) MICROCHIP-PIC24-Flash-Programmierung- (17)

REIHENPROGRAMMIERUNG UNTER VERWENDUNG DES RAM-PUFFERS
Ausgewählte dsPIC33-Bausteine ​​ermöglichen die Ausführung der Zeilenprogrammierung direkt von einem Pufferplatz im Daten-RAM, anstatt durch die Haltelatches zu gehen, um Daten mit TBLWT-Befehlen zu übertragen. Die Position des RAM-Puffers wird durch das/die NVMSRCADR-Register bestimmt, die mit der Daten-RAM-Adresse geladen werden, die das erste Wort der zu schreibenden Programmdaten enthält.

Vor dem Ausführen der Programmieroperation muss der Pufferraum im RAM mit der zu programmierenden Datenreihe geladen werden. Der RAM kann entweder in einem komprimierten (gepackten) oder unkomprimierten Format geladen werden. Die komprimierte Speicherung verwendet ein Datenwort, um die höchstwertigen Bytes (MSBs) von zwei benachbarten Programmdatenwörtern zu speichern. Das unkomprimierte Format verwendet zwei Datenworte für jedes Programmdatenwort, wobei das obere Byte jedes zweiten Wortes 00h ist. Das komprimierte Format benötigt etwa 3/4 des Speicherplatzes im Daten-RAM im Vergleich zum unkomprimierten Format. Das unkomprimierte Format hingegen ahmt die Struktur des 24-Bit-Programmdatenworts nach, komplett mit dem oberen Phantombyte. Das Datenformat wird durch das RPDF-Bit (NVMCON[9]) ausgewählt. Diese beiden Formate sind in Abbildung 4-1 dargestellt.

Sobald der RAM-Puffer geladen ist, werden die Flash-Adresszeiger NVMADR und NVMADRU mit der 24-Bit-Startadresse der zu schreibenden Flash-Zeile geladen. Wie beim Programmieren der Schreib-Latches wird der Prozess durch das Schreiben der NVM-Entsperrsequenz eingeleitet, gefolgt vom Setzen des WR-Bits. Nach der Initialisierung lädt das Gerät automatisch die richtigen Latches und inkrementiert die NVM-Adressregister, bis alle Bytes programmiert sind. ExampLe 4-7 zeigt ein Bspample des Prozesses. Wenn NVMSRCADR auf einen solchen Wert gesetzt ist, dass ein Datenunterlauffehlerzustand auftritt, wird das URERR-Bit (NVMCON[8]) gesetzt, um den Zustand anzuzeigen.
Vorrichtungen, die eine RAM-Puffer-Zeilenprogrammierung implementieren, implementieren auch ein oder zwei Schreib-Latches. Diese werden unter Verwendung der TBLWT-Befehle geladen und werden verwendet, um Wortprogrammierungsoperationen auszuführen.MICROCHIP-PIC24-Flash-Programmierung- (18)

WORTPROGRAMMIERUNG
Das NVMCON-Register ist konfiguriert, um zwei Befehlswörter des Flash-Programmspeichers zu programmieren. Die Programmieroperation wird eingeleitet, indem eine spezielle Entriegelungs- oder Schlüsselsequenz in das NVMKEY-Register geschrieben wird, bevor das WR-Bit (NVMCON[15]) gesetzt wird. Die Entsperrsequenz muss in der exakten Reihenfolge ausgeführt werden, wie in Bspample 4-8, ohne Unterbrechung. Daher sollten Interrupts vor dem Schreiben der Sequenz deaktiviert werden.
Nach dem Programmierzyklus sollten zwei NOP-Anweisungen in den Code eingefügt werden.MICROCHIP-PIC24-Flash-Programmierung- (19) MICROCHIP-PIC24-Flash-Programmierung- (20)

Schreiben in Gerätekonfigurationsregister
Bei bestimmten Geräten werden die Konfigurationsbits im Konfigurationsspeicherplatz in einem Abschnitt namens „Gerätekonfigurationsregister“ gespeichert. Bei anderen Geräten werden die Konfigurationsbits auf der letzten Seite des Flash-Benutzerspeicherplatzes des Programms in einem Abschnitt namens „Flash Configuration Bytes“ gespeichert. Bei diesen Geräten werden durch die Durchführung einer Seitenlöschoperation auf der letzten Seite des Programmspeichers die Flash-Konfigurationsbytes gelöscht, wodurch der Codeschutz aktiviert wird. Daher sollten Benutzer keine Seitenlöschoperationen auf der letzten Seite des Programmspeichers durchführen. Beziehen Sie sich auf die Program Memory Map im Kapitel „Memory Organization“ des jeweiligen Gerätedatenblatts, um zu bestimmen, wo sich die Konfigurationsbits befinden.

Wenn die Konfigurationsbits im Konfigurationsspeicherraum gespeichert sind, kann RTSP verwendet werden, um in die Gerätekonfigurationsregister zu schreiben, und RTSP ermöglicht, dass jedes Konfigurationsregister einzeln neu geschrieben wird, ohne dass zuerst ein Löschzyklus durchgeführt wird. Beim Schreiben der Konfigurationsregister ist Vorsicht geboten, da sie kritische Gerätebetriebsparameter steuern, wie z. B. die Systemtaktquelle, PLL- und WDT-Aktivierung.

Das Verfahren zum Programmieren eines Gerätekonfigurationsregisters ähnelt dem Verfahren zum Programmieren eines Flash-Programmspeichers, außer dass nur TBLWTL-Befehle erforderlich sind. Dies liegt daran, dass die oberen acht Bits in jedem Gerätekonfigurationsregister nicht verwendet werden. Außerdem muss Bit 23 der Tabellenschreibadresse gesetzt werden, um auf die Konfigurationsregister zugreifen zu können. Eine vollständige Beschreibung der Gerätekonfigurationsregister finden Sie unter „Gerätekonfiguration“ (DS70000618) im „dsPIC33/PIC24 Family Reference Manual“ und im Kapitel „Special Features“ im jeweiligen Gerätedatenblatt.

Notiz

  1. Das Schreiben in Gerätekonfigurationsregister ist nicht in allen Geräten verfügbar. Schlagen Sie im Kapitel „Sonderfunktionen“ im Datenblatt des jeweiligen Geräts nach, um die Modi zu bestimmen, die gemäß der Definition der gerätespezifischen NVMOP[3:0]-Bits verfügbar sind.
  2. Während RTSP an Gerätekonfigurationsregistern durchgeführt wird, muss das Gerät unter Verwendung des internen FRC-Oszillators (ohne PLL) betrieben werden. Wenn das Gerät von einer anderen Taktquelle betrieben wird, muss eine Taktumschaltung auf den internen FRC-Oszillator (NOSC[2:0] = 000) durchgeführt werden, bevor der RTSP-Betrieb in den Gerätekonfigurationsregistern durchgeführt wird.
  3. Wenn die Primäroszillatormodus-Auswahlbits (POSCMD[1:0]) im Oszillatorkonfigurationsregister (FOSC) auf einen neuen Wert umprogrammiert werden, muss der Benutzer sicherstellen, dass die Taktumschaltmodusbits (FCKSM[1:0]) gesetzt sind das FOSC-Register hat einen programmierten Anfangswert von '0', bevor diese RTSP-Operation durchgeführt wird.

KONFIGURATION REGISTER SCHREIBEN ALGORITHMUS
Das allgemeine Verfahren ist wie folgt:

  1. Schreiben Sie den neuen Konfigurationswert unter Verwendung eines TBLWTL-Befehls in den Tabellenschreib-Latch.
  2. Konfigurieren Sie NVMCON für einen Konfigurationsregisterschreibvorgang (NVMCON = 0x4000).
  3. Schreiben Sie die Adresse des zu programmierenden Konfigurationsregisters in die Register NVMADRU und NVMADR.
  4. Interrupts deaktivieren, falls aktiviert.
  5. Schreiben Sie die Tastenfolge in das NVMKEY-Register.
  6. Starten Sie die Schreibsequenz durch Setzen des WR-Bits (NVMCON[15]).
  7. Aktivieren Sie Interrupts erneut, falls erforderlich.

Example 4-10 zeigt die Codesequenz, die verwendet werden kann, um ein Gerätekonfigurationsregister zu ändern.MICROCHIP-PIC24-Flash-Programmierung- (21)

KARTE REGISTRIEREN

Eine Zusammenfassung der mit der Flash-Programmierung verbundenen Register finden Sie in Tabelle 5-1.MICROCHIP-PIC24-Flash-Programmierung- (22)

Dieser Abschnitt listet Anwendungshinweise auf, die sich auf diesen Abschnitt des Handbuchs beziehen. Diese Anwendungshinweise wurden möglicherweise nicht speziell für die dsPIC33/PIC24-Produktfamilien geschrieben, aber die Konzepte sind relevant und könnten mit Änderungen und möglichen Einschränkungen verwendet werden. Die aktuellen Anwendungshinweise zur Flash-Programmierung sind:

Notiz: Bitte besuchen Sie den Mikrochip webSeite? ˅ (www.microchip.com) für zusätzliche Anwendungshinweise und Code exampDateien für die Gerätefamilien dsPIC33/PIC24.

ÄNDERUNGSVERLAUF

Revision A (August 2009)
Dies ist die erste veröffentlichte Version dieses Dokuments.

Revision B (Februar 2011)
Diese Überarbeitung enthält die folgenden Aktualisierungen:

  • Examples:
    • Ex entferntample 5-3 und Bspampdie 5-4
    • Aktualisiert Bspample 4-1, Bspample 4-5 und Bspampdie 4-10
    • Alle Verweise auf #WR wurden in Bsp. auf #15 aktualisiertample 4-1, Bspample 4-5 und Bspampdie 4-8
    • Folgendes in Ex aktualisiertampLe 4-3:
  • Der Titel „Wortprogrammierung“ wurde in „Laden von Schreiblatches für die Zeilenprogrammierung“ aktualisiert.
  • Jeder Verweis auf #ram_image wurde auf #0xFA aktualisiert
    • Ex hinzugefügtampdie 4-4
    • Titel in Ex aktualisiertampdie 4-8
  • Hinweise:
    • Zwei Anmerkungen in Abschnitt 4.2 „Flash-Programmiervorgänge“ hinzugefügt
    • Hinweis in Abschnitt 4.5.2 „Laden von Write-Latches“ aktualisiert
    • Drei Anmerkungen in Abschnitt 4.6 „Schreiben in Gerätekonfigurationsregister“ hinzugefügt
    • Anmerkung 1 in Tabelle 5-1 hinzugefügt
  • Register:
    • Bitwerte für NVMOP[3:0] aktualisiert: NVM Operation Select Bits im Flash Memory Control (NVMCON) Register (siehe Register 3-1)
  • Abschnitte:
    • Abschnitte 5.2.1.4 „Write-Word-Modus“ und 5.2.1.5 „Write-Byte-Modus“ entfernt
    • Aktualisierter Abschnitt 3.0 „Steuerregister“
    • Folgendes in Abschnitt 4.5.5 „Wortprogrammierung“ aktualisiert:
  • Abschnittstitel „Programmieren eines Wortes im Flash-Speicher“ in „Wortprogrammierung“ geändert
  • Erster Absatz aktualisiert
  • Im zweiten Absatz wurden die Begriffe „ein Wort“ in „ein Wortpaar“ geändert
    • Neuer Schritt 1 zu Abschnitt 4.6.1 „Konfigurationsregister-Schreibalgorithmus“ hinzugefügt
  • Tabellen:
    • Aktualisierte Tabelle 5-1
  • Einige Verweise auf den Programmspeicher wurden auf den Flash-Programmspeicher aktualisiert
  • Andere kleinere Aktualisierungen wie Sprach- und Formatierungsaktualisierungen wurden im gesamten Dokument integriert

Überarbeitung C (Juni 2011)
Diese Überarbeitung enthält die folgenden Aktualisierungen:

  • Examples:
    • Aktualisiert Bspampdie 4-1
    • Aktualisiert Bspampdie 4-8
  • Hinweise:
    • Hinweis in Abschnitt 4.1 „RTSP-Betrieb“ hinzugefügt
    • Hinweis 3 in Abschnitt 4.2 „Flash-Programmiervorgänge“ hinzugefügt
    • Hinweis 3 in Abschnitt 4.2.1 „RTSP-Programmieralgorithmus“ hinzugefügt
    • In Abschnitt 4.5.1 wurde eine Anmerkung hinzugefügt: „Erasing Eine Seite Flash“
    • Hinweis 2 in Abschnitt 4.5.2 „Laden von Write Latches“ hinzugefügt
  • Register:
    • Bitbeschreibung für Bits 15-0 im Nonvolatile Memory Address Register aktualisiert (siehe Register 3-3)
  • Abschnitte:
    • Aktualisierter Abschnitt 4.1 „RTSP-Betrieb“
    • Aktualisierter Abschnitt 4.5.5 „Wortprogrammierung“
  • Andere kleinere Aktualisierungen wie Sprach- und Formatierungsaktualisierungen wurden im gesamten Dokument integriert

Revision D (Dezember 2011)
Diese Überarbeitung enthält die folgenden Aktualisierungen:

  • Aktualisierter Abschnitt 2.1.3 „Table Write Latches“
  • Aktualisierter Abschnitt 3.2 „NVMKEY-Register“
  • Hinweise in NVMCON: Flash Memory Control Register aktualisiert (siehe Register 3-1)
  • Umfangreiche Aktualisierungen wurden in Abschnitt 4.0 „Laufzeit-Selbstprogrammierung (RTSP)“ vorgenommen.
  • Andere kleinere Aktualisierungen wie Sprach- und Formatierungsaktualisierungen wurden im gesamten Dokument integriert

Revision E (Oktober 2018)
Diese Überarbeitung enthält die folgenden Aktualisierungen:

  • Ex hinzugefügtample 2-2, Bspample 4-2, Bspample 4-6 und Bspampdie 4-9
  • Abschnitt 4.5.4 „Zeilenprogrammierung mit dem RAM-Puffer“ hinzugefügt
  • Abschnitt 1.0 „Einführung“, Abschnitt 3.3 „NVM-Adressregister“, Abschnitt 4.0 „Run-Time Self-Programming (RTSP)“ und Abschnitt 4.5.3 „Single Row Programming Exampdas"
  • Aktualisiertes Register 3-1
  • Aktualisiert Bspampdie 4-7
  • Aktualisierte Tabelle 5-1

Revision F (November 2021)
Abschnitt 3.2.1 „Deaktivieren von Interrupts“ hinzugefügt.
Aktualisiert Bspample 3-1, Bspample 4-1, Bspample 4-2, Bspample 4-5, Bspample 4-6, Bspample 4-7, Bspample 4-8, Bspample 4-9 und Bspampam 4-10.
Aktualisierter Abschnitt 3.2 „NVMKEY-Register“, Abschnitt 4.5.1 „Erasing Eine Seite Flash“, Abschnitt 4.5.3 „Einzelzeilenprogrammierung Example“ und Abschnitt 4.6.1 „Konfigurationsregister-Schreibalgorithmus“.

Beachten Sie die folgenden Details zur Codeschutzfunktion bei Microchip-Produkten:

  • Mikrochipprodukte erfüllen die in ihrem jeweiligen Mikrochip-Datenblatt enthaltenen Spezifikationen.
  • Microchip ist davon überzeugt, dass seine Produktfamilie sicher ist, wenn sie bestimmungsgemäß, innerhalb der Betriebsspezifikationen und unter normalen Bedingungen verwendet wird.
  • Microchip schätzt und schützt seine geistigen Eigentumsrechte aggressiv. Versuche, die Codeschutzfunktionen von Microchip-Produkten zu verletzen, sind streng verboten und können gegen das Digital Millennium Copyright Act verstoßen.
  • Weder Microchip noch irgendein anderer Halbleiterhersteller kann die Sicherheit seines Codes garantieren. Code-Schutz bedeutet nicht, dass wir garantieren, dass das Produkt „unzerbrechlich“ ist. Der Codeschutz entwickelt sich ständig weiter. Microchip ist bestrebt, die Codeschutzfunktionen unserer Produkte kontinuierlich zu verbessern

Diese Veröffentlichung und die darin enthaltenen Informationen dürfen nur mit Microchip-Produkten verwendet werden, einschließlich zum Entwerfen, Testen und Integrieren von Microchip-Produkten in Ihre Anwendung. Die Verwendung dieser Informationen auf andere Weise verstößt gegen diese Bedingungen. Informationen zu Geräteanwendungen werden nur zu Ihrer Bequemlichkeit bereitgestellt und können durch Updates ersetzt werden. Es liegt in Ihrer Verantwortung sicherzustellen, dass Ihre Anwendung Ihren Spezifikationen entspricht. Wenden Sie sich an Ihr lokales Microchip-Vertriebsbüro, um weitere Unterstützung zu erhalten, oder erhalten Sie zusätzliche Unterstützung unter https://www.microchip.com/en-us/support/design-help/client-supportservices.

DIESE INFORMATIONEN WERDEN VON MICROCHIP „WIE BESEHEN“ ZUR VERFÜGUNG GESTELLT. MICROCHIP ÜBERNIMMT KEINE AUSDRÜCKLICHEN ODER STILLSCHWEIGENDEN, SCHRIFTLICHEN ODER MÜNDLICHEN, GESETZLICHEN ODER ANDERWEITIGEN ZUSICHERUNGEN ODER GEWÄHRLEISTUNGEN IN BEZUG AUF DIE INFORMATIONEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF STILLSCHWEIGENDE GEWÄHRLEISTUNGEN DER NICHTVERLETZUNG VON RECHTEN DRITTER, MARKTFÄHIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK ODER GEWÄHRLEISTUNGEN IM ZUSAMMENHANG MIT SEINEN ZUSTAND, QUALITÄT ODER LEISTUNG. IN KEINEM FALL IST MICROCHIP HAFTBAR FÜR INDIREKTE, SONDER-, STRAF-, ZUFÄLLIGE ODER FOLGESCHÄDEN, SCHÄDEN, KOSTEN ODER AUSGABEN JEGLICHER ART, DIE IM ZUSAMMENHANG MIT DEN INFORMATIONEN ODER IHRER NUTZUNG WELCHE URSACHE SIND, SELBST WENN MICROCHIP DARAUF HINGEWIESEN WURDE MÖGLICHKEIT ODER DIE SCHÄDEN VORHERSEHBAR SIND. IM VOLLEN GESETZLICH ZULÄSSIGEN UMFANG ÜBERSTEIGT DIE GESAMTHAFTUNG VON MICROCHIP FÜR ALLE ANSPRÜCHE IN IRGENDEINER WEISE IM ZUSAMMENHANG MIT DEN INFORMATIONEN ODER DEREN NUTZUNG DEN BETRAG DER GEGEBENENFALLS GEBÜHREN, DIE SIE FÜR DIE INFORMATIONEN DIREKT AN MICROCHIP GEZAHLT HABEN.

Die Verwendung von Microchip-Geräten in lebenserhaltenden und/oder sicherheitsrelevanten Anwendungen erfolgt ausschließlich auf Risiko des Käufers. Der Käufer verpflichtet sich, Microchip von allen Schäden, Ansprüchen, Klagen oder Kosten freizustellen, die sich aus einer solchen Verwendung ergeben. Sofern nicht anders angegeben, werden keine Lizenzen im Rahmen der geistigen Eigentumsrechte von Microchip übertragen, weder implizit noch anderweitig.

Informationen zu den Qualitätsmanagementsystemen von Microchip finden Sie unter www.microchip.com/quality.

Handelsmarken

Der Name und das Logo von Microchip, das Microchip-Logo, Adaptec, AnyRate, AVR, AVR-Logo, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, Microsemi-Logo, MOST, MOST-Logo, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32-Logo, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST-Logo, SuperFlash , Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron und XMEGA sind eingetragene Warenzeichen von Microchip Technology Incorporated in den USA und anderen Ländern. 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, ProASIC Plus-Logo, Quiet-Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime, WinPath und ZL sind eingetragene Warenzeichen von Microchip Technology Incorporated in den USA

Adjacent Key Suppression, 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, MPLAB-zertifiziertes Logo, MPLIB, MPLINK, MultiTRAK, NetDetach, NVM Express, NVMe, Omniscient Code Generation, 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 und ZENA sind Marken von Microchip Technology Incorporated in den USA und anderen Ländern.

SQTP ist eine Dienstleistungsmarke von Microchip Technology Incorporated in den USA
Das Logo von Adaptec, Frequency on Demand, Silicon Storage Technology, Symmcom und Trusted Time sind eingetragene Warenzeichen von Microchip Technology Inc. in anderen Ländern.
GestIC ist in anderen Ländern eine eingetragene Marke der Microchip Technology Germany II GmbH & Co. KG, einer Tochtergesellschaft der Microchip Technology Inc.
Alle anderen hier erwähnten Marken sind Eigentum der jeweiligen Unternehmen.
© 2009-2021, Microchip Technology Incorporated und seine Tochtergesellschaften.
Alle Rechte vorbehalten.
ISBN: 978-1-5224-9314-3

Weltweiter Vertrieb und Service

AMERIKA

  • Firmensitz
    2355 West Chandler Blvd.
    Chandler, AZ 85224-6199
    Tel: 480-792-7200
    Fax: 480-792-7277
    Technische Unterstützung: http://www.microchip.com/
    Unterstützung Web Adresse: www.microchip.com
  • Atlanta
    Duluth, Georgia
    Tel: 678-957-9614
    Fax: 678-957-1455
  • Austin, Texas
    Tel: 512-257-3370
  • Boston
    Westborough, Massachusetts
    Tel: 774-760-0087
    Fax: 774-760-0088
  • Chicago
    Itasca, Illinois
    Tel: 630-285-0071
    Fax: 630-285-0075
  • Dallas
    Addison, TX
    Tel: 972-818-7423
    Fax: 972-818-2924
  • Detroit
    Novi, Michigan
    Tel: 248-848-4000
  • Houston, Texas (Bundesstaat)
    Tel: 281-894-5983
  • Indianapolis
    Noblesville, Indiana
    Tel: 317-773-8323
    Fax: 317-773-5453
    Tel: 317-536-2380
  • Los Angeles
    Mission Viejo, Kalifornien
    Tel: 949-462-9523
    Fax: 949-462-9608
    Tel: 951-273-7800
  • Raleigh, North Carolina
    Tel: 919-844-7510
  • New York, NY
    Tel: 631-435-6000
  • San Jose, Kalifornien
    Tel: 408-735-9110
    Tel: 408-436-4270
  • Kanada – Toronto
    Tel: 905-695-1980
    Fax: 905-695-2078

ASIEN/PAZIFIK

  • Australien – Sydney
    Tel: 61-2-9868-6733
  • China – Peking
    Tel: 86-10-8569-7000
  • China – Chengdu
    Tel: 86-28-8665-5511
  • China – Chongqing
    Tel: 86-23-8980-9588
  • China – Dongguan
    Tel: 86-769-8702-9880
  • China – Guangzhou
    Tel: 86-20-8755-8029
  • China – Hangzhou
    Tel: 86-571-8792-8115
  • China – Sonderverwaltungszone Hongkong
    Tel: 852-2943-5100
  • China – Nanjing
    Tel: 86-25-8473-2460
  • China – Qingdao
    Tel: 86-532-8502-7355
  • China – Shanghai
    Tel: 86-21-3326-8000
  • China – Shenyang
    Tel: 86-24-2334-2829
  • China – Shenzhen
    Tel: 86-755-8864-2200
  • China – Suzhou
    Tel: 86-186-6233-1526
  • China – Wuhan
    Tel: 86-27-5980-5300
  • China – Xi’an
    Tel: 86-29-8833-7252
  • China – Xiamen
    Tel: 86-592-2388138
  • China – Zhuhai
    Tel: 86-756-3210040
  • Indien – Bangalore
    Tel: 91-80-3090-4444
  • Indien – Neu-Delhi
    Tel: 91-11-4160-8631
  • Indien – Pune
    Tel: 91-20-4121-0141
  • Japan – Ōsaka
    Tel: 81-6-6152-7160
  • Japan – Tokio
    Tel: 81-3-6880- 3770
  • Korea – Daegu
    Tel: 82-53-744-4301
  • Korea – Seoul
    Tel: 82-2-554-7200
  • Malaysia - Kuala Lumpur
    Tel: 60-3-7651-7906
  • Malaysia – Penang
    Tel: 60-4-227-8870
  • Philippinen – Manila
    Tel: 63-2-634-9065
  • Singapur
    Tel: 65-6334-8870
  • Taiwan – Hsin Chu
    Tel: 886-3-577-8366
  • Taiwan – Kaohsiung
    Tel: 886-7-213-7830
  • Taiwan – Taipeh
    Tel: 886-2-2508-8600
  • Thailand – Bangkok
    Tel: 66-2-694-1351
  • Vietnam – Ho Chi Minh
    Tel: 84-28-5448-2100

EUROPA

  • Österreich – Wels
    Tel: 43-7242-2244-39
    Fax: 43-7242-2244-393
  • Dänemark – Kopenhagen
    Tel: 45-4485-5910
    Fax: 45-4485-2829
  • Finnland – Espoo
    Tel: 358-9-4520-820
  • Frankreich – Paris
    Tel: 33-1-69-53-63-20
    Fax: 33-1-69-30-90-79
  • Deutschland – Garching
    Tel: 49-8931-9700
  • Deutschland – Haan
    Tel: 49-2129-3766400
  • Deutschland – Heilbronn
    Tel: 49-7131-72400
  • Deutschland – Karlsruhe
    Tel: 49-721-625370
  • Deutschland – München
    Tel: 49-89-627-144-0
    Fax: 49-89-627-144-44
  • Deutschland – Rosenheim
    Tel: 49-8031-354-560
  • Italien – Mailand
    Tel: 39-0331-742611
    Fax: 39-0331-466781
  • Italien – Padua
    Tel: 39-049-7625286
  • Niederlande – Drunen
    Tel: 31-416-690399
    Fax: 31-416-690340
  • Norwegen – Trondheim
    Tel: 47-7288-4388
  • Polen – Warschau
    Tel: 48-22-3325737
  • Rumänien – Bukarest
    Tel: 40-21-407-87-50
  • Spanien – Madrid
    Tel: 34-91-708-08-90
    Fax: 34-91-708-08-91
  • Schweden – Göteborg
    Tel: 46-31-704-60-40
  • Schweden – Stockholm
    Tel: 46-8-5090-4654
  • Großbritannien – Wokingham
    Tel: 44-118-921-5800
    Fax: 44-118-921-5820

Notiz:

Dieser Abschnitt des Familien-Referenzhandbuchs soll als Ergänzung zu den Gerätedatenblättern dienen. Je nach Gerätevariante gilt dieser Handbuchabschnitt möglicherweise nicht für alle dsPIC33/PIC24-Geräte. Bitte prüfen Sie anhand des Hinweises am Anfang des Kapitels „Flash-Programmspeicher“ im aktuellen Gerätedatenblatt, ob dieses Dokument das von Ihnen verwendete Gerät unterstützt.
Geräte-Datenblätter und Abschnitte des Familien-Referenzhandbuchs können von Microchip Worldwide heruntergeladen werden WebWebsite unter: http://www.microchip.com.

Dokumente / Ressourcen

PDF thumbnailPIC24 Flash-Programmierung
User Guide · PIC24 Flash Programming, PIC24, Flash Programming, Programming
PDF thumbnailPIC24 Flash-Programmierung
User Guide · PIC24 Flash Programming, PIC24, Flash Programming

Verweise

Eine Frage stellen

Use this section to ask about setup, compatibility, troubleshooting, or anything missing from this manual.

Eine Frage stellen

Ask about setup, compatibility, troubleshooting, or anything missing from this manual. Name and email are optional.