stringtranslate.com

Microcontroladores PIC

Microcontroladores PIC en encapsulados DIP y QFN
Microcontrolador PDIP PIC24 de 16 bits y 28 pines junto a una regla métrica
Matriz 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
Matriz de un microcontrolador de 8 bits basado en ROM CMOS PIC16C505 fabricado por Microchip Technology utilizando un proceso de 1200 nanómetros

PIC (generalmente pronunciado como /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 Instruments . El nombre PIC inicialmente se refería a Controlador de Interfaz Periférica , [3] y actualmente se expande como Computadora Inteligente Programable . [4] 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 partes individuales, utilizadas en una amplia variedad de sistemas integrados . [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 altamente multiplexado con el que era difícil interactuar, por lo que, además de una variedad de periféricos de propósito especial, General Instrument fabricó el PIC1640 programable como un periférico de uso general. Con su propia pequeña RAM , ROM y una CPU simple para controlar las transferencias, podía conectar el bus 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 fue un éxito. Sin embargo, GI también había fabricado el PIC1650, un PIC1640 independiente con E/S de propósito general adicional en lugar de la interfaz 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 una ROM de máscara para el almacenamiento de código, pero con su escisión pronto se actualizó para usar EPROM y luego EEPROM , lo que hizo posible que los usuarios finales programaran 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 últimos modelos, 32 bits de ancho. Las instrucciones de programa varían en el recuento de bits según la familia de PIC y pueden tener una longitud de 12, 14, 16 o 24 bits. El conjunto de instrucciones también varía según el modelo, y los chips más potentes agregan instrucciones para funciones de procesamiento de señales digitales . Las implementaciones de hardware de los dispositivos PIC varían 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 comunicaciones como UART , I2C , CAN e incluso USB . Existen variaciones de baja potencia y alta velocidad para muchos tipos.

El fabricante suministra software informático para desarrollo conocido como MPLAB X , ensambladores y compiladores C/C++, y hardware programador/depurador bajo las series MPLAB y PICKit . También están disponibles herramientas de terceros y algunas de código abierto. Algunas piezas tienen capacidad de programación en circuito; están disponibles programadores de desarrollo de bajo costo, así como programadores de producción de gran volumen.

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

Historia

Concepto original

Varios microcontroladores PIC (EPROM) más antiguos

El PIC original estaba destinado a ser utilizado con la nueva unidad central de procesamiento (CPU) CP1600 de 16 bits de General Instruments . Para poder incluir buses de datos y direcciones de 16 bits en un chip DIP ( paquete en línea dual ) de 40 pines, que era el estándar en ese momento , los dos buses compartían el mismo conjunto de 16 pines de conexión. Para comunicarse con la CPU, los dispositivos tenían que observar otros pines de la CPU para determinar si la información del bus era una dirección o datos. Como solo se presentaba uno de estos a la vez, los dispositivos tenían que observar el bus para entrar en modo de dirección, ver si esa dirección era parte de su rango de entrada/salida asignado a la memoria , "enganchar" esa dirección y luego esperar a que se activara el modo de datos para luego leer el valor. Además, el 1600 usaba varios pines externos para seleccionar con qué dispositivo intentaba comunicarse, lo que complicaba aún más la interconexión.

Como la interconexión de dispositivos al 1600 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 de pletina de casete para almacenamiento y una serie de sistemas similares. Para sistemas más complejos, GI introdujo el "controlador de interfaz programable" 1640 en 1975. La idea era que un dispositivo utilizara el PIC para manejar toda la interconexión con el CP1600 del ordenador anfitrión, pero también utilizara su propio procesador interno para manejar el dispositivo real al que estaba conectado. Por ejemplo, una unidad de disquete podría implementarse con un PIC hablando con la CPU en un lado y el controlador de disquete en 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) separada para almacenar en búfer y trabajar con datos. Estos se conectaron por separado, lo que convirtió al PIC en un sistema de arquitectura Harvard con código y datos administrados en vías internas separadas.

En teoría, la combinación de 1600 CPU y 1640 controladores de dispositivos PIC proporcionaba un sistema de control de dispositivos de muy alto rendimiento, similar en potencia y rendimiento a los controladores de canal que se ven en las computadoras mainframe . En el ejemplo del controlador de disquete, por ejemplo, un solo PIC podía controlar la unidad, proporcionar una cantidad razonable de almacenamiento en búfer para mejorar el rendimiento y luego transferir datos hacia y desde la computadora host mediante acceso directo a memoria (DMA) o mediante un 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 una serie de características atractivas, General Instrument nunca comercializó con fuerza el 1600, prefiriendo tratar sólo con grandes clientes e ignorando el mercado de gama baja. Esto dio como resultado una muy poca aceptación del sistema, siendo el Intellivision el único uso realmente extendido con alrededor de tres millones de unidades. Sin embargo, GI había presentado un modelo independiente PIC 1650 [7] en 1976, diseñado para usarse sin un CP1600. Aunque no era tan potente como el Intel MCS-48 presentado 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 PIC 1650 había desarrollado un gran mercado de clientes que lo utilizaban para una amplia variedad de funciones, y el PIC pasó a convertirse en uno de los productos principales de la nueva empresa. [6]

Después del 1600

En 1985, General Instrument vendió su división de microelectrónica y los nuevos propietarios cancelaron casi todo, que para ese momento estaba en su mayoría obsoleto. Sin embargo, el PIC fue actualizado con una EPROM interna para producir un controlador de canal programable . Al mismo tiempo, Plessey en el Reino Unido lanzó procesadores NMOS numerados PIC1650 y PIC1655 basados ​​en el diseño de GI, utilizando los mismos conjuntos de instrucciones, ya sea programables por máscara de usuario o versiones preprogramadas para marcadores automáticos e interfaces de teclado. [9]

En 1998, Microchip presentó el PIC 16F84, una versión programable y borrable mediante flash de su exitoso PIC16C84 programable en serie. En 2001, Microchip presentó más dispositivos programables mediante flash, y su producción completa comenzó en 2002. [10]

Hoy en día, hay una gran variedad de PIC disponibles con varios periféricos integrados ( módulos de comunicación en serie , UART , núcleos de control de motores, etc.) y memoria de programa desde 256 palabras hasta 64 000 palabras y más (una "palabra" es una instrucción en lenguaje ensamblador, que varía en longitud de 8 a 16 bits , dependiendo de la microfamilia PIC específica).

PIC y PICmicro son ahora marcas registradas de Microchip Technology. Generalmente se cree que PIC significa Peripheral Interface Controller (controlador de interfaz periférica) , aunque el acrónimo original de General Instruments para los dispositivos PIC1640 y PIC1650 iniciales era " Programmable Interface Controller" (controlador de interfaz programable ). [3] El acrónimo fue rápidamente reemplazado por " Programmable Intelligent Computer" (computadora inteligente programable ). [4]

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

En 2013, Microchip vendía más de mil millones de microcontroladores PIC al año. [5] [ dudosodiscutir ]

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 media y básica utilizan una memoria de datos de 8 bits de ancho, y las familias de gama alta utilizan una memoria de datos de 16 bits. La última serie, PIC32MZ, es un microcontrolador basado en MIPS de 32 bits. Los tamaños de las palabras 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 la máquina varían según la familia y se muestran en los listados de instrucciones PIC .

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

PIC10 y PIC12

Estos dispositivos cuentan con una memoria de código de 12 bits de ancho, un archivo de registro de 32 bytes y una pequeña pila de llamadas de dos niveles de profundidad. 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 archivo de registros son registros de propósito especial y los bytes restantes son RAM de propósito general. Los punteros se implementan utilizando un par de registros: después de escribir una dirección en el FSR (registro de selección de archivo), el registro INDF (f indirecta) 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 números de registro 16 a 31; los registros 0 a 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 rara vez se leen no se les asignaron direcciones, sino que se escribieron mediante instrucciones especiales ( OPTIONy TRIS).

El espacio de direcciones de la ROM es 512 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 inferiores de la dirección, pero solo los 8 bits inferiores 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 utilizando un cálculo GOTO(asignación a un registro PCL) en una tabla de RETLWinstrucciones. RETLW realiza un retorno de subrutina y carga simultáneamente el registro W con una constante inmediata de 8 bits que forma parte de la instrucción.

Este "núcleo de línea base" no admite interrupciones ; todas las E/S deben sondearse . Existen algunas variantes de "línea base mejorada" con compatibilidad con interrupciones y una pila de llamadas de cuatro niveles.

Los dispositivos PIC10F32x cuentan con una memoria de código de 14 bits de rango medio de 256 o 512 palabras, un archivo de registro SRAM de 64 bytes y una pila de hardware de 8 niveles de profundidad. Estos dispositivos están disponibles en encapsulados SMD de 6 pines y DIP de 8 pines (con dos pines sin usar). Solo hay disponibles una entrada y tres pines de E/S. Hay disponible un conjunto complejo de interrupciones. Los relojes son un oscilador interno calibrado de alta frecuencia de 16 MHz con una selección de velocidades seleccionables a través del software y una fuente de baja potencia de 31 kHz.

PIC16

Microchip PIC16C58A
PIC16LF870 en zócalo SOIC

Estos dispositivos cuentan con una memoria de código de 14 bits de ancho y una pila de llamadas mejorada de 8 niveles de profundidad. El conjunto de instrucciones difiere muy poco de los dispositivos básicos, pero los dos bits de código de operación adicionales permiten que se direccionen directamente 128 registros y 2048 palabras de código. Hay algunas instrucciones misceláneas adicionales y dos instrucciones literales de 8 bits adicionales, suma y resta. El núcleo de rango medio está disponible en la mayoría de los dispositivos etiquetados como PIC12 y PIC16.

Los primeros 32 bytes del espacio de registro se asignan a registros de propósito especial; los 96 bytes restantes se utilizan para 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 RAM. (Los otros registros globales son FSR e INDF, los 8 bits inferiores del contador de programa PCL, el registro de precarga superior PCLATH y el registro de control de interrupción maestro INTCON).

El registro PCLATH suministra bits de dirección de instrucción de orden superior cuando los 8 bits suministrados por una escritura en el registro PCL, o los 11 bits suministrados 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). La serie PIC17 no se recomienda para nuevos diseños y su disponibilidad puede estar limitada para los usuarios.

Las mejoras con respecto a los núcleos anteriores son códigos de operación de 16 bits de ancho (que permiten muchas instrucciones nuevas) y una pila de llamadas de 16 niveles de profundidad. Los dispositivos PIC17 se produjeron en paquetes de 40 a 68 pines.

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

Una limitación importante fue 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 un cambio de banco complicado en los modelos que admitían más.

Imagen 18

En el año 2000, Microchip introdujo la arquitectura PIC18. A diferencia de la serie PIC17, ha demostrado ser muy popular y actualmente se fabrican una gran cantidad de variantes de dispositivos. A diferencia de los dispositivos anteriores, que 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, al tiempo que agrega una serie de nuevas características importantes:

El espacio de la RAM es de 12 bits, a los que se accede 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 0 ( a = 0) y el banco seleccionado por el BSR ( a = 1).

También está disponible una pila de 1 nivel para los registros STATUS, WREG y BSR. Se guardan en cada interrupción y se pueden restaurar al regresar. Si las interrupciones están deshabilitadas, también se pueden usar en la llamada/retorno de subrutina configurando el bit s (agregando ", FAST" a la instrucción).

La función de incremento/decremento automático se mejoró eliminando los bits de control y agregando cuatro nuevos registros indirectos por FSR. Según el registro de archivo indirecto al que se accede, es posible posdecrementar, posincrementar o preincrementar FSR; o formar la dirección efectiva agregando W a 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:

Los dispositivos PIC18 aún están en desarrollo (2021) y están 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 fines de 2004. Son los primeros microcontroladores de 16 bits de Microchip. 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 todavía son similares a las arquitecturas PIC anteriores, hay mejoras significativas: [15]

Algunas características son:

Los dsPIC se pueden programar en C utilizando el compilador XC16 de Microchip (antes 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 del programa tiene 23 bits de ancho, pero el bit menos significativo siempre es 0, por lo que hay 22 bits modificables.

Las instrucciones vienen en dos variedades principales, y las operaciones más importantes (suma, xor, desplazamientos, etc.) permiten ambas formas:

Línea basada en MIPS PIC32M

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

PIC32MX

En noviembre de 2007, Microchip presentó la familia PIC32MX de microcontroladores de 32 bits, basados ​​en el núcleo MIPS32 M4K . [16] El dispositivo se puede programar utilizando el compilador C MPLAB de Microchip para microcontroladores 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 (16 bits), lo que permite el uso de bibliotecas, herramientas de software y hardware comunes. Hoy en día, a partir de 28 pines en pequeños paquetes QFN hasta dispositivos de alto rendimiento con Ethernet, CAN y USB OTG, está disponible la gama completa de microcontroladores de 32 bits de gama media.

La arquitectura PIC32 incorporó una serie de nuevas características al portafolio de Microchip, entre ellas:

PIC32MZ

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

En 2015, Microchip lanzó la familia PIC32MZ EF, utilizando el procesador MIPS M5150 Warrior M-class actualizado. [20] [21]

En 2017, Microchip presentó la familia PIC32MZ DA, que incluye un controlador de gráficos integrado, un procesador de gráficos 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 coste. [24] El PIC32MM cuenta con periféricos independientes del núcleo, modos de suspensión de hasta 500 nA y paquetes de 4 x 4 mm. [25] Los microcontroladores PIC32MM utilizan el MIPS Technologies M4K, un procesador MIPS32 de 32 bits . Están pensados ​​para un consumo de energía muy bajo y limitados a 25 MHz. Su principal ventaja es que admiten las instrucciones de 16 bits de MIPS, lo que hace que el tamaño del programa sea mucho más compacto (alrededor del 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 Arm PIC32C

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

PIC64

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

En julio de 2024, Microchip presentó la serie PIC64 de microprocesadores multinúcleo de alto rendimiento . La serie utilizará inicialmente el conjunto de instrucciones RISC-V , sin embargo, Microchip también está planeando 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 básica

La arquitectura PIC (excluyendo los PIC32 y PIC64, que no están relacionados) es una máquina acumuladora de un operando como la PDP-8 o la computadora de guía Apollo . Sus características son:

No hay distinción entre el espacio de memoria y el espacio de registro porque la RAM cumple la función tanto de memoria como de registros, y a la RAM generalmente se la denomina simplemente "el archivo de registro" o simplemente "los registros".

Espacio de datos (RAM)

Los PIC tienen un conjunto de registros que funcionan como RAM de propósito general. Los registros de control de propósito especial para los recursos de hardware en chip 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 tienen algún mecanismo de banco para extender el direccionamiento a memoria adicional (pero algunos modelos de dispositivos solo tienen un banco implementado). Las series posteriores de dispositivos cuentan con instrucciones de movimiento, que pueden cubrir todo el espacio direccionable, independientemente del banco seleccionado. En dispositivos anteriores, cualquier movimiento de registro debe lograrse a través del acumulador.

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

La memoria de datos externa no es directamente direccionable, excepto en algunos dispositivos PIC18 con un gran número de pines. Sin embargo, los puertos de E/S generales se pueden utilizar para implementar un bus paralelo o una interfaz en 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 MCU PIC.

Espacio de código

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

Tamaño de la palabra

Todos los PIC manejan (y direccionan) datos en fragmentos de 8 bits. Sin embargo, la unidad de direccionabilidad del espacio de código no es generalmente la misma que la del espacio de datos. Por ejemplo, los PIC de las familias de línea base (PIC12) y gama media (PIC16) tienen memoria de programa direccionable en el mismo tamaño de palabra que el ancho de instrucción, es decir, 12 o 14 bits respectivamente. Por el contrario, 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 ser claros, la capacidad de memoria del programa generalmente se indica en número de instrucciones (de una sola palabra), en lugar de en bytes.

Pilas

Los PIC tienen una pila de llamadas de hardware , que se utiliza para guardar direcciones de retorno. La pila de hardware no es accesible mediante software en los dispositivos anteriores, pero esto cambió con los dispositivos de la serie PIC18.

En las primeras series faltaba soporte de hardware para una pila de parámetros de propósito general, pero esto mejoró enormemente en la serie PIC18, haciendo que la arquitectura de la serie PIC18 fuera más amigable para los compiladores de lenguajes de alto nivel.

Conjunto de instrucciones

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

Algunas operaciones, como la configuración y prueba de bits, se pueden realizar en cualquier registro numerado, pero las operaciones aritméticas de 2 entradas siempre involucran a W (el acumulador), escribiendo el resultado nuevamente en W o en el otro registro de 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 "alta gama".

Los núcleos PIC tienen instrucciones de salto, que se utilizan para la ejecución condicional y la bifurcación. Las instrucciones de salto son "saltar si el bit está establecido" y "saltar si el bit no está establecido". Debido a que los núcleos anteriores a 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 saltar 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, brindando soporte de hardware para guardar automáticamente el estado del procesador al atender interrupciones.

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

Actuación

Las decisiones arquitectónicas están dirigidas a maximizar la relación velocidad-costo. La arquitectura PIC fue uno de los primeros diseños de CPU escalares [ cita requerida ] y sigue siendo uno de los más simples y económicos. La arquitectura Harvard, en la que las instrucciones y los datos provienen de fuentes separadas, simplifica enormemente el diseño de microcircuitos y temporización, y esto beneficia la velocidad de reloj, el precio y el consumo de energía.

El conjunto de instrucciones del PIC es adecuado para la implementación de tablas de búsqueda rápida en el espacio del programa. Dichas búsquedas requieren una instrucción y dos ciclos de instrucción. Muchas funciones se pueden modelar de esta manera. La optimización se ve facilitada por el espacio de programa relativamente grande del PIC (por ejemplo, 4096 × 14 palabras de 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 bifurcación puede indexarse ​​por W y ejecutar un "RETLW", que hace lo que se le ha asignado: retorna con un literal en W.

La latencia de interrupción es constante en tres ciclos de instrucción. Las interrupciones externas deben estar sincronizadas con el ciclo de instrucción de cuatro relojes, de lo contrario puede haber una fluctuación de un ciclo de instrucción. Las interrupciones internas ya están sincronizadas. La latencia de interrupción constante permite que los PIC logren secuencias de temporización de baja fluctuación impulsadas por interrupciones. Un ejemplo de esto es un generador de pulsos de sincronización de video. Esto ya no es así en los modelos de PIC más nuevos, porque tienen una latencia de interrupción sincrónica de tres o cuatro ciclos.

Ventajas

Limitaciones

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

En el caso de la memoria de programa paginada, hay dos tamaños de página de los que preocuparse: uno para CALL y GOTO y otro para GOTO calculado (que se utiliza normalmente para búsquedas en tablas). Por ejemplo, en 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 GOTO calculados, donde se añaden 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 se transfiere el control entre páginas. PCLATH también debe conservarse mediante cualquier manejador de interrupciones. [33]

Desarrollo de compiladores

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

A partir de 2013, Microchip ofrece su serie de compiladores XC para su uso con MPLAB X. Microchip eliminará 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 de lenguaje ensamblador del PIC puede dificultar la comprensión del flujo general. El uso juicioso de macros simples puede aumentar la legibilidad del lenguaje ensamblador del PIC. Por ejemplo, el ensamblador PIC Parallax original ("SPASM") tiene macros que ocultan W y hacen que el PIC parezca una máquina de dos direcciones. Tiene macroinstrucciones como mov b, a(mover los datos de la dirección a a la dirección b ) y add b, a(agregar datos de la dirección a a los datos en la dirección b ). También oculta las instrucciones de salto al proporcionar macroinstrucciones de bifurcación 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 cuentan con:

Variantes

Dentro de una serie, todavía existen muchas variantes de dispositivos dependiendo de los recursos de hardware que tenga el chip:

Tendencias

La primera generación de PIC con memoria EPROM ha sido reemplazada casi por completo por chips con memoria flash . Asimismo, el conjunto de instrucciones original de 12 bits del PIC1650 y sus descendientes directos ha sido reemplazado por conjuntos de instrucciones de 14 y 16 bits. Microchip todavía vende versiones OTP (programable una sola vez) y con ventana (borrable por UV) de algunos de sus PIC basados ​​en EPROM para soporte de legado o pedidos en volumen. El sitio web de Microchip enumera los PIC que no se pueden borrar eléctricamente como OTP. Se pueden solicitar versiones con ventana borrables por UV de estos chips.

Número de pieza

La F en el número de pieza de un PICMicro generalmente indica que el PICmicro utiliza memoria flash y se puede borrar electrónicamente. Por el contrario, una C generalmente significa que solo se puede borrar exponiendo la matriz a luz ultravioleta (lo que solo es posible si se utiliza un estilo de encapsulado con ventana). Una excepción a esta regla es el PIC16C84, que utiliza 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 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 PIC10, PIC12, PIC16, PIC18, PIC24, PIC32 y dsPIC, que se integran perfectamente con MPLAB X. También hay disponibles versiones gratuitas de los compiladores de C con todas las funciones. Sin embargo, para las versiones gratuitas, las optimizaciones se deshabilitarán después de 60 días. [36]

Varios terceros desarrollan compiladores de lenguaje C para PIC, muchos de los cuales se integran con MPLAB y/o cuentan con su propio IDE. MeLabs, Inc. ofrece un compilador con todas las funciones para el lenguaje PICBASIC para programar microcontroladores PIC. Mikroelektronika ofrece compiladores PIC en lenguajes de programación C, BASIC y Pascal.

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

Proteus Design Suite es capaz de simular muchos de los dispositivos PIC de 8 y 16 bits más populares, junto con otros circuitos conectados al PIC en el esquema. El programa que se va a simular se puede desarrollar dentro del propio Proteus, MPLAB o cualquier otra herramienta de desarrollo. [37]

Programadores de dispositivos

Se trata de un programador de la era 2003 para la familia de microcontroladores "PIC" de Microchip. Se conecta mediante un cable RS 232 a un PC compatible que ejecute un software de desarrollo. En 2003, esta unidad costaba 300 dólares canadienses (unos 200 dólares estadounidenses en ese momento).

Tradicionalmente, se utilizan dispositivos denominados " programadores " para introducir el código del programa en el PIC de destino. La mayoría de los 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 PIC mientras se encuentra en el circuito de destino .

Microchip ofrece programadores/depuradores bajo las series MPLAB y PICKit . MPLAB ICD4 y MPLAB REAL ICE son los programadores y depuradores actuales para ingeniería profesional, mientras que PICKit 3 es una línea de programadores/depuradores de bajo costo para aficionados y estudiantes.

Carga de arranque

Muchos de los PIC de gama alta basados ​​en memoria flash también pueden autoprogramarse (escribir en su propia memoria de programas), un proceso conocido como carga de arranque. Las placas de demostración están disponibles con un pequeño cargador de arranque programado de fábrica que se puede utilizar para cargar programas de usuario a través de una interfaz como RS-232 o USB , lo que evita la necesidad de un dispositivo programador.

Como alternativa, existe un firmware de cargador de arranque que el usuario puede cargar en el PIC mediante ICSP. Después de programar el cargador 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 velocidades de programación más rápidas, ejecución inmediata del programa después de la programación y la capacidad de depurar y programar utilizando el mismo cable.

Tercero

Existen muchos programadores para microcontroladores PIC, desde los diseños extremadamente simples que se basan en ICSP para permitir la descarga directa de código desde un ordenador central, hasta programadores inteligentes que pueden verificar el dispositivo con varios voltajes de suministro. Muchos de estos programadores complejos utilizan un PIC preprogramado para enviar los comandos de programación al PIC que se va a programar. El tipo de programador inteligente es necesario para programar los modelos PIC anteriores (en su mayoría del tipo EPROM) que no admiten la programación en circuito.

Los programas de terceros ofrecen desde planos para construir uno mismo hasta kits de autoensamblaje y unidades listas para usar y totalmente probadas. Algunos son diseños simples que requieren una PC para realizar la señalización de programación de bajo nivel (normalmente se conectan al puerto serial o paralelo y constan de unos pocos componentes simples), mientras que otros tienen la lógica de programación incorporada (normalmente utilizan una conexión serial o USB, suelen ser más rápidos y, a menudo, se construyen utilizando los propios PIC para el control).

Depuración

Depuración en circuito

Todos los dispositivos PIC más nuevos cuentan con 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 MPLAB IDE. 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 más antiguos, 3 en dispositivos más nuevos), pérdida de algunas E/S (con la excepción de algunos PIC de 44 pines de montaje superficial que tienen líneas dedicadas para la depuración) y pérdida de algunas funciones del chip.

Algunos dispositivos no tienen soporte de depuración en el chip, debido al costo o la falta de pines. Algunos chips más grandes tampoco tienen módulo de depuración. Para depurar estos dispositivos, se requiere una versión especial -ICD del chip montada en una placa hija 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 hija. Esto permite que arquitecturas prácticamente idénticas que no cuentan con todos los dispositivos periféricos en el chip se puedan reemplazar por un solo chip -ICD. Por ejemplo: el 16F690-ICD funcionará como una de seis partes diferentes, cada una de las cuales no cuenta con ninguno, algunos o todos de los cinco periféricos en el chip. [38]

Emuladores en circuito

Microchip ofrece tres emuladores completos en circuito : el MPLAB ICE2000 (interfaz paralela, hay disponible un convertidor USB); el más nuevo 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 de MPLAB para la depuración interactiva a nivel de fuente del código que se ejecuta en el 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 programación y priorización de tareas .

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

Clones

Paralaje

Parallax produjo una serie de microcontroladores similares a PICmicro conocidos como Parallax SX . Actualmente, se encuentran descontinuados. Diseñados para ser arquitectónicamente similares a los microcontroladores PIC utilizados en las versiones originales del BASIC Stamp , los microcontroladores SX reemplazaron al PIC en varias versiones posteriores de ese producto.

Los SX de Parallax son microcontroladores RISC de 8 bits que utilizan una palabra de instrucción de 12 bits y funcionan a una velocidad de 75 MHz (75 MIPS). Incluyen hasta 4096 palabras de 12 bits de memoria flash y hasta 262 bytes de memoria de acceso aleatorio , un contador de ocho bits y otra lógica de soporte. Hay 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 escribir y los módulos existentes se pueden modificar para obtener nuevas funciones.

PKK Milandr

1886VE2U

El ruso PKK Milandr produce microcontroladores que utilizan la arquitectura PIC17 como la serie 1886. [40] [41] [42] [43] La memoria del programa consta de hasta 64 kB de memoria Flash en el 1886VE2U ( en ruso : 1886ВЕ2У ) o 8 kB de EEPROM en el 1886VE5U ( 1886ВЕ5У ). Los modelos 1886VE5U ( 1886ВЕ5У ) a 1886VE7U ( 1886ВЕ7У ) 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 chip 1886VE3U ( 1886ВЕ3У ) contiene un acelerador de hardware para funciones criptográficas según GOST 28147-89 . Existen también chips reforzados contra la radiación con las denominaciones 1886VE8U ( 1886ВЕ8У ) y 1886VE10U ( 1886ВЕ10У ). [44]

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). [45]

Semiconductores Holtek

Holtek Semiconductor fabrica una gran cantidad de microcontroladores muy económicos [46] ( cuyos precios ascienden a 8,5 centavos [47] ) con un conjunto de instrucciones de 14 bits sorprendentemente similar al PIC16.

Otros fabricantes en Asia

Muchos microcontroladores OTP de costo ultrabajo de fabricantes asiáticos, que se encuentran en productos electrónicos de consumo de bajo costo, se basan en la arquitectura PIC o en una forma modificada. La mayoría de los clones solo se enfocan en las partes básicas (PIC16C5x/PIC12C50x). Microchip ha intentado demandar a algunos fabricantes cuando la copia es particularmente flagrante, [48] [49] sin éxito. [50] [51] [ se necesita una mejor fuente ]

Véase también

Referencias

  1. ^ PIC1650A 8 Bit Microcomputer (PDF) (Hoja de datos). General Instrument Corp. Archivado desde el 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. 4. Archivado desde el original (PDF) el 2012-03-02 . Consultado el 2011-08-02 .
  3. ^ ab "MOS DATA 1976", Libro de datos de General Instrument 1976
  4. ^ ab "Catálogo de datos de 1977: microelectrónica" (PDF) . General Instrument Corporation. Archivado desde el original (PDF) el 15 de agosto de 2011. Consultado el 2 de agosto de 2011 .
  5. ^ ab 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". Nota de prensa de Microchip. Archivado desde el original el 21 de julio de 2013. Consultado el 21 de diciembre de 2017. Microchip entregó este microcontrolador número 12 mil millones aproximadamente 10 meses después de entregar el número 11 mil millones.
  6. ^ abc Leibson, Steven (2 de enero de 2023). "Una historia de los primeros microcontroladores, parte 9: el PIC1650 de General Instruments". Electronic Engineering Journal . Consultado 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 informáticas: principios y ejemplos (PDF) . McGraw-Hill. ISBN 0-07-057302-6. Recuperado el 18 de agosto de 2024 .
  8. ^ General Instrument. Microordenador PIC1670 de 8 bits (PDF) (Hoja de datos) . Consultado el 18 de agosto de 2024 .
  9. ^ Manual de circuitos integrados de televisión por cable y satélite de Plessey, mayo de 1986
  10. ^ Dunn, D. (31 de agosto de 2001). "Microchip ofrece flash a precios OTP". EETimes .
  11. ^ "Chip Hall of Fame: Microchip Technology PIC 16C84 Microcontroller". 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 and C - source and sample code" (Microchips PIC y C: código fuente y de muestra) www.microchipc.com . Consultado el 7 de abril de 2018 .
  14. ^ "LA TECNOLOGÍA DE MICROCHIP PRESENTA LOS MICROCONTROLADORES DE 16 BITS DE MAYOR RENDIMIENTO DEL MUNDO". Microchip. 1 de octubre de 2001. Archivado desde el 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 desde el original el 2009-02-02 . Consultado el 2009-01-21 .
  17. ^ "MCU PIC de 32 bits" . Consultado el 13 de octubre de 2010 .
  18. ^ "MCU de 32 bits: tecnología de Microchip" www.microchip.com . Consultado el 7 de abril de 2018 .
  19. ^ "Los microcontroladores PIC32MZ de 32 bits de Microchip tienen un rendimiento líder en su clase de 330 DMIPS y 3,28 CoreMarks™/MHz; densidad de código un 30 % mejor". Microchip. 18 de noviembre de 2013. Archivado desde el original el 21 de noviembre de 2013. Consultado el 14 de diciembre de 2022 .
  20. ^ "Bienvenido al blog de la imaginación". imgtec.com . Consultado el 7 de abril de 2018 .
  21. ^ "PIC32MZ EF | Tecnología Microchip".
  22. ^ "Microchip presenta el primer MCU de la industria con GPU 2D integrada y memoria DDR2 integrada para capacidades gráficas innovadoras". Archivado desde el original el 20 de julio de 2017. Consultado el 9 de agosto de 2023 .
  23. ^ "Familia DA PIC32MZ". Microchip. Archivado desde el original el 2018-04-02 . Consultado el 2022-12-14 .
  24. ^ "Microchip lanza la familia PIC32 más económica y de menor consumo - Microchip Technology" www.microchip.com . Consultado el 7 de abril de 2018 .
  25. ^ "Familia PIC32MM de microcontroladores de 32 bits de bajo costo y consumo extremadamente bajo (XLP)" . Consultado el 9 de agosto de 2023 .
  26. ^ "Familia PIC32MK". Microchip. Archivado desde el 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" (Nota de prensa). RISC-V International . Consultado el 24 de julio de 2024 .
  29. ^ Lewis, James (9 de julio de 2024). "Microchip presenta su cartera de chips PIC64 multinúcleo de 64 bits" (nota de prensa). Microchip . Consultado el 24 de julio de 2024 a través de Hackster.io.
  30. ^ "Moog presenta un nuevo ordenador espacial reforzado contra la radiación para respaldar 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 interconexión de memoria externa para el PIC18F8XXX" (PDF) . Microchip Technology. DS00869B . Consultado el 24 de agosto de 2009 .
  32. ^ "Selector avanzado de piezas de Microchip". Microchip. Archivado desde el original el 10 de enero de 2016. Consultado el 14 de diciembre de 2022 .
  33. ^ "Disminución de la velocidad 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: Compiler Solutions". microchip.com . Consultado el 7 de abril de 2018 .
  35. ^ ab "3V Design Center" . Consultado el 2 de agosto de 2011 .
  36. ^ "Compilador MPLAB XC8 para MCU PIC10/12/16/18".
  37. ^ "Cómo simular un microcontrolador PIC en Proteus Design Suite 8 - Circuits Gallery". 2013-08-02 . Consultado el 2016-07-12 .
  38. ^ Documento de microchip n.º DS51292R
  39. ^ "inicio - RetroBSD". retrobsd.org . Consultado el 7 de abril de 2018 .
  40. ^ "Milandr K1886VE: El PIC que fue a Rusia". The CPU Shack. 10 de marzo de 2016. Consultado el 21 de julio de 2016 .
  41. ^ "Высокопроизводительные 8-ми разрядные КМОП microcontroladores 1886ВЕ1 y 1886ВЕ2. Перечень отличий от ближайшего analogía tradicional PIC17C756A" [Microcontroladores CMOS de 8 bits de alto rendimiento 1886VE1 y 1886VE2. Lista de diferencias con el análogo funcional más cercano PIC17C756A.] (PDF) (en ruso). Moscú: PKK Milandr. 7 de septiembre de 2006. Archivado desde el original (PDF) el 5 de febrero de 2017. Consultado el 23 de octubre de 2017 .
  42. ^ "Каталог продукции группы компаний" Миландр "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 .
  43. ^ "1886ая серия" [serie de 1886] (en ruso) . Consultado el 21 de julio de 2016 .
  44. ^ "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 .
  45. ^ "義隆電子股份有限公司義隆電子,再創未來!".
  46. ^ Carlson, Jay (15 de septiembre de 2017). "Holtek HT-66". El sorprendente microcontrolador de 1 dólar . Consultado el 8 de julio de 2019 .
  47. ^ Aufranc, Jean-Luc (3 de agosto de 2016). "¿Cuál es el MCU más económico? Mi intento: Holtek HT48R002 MCU de 8 bits que se vende por $0,085". Blog de CNX Software . Consultado el 8 de julio de 2019 .
  48. ^ "Microchip Technology presenta una demanda por infracción de derechos de autor contra MICON Design Technology CO. LTD" (PDF) (Nota de prensa). 29 de enero de 1999 . Consultado el 23 de octubre de 2017 .
  49. ^ "Microchip Technology emprende acciones legales contra Shanghai Haier Integrated Circuit" (PDF) (Nota de prensa). 5 de julio de 2007. Consultado el 23 de octubre de 2017 .
  50. ^ Fuller, Brian (1 de mayo de 2013). "¿Luchar contra la falsificación china? Olvídalo". Noticias de negocios electrónicos .
  51. ^ "El chip integrado de Haier ganará la batalla de patentes contra el microchip estadounidense". sb2a0 electronic component (blog). 18 de mayo de 2015. Consultado el 8 de julio de 2019 .

Lectura adicional

Enlaces externos