Articulo de referencia

microcontroladores PIC

Microcontroladores PIC en encapsulados DIP y QFN Microcontrolador PDIP PIC24 de 16 bits y 28 pines junto a una regla métrica. Chip de un microcontrolador CMOS PIC12C508 de 8 bit...

Microcontroladores PIC en encapsulados DIP y QFN
Microcontrolador PDIP PIC24 de 16 bits y 28 pines junto a una regla métrica.
Chip de un microcontrolador CMOS PIC12C508 de 8 bits, totalmente estático, basado en EEPROM / EPROM / ROM , fabricado por Microchip Technology mediante un proceso de 1200 nanómetros.
Chip de un microcontrolador PIC16C505 basado en ROM CMOS de 8 bits fabricado por Microchip Technology mediante un proceso de 1200 nanómetros .

PIC (generalmente pronunciado / pɪk / ) es una familia de microcontroladores fabricados por Microchip Technology , derivados del PIC1640 [ 1 ] [ 2 ] desarrollado originalmente por la División de Microelectrónica de General Instrument . El nombre PIC se refería inicialmente a Controlador de Interfaz Periférica [ 3 ] y posteriormente se amplió durante un breve período para incluir Computadora Inteligente Programable [ 4 ] , aunque el nombre PIC ya no se utiliza como acrónimo de ningún término. Las primeras partes de la familia estuvieron disponibles en 1976; para 2013 , la compañía había enviado más de doce mil millones de piezas individuales, utilizadas en una amplia variedad de sistemas embebidos [ 5 ] .

El PIC fue diseñado originalmente como un periférico para el General Instrument CP1600 , el primer microprocesador de 16 bits de un solo chip disponible comercialmente . Para limitar la cantidad de pines necesarios, el CP1600 tenía un bus complejo y altamente multiplexado , con el que era difícil interactuar. Por ello, además de una variedad de periféricos de propósito especial, General Instrument creó el PIC1640 programable como un periférico de propósito general. Con su propia memoria RAM y ROM pequeñas , y una CPU simple para controlar las transferencias, podía conectar el bus del CP1600 a prácticamente cualquier periférico de 8 bits existente. Si bien esto ofrecía una potencia considerable, la comercialización de GI fue limitada y el CP1600 no tuvo éxito. Sin embargo, GI también había creado el PIC1650, un PIC1640 independiente con E/S de propósito general adicionales en lugar de la interfaz del CP1600. Cuando la empresa escindió su división de chips para formar Microchip en 1985, las ventas del CP1600 estaban prácticamente muertas, pero el PIC1650 y sus sucesores habían formado un importante mercado propio y se convirtieron en uno de los productos principales de la nueva empresa. [ 6 ]

Los primeros modelos solo tenían ROM de máscara para el almacenamiento de código, pero con su derivado pronto se actualizó para usar EPROM y luego EEPROM , lo que permitió a los usuarios finales programar los dispositivos en sus propias instalaciones. Todos los modelos actuales usan memoria flash para el almacenamiento de programas, y los modelos más nuevos permiten que el PIC se reprograme a sí mismo. Desde entonces, la línea ha experimentado cambios significativos; la memoria ahora está disponible en 8 bits, 16 bits y, en los modelos más recientes, de 32 bits de ancho. Las instrucciones de programa varían en número de bits según la familia de PIC, y pueden ser de 12, 14, 16 o 24 bits de longitud. El conjunto de instrucciones también varía según el modelo, con chips más potentes agregando instrucciones para funciones de procesamiento de señales digitales . Las implementaciones de hardware de los dispositivos PIC van desde chips SMD de 6 pines, chips DIP de 8 pines hasta chips SMD de 144 pines, con pines de E/S discretos, módulos ADC y DAC , y puertos de comunicación como UART , I2C , CAN e incluso USB . Existen variantes de baja potencia y de alta velocidad para muchos tipos.

El fabricante suministra software de desarrollo, conocido como MPLAB X , ensambladores y compiladores C/C++, así como hardware de programación y depuración de las series MPLAB y PICKit . También dispone de herramientas de terceros y algunas de código abierto. Algunos componentes cuentan con capacidad de programación en circuito; existen programadores de desarrollo de bajo coste, así como programadores para producción en grandes volúmenes.

Los dispositivos PIC son populares tanto entre los desarrolladores industriales como entre los aficionados debido a su bajo coste, amplia disponibilidad, gran base de usuarios, una extensa colección de notas de aplicación, disponibilidad de herramientas de desarrollo de bajo coste o gratuitas, programación en serie y capacidad de memoria flash reprogramable.

Historia

Concepto original

Diversos microcontroladores PIC antiguos (EPROM)

El microcontrolador PIC original estaba diseñado para usarse con la nueva unidad central de procesamiento (CPU) CP1600 de 16 bits de General Instrument . Para integrar los buses de datos y direcciones de 16 bits en un chip DIP ( Dual Inline Package ) de 40 pines, estándar en aquel entonces , ambos buses compartían el mismo conjunto de 16 pines de conexión. Para comunicarse con la CPU, los dispositivos debían monitorizar otros pines de la CPU para determinar si la información del bus era una dirección o datos. Dado que solo se presentaba uno de estos a la vez, los dispositivos debían esperar a que el bus entrara en modo de dirección, comprobar si esa dirección formaba parte de su rango de entrada/salida mapeado en memoria , "enclavar" esa dirección y, a continuación, esperar a que se activara el modo de datos para leer el valor. Además, el CP1600 utilizaba varios pines externos para seleccionar con qué dispositivo intentaba comunicarse, lo que complicaba aún más la interfaz.

Dado que la interfaz de dispositivos con el CP1600 podía ser compleja, GI también lanzó la serie 164x de chips de soporte con todos los circuitos necesarios integrados. Estos incluían controladores de teclado, interfaces para reproductores de casete y una gran variedad de sistemas similares. Para sistemas más complejos, GI presentó el 1640, un "Controlador de Interfaz Programable" (PIC), en 1975. La idea era que un dispositivo utilizara el PIC para gestionar toda la interfaz con el CP1600 del ordenador anfitrión, pero también utilizara su propio procesador interno para gestionar el dispositivo al que estaba conectado. Por ejemplo, una unidad de disquete podía implementarse con un PIC comunicándose con la CPU por un lado y con el controlador de disquete por el otro. De acuerdo con esta idea, lo que hoy se conocería como un microcontrolador , el PIC incluía una pequeña cantidad de memoria de solo lectura (ROM) que se escribiría con el código del controlador del dispositivo del usuario, y una memoria de acceso aleatorio (RAM) independiente para el almacenamiento en búfer y el procesamiento de datos. Estos componentes estaban conectados por separado, lo que convertía al PIC en un sistema con arquitectura Harvard, donde el código y los datos se almacenaban y gestionaban en vías internas separadas.

En teoría, la combinación de la CPU CP1600 y los controladores de dispositivos PIC1640 proporcionaba un sistema de control de dispositivos de muy alto rendimiento, similar en potencia y rendimiento a los controladores de E/S de canal que se encuentran en las computadoras centrales . En el ejemplo del controlador de disquete, por ejemplo, un solo PIC podía controlar la unidad, proporcionar un almacenamiento en búfer adecuado para mejorar el rendimiento y luego transferir datos hacia y desde la computadora host mediante acceso directo a memoria (DMA) o a través de código relativamente simple en la CPU. La desventaja de este enfoque era el costo; si bien el PIC no era necesario para dispositivos de baja velocidad como un teclado, muchas tareas requerirían uno o más PIC para construir un sistema completo.

Aunque el concepto de diseño tenía varias características atractivas, General Instrument nunca comercializó fuertemente el CP1600, prefiriendo tratar solo con grandes clientes e ignorando el mercado de gama baja. Esto resultó en una adopción muy baja del sistema, siendo Intellivision el único uso realmente extendido con alrededor de tres millones de unidades. Sin embargo, GI había introducido un modelo independiente, el PIC1650 [ 7 ] , en 1976, diseñado para usarse sin un CP1600. Aunque no era tan potente como el Intel MCS-48 introducido el mismo año, era más barato y encontró un mercado. [ 6 ] Los sucesores incluyeron el PIC1670, con instrucciones ampliadas de 12 a 13 bits para proporcionar el doble de espacio de direcciones (64 bytes de RAM y 1024 palabras de ROM). [ 8 ] Cuando GI escindió su división de chips para formar Microchip Technology en 1985, la producción del CP1600 terminó. Para entonces, sin embargo, el PIC1650 había desarrollado un gran mercado de clientes que lo utilizaban para una amplia variedad de funciones, y el PIC pasó a ser uno de los productos principales de la nueva empresa. [ 6 ]

Después del CP1600

PIC1655 de General Instrument

En 1985, General Instrument vendió su división de microelectrónica y los nuevos propietarios cancelaron casi todo, que para entonces estaba prácticamente obsoleto. Sin embargo, el PIC se actualizó con una EPROM interna para producir un controlador de E/S de canal programable . Al mismo tiempo, Plessey, en el Reino Unido, lanzó procesadores NMOS, denominados PIC1650 y PIC1655, basados ​​en el diseño de GI, que utilizaban los mismos conjuntos de instrucciones, ya fueran programables mediante máscara de usuario o versiones preprogramadas para marcadores automáticos e interfaces de teclado. [ 9 ]

En 1998, Microchip presentó el PIC16F84, una versión programable y borrable mediante memoria flash de su exitoso PIC16C84 programable en serie. En 2001, Microchip presentó más dispositivos programables mediante memoria flash, y la producción a gran escala comenzó en 2002. [ 10 ]

Actualmente, existe una gran variedad de microcontroladores PIC con diversos periféricos integrados ( módulos de comunicación serie , UART , núcleos de control de motores, etc.) y memoria de programa que va desde 256 palabras hasta 64 KB o más. Una "palabra" es una instrucción en lenguaje ensamblador , cuya longitud varía de 8 a 16 bits , según la serie específica del microcontrolador PIC .

Aunque PIC y PICmicro son ahora marcas registradas de Microchip Technology, el prefijo "PIC" ya no se usa como acrónimo de ningún término. Generalmente se cree que PIC significa " Programmable Intelligent Computer" (Computadora Inteligente Programable ), el prefijo que General Instruments usó en 1977 para la familia de microcomputadoras PIC1640 y PIC1650, [ 4 ] reemplazando el significado original de 1976 " Programmable Interface Controller" (Controlador de Interfaz Programable ) para el PIC1640 que fue diseñado específicamente para funcionar en combinación con la microcomputadora CP1600. [ 3 ] Las "microcomputadoras de la serie PIC" de General Instrument eran una serie de microcomputadoras de 8 bits de integración a gran escala de semiconductores de óxido metálico (MOS/LSI) que contenían ROM, RAM, una CPU y registros de entrada/salida (E/S) de 8 bits para la interfaz. En su momento, esta tecnología combinó las ventajas de los circuitos MOS con la integración a gran escala, lo que permitió la creación de circuitos integrados complejos con alta densidad de transistores. [ 4 ]

El Microchip 16C84 ( PIC16x84 ), presentado en 1993, fue la primera [ 11 ] CPU de Microchip con memoria EEPROM en el chip.

Para 2013, Microchip enviaba más de mil millones de microcontroladores PIC cada año. [ 5 ]

Familias de dispositivos

Los microchips PIC están diseñados con una arquitectura Harvard y se ofrecen en varias familias de dispositivos. Las familias de gama básica e intermedia utilizan memoria de datos de 8 bits, y las de gama alta utilizan memoria de datos de 16 bits. La serie más reciente, PIC32MZ, es un microcontrolador de 32 bits basado en MIPS . Los tamaños de palabra de instrucción son de 12 bits (PIC10 y PIC12), 14 bits (PIC16) y 24 bits (PIC24 y dsPIC). Las representaciones binarias de las instrucciones de máquina varían según la familia y se muestran en los listados de instrucciones PIC .

Dentro de estas familias, los dispositivos pueden designarse como PICnnCxxx (CMOS) o PICnnFxxx (Flash). Los dispositivos "C" generalmente se clasifican como "No aptos para nuevos desarrollos" (Microchip no los promociona activamente). La memoria de programa de los dispositivos "C" se describe de diversas maneras como OTP, ROM o EEPROM. A octubre de 2016, el único producto OTP clasificado como "En producción" es el PIC16HV540. Los dispositivos "C" con ventanas de cuarzo (para borrado UV) generalmente ya no están disponibles.

PIC10 y PIC12

Estos dispositivos cuentan con una memoria de código de 12 bits, un archivo de registros de 32 bytes y una pequeña pila de llamadas de dos niveles. Están representados por la serie PIC10, así como por algunos dispositivos PIC12 y PIC16. Los dispositivos básicos están disponibles en encapsulados de 6 a 40 pines.

Generalmente, los primeros 7 a 9 bytes del banco de registros son registros de propósito especial, y los bytes restantes son RAM de propósito general. Los punteros se implementan mediante un par de registros: después de escribir una dirección en el FSR (registro de selección de archivo), el registro INDF (f indirecto) se convierte en un alias para el registro direccionado. Si se implementa RAM con bancos, el número de banco se selecciona mediante los 3 bits superiores del FSR. Esto afecta a los registros del 16 al 31; los registros del 0 al 15 son globales y no se ven afectados por los bits de selección de banco.

Debido al espacio de registro muy limitado (5 bits), a 4 registros que se leían con poca frecuencia no se les asignaron direcciones, sino que se escribieron mediante instrucciones especiales ( OPTIONy TRIS).

El espacio de direcciones de la ROM es de 512 bits y solo puede especificar direcciones en la primera mitad de cada página de 512 palabras. Es decir, la instrucción CALL especifica los 9 bits menos significativos de la dirección, pero solo los 8 bits menos significativos de esa dirección son un parámetro de la instrucción, mientras que el noveno bit (bit 8) se especifica implícitamente como 0 por la propia instrucción CALL.

Las tablas de búsqueda se implementan mediante un cálculo GOTO(asignación al registro PCL) en una tabla de RETLWinstrucciones. RETLW realiza un retorno de subrutina y, simultáneamente, carga el registro W con una constante inmediata de 8 bits que forma parte de la instrucción.

Este "núcleo base" no admite interrupciones ; todas las operaciones de entrada/salida deben ser monitorizadas . Existen algunas variantes "base mejorada" con soporte para interrupciones y una pila de llamadas de cuatro niveles.

Los microcontroladores PIC10F32x cuentan con una memoria de código de 14 bits de rango medio (256 o 512 palabras), un registro SRAM de 64 bytes y una pila de hardware de 8 niveles. Están disponibles en encapsulados SMD de 6 pines y DIP de 8 pines (dos pines sin usar). Disponen de un único pin de entrada y tres pines de E/S. Ofrecen un conjunto complejo de interrupciones. El reloj consta de un oscilador interno calibrado de alta frecuencia de 16  MHz con selección de velocidad mediante software y una  fuente de alimentación de bajo consumo de 31 kHz.

PIC16

Microchip PIC16C58A
PIC16LF870 en zócalo SOIC

Estos dispositivos cuentan con una memoria de código de 14 bits y una pila de llamadas mejorada de 8 niveles (16 niveles en las variantes más recientes). El conjunto de instrucciones difiere muy poco del de los dispositivos básicos, pero los dos bits adicionales del código de operación permiten direccionar directamente 128 registros y 2048 palabras de código. Incluyen algunas instrucciones misceláneas adicionales y dos instrucciones literales de 8 bits: suma y resta. El núcleo de gama media está disponible en la mayoría de los dispositivos con las denominaciones PIC12 y PIC16.

Los primeros 32 bytes del espacio de registros se asignan a registros de propósito especial; los 96 bytes restantes se utilizan para la RAM de propósito general. Si se utiliza RAM con bancos, los 16 registros superiores (0x70–0x7F) son globales, al igual que algunos de los registros de propósito especial más importantes, incluido el registro STATUS, que contiene los bits de selección de banco de la RAM. (Los otros registros globales son FSR e INDF, los 8 bits inferiores del contador de programa PCL, el registro de precarga alta del PC PCLATH y el registro de control de interrupción maestro INTCON).

El registro PCLATH proporciona bits de dirección de instrucción de orden superior cuando los 8 bits proporcionados por una escritura en el registro PCL, o los 11 bits proporcionados por una instrucción GOTOo CALL, no son suficientes para direccionar el espacio ROM disponible.

PIC17

La serie PIC17 nunca se popularizó y fue reemplazada por la arquitectura PIC18 (sin embargo, consulte los clones a continuación). No se recomienda la serie PIC17 para nuevos diseños, y su disponibilidad puede ser limitada.

Improvements over earlier cores are 16-bit wide opcodes (allowing many new instructions), and a 16-level deep call stack. PIC17 devices were produced in packages from 40 to 68 pins.

La serie PIC17 introdujo una serie de nuevas características importantes: [ 12 ]

  • un acumulador mapeado en memoria
  • Acceso de lectura a la memoria del código (lecturas de tabla)
  • Movimientos directos de registro a registro (se necesitaban núcleos anteriores para mover los registros a través del acumulador).
  • una interfaz de memoria de programa externa para expandir el espacio de código
  • un multiplicador de hardware de 8 bits × 8 bits
  • un segundo par de registros indirectos
  • Direccionamiento de autoincremento/autodecremento controlado por bits de control en un registro de estado (ALUSTA)

Una limitación importante era que el espacio de RAM estaba limitado a 256 bytes (26 bytes de registros de funciones especiales y 232 bytes de RAM de propósito general), con una conmutación de bancos engorrosa en los modelos que admitían más memoria.

PIC18

PIC18F45K20

En el año 2000, Microchip presentó la arquitectura PIC18. A diferencia de la serie PIC17, ha demostrado ser muy popular, con un gran número de variantes de dispositivos actualmente en fabricación. En contraste con los dispositivos anteriores, que en la mayoría de los casos se programaban en lenguaje ensamblador , C se ha convertido en el lenguaje de desarrollo predominante. [ 13 ]

La serie PIC18 hereda la mayoría de las características e instrucciones de la serie PIC17, a la vez que añade una serie de nuevas características importantes:

  • La pila de llamadas tiene 21 bits de ancho y es mucho más profunda (31 niveles de profundidad).
  • La pila de llamadas se puede leer y escribir (registros TOSU:TOSH:TOSL).
  • instrucciones de bifurcación condicional
  • modo de direccionamiento indexado (PLUSW)
  • Los registros FSR se extienden a 12 bits, lo que les permite direccionar linealmente todo el espacio de direcciones de datos.
  • la adición de otro registro FSR (lo que eleva el número a 3)

El espacio de RAM es de 12  bits, direccionado mediante un registro de selección de banco (BSR) de 4 bits y un desplazamiento de 8 bits en cada instrucción. Un bit de "acceso" adicional en cada instrucción selecciona entre el banco de acceso ( a = 0) y el banco seleccionado por el BSR ( a = 1).

También se dispone de una pila de un nivel para los registros STATUS, WREG y BSR. Estos se guardan en cada interrupción y pueden restaurarse al regresar. Si las interrupciones están deshabilitadas, también pueden utilizarse en la llamada/retorno de la subrutina activando el bit s (añadiendo ", FAST" a la instrucción).

La función de incremento/decremento automático se mejoró eliminando los bits de control y añadiendo cuatro nuevos registros indirectos por FSR. Dependiendo del registro de archivo indirecto al que se acceda, es posible realizar un postdecremento, postincremento o preincremento del FSR; o bien, formar la dirección efectiva añadiendo W al FSR.

En los dispositivos PIC18 más avanzados, está disponible un "modo extendido" que hace que el direccionamiento sea aún más favorable para el código compilado:

  • un nuevo modo de direccionamiento con desplazamiento; algunas direcciones que eran relativas al banco de acceso ahora se interpretan en relación con el registro FSR2.
  • the addition of several new instructions, notably for manipulating the FSR registers.

Los dispositivos PIC18 aún están en desarrollo (2021) y vienen equipados con CIP (periféricos independientes del núcleo).

PIC24 y dsPIC

En 2001, Microchip presentó la serie de chips dsPIC, [ 14 ] que entró en producción en masa a finales de 2004. Son los primeros microcontroladores de Microchip diseñados intrínsecamente para 16 bits. Los dispositivos PIC24 están diseñados como microcontroladores de propósito general. Los dispositivos dsPIC incluyen, además, capacidades de procesamiento de señales digitales .

Aunque sigue siendo similar a las arquitecturas PIC anteriores, existen mejoras significativas: [ 15 ]

  • Todos los registros tienen un ancho de 16 bits.
  • El contador de programa es de 22 bits (bits 22:1; el bit 0 siempre es 0).
  • Las instrucciones tienen un ancho de 24 bits.
  • El espacio de direcciones de datos se ha ampliado a 64 KiB. 
  • Los primeros 2  KiB están reservados para los registros de control de periféricos.
  • No se requiere la conmutación del banco de datos a menos que la RAM supere los 62  KiB.
  • El direccionamiento directo del operando "f" se extendió a 13 bits (8  KiB).
  • Hay 16 registros W disponibles para operaciones entre registros. (Pero las operaciones con operandos f siempre hacen referencia a W0).
  • Las instrucciones se presentan en formato de byte y palabra (de 16 bits).
  • La pila está en la RAM (con W15 como puntero de pila); no hay pila de hardware.
  • W14 es el puntero de marco.
  • Se puede acceder directamente a los datos almacenados en la ROM ("Visibilidad del espacio de programa").
  • Interrupciones vectorizadas para diferentes fuentes de interrupción

Algunas características son:

Los microcontroladores dsPIC se pueden programar en C utilizando el compilador XC16 de Microchip (anteriormente llamado C30), que es una variante de GCC .

La ROM de instrucciones tiene 24 bits de ancho. El software puede acceder a la ROM en palabras de 16 bits, donde las palabras pares contienen los 16 bits menos significativos de cada instrucción y las palabras impares contienen los 8 bits más significativos. La mitad superior de las palabras impares se lee como cero. El contador de programa tiene 23 bits de ancho, pero el bit menos significativo siempre es 0, por lo que hay 22 bits modificables.

Las instrucciones se presentan en dos variedades principales, y la mayoría de las operaciones importantes (suma, XOR, desplazamientos, etc.) permiten ambas formas:

  • La primera es similar a las instrucciones clásicas de PIC, con una operación entre un registro f específico (es decir, los primeros 8 KB de RAM) y un acumulador W0, donde un bit de selección de destino indica cuál se actualiza con el resultado. (Los registros W están mapeados en memoria, por lo que el operando f puede ser cualquier registro W).
  • La segunda forma es más convencional y permite tres operandos, que pueden ser cualquiera de los 16 registros W. El destino y uno de los orígenes también admiten modos de direccionamiento, lo que permite que el operando se encuentre en la memoria a la que apunta un registro W.

Línea basada en PIC32M MIPS

Los productos PIC32M de Microchip utilizan la marca registrada PIC, pero tienen una arquitectura completamente diferente y aquí solo se describen brevemente.

PIC32MX

PIC32MX430F064H

En noviembre de 2007, Microchip presentó la familia de microcontroladores de 32 bits PIC32MX , basada en el núcleo MIPS32 M4K . [ 16 ] El dispositivo se puede programar utilizando el compilador Microchip MPLAB C para MCU PIC32 , una variante del compilador GCC. Los primeros 18 modelos actualmente en producción (PIC32MX3xx y PIC32MX4xx) son compatibles pin a pin y comparten el mismo conjunto de periféricos con la familia de dispositivos PIC24FxxGA0xx (de 16 bits), lo que permite el uso de bibliotecas, software y herramientas de hardware comunes. Hoy en día, desde dispositivos de 28 pines en pequeños paquetes QFN hasta dispositivos de alto rendimiento con Ethernet, CAN y USB OTG, está disponible una gama completa de microcontroladores de 32 bits de gama media.

La arquitectura PIC32 aportó una serie de nuevas características al catálogo de Microchip, entre las que se incluyen:

  • La velocidad de ejecución más alta es de 80  MIPS (120+ [ 17 ] MIPS de Dhrystone a 80 MHz ).
  • La memoria flash de mayor capacidad: 512  kB
  • Una instrucción por ciclo de reloj
  • El primer procesador con caché
  • Permite la ejecución desde la RAM
  • Capacidades USB de doble función y host de alta velocidad y OTG.
  • Programación y depuración completas mediante JTAG y comunicación de 2 hilos.
  • Seguimiento en tiempo real

PIC32MZ

En noviembre de 2013, Microchip presentó la serie de microcontroladores PIC32MZ, basada en el núcleo MIPS M14K. La serie PIC32MZ incluye: [ 18 ] [ 19 ]

  • Velocidad del núcleo de 252  MHz, 415 DMIPS
  • Hasta 2  MB de memoria Flash y 512  KB de RAM.
  • Nuevos periféricos que incluyen USB de alta velocidad, motor criptográfico y SQI.

En 2015, Microchip lanzó la familia PIC32MZ EF, que utiliza el procesador MIPS M5150 Warrior de clase M actualizado. [ 20 ] [ 21 ]

En 2017, Microchip presentó la familia PIC32MZ DA, que incluye un controlador gráfico integrado, un procesador gráfico y 32 MB de DRAM DDR2. [ 22 ] [ 23 ]

PIC32MM

En junio de 2016, Microchip presentó la familia PIC32MM, especializada en aplicaciones de bajo consumo y bajo costo. [ 24 ] El PIC32MM cuenta con periféricos independientes del núcleo, modos de suspensión de hasta 500 nA y  encapsulados de 4 x 4 mm. [ 25 ] Los microcontroladores PIC32MM utilizan el procesador MIPS Technologies M4K, un procesador MIPS32 de 32 bits . Están diseñados para un consumo de energía muy bajo y una frecuencia limitada a 25  MHz. Su principal ventaja es la compatibilidad con las instrucciones de 16 bits de MIPS, lo que reduce considerablemente el tamaño del programa (aproximadamente un 40%).

PIC32MK

Microchip presentó la familia PIC32MK en 2017, especializada para control de motores, control industrial, Internet industrial de las cosas (IIoT) y aplicaciones CAN multicanal. [ 26 ]

Línea basada en PIC32C Arm

Los productos PIC32C de Microchip también utilizan la marca registrada PIC, pero presentan una arquitectura completamente diferente. Los productos PIC32C emplean la arquitectura de procesador Arm, incluyendo varias líneas que utilizan núcleos Cortex-M0+, M4, M7, M23 y M33. Se ofrecen además de la serie de microcontroladores SAM basados ​​en Arm que Microchip heredó tras la adquisición de Atmel. [ 27 ]

PIC64

Los productos PIC64 de Microchip utilizan la marca registrada PIC, pero tienen una arquitectura completamente diferente y aquí solo se describen brevemente.

En julio de 2024, Microchip presentó la serie PIC64 de microprocesadores multinúcleo de alto rendimiento . Inicialmente, la serie utilizará el conjunto de instrucciones RISC-V ; sin embargo, Microchip también planea versiones con núcleos ARM Cortex-A . [ 28 ] La serie PIC64 incluirá la línea PIC64GX, que se centra en aplicaciones de borde inteligentes, y la línea PIC64-HPSC, que está reforzada contra la radiación y se centra en aplicaciones de vuelos espaciales. [ 29 ] [ 30 ]

Arquitectura central

La arquitectura PIC (excluyendo los no relacionados PIC32 y PIC64) es una máquina acumuladora de un operando como el PDP-8 o el ordenador de guiado del Apolo . Sus características son:

  • Un acumulador (W0), que es un operando implícito en casi todas las instrucciones.
  • Un pequeño número de instrucciones de longitud fija, con una temporización mayoritariamente fija (2 ciclos de reloj, o 4 ciclos de reloj en modelos de 8 bits).
  • Una pequeña cantidad de espacio de datos direccionable (32, 128 o 256 bytes, dependiendo de la familia), extendido a través de la banca
  • Espacios de código y datos separados ( arquitectura Harvard ).
  • La memoria de instrucciones es más amplia que la memoria de datos, lo que permite el uso de constantes inmediatas dentro de una instrucción. (Esta es una diferencia importante con respecto a las otras máquinas acumuladoras tempranas mencionadas anteriormente).
  • El segundo operando es una ubicación de memoria o una constante inmediata.
  • No existen otros modos de direccionamiento , aunque se puede emular un modo de direccionamiento indirecto utilizando el/los registro(s) indirecto(s).
  • Registros de CPU, puertos y periféricos mapeados en el espacio de datos
    • Los indicadores de estado de ALU se asignan al espacio de datos.
    • El contador de programa también está mapeado en el espacio de datos y es modificable (esto se utiliza para implementar saltos indirectos).
  • Una pila de hardware para almacenar direcciones de retorno
  • Solo existen instrucciones de bifurcación incondicionales.
  • La ejecución condicional se logra mediante instrucciones de salto condicional, que anulan condicionalmente la instrucción siguiente.

No existe distinción entre el espacio de memoria y el espacio de registros, ya que la RAM cumple la función tanto de la memoria como de los registros, y normalmente se la denomina simplemente "el archivo de registros" o "los registros".

Espacio de datos (RAM)

Los microcontroladores PIC cuentan con un conjunto de registros que funcionan como memoria RAM de propósito general. Los registros de control específicos para los recursos de hardware integrados también se asignan al espacio de datos. La direccionabilidad de la memoria varía según la serie del dispositivo, y todos los tipos de dispositivos PIC disponen de un mecanismo de direccionamiento para extender el direccionamiento a memoria adicional (aunque algunos modelos solo implementan un banco). Las series más recientes incorporan instrucciones de movimiento, que pueden abarcar todo el espacio direccionable, independientemente del banco seleccionado. En los dispositivos anteriores, cualquier movimiento de registro debía realizarse a través del acumulador.

Para implementar el direccionamiento indirecto, se utilizan un registro de selección de archivo (FSR) y un registro indirecto (INDF). Se escribe un número de registro en el FSR, tras lo cual las lecturas y escrituras en el INDF se realizarán en realidad desde o hacia el registro al que apunta el FSR. Los dispositivos posteriores ampliaron este concepto con incrementos y decrementos previos y posteriores para una mayor eficiencia en el acceso a los datos almacenados secuencialmente. Esto también permite que el FSR se trate prácticamente como un puntero de pila (SP).

La memoria de datos externa no es directamente direccionable, excepto en algunos dispositivos PIC18 con un alto número de pines. Sin embargo, se pueden usar puertos de E/S generales para implementar un bus paralelo o una interfaz serie para acceder a la memoria externa y otros periféricos (mediante subrutinas), con la salvedad de que dicho acceso a la memoria programada es (por supuesto) mucho más lento que el acceso a la memoria nativa del microcontrolador PIC.

Espacio de código

El espacio de código generalmente se implementa como ROM integrada en el chip , EPROM o ROM flash . Por lo general, no hay posibilidad de almacenar código en memoria externa debido a la falta de una interfaz de memoria externa. Las excepciones son el PIC17 y algunos dispositivos PIC18 con un número elevado de pines. [ 31 ]

Tamaño de la palabra

Todos los microcontroladores PIC manejan (y direccionan) datos en bloques de 8 bits. Sin embargo, la unidad de direccionamiento del espacio de código no suele ser la misma que la del espacio de datos. Por ejemplo, los PIC de las familias básica (PIC12) y de gama media (PIC16) tienen memoria de programa direccionable con el mismo tamaño de palabra que el ancho de instrucción, es decir, 12 o 14 bits respectivamente. En cambio, en la serie PIC18, la memoria de programa se direcciona en incrementos de 8 bits (bytes), lo que difiere del ancho de instrucción de 16 bits.

Para mayor claridad, la capacidad de memoria del programa se suele indicar en número de instrucciones (de una sola palabra), en lugar de en bytes.

Pilas

Los microcontroladores PIC cuentan con una pila de llamadas por hardware , que se utiliza para guardar las direcciones de retorno. En los dispositivos anteriores, la pila de hardware no era accesible por software, pero esto cambió con la serie PIC18.

En las primeras series, la compatibilidad de hardware con una pila de parámetros de propósito general era escasa, pero mejoró notablemente en la serie PIC18, lo que hizo que la arquitectura de la serie PIC18 fuera más compatible con los compiladores de lenguajes de alto nivel.

Conjunto de instrucciones

Los conjuntos de instrucciones de los microcontroladores PIC varían desde unas 35 instrucciones para los modelos de gama baja hasta más de 80 para los de gama alta. El conjunto de instrucciones incluye instrucciones para realizar diversas operaciones directamente en los registros, en el acumulador y una constante literal, o en el acumulador y un registro , así como para la ejecución condicional y la bifurcación del programa.

Algunas operaciones, como la configuración y la comprobación de bits, pueden realizarse en cualquier registro numerado, pero las operaciones aritméticas de dos entradas siempre involucran a W (el acumulador), que escribe el resultado en W o en el otro registro operando. Para cargar una constante, es necesario cargarla en W antes de poder moverla a otro registro. En los núcleos más antiguos, todos los movimientos de registro debían pasar por W, pero esto cambió en los núcleos de gama alta.

Los núcleos PIC cuentan con instrucciones de salto, que se utilizan para la ejecución condicional y la bifurcación. Estas instrucciones son "saltar si el bit está activado" y "saltar si el bit no está activado". Dado que los núcleos anteriores al PIC18 solo tenían instrucciones de bifurcación incondicional, los saltos condicionales se implementan mediante un salto condicional (con la condición opuesta) seguido de una bifurcación incondicional. Los saltos también son útiles para la ejecución condicional de cualquier instrucción siguiente inmediata. Es posible omitir instrucciones de salto. Por ejemplo, la secuencia de instrucciones "saltar si A; saltar si B; C" ejecutará C si A es verdadero o si B es falso.

La serie PIC18 implementó registros de sombra: estos son registros que guardan varios registros importantes durante una interrupción, proporcionando soporte de hardware para guardar automáticamente el estado del procesador al atender interrupciones.

En general, las instrucciones PIC se dividen en cinco clases:

  • Operación en el registro de trabajo (WREG) con operando inmediato ("literal") de 8 bits. Por ejemplo movlw(mover literal a WREG), andlw(AND literal con WREG). Una instrucción peculiar del PIC es retlwcargar inmediato en WREG y regresar, que se utiliza con bifurcaciones calculadas para producir tablas de búsqueda .
  • Operación con WREG y registro indexado. El resultado se puede escribir en el registro de trabajo (por ejemplo, ). o en el registro seleccionado (por ejemplo, ).addwf reg,waddwf reg,f
  • Operaciones de bits. Estas operaciones toman un número de registro y un número de bit, y realizan una de cuatro acciones: establecer o borrar un bit, y comprobar o saltar al establecer o borrar. Estas últimas se utilizan para realizar bifurcaciones condicionales. Los indicadores de estado habituales de la ALU están disponibles en un registro numerado, por lo que son posibles operaciones como "bifurcar al borrar el acarreo".
  • Transferencias de control. Aparte de las instrucciones de salto mencionadas anteriormente, solo hay dos: gotoy call.
  • Algunas instrucciones misceláneas sin operando, como el retorno desde una subrutina y sleepla entrada en modo de bajo consumo.

Actuación

Las decisiones arquitectónicas se centran en maximizar la relación velocidad-coste. La arquitectura PIC fue una de las primeras CPU escalares y sigue siendo una de las más sencillas y económicas. La arquitectura Harvard, en la que las instrucciones y los datos provienen de fuentes independientes, simplifica enormemente la temporización y el diseño de microcircuitos, lo que beneficia la velocidad de reloj, el precio y el consumo energético.

El conjunto de instrucciones del PIC es adecuado para la implementación de tablas de búsqueda rápidas en el espacio de programa. Dichas búsquedas requieren una instrucción y dos ciclos de instrucción. Muchas funciones pueden modelarse de esta manera. La optimización se ve facilitada por el espacio de programa relativamente grande del PIC (por ejemplo, 4096 palabras de 14 bits en el 16F690) y por el diseño del conjunto de instrucciones, que permite constantes integradas. Por ejemplo, el destino de una instrucción de salto puede estar indexado por W y ejecutar una instrucción "RETLW", que hace lo que su nombre indica : devolver un literal en W. 

La latencia de interrupción es constante, de tres ciclos de instrucción. Las interrupciones externas deben sincronizarse con el ciclo de instrucción de cuatro relojes; de lo contrario, puede producirse una fluctuación de un ciclo de instrucción. Las interrupciones internas ya están sincronizadas. La latencia constante de interrupción permite a los microcontroladores PIC lograr secuencias de temporización con baja fluctuación controladas por interrupciones. Un ejemplo de esto es un generador de pulsos de sincronización de vídeo. Esto ya no es así en los modelos PIC más recientes, ya que presentan una latencia de interrupción síncrona de tres o cuatro ciclos.

Ventajas

  • Pequeño conjunto de instrucciones para aprender
  • Arquitectura RISC
  • Oscilador incorporado con velocidades seleccionables.
  • Unidades PICkit de fácil acceso, con programación en circuito y depuración en circuito, disponibles por menos de 50 dólares.
  • Microcontroladores económicos
  • Amplia gama de interfaces que incluyen I²C , SPI , USB , UART , A/D , comparadores programables, PWM , LIN , CAN , PSP y Ethernet [ 32 ]
  • La disponibilidad de procesadores en encapsulado DIL facilita su manejo para uso doméstico.

Limitaciones

  • Un acumulador
  • Se requiere la conmutación de bancos de registros para acceder a toda la RAM de muchos dispositivos.
  • Las operaciones y los registros no son ortogonales ; algunas instrucciones pueden acceder a la RAM y/o a constantes inmediatas , mientras que otras solo pueden usar el acumulador.

Las siguientes limitaciones de pila se han solucionado en la serie PIC18 , pero aún se aplican a los núcleos anteriores:

Con memoria de programa paginada, hay dos tamaños de página a considerar: uno para CALL y GOTO y otro para GOTO calculado (que normalmente se usa para búsquedas en tablas). Por ejemplo, en el PIC16, CALL y GOTO tienen 11 bits de direccionamiento, por lo que el tamaño de página es de 2048 palabras de instrucción. Para los GOTO calculados, donde se agrega a PCL, el tamaño de página es de 256 palabras de instrucción. En ambos casos, los bits de dirección superiores los proporciona el registro PCLATH. Este registro debe cambiarse cada vez que el control se transfiere entre páginas. PCLATH también debe conservarse mediante cualquier controlador de interrupción. [ 33 ]

Desarrollo de compiladores

Si bien existen varios compiladores comerciales, en 2008 Microchip lanzó sus propios compiladores de C, C18 y C30, para la línea de procesadores 18F, 24F y 30/33F.

Desde 2013, Microchip ofrece su serie de compiladores XC, para su uso con MPLAB X. Microchip eventualmente retirará gradualmente sus compiladores más antiguos, como C18, y recomienda usar sus compiladores de la serie XC para nuevos diseños. [ 34 ]

El conjunto de instrucciones RISC del código en lenguaje ensamblador PIC puede dificultar la comprensión del flujo general. El uso juicioso de macros simples puede aumentar la legibilidad del lenguaje ensamblador PIC. Por ejemplo, el ensamblador original de Parallax PIC ("SPASM") tiene macros que ocultan W y hacen que el PIC parezca una máquina de dos direcciones. Tiene instrucciones de macro como mov b, a(mover los datos de la dirección a a la dirección b ) y add b, a(sumar datos de la dirección a a los datos en la dirección b ). También oculta las instrucciones de salto proporcionando instrucciones de macro de salto de tres operandos, como cjne a, b, dest(comparar a con b y saltar a dest si no son iguales).

Características del hardware

Los dispositivos PIC generalmente presentan las siguientes características:

  • Memoria flash (memoria de programa, programada mediante dispositivos MPLAB )
  • SRAM (memoria de datos)
  • EEPROM (programable en tiempo de ejecución)
  • Modo de suspensión (ahorro de energía)
  • Temporizador de vigilancia
  • Diversas configuraciones de oscilador de cristal o RC , o un reloj externo.

Variantes

Dentro de una misma serie, existen muchas variantes de dispositivos dependiendo de los recursos de hardware que incorpore el chip:

La primera generación de microcontroladores PIC con memoria EPROM ha sido prácticamente reemplazada por chips con memoria flash . Asimismo, el conjunto de instrucciones original de 12 bits del PIC1650 y sus descendientes directos ha sido sustituido por conjuntos de instrucciones de 14 y 16 bits. Microchip aún vende versiones OTP (programables una sola vez) y con ventana (borrables con luz ultravioleta) de algunos de sus microcontroladores PIC basados ​​en EPROM para soporte de versiones anteriores o pedidos al por mayor. El sitio web de Microchip clasifica los microcontroladores PIC que no son borrables eléctricamente como OTP. Se pueden solicitar versiones con ventana borrables con luz ultravioleta de estos chips.

Número de pieza

La letra F en el número de pieza de un microcontrolador PIC generalmente indica que utiliza memoria flash y se puede borrar electrónicamente. Por el contrario, la letra C generalmente significa que solo se puede borrar exponiendo el chip a luz ultravioleta (lo cual solo es posible si se utiliza un encapsulado con ventana). Una excepción a esta regla es el PIC16C84, que utiliza memoria EEPROM y, por lo tanto, se puede borrar eléctricamente.

Una L en el nombre indica que la pieza funcionará a un voltaje más bajo, a menudo con límites de frecuencia impuestos. [ 35 ] Las piezas diseñadas específicamente para operar a bajo voltaje, dentro de un rango estricto de 3 a 3,6 voltios, están marcadas con una J en el número de pieza. Estas piezas también son excepcionalmente tolerantes a las E/S, ya que aceptan hasta 5  V como entradas. [ 35 ]

Herramientas de desarrollo

Microchip ofrece un paquete IDE gratuito llamado MPLAB X , que incluye un ensamblador, un enlazador, un simulador de software y un depurador. También venden compiladores de C para los microcontroladores PIC10, PIC12, PIC16, PIC18, PIC24, PIC32 y dsPIC, que se integran perfectamente con MPLAB X. Existen versiones gratuitas de los compiladores de C con todas las funciones. Sin embargo, en estas versiones gratuitas, las optimizaciones se desactivan después de 60 días. [ 36 ]

Varias empresas desarrollan compiladores de lenguaje C para microcontroladores PIC, muchos de los cuales se integran con MPLAB o cuentan con su propio entorno de desarrollo integrado (IDE). meLabs, Inc. ofrece un compilador completo para el lenguaje PICBASIC para programar microcontroladores PIC. Mikroelektronika ofrece compiladores para PIC en los lenguajes de programación C, BASIC y Pascal.

Flowcode es un lenguaje de programación gráfica capaz de programar microcontroladores PIC de 8 y 16 bits y generar código C compatible con PIC. Existen numerosas versiones, desde una de demostración gratuita hasta una edición profesional más completa.

El paquete de diseño Proteus permite simular muchos de los dispositivos PIC de 8 y 16 bits más populares, así como otros circuitos conectados al PIC en el esquema. El programa a simular puede desarrollarse dentro del propio Proteus, MPLAB o cualquier otra herramienta de desarrollo. [ 37 ]

El sistema independiente FORTH FlashForth, que incorpora un intérprete, compilador, ensamblador y multitarea, proporciona una solución integral para escribir y depurar aplicaciones complejas en tiempo real. El sistema, en su totalidad, incluido el compilador, se ejecuta en el microcontrolador. Se utiliza un ordenador con un emulador de terminal para comunicarse con FF a través de un enlace serie o USB. [ 38 ]

Programadores de dispositivos

Este es un programador de 2003 para la familia de microcontroladores "PIC" de Microchip. Se conecta mediante un cable RS 232 a una PC compatible con software de desarrollo. En 2003, esta unidad costaba 300 dólares canadienses (unos 200 dólares estadounidenses en aquel entonces).

Los dispositivos denominados " programadores " se utilizan tradicionalmente para introducir el código del programa en el microcontrolador PIC de destino. La mayoría de los microcontroladores PIC que Microchip vende actualmente cuentan con capacidades ICSP (programación en serie en circuito) y/o LVP (programación de bajo voltaje), lo que permite programar el microcontrolador PIC mientras está integrado en el circuito de destino .

Microchip ofrece programadores/depuradores de las series MPLAB y PICKit . MPLAB ICD5 y MPLAB REAL ICE son los programadores y depuradores actuales para ingenieros profesionales, mientras que PICKit 5 es una línea de programadores/depuradores de bajo costo para aficionados y estudiantes. A partir de 2026, Microchip también produce dos programadores/depuradores aún más económicos (con capacidades limitadas), denominados PICKit Basic y MPLAB Snap.

Carga de arranque

Muchos de los microcontroladores PIC de gama alta basados ​​en memoria flash también pueden autoprogramarse (escribir en su propia memoria de programa), un proceso conocido como arranque. Existen placas de demostración con un pequeño gestor de arranque programado de fábrica que permite cargar programas de usuario a través de una interfaz como RS-232 o USB , eliminando así la necesidad de un programador.

Como alternativa, existe un firmware de gestor de arranque que el usuario puede cargar en el microcontrolador PIC mediante ICSP. Tras programar el gestor de arranque en el PIC, el usuario puede reprogramar el dispositivo mediante RS232 o USB, junto con un software informático especializado.

Las ventajas de un gestor de arranque sobre ICSP son una mayor velocidad de programación, la ejecución inmediata del programa tras la programación y la posibilidad de depurar y programar utilizando el mismo cable.

Tercero

Existen numerosos programadores para microcontroladores PIC, desde diseños extremadamente sencillos que utilizan ICSP para la descarga directa de código desde un ordenador, hasta programadores inteligentes capaces de verificar el dispositivo con diferentes tensiones de alimentación. Muchos de estos programadores complejos utilizan un PIC preprogramado para enviar los comandos de programación al microcontrolador que se va a programar. El tipo de programador inteligente es necesario para programar modelos PIC más antiguos (principalmente de tipo EPROM) que no admiten la programación en circuito.

Los programadores de terceros ofrecen desde planes para construir uno mismo hasta kits de autoensamblaje y unidades listas para usar y completamente probadas. Algunos son diseños sencillos que requieren una PC para la programación de bajo nivel (normalmente se conectan al puerto serie o paralelo y constan de unos pocos componentes simples), mientras que otros tienen la lógica de programación integrada (normalmente usan una conexión serie o USB, suelen ser más rápidos y a menudo se construyen usando microcontroladores PIC para el control).

Depuración

Depuración en circuito

Todos los dispositivos PIC más recientes incorporan una interfaz ICD (depuración en circuito) integrada en el núcleo de la CPU, que permite la depuración interactiva del programa junto con el entorno de desarrollo integrado MPLAB . Los depuradores MPLAB ICD y MPLAB REAL ICE pueden comunicarse con esta interfaz mediante la interfaz ICSP .

Sin embargo, este sistema de depuración tiene un precio: un número limitado de puntos de interrupción (1 en dispositivos antiguos, 3 en dispositivos más nuevos), la pérdida de algunas entradas/salidas (con la excepción de algunos microcontroladores PIC de 44 pines de montaje superficial que tienen líneas dedicadas para la depuración) y la pérdida de algunas funciones integradas en el chip.

Algunos dispositivos no cuentan con soporte para depuración en el chip, debido a su costo o a la falta de pines. Algunos chips de mayor tamaño tampoco tienen módulo de depuración. Para depurar estos dispositivos, se requiere una versión especial -ICD del chip montada en una placa secundaria que proporciona puertos dedicados. Algunos de estos chips de depuración pueden funcionar como más de un tipo de chip mediante el uso de puentes seleccionables en la placa secundaria. Esto permite reemplazar arquitecturas prácticamente idénticas que no incluyen todos los periféricos en el chip con un solo chip -ICD. Por ejemplo: el 16F690-ICD funcionará como una de seis partes diferentes, cada una de las cuales incluye ninguno, algunos o todos los cinco periféricos en el chip. [ 39 ]

Emuladores en circuito

Microchip ofrece tres emuladores completos en circuito : el MPLAB ICE2000 (interfaz paralela, con convertidor USB disponible); el más reciente MPLAB ICE4000 (conexión USB 2.0); y, más recientemente, el REAL ICE (conexión USB 2.0). Todas estas herramientas se utilizan normalmente junto con el IDE MPLAB para la depuración interactiva a nivel de código fuente del código que se ejecuta en el dispositivo de destino.

Sistemas operativos

Los proyectos PIC pueden utilizar sistemas operativos en tiempo real como FreeRTOS , AVIX RTOS, uRTOS, Salvo RTOS u otras bibliotecas similares para la planificación y priorización de tareas .

Un proyecto de código abierto de Serge Vakulenko adapta 2.11BSD a la arquitectura PIC32, bajo el nombre de RetroBSD. Esto proporciona un sistema operativo familiar tipo Unix, incluyendo un entorno de desarrollo integrado, al microcontrolador, dentro de las limitaciones del hardware integrado. [ 40 ]

Clones

Paralaje

Parallax fabricó una serie de microcontroladores similares a los PICmicro, conocidos como Parallax SX . Actualmente, su producción está descontinuada. Diseñados con una arquitectura similar a la de los microcontroladores PIC utilizados en las versiones originales del BASIC Stamp , los microcontroladores SX reemplazaron a los PIC en varias versiones posteriores de dicho producto.

Los microcontroladores SX de Parallax son microcontroladores RISC de 8 bits que utilizan una palabra de instrucción de 12 bits y funcionan a alta velocidad, a 75  MHz (75 MIPS). Incluyen hasta 4096 palabras de memoria flash de 12 bits y hasta 262 bytes de memoria de acceso aleatorio , un contador de ocho bits y otra lógica de soporte. Disponen de módulos de biblioteca de software para emular interfaces I²C y SPI , UART, generadores de frecuencia, contadores de medición y convertidores A/D PWM y sigma-delta. Otras interfaces son relativamente fáciles de programar y los módulos existentes pueden modificarse para incorporar nuevas funcionalidades.

PKK Milandr

1886VE2U

El PKK Milandr ruso produce microcontroladores que utilizan la arquitectura PIC17 como la serie 1886. [ 41 ] [ 42 ] [ 43 ] [ 44 ] La memoria de programa consta de hasta 64 kB de memoria Flash en el 1886VE2U ( en ruso : 1886VE2U ) o 8 kB de EEPROM en el 1886VE5U ( 1886VE5U ). El 1886VE5U ( 1886VE5U ) al 1886VE7U ( 1886VE7U ) están especificados para el rango de temperatura militar de -60  °C a +125  °C. Las interfaces de hardware en las distintas partes incluyen USB, CAN, I2C, SPI, así como convertidores A/D y D/A. El 1886VE3U ( 1886VE3U ) contiene un acelerador de hardware para funciones criptográficas según GOST 28147-89 . Incluso existen chips resistentes a la radiación con las designaciones 1886VE8U ( 1886VE8U ) y 1886VE10U ( 1886VE10U ). [ 45 ]

Microelectrónica ELAN

ELAN Microelectronics Corp. en Taiwán fabrica una línea de microcontroladores basados ​​en la arquitectura PIC16, con instrucciones de 13 bits y un espacio de direcciones RAM más pequeño (6 bits). [ 46 ]

Holtek Semiconductores

Holtek Semiconductor fabrica una gran cantidad de microcontroladores muy baratos [ 47 ] (tan bajos como 8,5 centavos en cantidad [ 48 ] ) con un conjunto de instrucciones de 14 bits sorprendentemente similar al PIC16.

Hycon

Hycon Technology , un fabricante taiwanés de chips de señal mixta para electrónica portátil ( multímetros , básculas de cocina , etc.), tiene una serie de microcontroladores H08 de propiedad exclusiva con una palabra de instrucción de 16 bits muy similar a la familia PIC18. (Sin relación con los microcontroladores H8 de Hitachi/Renesas ). El H08A [ 49 ] es el más parecido al PIC18; el H08B [ 50 ] es un subconjunto. [ 51 ]

Aunque las instrucciones disponibles son casi idénticas, su codificación es diferente, al igual que el mapa de memoria y los periféricos. Por ejemplo, el PIC18 permite el acceso directo a la RAM en las direcciones 0x000–0x07F o a los registros de funciones especiales en las direcciones 0xF80–0xFFF mediante la extensión de signo de una dirección de 8 bits. El H08 ubica los registros de funciones especiales en las direcciones 0x000–0x07F y la RAM global en las direcciones 0x080–0x0FF, extendiendo la dirección con ceros.

Otros fabricantes en Asia

Muchos microcontroladores OTP de ultrabajo costo de fabricantes asiáticos, presentes en dispositivos electrónicos de consumo económicos, se basan en la arquitectura PIC o en una forma modificada. La mayoría de los clones solo se dirigen a los componentes básicos (PIC16C5x/PIC12C50x). Dado que las patentes sobre la arquitectura básica expiraron hace mucho tiempo, Microchip ha intentado demandar a algunos fabricantes por infracción de derechos de autor, [ 52 ] [ 53 ] sin éxito. [ 54 ] [ 55 ]

Véase también

Referencias

  1. Microcomputadora PIC1650A de 8 bits (PDF) (Hoja de datos). General Instrument Corp. Archivado del original (PDF) el 23 de marzo de 2012. Consultado el 29 de junio de 2011 .
  2. "Presentación del seminario PIC16F: Historia de la familia de productos Baseline" (PDF) . pág. 4. Archivado del original (PDF) el 2 de marzo de 2012. Consultado el 2 de agosto de 2011 . 
  3. 1 2 "MOS DATA 1976", Manual de datos de General Instrument de 1976
  4. 1 2 3 "Catálogo de datos de 1977: Microelectrónica" (PDF) . General Instrument Corporation. Archivado del original (PDF) el 15 de agosto de 2011. Recuperado el 2 de agosto de 2011 .
  5. 1 2 Lawson, Eric (16 de mayo de 2013). "Microchip Technology entrega el microcontrolador PIC® número 12 mil millones al fabricante líder de motores, Nidec Corporation" . Comunicado de prensa de Microchip. Archivado del original el 21 de julio de 2013. Recuperado el 21 de diciembre de 2017. Microchip entregó este MCU número 12 mil millones aproximadamente 10 meses después de entregar el número 11 mil millones.
  6. 1 2 3 Leibson, Steven (2 de enero de 2023). "Una historia de los primeros microcontroladores, parte 9: el General Instruments PIC1650" . Electronic Engineering Journal . Recuperado el 18 de agosto de 2024 .
  7. Gruppuso, Frank M. (1982). "Capítulo 35 PIC1650: Arquitectura y funcionamiento del chip" (PDF) . En Siewiorek, Daniel P.; Bell, C. Gordon ; Newell, Allen (eds.). Estructuras de computadoras: Principios y ejemplos (PDF) . McGraw-Hill. ISBN 0-07-057302-6. Consultado el 18 de agosto de 2024 .
  8. General Instrument. Microcomputadora PIC1670 de 8 bits (PDF) (Hoja de datos) . Consultado el 18 de agosto de 2024 .
  9. Manual de circuitos integrados para televisión por cable satelital Plessey, mayo de 1986
  10. Dunn, D. (31 de agosto de 2001). "Microchip ofrece flash a precios OTP" . EETimes .
  11. "Salón de la Fama de los Chips: Microcontrolador PIC 16C84 de Microchip Technology" . IEEE Spectrum . 30 de junio de 2017. Consultado el 16 de septiembre de 2018 .
  12. "Hoja de datos del microcontrolador PIC17C4x" (PDF) . Microchip Technology. 1996. DS30412C . Consultado el 16 de agosto de 2016 .
  13. "Microchip PIC micros y C - código fuente y ejemplos" . www.microchipc.com . Consultado el 7 de abril de 2018 .
  14. "MICROCHIP TECHNOLOGY PRESENTA LOS MICROCONTROLADORES DE 16 BITS DE MAYOR RENDIMIENTO DEL MUNDO" . Microchip. 1 de octubre de 2001. Archivado del original el 11 de junio de 2004. Consultado el 14 de diciembre de 2022 .
  15. "Descripción general de la familia PIC24H" (PDF) . Consultado el 23 de septiembre de 2007 .
  16. "MIPS32® M4K® Core - MIPS Technologies -MIPS Everywhere - MIPS Technologies" . Archivado del original el 2 de febrero de 2009. Consultado el 21 de enero de 2009 .
  17. "MCU PIC de 32 bits" . Consultado el 13 de octubre de 2010 .
  18. "MCU de 32 bits - Microchip Technology" . www.microchip.com . Consultado el 7 de abril de 2018 .
  19. "Los microcontroladores PIC32MZ de 32 bits de Microchip ofrecen un rendimiento líder en su clase de 330 DMIPS y 3,28 CoreMarks™/MHz; 30 % mejor densidad de código" . Microchip. 18 de noviembre de 2013. Archivado del original el 21 de noviembre de 2013. Consultado el 14 de diciembre de 2022 .
  20. "Bienvenido al Blog de la Imaginación" . imgtec.com . 16 de septiembre de 2015. Consultado el 7 de abril de 2018 .
  21. "PIC32MZ EF | Microchip Technology" .
  22. "Microchip presenta el primer microcontrolador de la industria con GPU 2D integrada y memoria DDR2 integrada para capacidades gráficas revolucionarias" . Archivado del original el 20 de julio de 2017. Consultado el 9 de agosto de 2023 .
  23. "Familia PIC32MZ DA" . Microchip. Archivado del original el 2 de abril de 2018. Consultado el 14 de diciembre de 2022 .
  24. "Microchip lanza la familia PIC32 de menor consumo energético y rentable - Microchip Technology" . www.microchip.com . Consultado el 7 de abril de 2018 .
  25. "Familia PIC32MM de microcontroladores de 32 bits de muy bajo consumo (XLP), bajo costo" . Consultado el 9 de agosto de 2023 .
  26. "Familia PIC32MK" . Microchip. Archivado del original el 16 de marzo de 2018. Consultado el 14 de diciembre de 2022 .
  27. "Microcontroladores PIC® y SAM de 32 bits" . Microchip . Consultado el 22 de agosto de 2024 .
  28. anisha (12 de julio de 2024). "Microchip inicia la familia PIC64 de 64 bits con RISC-V" (Comunicado de prensa). RISC-V International . Consultado el 24 de julio de 2024 .
  29. Lewis, James (9 de julio de 2024). "Microchip presenta su gama de microcontroladores PIC64 multinúcleo de 64 bits" (Comunicado de prensa). Microchip . Recuperado el 24 de julio de 2024 a través de Hackster.io.
  30. "Moog presenta una nueva computadora espacial resistente a la radiación para dar soporte a la próxima generación de computación de alta velocidad en órbita" (Comunicado de prensa). Moog Inc. 13 de agosto de 2024 vía SpaceNews .
  31. Rovnak, Tim (2003). "AN869: Técnicas de interfaz de memoria externa para el PIC18F8XXX" (PDF) . Microchip Technology. DS00869B . Consultado el 24 de agosto de 2009 .
  32. "Microchip Advanced Part Selector" . Microchip. Archivado del original el 10 de enero de 2016. Consultado el 14 de diciembre de 2022 .
  33. "Ralentización 208.80.153.50,10-192-48-43&c=1&t=43197.5553483796" . massmind.org . Consultado el 7 de abril de 2018 .
  34. "MPLAB® XC: Soluciones de compilación" . microchip.com . Consultado el 7 de abril de 2018 .
  35. 1 2 "Centro de Diseño 3V" . Consultado el 2 de agosto de 2011 .
  36. "Compilador MPLAB XC8 para microcontroladores PIC10/12/16/18" .
  37. "Cómo simular un microcontrolador PIC en Proteus Design Suite 8 - Galería de circuitos" . 2 de agosto de 2013. Consultado el 12 de julio de 2016 .
  38. "FlashForth" . Consultado el 18 de julio de 2025 .
  39. Documento de Microchip n.° DS51292R
  40. "start - RetroBSD" . retrobsd.org . Consultado el 7 de abril de 2018 .
  41. "Milandr K1886VE: El PIC que fue a Rusia" . The CPU Shack. 10 de marzo de 2016. Consultado el 21 de julio de 2016 .
  42. "Высокопроизводительные 8-ми разрядные КМОП microcontroladores 1886ВЕ1 y 1886ВЕ2. Перечень отличий от ближайшего función analógica PIC17C756A" [ Microcontroladores CMOS de 8 bits de alto rendimiento 1886VE1 y 1886VE2. Lista de diferencias con respecto al análogo funcional más cercano, el PIC17C756A. ] (PDF) (en ruso). Moscú: PKK Milandr. 7 de septiembre de 2006. Archivado del original (PDF) el 5 de febrero de 2017. Consultado el 23 de octubre de 2017 .
  43. ^ "Каталог продукции группы компаний" Миландр "2017" [ Catálogo de productos del Grupo Milandr 2017 ] (PDF) (en ruso). Moscú: PKK Milandr. Archivado desde el original (PDF) el 27 de octubre de 2017 . Consultado el 18 de abril de 2018 .
  44. "1886ая серия" [ serie 1886 ] (en ruso) . Consultado el 21 de julio de 2016 .
  45. "Parte II: ¿Cómo "abrir" un microchip y qué hay dentro? Z80, Multiclet, MSP430, PIC y más" . ZeptoBars. 21 de febrero de 2013. Consultado el 11 de abril de 2017 .
  46. ^ "義隆電子股份有限公司義隆電子,再創未來!" .
  47. Carlson, Jay (15 de septiembre de 2017). "Holtek HT-66" . El asombroso microcontrolador de 1 dólar . Recuperado el 8 de julio de 2019 .
  48. Aufranc, Jean-Luc (3 de agosto de 2016). "¿Cuál es el MCU más barato? Mi prueba: Holtek HT48R002, un MCU de 8 bits que se vende por 0,085 dólares" . Blog de CNX Software . Consultado el 8 de julio de 2019 .
  49. "Manual del usuario del conjunto de instrucciones H08A" (PDF) . Hycon Technology Corp. 1 de agosto de 2010. APD-CORE002-V03_EN . Consultado el 4 de enero de 2025 .
  50. "Manual del usuario del conjunto de instrucciones H08B" (PDF) . Hycon Technology Corp. 1 de agosto de 2010. APD-CORE003-V02_EN . Consultado el 19 de agosto de 2016 .
  51. "Descripción de la aplicación del núcleo de la CPU: comparaciones y complementos del conjunto de instrucciones H08A y H08B" (PDF) . Hycon Technology Corp. 24 de marzo de 2011. APD-CORE001_EN-V06.
  52. "Microchip Technology presenta una demanda por infracción de derechos de autor contra MICON Design Technology CO. LTD" (PDF) (Comunicado de prensa). 29 de enero de 1999. Consultado el 23 de octubre de 2017 .
  53. "Microchip Technology emprende acciones legales contra Shanghai Haier Integrated Circuit" (PDF) (Comunicado de prensa). 5 de julio de 2007. Consultado el 23 de octubre de 2017 .
  54. Fuller, Brian (1 de mayo de 2013). "¿Combatir la falsificación china? Olvídalo" . Electronics Business News . Recuperado el 4 de enero de 2024 .
  55. "El chip integrado de Haier ganará la batalla de patentes contra el microchip estadounidense" . sb2a0 electronic components (blog). 18 de mayo de 2015. Consultado el 8 de julio de 2019 .

Lecturas adicionales

  • Teoría y aplicaciones de los microcontroladores, con el PIC18F ; 2.ª ed.; M. Rafiquzzaman; Wiley; 544 páginas; 2018; ISBN 978-1119448419.
  • Diseño de sistemas de microcontroladores con procesadores PIC18F ; Nicolas K. Haddad; IGI Global; 428 páginas; 2017; ISBN 978-1683180005.
  • Proyectos con microcontroladores PIC en C: De básico a avanzado (para PIC18F) ; 2.ª ed.; Dogan Ibrahim; Newnes; 660 páginas; 2014; ISBN 978-0080999241( 1ª edición)
  • Programación de microcontroladores: Microchip PIC ; Sanchez y Canton; CRC Press; 824 páginas; 2006; ISBN 978-0849371899( 1ª edición)
  • Libro de proyectos de microcontroladores PIC ; John Iovine; TAB; 272 páginas; 2000; ISBN 978-0071354790( 1ª edición)

.

  • Sitio web oficial de Microchip
  • Sitio web de proyectos wifi de PIC