Programación flash MICROCHIP PIC24

Información del producto
Programación Flash
Las familias de dispositivos dsPIC33/PIC24 tienen una memoria de programa Flash interna programable para la ejecución del código de usuario. Existen hasta tres métodos para programar esta memoria:
- Operación de instrucción de tabla
- Programación en serie en circuito (ICSP)
- Programación en la aplicación (IAP)
Las instrucciones de la tabla proporcionan el método de transferencia de datos entre el espacio de memoria del programa Flash y el espacio de memoria de datos de los dispositivos dsPIC33/PIC24. La instrucción TBLRDL se utiliza para leer bits [15:0] del espacio de memoria del programa. La instrucción TBLWTL se utiliza para escribir en bits [15:0] del espacio de memoria del programa Flash. TBLRDL y TBLWTL pueden acceder a la memoria del programa Flash en modo Word o modo Byte.
Además de la dirección de memoria del programa Flash, la instrucción de la tabla también especifica un registro W (o un puntero de registro W a una ubicación de memoria), que es la fuente de los datos de la memoria del programa Flash que se escribirán, o el destino de un programa Flash. lectura de memoria.
Esta sección describe la técnica para programar la memoria de programa Flash. Las familias de dispositivos dsPIC33/PIC24 tienen una memoria de programa Flash interna programable para la ejecución del código de usuario. Existen hasta tres métodos para programar esta memoria:
- Autoprogramación en tiempo de ejecución (RTSP)
- Programación en serie en circuito™ (ICSP™)
- Programación serie en circuito mejorada (EICSP)
RTSP lo realiza el software de la aplicación durante la ejecución, mientras que ICSP y EICSP se realizan desde un programador externo mediante una conexión de datos en serie al dispositivo. ICSP y EICSP permiten un tiempo de programación mucho más rápido que RTSP. Las técnicas RTSP se describen en la Sección 4.0 “Autoprogramación en tiempo de ejecución (RTSP)”. Los protocolos ICSP y EICSP se definen en los documentos de especificaciones de programación para los respectivos dispositivos, que se pueden descargar desde Microchip. websitiohttp://www.microchip.com). Al programar en lenguaje C, hay disponibles varias funciones integradas que facilitan la programación Flash. Consulte la “Guía del usuario del compilador MPLAB® XC16 C” (DS50002071) para obtener detalles sobre las funciones integradas.
Instrucciones de uso del producto
Para programar la memoria del programa Flash, siga estos pasos:
- Consulte la hoja de datos del dispositivo para verificar si la sección del manual de referencia familiar es compatible con el dispositivo que está utilizando.
- Descargue la hoja de datos del dispositivo y las secciones del manual de referencia familiar de Microchip Worldwide Websitio en: http://www.microchip.com.
- Elija uno de los tres métodos para programar la memoria (Operación de instrucciones de tabla, Programación en serie en circuito (ICSP), Programación en aplicación (IAP)).
- Si utiliza la operación de instrucción de tabla, utilice la instrucción TBLRDL para leer en los bits [15:0] del espacio de memoria del programa y la instrucción TBLWTL para escribir en los bits [15:0] del espacio de memoria del programa Flash.
- Asegúrese de especificar un registro W (o un puntero de registro W a una ubicación de memoria) como origen de los datos de la memoria del programa Flash que se escribirán o como destino de la lectura de la memoria del programa Flash.
Para obtener más información y detalles sobre la programación de la memoria de programa Flash, consulte el Manual de referencia de la familia dsPIC33/PIC24.
OPERACIÓN DE INSTRUCCIONES DE MESA
Las instrucciones de la tabla proporcionan el método de transferencia de datos entre el espacio de memoria del programa Flash y el espacio de memoria de datos de los dispositivos dsPIC33/PIC24. Esta sección proporciona un resumen de las instrucciones de la tabla utilizadas durante la programación de la memoria del programa Flash. Hay cuatro instrucciones básicas en la tabla:
- TBLRDL: Lectura de tabla baja
- TBLRDH: Tabla de lectura alta
- TBLWTL: Escritura de tabla baja
- VERDAD: Escritura de tabla alta
La instrucción TBLRDL se utiliza para leer bits [15:0] del espacio de memoria del programa. La instrucción TBLWTL se utiliza para escribir en bits [15:0] del espacio de memoria del programa Flash. TBLRDL y TBLWTL pueden acceder a la memoria del programa Flash en modo Word o modo Byte.
Las instrucciones TBLRDH y TBLWTH se utilizan para leer o escribir en bits [23:16] del espacio de memoria del programa. TBLRDH y TBLWTH pueden acceder a la memoria del programa Flash en modo Word o Byte. Debido a que la memoria del programa Flash tiene solo 24 bits de ancho, las instrucciones TBLRDH y TBLWTH pueden direccionar un byte superior de la memoria del programa Flash que no existe. Este byte se denomina "byte fantasma". Cualquier lectura del byte fantasma devolverá 0x00. Una escritura en el byte fantasma no tiene ningún efecto. La memoria del programa Flash de 24 bits se puede considerar como dos espacios de 16 bits uno al lado del otro, y cada espacio comparte el mismo rango de direcciones. Por lo tanto, las instrucciones TBLRDL y TBLWTL acceden al espacio de memoria del programa "bajo" (PM[15:0]). Las instrucciones TBLRDH y TBLWTH acceden al espacio de memoria del programa "alto" (PM[31:16]). Cualquier lectura o escritura en PM[31:24] accederá al byte fantasma (no implementado). Cuando cualquiera de las instrucciones de la tabla se utiliza en modo Byte, el bit menos significativo (LSb) de la dirección de la tabla se utilizará como bit de selección de byte. El LSb determina a qué byte del espacio de memoria de programa alto o bajo se accede.
La Figura 2-1 ilustra cómo se direcciona la memoria del programa Flash utilizando las instrucciones de la tabla. Una dirección de memoria de programa de 24 bits se forma utilizando los bits [7:0] del registro TBLPAG y la dirección efectiva (EA) de un registro W especificado en la instrucción de la tabla. El contador de programa (PC) de 24 bits se ilustra en la Figura 2-1 como referencia. Los 23 bits superiores del EA se utilizan para seleccionar la ubicación de la memoria del programa Flash.
Para las instrucciones de la tabla en modo Byte, el LSb del registro W EA se utiliza para seleccionar a qué byte de la palabra de memoria del programa Flash de 16 bits se direcciona; '1' selecciona bits[15:8] y '0' selecciona bits[7:0]. El LSb del registro W EA se ignora para una instrucción de tabla en modo Word. Además de la dirección de memoria del programa Flash, la instrucción de la tabla también especifica un registro W (o un puntero de registro W a una ubicación de memoria), que es la fuente de los datos de la memoria del programa Flash que se escribirán, o el destino de un programa Flash. lectura de memoria. Para una operación de escritura de tabla en modo Byte, se ignoran los bits [15:8] del registro de trabajo de origen.
Uso de instrucciones de lectura de tabla
Las lecturas de tablas requieren dos pasos:
- El puntero de dirección se configura utilizando el registro TBLPAG y uno de los registros W.
- Se puede leer el contenido de la memoria del programa Flash en la ubicación de la dirección.
- MODO LEER PALABRA
El código que se muestra en Example 2-1 y ExampEl archivo 2-2 muestra cómo leer una palabra de la memoria del programa Flash usando las instrucciones de la tabla en modo Word.

- MODO LEER BYTE
El código que se muestra en ExampEl archivo 2-3 muestra el operador post-incremento en la lectura del byte bajo, lo que hace que la dirección en el registro de trabajo se incremente en uno. Esto establece EA[0] en un '1' para acceder al byte del medio en la tercera instrucción de escritura. El último incremento posterior establece W0 nuevamente en una dirección par, apuntando a la siguiente ubicación de memoria del programa Flash.
- PESTILLOS DE ESCRITURA DE MESA
Las instrucciones de escritura de tablas no escriben directamente en la memoria no volátil del programa. En cambio, las instrucciones de escritura de la tabla cargan pestillos de escritura que almacenan los datos de escritura. Los registros de direcciones NVM deben cargarse con la primera dirección donde se deben escribir los datos bloqueados. Cuando se han cargado todos los pestillos de escritura, la operación de programación de la memoria real se inicia ejecutando una secuencia especial de instrucciones. Durante la programación, el hardware transfiere los datos de los pestillos de escritura a la memoria Flash. Los pestillos de escritura siempre comienzan en la dirección 0xFA0000 y se extienden hasta 0xFA0002 para programación de palabras o hasta 0xFA00FE para dispositivos que tienen programación de filas.
Nota: La cantidad de pestillos de escritura varía según el dispositivo. Consulte el capítulo "Memoria de programa flash" de la hoja de datos del dispositivo específico para conocer la cantidad de pestillos de escritura disponibles.
REGISTROS DE CONTROL
Se utilizan varios registros de funciones especiales (SFR) para programar las operaciones de escritura y borrado de memoria del programa Flash: NVMCON, NVMKEY y los registros de direcciones NVM, NVMADR y NVMADRU.
Registro NVMCON
El registro NVMCON es el registro de control principal para Flash y operaciones de programación/borrado. Este registro selecciona si se realizará una operación de borrado o de programa y puede iniciar el ciclo de programa o borrado. El registro NVMCON se muestra en el Registro 3-1. El byte inferior de NVMCON configura el tipo de operación NVM que se realizará.
Registro NVMKEY
El registro NVMKEY (consulte Registro 3-4) es un registro de solo escritura que se utiliza para evitar escrituras accidentales de NVMCON que pueden dañar la memoria Flash. Una vez desbloqueado, se permiten escrituras en NVMCON durante un ciclo de instrucción en el que el bit WR se puede configurar para invocar una rutina de borrado o programa. Dados los requisitos de tiempo, es necesario deshabilitar las interrupciones.
Realice los siguientes pasos para iniciar una secuencia de borrado o programación:
- Desactivar interrupciones.
- Escriba 0x55 en NVMKEY.
- Escriba 0xAA en NVMKEY.
- Inicie el ciclo de escritura de programación configurando el bit WR (NVMCON[15]).
- Ejecute dos instrucciones NOP.
- Restaurar interrupciones.

DESHABILITACIÓN DE INTERRUPCIONES
Es necesario deshabilitar las interrupciones para todas las operaciones Flash para garantizar un resultado exitoso. Si se produce una interrupción durante la secuencia de desbloqueo de NVMKEY, puede bloquear la escritura en el bit WR. La secuencia de desbloqueo de NVMKEY debe ejecutarse sin interrupción, como se explica en la Sección 3.2 “Registro de NVMKEY”.
Las interrupciones se pueden desactivar mediante uno de dos métodos: desactivando la habilitación de interrupción global (bit GIE) o utilizando la instrucción DISI. No se recomienda la instrucción DISI ya que solo desactiva las interrupciones de Prioridad 6 o inferior; por lo tanto, se debe utilizar el método Global Interrupt Enable.
Las escrituras de la CPU en GIE toman dos ciclos de instrucción antes de afectar el flujo de código. Posteriormente se necesitan dos instrucciones NOP, o se pueden reemplazar con otras instrucciones de trabajo útiles, como cargar NVMKEY; esto es aplicable tanto a operaciones de configuración como de limpieza. Se debe tener cuidado al volver a habilitar las interrupciones para que la rutina objetivo de NVM no permita interrupciones cuando una función llamada anteriormente las haya deshabilitado por otros motivos. Para solucionar este problema en el ensamblaje, se puede utilizar un push and pop de pila para conservar el estado del bit GIE. En C, se puede utilizar una variable en la RAM para almacenar INTCON2 antes de borrar GIE. Utilice la siguiente secuencia para desactivar las interrupciones:
- Empuje INTCON2 hacia la pila.
- Borre el bit GIE.
- Dos NOP o escrituras en NVMKEY.
- Inicie el ciclo de programación configurando el bit WR (NVMCON[15]).
- Restaurar el estado GIE por POP de INTCON2.

Registros de direcciones NVM
Los dos registros de direcciones NVM, NVMADRU y NVMADR, cuando se concatenan, forman el EA de 24 bits de la fila o palabra seleccionada para operaciones de programación. El registro NVMADRU se utiliza para contener los ocho bits superiores del EA y el registro NVMADR se utiliza para contener los 16 bits inferiores del EA. Algunos dispositivos pueden hacer referencia a estos mismos registros como NVMADRL y NVMADRH. Los registros de dirección NVM siempre deben apuntar a un límite de palabra de instrucción doble cuando se realiza una operación de programación de palabra de instrucción doble, un límite de fila cuando se realiza una operación de programación de fila o un límite de página cuando se realiza una operación de borrado de página.
Registro 3-1: NVMCON: Registro de control de memoria flash

Nota
- Este bit sólo se puede restablecer (es decir, borrar) en un reinicio de encendido (POR).
- Al salir del modo inactivo, hay un retraso de encendido (TVREG) antes de que la memoria del programa Flash entre en funcionamiento. Consulte el capítulo “Características eléctricas” de la hoja de datos específica del dispositivo para obtener más información.
- Todas las demás combinaciones de NVMOP[3:0] no están implementadas.
- Esta funcionalidad no está disponible en todos los dispositivos. Consulte el capítulo "Memoria de programa flash" en la hoja de datos del dispositivo específico para conocer las operaciones disponibles.
- La entrada a un modo de ahorro de energía después de ejecutar una instrucción PWRSAV depende de la finalización de todas las operaciones NVM pendientes.
- Este bit solo está disponible en dispositivos que admiten programación de filas almacenadas en RAM. Consulte la hoja de datos específica del dispositivo para conocer la disponibilidad.

Nota
- Este bit sólo se puede restablecer (es decir, borrar) en un reinicio de encendido (POR).
- Al salir del modo inactivo, hay un retraso de encendido (TVREG) antes de que la memoria del programa Flash entre en funcionamiento. Consulte el capítulo “Características eléctricas” de la hoja de datos específica del dispositivo para obtener más información.
- Todas las demás combinaciones de NVMOP[3:0] no están implementadas.
- Esta funcionalidad no está disponible en todos los dispositivos. Consulte el capítulo "Memoria de programa flash" en la hoja de datos del dispositivo específico para conocer las operaciones disponibles.
- La entrada a un modo de ahorro de energía después de ejecutar una instrucción PWRSAV depende de la finalización de todas las operaciones NVM pendientes.
- Este bit solo está disponible en dispositivos que admiten programación de filas almacenadas en RAM. Consulte la hoja de datos específica del dispositivo para conocer la disponibilidad.
Registro 3-2: NVMADRU: Registro de dirección superior de memoria no volátil

Registro 3-3: NVMADR: Registro de dirección de memoria no volátil

Registro 3-4: NVMKEY: Registro de clave de memoria no volátil

AUTOPROGRAMACIÓN EN TIEMPO DE EJECUCIÓN (RTSP)
RTSP permite que la aplicación del usuario modifique el contenido de la memoria del programa Flash. RTSP se logra utilizando las instrucciones TBLRD (lectura de tabla) y TBLWT (escritura de tabla), el registro TBLPAG y los registros de control NVM. Con RTSP, la aplicación del usuario puede borrar una sola página de la memoria Flash y programar dos palabras de instrucción o hasta 128 palabras de instrucción en ciertos dispositivos.
Operación RTSP
The dsPIC33/PIC24 Flash program memory array is organized into erase pages that can contain up to 1024 instructions. The double-word programming option is available in all devices in the dsPIC33/PIC24 families. In addition, certain devices have row programming capability, which allows the programming of up to 128 instruction words at a time. Programming and erase operations always occur on an even double programming word, row or page boundaries. Refer to the “Flash Program Memory” chapter of the specific device data sheet for the availability and sizes of a programming row, and the page size for erasing. The Flash program memory implements holding buffers, called write latches, that can contain up to 128 instructions of programming data depending on the device. Prior to the actual programming operation, the write data must be loaded into the write latches. The basic sequence for RTSP is to set up the Table Pointer, TBLPAG register, and then perform a series of TBLWT instructions to load the write latches. Programming is performed by setting the control bits in the NVMCON register. The number of TBLWTL and TBLWTH instructions needed to load the write latches is equal to the number of program words to be written.
Nota: Se recomienda guardar el registro TBLPAG antes de modificarlo y restaurarlo después de su uso.
PRECAUCIÓN
En algunos dispositivos, los bits de configuración se almacenan en la última página del espacio de memoria de usuario Flash del programa en una sección llamada "Bytes de configuración Flash". Con estos dispositivos, realizar una operación de borrado de página en la última página de la memoria del programa borra los bytes de configuración Flash, lo que permite la protección del código. Por lo tanto, los usuarios no deben realizar operaciones de borrado de páginas en la última página de la memoria del programa. Esto no es una preocupación cuando los bits de configuración se almacenan en el espacio de la memoria de configuración en una sección llamada "Registros de configuración del dispositivo". Consulte el Mapa de memoria del programa en el capítulo "Organización de la memoria" de la hoja de datos del dispositivo específico para determinar dónde se encuentran los bits de configuración.
Operaciones de programación flash
A program or erase operation is necessary for programming or erasing the internal Flash program memory in RTSP mode. The program or erase operation is automatically timed by the device (refer to the specific device data sheet for timing information). Setting the WR bit (NVMCON[15]) starts the operation. The WR bit is automatically cleared when the operation is finished. The CPU stalls until the programming operation is finished. The CPU will not execute any instructions or respond to interrupts during this time. If any interrupts occur during the programming cycle, they will remain pending until the cycle completes. Some dsPIC33/PIC24 devices may provide auxiliary Flash program memory (refer to the “Memory Organization” chapter of the specific device data sheet for details), which allows instruction execution without CPU Stalls while user Flash program memory is being erased and/ or programmed. Conversely, auxiliary Flash program memory can be programmed without CPU Stalls, as long as code is executed from the user Flash program memory. The NVM interrupt can be used to indicate that the programming operation is complete.
Nota
- Si se produce un evento POR o BOR mientras está en curso una operación de programación o borrado RTSP, la operación RTSP se cancela inmediatamente. El usuario debe ejecutar la operación RTSP nuevamente después de que el dispositivo salga del reinicio.
- Si se produce un evento de reinicio EXTR, SWR, WDTO, TRAPR, CM o IOPUWR mientras está en curso una operación de programación o borrado de RTSP, el dispositivo se reiniciará solo después de que se complete la operación RTSP.
ALGORITMO DE PROGRAMACIÓN RTSP
Esta sección describe la programación RTSP, que consta de tres procesos principales.
Crear una imagen RAM de la página de datos que se va a modificar
Realice estos dos pasos para crear una imagen RAM de la página de datos que desea modificar:
- Lea la página de la memoria Flash del programa y guárdela en la RAM de datos como una “imagen” de datos. La imagen RAM debe leerse comenzando desde el límite de una dirección de página.
- Modifique la imagen de datos de RAM según sea necesario.
Erasing Flash Program Memory
Después de completar los pasos 1 y 2 anteriores, realice los siguientes cuatro pasos para borrar la página de memoria del programa Flash:
- Configure los bits NVMOP[3:0] (NVMCON[3:0]) para borrar la página de la memoria del programa Flash leída en el Paso 1.
- Escriba la dirección inicial de la página que se borrará en los registros NVMADRU y NMVADR.
- Con interrupciones deshabilitadas:
- a) Escriba la secuencia de claves en el registro NVMKEY para permitir la configuración del bit WR (NVMCON[15]).
- b) Establezca el bit WR; esto iniciará el ciclo de borrado.
- c) Ejecute dos instrucciones NOP.
- El bit WR se borra cuando se completa el ciclo de borrado.
Programación de la página de memoria flash
La siguiente parte del proceso es programar la página de memoria Flash. La página de memoria Flash se programa utilizando los datos de la imagen creada en el Paso 1. Los datos se transfieren a los pestillos de escritura en incrementos de palabras o filas de instrucciones dobles. Todos los dispositivos tienen capacidad de programación de palabras de instrucción doble. (Consulte el capítulo “Memoria de programa flash” en la hoja de datos del dispositivo específico para determinar si hay disponible programación de filas y qué tipo de ella). Después de cargar los pestillos de escritura, se inicia la operación de programación, que transfiere los datos desde el la escritura se bloquea en la memoria Flash. Esto se repite hasta que se haya programado toda la página. Repita los siguientes tres pasos, comenzando en la primera palabra de instrucción de la página Flash e incrementando en pasos de palabras de programa dobles o filas de instrucciones, hasta que se haya programado toda la página:
- Cargue los pestillos de escritura:
- a) Configure el registro TBLPAG para que apunte a la ubicación de los pestillos de escritura.
- b) Cargue la cantidad deseada de pestillos usando pares de instrucciones TBLWTL y TBLWTH:
- Para la programación de dos palabras, se requieren dos pares de instrucciones TBLWTL y TBLWTH
- Para la programación de filas, se requieren un par de instrucciones TBLWTL y TBLWTH para cada elemento de fila de palabras de instrucción.
- Inicie la operación de programación:
- a) Configure los bits NVMOP[3:0] (NVMCON[3:0]) para programar palabras de instrucción dobles o una fila de instrucciones, según corresponda.
b) Escriba la primera dirección de la palabra de instrucción doble o de la fila de instrucciones que se programará en los registros NVMADRU y NVMADR.
c) Con interrupciones deshabilitadas:
• Escriba la secuencia de claves en el registro NVMKEY para permitir la configuración del bit WR (NVMCON[15])
• Establezca el bit WR; esto iniciará el ciclo de borrado
• Ejecutar dos instrucciones NOP
- a) Configure los bits NVMOP[3:0] (NVMCON[3:0]) para programar palabras de instrucción dobles o una fila de instrucciones, según corresponda.
- El bit WR se borra cuando se completa el ciclo de programación.
Repita todo el proceso según sea necesario para programar la cantidad deseada de memoria de programa Flash.
Nota
- El usuario debe recordar que la cantidad mínima de memoria de programa Flash que se puede borrar usando RTSP es una sola página borrada. Por lo tanto, es importante que se almacene una imagen de estas ubicaciones en la RAM de uso general antes de que se inicie un ciclo de borrado.
- Una fila o palabra en la memoria del programa Flash no debe programarse más de dos veces antes de borrarse.
- En dispositivos con bytes de configuración almacenados en la última página de Flash, realizar una operación de borrado de página en la última página de la memoria del programa borra los bytes de configuración, lo que habilita la protección del código. En estos dispositivos no se debe borrar la última página de la memoria Flash.
ERASING ONE PAGE OF FLASH
La secuencia de código que se muestra en ExampEl archivo 4-1 se puede utilizar para borrar una página de la memoria del programa Flash. El registro NVMCON está configurado para borrar una página de la memoria del programa. Los registros NVMADR y NMVADRU se cargan con la dirección inicial de la página que se va a borrar. La memoria del programa debe borrarse en un límite de dirección de página "par". Consulte el capítulo "Memoria del programa Flash" de la hoja de datos del dispositivo específico para determinar el tamaño de la página Flash.
La operación de borrado se inicia escribiendo un desbloqueo especial, o secuencia de claves, en el registro NVMKEY antes de configurar el bit WR (NVMCON[15]). La secuencia de desbloqueo debe ejecutarse en el orden exacto, como se muestra en Ej.ampel 4-1, sin interrupción; por lo tanto, las interrupciones deben desactivarse.
Se deben insertar dos instrucciones NOP en el código después del ciclo de borrado. En ciertos dispositivos, los bits de configuración se almacenan en la última página del programa Flash. Con estos dispositivos, realizar una operación de borrado de página en la última página de la memoria del programa borra los bytes de configuración flash, lo que permite como resultado la protección del código. Los usuarios no deben realizar operaciones de borrado de páginas en la última página de la memoria del programa.

CARGANDO PESTILLOS DE ESCRITURA
Los pestillos de escritura se utilizan como mecanismo de almacenamiento entre las escrituras de tabla de la aplicación del usuario y la secuencia de programación real. Durante la operación de programación, el dispositivo transferirá los datos de los pestillos de escritura a la memoria Flash. Para dispositivos que admiten programación de filas, ExampEl archivo 4-3 muestra la secuencia de instrucciones que se pueden utilizar para cargar 128 pestillos de escritura (128 palabras de instrucción). Se necesitan 128 instrucciones TBLWTL y 128 TBLWTH para cargar los pestillos de escritura para programar una fila de memoria de programa Flash. Consulte el capítulo "Memoria de programa flash" de la hoja de datos del dispositivo específico para determinar la cantidad de pestillos de programación disponibles en su dispositivo. Para dispositivos que no admiten programación de filas, ExampEl archivo 4-4 muestra la secuencia de instrucciones que se pueden utilizar para cargar dos pestillos de escritura (dos palabras de instrucción). Se necesitan dos instrucciones TBLWTL y dos TBLWTH para cargar los pestillos de escritura.
Nota
- El código para Load_Write_Latch_Row se muestra en ExampEl archivo 4-3 y el código para Load_Write_Latch_Word se muestran en Example 4-4. El código en ambos examples se menciona en ejemplos posterioresampLes.
- Consulte la hoja de datos específica del dispositivo para conocer la cantidad de pestillos.

PROGRAMACIÓN DE UNA FILA EXAMPLE
El registro NVMCON está configurado para programar una fila de la memoria de programa Flash. La operación del programa se inicia escribiendo un desbloqueo especial, o secuencia de claves, en el registro NVMKEY antes de configurar el bit WR (NVMCON[15]). La secuencia de desbloqueo debe ejecutarse sin interrupción y en el orden exacto, como se muestra en Ej.ample 4-5. Por lo tanto, las interrupciones deben desactivarse antes de escribir la secuencia.
Nota: No todos los dispositivos tienen capacidad de programación de filas. Consulte el capítulo "Memoria de programa flash" de la hoja de datos del dispositivo específico para determinar si esta opción está disponible.
Se deben insertar dos instrucciones NOP en el código después del ciclo de programación.

PROGRAMACIÓN DE FILAS USANDO EL BUFFER RAM
Algunos dispositivos dsPIC33 permiten que la programación de filas se realice directamente desde un espacio de búfer en la RAM de datos, en lugar de pasar por los pestillos de retención para transferir datos con instrucciones TBLWT. La ubicación del búfer RAM está determinada por los registros NVMSRCADR, que se cargan con la dirección RAM de datos que contiene la primera palabra de datos del programa que se escribirá.
Antes de realizar la operación del programa, se debe cargar el espacio del buffer en la RAM con la fila de datos a programar. La RAM se puede cargar en formato comprimido (empaquetado) o sin comprimir. El almacenamiento comprimido utiliza una palabra de datos para almacenar los bytes más significativos (MSB) de dos palabras de datos de programa adyacentes. El formato sin comprimir utiliza dos palabras de datos para cada palabra de datos del programa, siendo el byte superior de cada dos palabras 00h. El formato comprimido utiliza aproximadamente 3/4 del espacio en la RAM de datos en comparación con el formato sin comprimir. El formato sin comprimir, por otro lado, imita la estructura de la palabra de datos del programa de 24 bits, completa con el byte fantasma superior. El formato de datos se selecciona mediante el bit RPDF (NVMCON[9]). Estos dos formatos se muestran en la Figura 4-1.
Una vez que se carga el búfer de RAM, los punteros de dirección Flash, NVMADR y NVMADRU, se cargan con la dirección inicial de 24 bits de la fila Flash que se va a escribir. Al igual que con la programación de los pestillos de escritura, el proceso se inicia escribiendo la secuencia de desbloqueo de NVM y luego configurando el bit WR. Una vez iniciado, el dispositivo carga automáticamente los pestillos correctos e incrementa los registros de dirección NVM hasta que se hayan programado todos los bytes. Example 4-7 muestra un examparchivo del proceso. Si NVMSRCADR se establece en un valor tal que se produce una condición de error de insuficiencia de datos, el bit URERR (NVMCON[8]) se establecerá para indicar la condición.
Los dispositivos que implementan programación de filas de búfer RAM también implementan uno o dos pestillos de escritura. Estos se cargan mediante las instrucciones TBLWT y se utilizan para realizar operaciones de programación de palabras.
PROGRAMACIÓN DE PALABRAS
El registro NVMCON está configurado para programar dos palabras de instrucción de la memoria de programa Flash. La operación del programa se inicia escribiendo un desbloqueo especial, o secuencia de claves, en el registro NVMKEY antes de configurar el bit WR (NVMCON[15]). La secuencia de desbloqueo debe ejecutarse en el orden exacto, como se muestra en Ej.ample 4-8, sin interrupción. Por lo tanto, las interrupciones deben desactivarse antes de escribir la secuencia.
Se deben insertar dos instrucciones NOP en el código después del ciclo de programación.

Escritura en registros de configuración de dispositivos
En ciertos dispositivos, los bits de configuración se almacenan en el espacio de la memoria de configuración en una sección llamada "Registros de configuración del dispositivo". En otros dispositivos, los bits de configuración se almacenan en la última página del espacio de memoria de usuario Flash del programa en una sección llamada "Bytes de configuración Flash". Con estos dispositivos, realizar una operación de borrado de página en la última página de la memoria del programa borra los bytes de configuración Flash, lo que permite la protección del código. Por lo tanto, los usuarios no deben realizar operaciones de borrado de páginas en la última página de la memoria del programa. Consulte el Mapa de memoria del programa en el capítulo "Organización de la memoria" de la hoja de datos del dispositivo específico para determinar dónde se encuentran los bits de configuración.
Cuando los bits de configuración se almacenan en el espacio de la memoria de configuración, se puede utilizar RTSP para escribir en los registros de configuración del dispositivo, y RTSP permite que cada registro de configuración se reescriba individualmente sin realizar primero un ciclo de borrado. Se debe tener precaución al escribir los registros de configuración, ya que controlan parámetros operativos críticos del dispositivo, como la fuente del reloj del sistema, PLL y la habilitación de WDT.
El procedimiento para programar un registro de configuración de un dispositivo es similar al procedimiento para programar una memoria de programa Flash, excepto que solo se requieren instrucciones TBLWTL. Esto se debe a que los ocho bits superiores de cada registro de configuración de dispositivo no se utilizan. Además, el bit 23 de la dirección de escritura de tabla debe estar configurado para acceder a los registros de configuración. Consulte "Configuración del dispositivo" (DS70000618) en el "Manual de referencia de la familia dsPIC33/PIC24" y el capítulo "Características especiales" en la hoja de datos del dispositivo específico para obtener una descripción completa de los registros de configuración del dispositivo.
Nota
- La escritura en los registros de configuración del dispositivo no está disponible en todos los dispositivos. Consulte el capítulo "Características especiales" en la hoja de datos del dispositivo específico para determinar los modos que están disponibles de acuerdo con la definición de bits NVMOP[3:0] específica del dispositivo.
- Mientras se realiza RTSP en los registros de configuración del dispositivo, el dispositivo debe estar funcionando utilizando el oscilador FRC interno (sin PLL). Si el dispositivo está funcionando desde una fuente de reloj diferente, se debe realizar un cambio de reloj al oscilador FRC interno (NOSC[2:0] = 000) antes de realizar la operación RTSP en los registros de configuración del dispositivo.
- Si los bits de selección del modo del oscilador primario (POSCMD[1:0]) en el registro de configuración del oscilador (FOSC) se están reprogramando a un nuevo valor, el usuario debe asegurarse de que los bits del modo de conmutación del reloj (FCKSM[1:0]) en el registro FOSC tiene un valor programado inicial de '0', antes de realizar esta operación RTSP.
ALGORITMO DE ESCRITURA DEL REGISTRO DE CONFIGURACIÓN
El procedimiento general es el siguiente:
- Escriba el nuevo valor de configuración en el pestillo de escritura de tabla mediante una instrucción TBLWTL.
- Configure NVMCON para una escritura en el registro de configuración (NVMCON = 0x4000).
- Escriba la dirección del registro de Configuración que se programará en los registros NVMADRU y NVMADR.
- Deshabilite las interrupciones, si están habilitadas.
- Escriba la secuencia de claves en el registro NVMKEY.
- Inicie la secuencia de escritura configurando el bit WR (NVMCON[15]).
- Vuelva a habilitar las interrupciones, si es necesario.
ExampEl archivo 4-10 muestra la secuencia de códigos que se puede utilizar para modificar el registro de configuración de un dispositivo.
REGISTRAR MAPA
En la Tabla 5-1 se proporciona un resumen de los registros asociados con la programación Flash.
Esta sección enumera las notas de aplicación relacionadas con esta sección del manual. Es posible que estas notas de aplicación no estén escritas específicamente para las familias de productos dsPIC33/PIC24, pero los conceptos son pertinentes y podrían usarse con modificaciones y posibles limitaciones. Las notas de aplicación actuales relacionadas con la programación Flash son:
Nota: Visite el Microchip websitiowww.microchip.com) para notas de aplicación adicionales y código examparchivos para las familias de dispositivos dsPIC33/PIC24.
HISTORIAL DE REVISIONES
Revisión A (agosto de 2009)
Esta es la versión inicial publicada de este documento.
Revisión B (febrero de 2011)
Esta revisión incluye las siguientes actualizaciones:
- Exampellos:
- Ex eliminadoample 5-3 y Exampel 5-4
- Ex actualizadoample 4-1, Éx.ample 4-5 y Exampel 4-10
- Cualquier referencia a #WR se actualizó al #15 en Example 4-1, Éx.ample 4-5 y Exampel 4-8
- Se actualizó lo siguiente en Example 4-3:
- Se actualizó el título “Programación de palabras” a “Cargar pestillos de escritura para programación de filas”
- Cualquier referencia a #ram_image se actualizó a #0xFA
- Ex agregadoampel 4-4
- Actualizado el título en Ex.ampel 4-8
- Notas:
- Se agregaron dos notas en la Sección 4.2 "Operaciones de programación Flash"
- Se actualizó la nota en la Sección 4.5.2 “Carga de pestillos de escritura”
- Se agregaron tres notas en la Sección 4.6 "Escritura en registros de configuración del dispositivo"
- Se agregó la Nota 1 en la Tabla 5-1.
- Registros:
- Se actualizaron los valores de bits para NVMOP[3:0]: operación de NVM Seleccionar bits en el registro de control de memoria flash (NVMCON) (consulte el registro 3-1)
- Secciones:
- Se eliminaron las secciones 5.2.1.4 “Modo de escritura de palabras” y 5.2.1.5 “Modo de escritura de bytes”
- Sección 3.0 actualizada “Registros de control”
- Se actualizó lo siguiente en la Sección 4.5.5 “Programación de Word”:
- Se cambió el título de la sección “Programación de una palabra de la memoria flash” a “Programación de palabras”
- Actualizado el primer párrafo.
- Se cambiaron los términos “una palabra” por “un par de palabras” en el segundo párrafo.
- Se agregó un nuevo Paso 1 a la Sección 4.6.1 “Algoritmo de escritura del registro de configuración”
- Tablas:
- Tabla actualizada 5-1
- Algunas referencias a la memoria del programa se actualizaron a la memoria del programa Flash.
- Se incorporaron otras actualizaciones menores, como actualizaciones de idioma y formato, en todo el documento.
Revisión C (junio de 2011)
Esta revisión incluye las siguientes actualizaciones:
- Exampellos:
- Ex actualizadoampel 4-1
- Ex actualizadoampel 4-8
- Notas:
- Se agregó una nota en la Sección 4.1 "Operación RTSP"
- Se agregó la Nota 3 en la Sección 4.2 “Operaciones de programación Flash”
- Se agregó la Nota 3 en la Sección 4.2.1 “Algoritmo de programación RTSP”
- Added a note in Section 4.5.1 “Erasing One Page of Flash”
- Se agregó la Nota 2 en la Sección 4.5.2 “Carga de pestillos de escritura”
- Registros:
- Se actualizó la descripción de bits para los bits 15-0 en el registro de dirección de memoria no volátil (consulte el Registro 3-3).
- Secciones:
- Sección actualizada 4.1 “Operación RTSP”
- Sección actualizada 4.5.5 “Programación de palabras”
- Se incorporaron otras actualizaciones menores, como actualizaciones de idioma y formato, en todo el documento.
Revisión D (diciembre de 2011)
Esta revisión incluye las siguientes actualizaciones:
- Sección actualizada 2.1.3 “Bloqueos de escritura en tabla”
- Sección actualizada 3.2 “Registro NVMKEY”
- Se actualizaron las notas en NVMCON: Registro de control de memoria flash (ver Registro 3-1)
- Se realizaron amplias actualizaciones en toda la Sección 4.0 “Autoprogramación en tiempo de ejecución (RTSP)”
- Se incorporaron otras actualizaciones menores, como actualizaciones de idioma y formato, en todo el documento.
Revisión E (octubre de 2018)
Esta revisión incluye las siguientes actualizaciones:
- Ex agregadoample 2-2, Éx.ample 4-2, Éx.ample 4-6 y Exampel 4-9
- Se agregó la Sección 4.5.4 “Programación de filas usando el búfer RAM”
- Se actualizó la Sección 1.0 “Introducción”, la Sección 3.3 “Registros de direcciones NVM”, la Sección 4.0 “Autoprogramación en tiempo de ejecución (RTSP)” y la Sección 4.5.3 “Programación de una sola fila Exampla"
- Registro actualizado 3-1
- Ex actualizadoampel 4-7
- Tabla actualizada 5-1
Revisión F (noviembre de 2021)
Se agregó la Sección 3.2.1 “Desactivación de interrupciones”.
Ex actualizadoample 3-1, Éx.ample 4-1, Éx.ample 4-2, Éx.ample 4-5, Éx.ample 4-6, Éx.ample 4-7, Éx.ample 4-8, Éx.ample 4-9 y Example 4-10.
Updated Section 3.2 “NVMKEY Register”, Section 4.5.1 “Erasing One Page of Flash”, Section 4.5.3 “Single Row Programming Example” y Sección 4.6.1 “Algoritmo de escritura del registro de configuración”.
Tenga en cuenta los siguientes detalles de la función de protección de código en los productos Microchip:
- Los productos de Microchip cumplen con las especificaciones contenidas en su hoja de datos de Microchip particular.
- Microchip cree que su familia de productos es segura cuando se utiliza de la manera prevista, dentro de las especificaciones de funcionamiento y en condiciones normales.
- Microchip valora y protege agresivamente sus derechos de propiedad intelectual. Los intentos de infringir las funciones de protección del código del producto Microchip están estrictamente prohibidos y pueden violar la Ley de derechos de autor del milenio digital.
- Ni Microchip ni ningún otro fabricante de semiconductores puede garantizar la seguridad de su código. La protección del código no significa que estemos garantizando que el producto sea "irrompible". Proteccion del codigo esta en constante evolucion. Microchip se compromete a mejorar continuamente las características de protección de código de nuestros productos.
Esta publicación y la información contenida en este documento solo se pueden usar con productos de Microchip, incluso para diseñar, probar e integrar productos de Microchip con su aplicación. El uso de esta información de cualquier otra manera viola estos términos. La información sobre las aplicaciones del dispositivo se proporciona solo para su conveniencia y puede ser reemplazada por actualizaciones. Es su responsabilidad asegurarse de que su aplicación cumpla con sus especificaciones. Comuníquese con su oficina local de ventas de Microchip para obtener soporte adicional u obtenga soporte adicional en https://www.microchip.com/en-us/support/design-help/client-supportservices.
ESTA INFORMACIÓN ES PROPORCIONADA POR MICROCHIP “TAL CUAL”. MICROCHIP NO HACE DECLARACIONES NI GARANTÍAS DE NINGÚN TIPO, YA SEA EXPRESA O IMPLÍCITA, ESCRITA U ORAL, LEGAL O DE OTRA MANERA, RELACIONADAS CON LA INFORMACIÓN, INCLUYENDO, PERO NO LIMITADO A, CUALQUIER GARANTÍA IMPLÍCITA DE NO INFRACCIÓN, COMERCIABILIDAD E IDONEIDAD PARA UN PROPÓSITO PARTICULAR, O GARANTÍAS RELACIONADAS CON SU CONDICIÓN, CALIDAD O RENDIMIENTO. EN NINGÚN CASO MICROCHIP SERÁ RESPONSABLE DE NINGUNA PÉRDIDA, DAÑO, COSTO O GASTO INDIRECTO, ESPECIAL, PUNITIVO, INCIDENTAL O CONSECUENTE DE CUALQUIER TIPO RELACIONADO CON LA INFORMACIÓN O SU USO, CUALQUIER CAUSA, INCLUSO SI MICROCHIP HA SIDO INFORMADO DE LA POSIBILIDAD O LOS DAÑOS SON PREVISIBLES. EN LA MEDIDA MÁXIMA PERMITIDA POR LA LEY, LA RESPONSABILIDAD TOTAL DE MICROCHIP SOBRE TODOS LOS RECLAMOS DE CUALQUIER MANERA RELACIONADOS CON LA INFORMACIÓN O SU USO NO EXCEDERÁ LA CANTIDAD DE HONORARIOS, SI LOS HAY, QUE HAYA PAGADO DIRECTAMENTE A MICROCHIP POR LA INFORMACIÓN.
El uso de dispositivos Microchip en aplicaciones de soporte vital y/o seguridad se realiza por cuenta y riesgo del comprador, y el comprador acepta defender, indemnizar y eximir de responsabilidad a Microchip de todos los daños, reclamaciones, demandas o gastos que resulten de dicho uso. No se transfiere ninguna licencia, implícita o de otro modo, en virtud de ningún derecho de propiedad intelectual de Microchip a menos que se indique lo contrario.
Para obtener información sobre los sistemas de gestión de calidad de Microchip, visite www.microchip.com/calidad.
Marcas comerciales
El nombre y logotipo de Microchip, el logotipo de Microchip, Adaptec, AnyRate, AVR, logotipo de AVR, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, logotipo de Microsemi, MOST, logotipo de MOST, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, logotipo de PIC32, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, logotipo de SST, SuperFlash , Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron y XMEGA son marcas comerciales registradas de Microchip Technology Incorporated en EE. UU. y otros países. 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, logotipo de ProASIC Plus, Quiet-Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime, WinPath y ZL son marcas comerciales registradas de Microchip Technology Incorporated en EE. UU.
Supresión de clave adyacente, AKS, analógico para la era digital, cualquier condensador, AnyIn, AnyOut, conmutación aumentada, BlueSky, BodyCom, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, coincidencia de promedio dinámico, DAM , ECAN, Espresso T1S, EtherGREEN, GridTime, IdealBridge, Programación en serie en circuito, ICSP, INICnet, Conexión en paralelo inteligente, Conectividad entre chips, JitterBlocker, Perilla en pantalla, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB Certified 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, E/S cuádruple en serie, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, TSHARC, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect y ZENA son marcas comerciales de Microchip Technology Incorporated en EE. UU. y otros países.
SQTP es una marca de servicio de Microchip Technology Incorporated en EE. UU.
El logotipo de Adaptec, Frequency on Demand, Silicon Storage Technology, Symmcom y Trusted Time son marcas comerciales registradas de Microchip Technology Inc. en otros países.
GestIC es una marca registrada de Microchip Technology Germany II GmbH & Co. KG, una subsidiaria de Microchip Technology Inc., en otros países.
Todas las demás marcas comerciales mencionadas en este documento son propiedad de sus respectivas empresas.
© 2009-2021, Microchip Technology Incorporated y sus subsidiarias.
Reservados todos los derechos.
ISBN: 978-1-5224-9314-3
Ventas y servicio a nivel mundial
AMÉRICAS
- Oficina corporativa
2355 bulevar oeste de Chandler.
Chandler, AZ 85224-6199
Teléfono: 480-792-7200
Fax: 480-792-7277
Apoyo técnico: http://www.microchip.com/
apoyo Web DIRECCIÓN: www.microchip.com - Atlanta
Duluth, Georgia
Teléfono: 678-957-9614
Fax: 678-957-1455 - Austin, Texas
Teléfono: 512-257-3370 - Bostón
Westborough, Massachusetts
Teléfono: 774-760-0087
Fax: 774-760-0088 - Chicago
Itasca, Illinois
Teléfono: 630-285-0071
Fax: 630-285-0075 - Dallas
Addison, TX
Teléfono: 972-818-7423
Fax: 972-818-2924 - Detroit
Novi, Michigan
Teléfono: 248-848-4000 - Houston, Texas
Teléfono: 281-894-5983 - Indianápolis
Noblesville, Indiana
Teléfono: 317-773-8323
Fax: 317-773-5453
Teléfono: 317-536-2380 - Los Ángeles
Misión Viejo, California
Teléfono: 949-462-9523
Fax: 949-462-9608
Teléfono: 951-273-7800 - Raleigh, Carolina del Norte
Teléfono: 919-844-7510 - Nueva York, NY
Teléfono: 631-435-6000 - San José, CA
Teléfono: 408-735-9110
Teléfono: 408-436-4270 - Canadá – Toronto
Teléfono: 905-695-1980
Fax: 905-695-2078
ASIA/PACÍFICO
- Australia – Sídney
Teléfono: 61-2-9868-6733 - China – Pekín
Teléfono: 86-10-8569-7000 - China – Chengdú
Teléfono: 86-28-8665-5511 - China – Chongqing
Teléfono: 86-23-8980-9588 - China-Dongguan
Teléfono: 86-769-8702-9880 - China – Cantón
Teléfono: 86-20-8755-8029 - China – Hangzhou
Teléfono: 86-571-8792-8115 - China – RAE de Hong Kong
Teléfono: 852-2943-5100 - China-Nanjing
Teléfono: 86-25-8473-2460 - China-Qingdao
Teléfono: 86-532-8502-7355 - China – Shanghái
Teléfono: 86-21-3326-8000 - China-Shenyang
Teléfono: 86-24-2334-2829 - China-Shenzhen
Teléfono: 86-755-8864-2200 - China-Suzhou
Teléfono: 86-186-6233-1526 - China-Wuhan
Teléfono: 86-27-5980-5300 - China-Xian
Teléfono: 86-29-8833-7252 - China-Xiamen
Teléfono: 86-592-2388138 - China-Zhuhai
Teléfono: 86-756-3210040 - India – Bangalore
Teléfono: 91-80-3090-4444 - India – Nueva Delhi
Teléfono: 91-11-4160-8631 - India - Pune
Teléfono: 91-20-4121-0141 - Japón – Osaka
Teléfono: 81-6-6152-7160 - Japón – Tokio
Teléfono: 81-3-6880-3770 - Corea – Daegu
Teléfono: 82-53-744-4301 - Corea – Seúl
Teléfono: 82-2-554-7200 - Malasia - Kuala Lumpur
Teléfono: 60-3-7651-7906 - Malasia - Penang
Teléfono: 60-4-227-8870 - Filipinas – Manila
Teléfono: 63-2-634-9065 - Singapur
Teléfono: 65-6334-8870 - Taiwán – Hsin Chu
Teléfono: 886-3-577-8366 - Taiwán – Kaohsiung
Teléfono: 886-7-213-7830 - Taiwán - Taipei
Teléfono: 886-2-2508-8600 - Tailandia – Bangkok
Teléfono: 66-2-694-1351 - Vietnam–Ho Chi Minh
Teléfono: 84-28-5448-2100
EUROPA
- Austria – Gales
Teléfono: 43-7242-2244-39
Fax: 43-7242-2244-393 - Dinamarca – Copenhague
Teléfono: 45-4485-5910
Fax: 45-4485-2829 - Finlandia – Espoo
Teléfono: 358-9-4520-820 - Francia – París
Teléfono: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79 - Alemania – Garching
Teléfono: 49-8931-9700 - Alemania – Haan
Teléfono: 49-2129-3766400 - Alemania – Heilbronn
Teléfono: 49-7131-72400 - Alemania – Karlsruhe
Teléfono: 49-721-625370 - Alemania – Múnich
Teléfono: 49-89-627-144-0
Fax: 49-89-627-144-44 - Alemania – Rosenheim
Teléfono: 49-8031-354-560 - Italia – Milán
Teléfono: 39-0331-742611
Fax: 39-0331-466781 - Italia – Padua
Teléfono: 39-049-7625286 - Países Bajos – Drunen
Teléfono: 31-416-690399
Fax: 31-416-690340 - Noruega – Trondheim
Teléfono: 47-7288-4388 - Polonia – Varsovia
Teléfono: 48-22-3325737 - Rumania – Bucarest
Teléfono: 40-21-407-87-50 - España - Madrid
Teléfono: 34-91-708-08-90
Fax: 34-91-708-08-91 - Suecia – Gotemburgo
Teléfono: 46-31-704-60-40 - Suecia – Estocolmo
Teléfono: 46-8-5090-4654 - Reino Unido – Wokingham
Teléfono: 44-118-921-5800
Fax: 44-118-921-5820
Nota:
Esta sección del manual de referencia familiar pretende servir como complemento a las hojas de datos del dispositivo. Dependiendo de la variante del dispositivo, es posible que esta sección del manual no se aplique a todos los dispositivos dsPIC33/PIC24. Consulte la nota al comienzo del capítulo "Memoria de programa Flash" en la hoja de datos del dispositivo actual para verificar si este documento es compatible con el dispositivo que está utilizando.
Las hojas de datos del dispositivo y las secciones del manual de referencia de la familia están disponibles para su descarga desde Microchip Worldwide Websitio en: http://www.microchip.com.
Documentos / Recursos
![]() |
Programación flash MICROCHIP PIC24 [pdf] Guía del usuario Programación Flash PIC24, PIC24, Programación Flash, Programación |
![]() |
Programación flash MICROCHIP PIC24 [pdf] Guía del usuario Programación Flash PIC24, PIC24, Programación Flash |






