¿Cuál es la principal diferencia entre PIC y AVR?

Reduzcamos eso a la diferencia entre PIC de 8 bits y AVR básicos.

  • PIC necesita múltiples ciclos de reloj por instrucción. AVR ejecuta la mayoría de las instrucciones en un ciclo de reloj.
  • PIC tiene una pequeña pila de hardware fija, por lo que las subrutinas no se pueden apilar muy profundamente y un compilador de C no puede crear un marco de pila. AVR tiene un puntero de pila que puede abordar toda la RAM disponible.
  • PIC solo puede direccionar directamente 256 bytes de RAM que deben cambiarse de banco utilizando instrucciones adicionales. AVR puede abordar directamente 64k.
  • El único compilador PIC C gratuito es crippleware. AVR tiene un compilador GCC gratuito totalmente funcional con el apoyo de un gran equipo.
  • PIC tiene un registro ‘W’. AVR tiene 32 registros de propósito general que incluyen tres pares que pueden usarse como punteros.

Respuesta corta: conjunto de instrucciones.

Respuesta larga: PIC es una marca de la empresa Microchip, AVR es Atmel. Tanto PIC como AVR son familias de microcontroladores. Un significado familiar, diferentes versiones del controlador. Hay similitudes entre las versiones PIC y las versiones AVR. Dependiendo de la aplicación, la disponibilidad y el precio, los diseñadores pueden elegir entre las versiones PIC y AVR. Microchip adquirió Atmel: Microchip Technology, Inc. adquiere Atmel. Puede haber una fusión para PIC y AVR a largo plazo. No tiene sentido (al menos para mí) mantener vivas dos cadenas de herramientas separadas. Dentro de la familia de controladores, todavía se necesitarán herramientas específicas (compiladores), pero ahora AVR y PIC ya no compiten, son propiedad de la misma compañía. Desde el punto de vista de la eficiencia y el costo, una submarca tiene sentido. Pero podría estar equivocado.

Aquí hay algunas comparaciones basadas en problemas reales que he tratado en proyectos reales. Estos se basan principalmente en el uso del ensamblador en el AT90S y las piezas actuales de ATTiny y ATMega, y las piezas PIC12 / PIC16. Esperemos que esta información lo ayude a decidir qué puede ser mejor para usted. En qué PIC son mejores que el conjunto / arquitectura de instrucciones AVR (para usuarios de ensambladores)

PIC bueno: un pequeño conjunto de instrucciones significa que literalmente puedes aprenderlo en un día. Las instrucciones de omisión a menudo pueden simplificar el control de flujo.

AVR incorrecto: conjunto de instrucciones altamente no ortogonales: muchas operaciones solo se pueden realizar en ciertos registros. El rango de ramificación relativo puede forzar que el código se organice en un orden no lógico. No hay instrucciones inmediatas de XOR. Mezcla ilógica de instrucciones de control de flujo de salto y derivación (Ahora, si solo hubieran convertido a ESTADO en uno de los registros, podría omitir …!) Relojes, etc.

Las fotos recientes (12Fxxx, etc.) tienen osciladores RC calibrados más precisos.

La activación de Watchdog desde el sueño continúa después de la instrucción SLEEP: en AVR provoca un reinicio, lo que puede complicar las cosas.

El consumo de energía

Los PIC tienen un consumo de energía mucho menor a 5V

Interrupciones

La latencia de interrupción es constante: si configura una interrupción regular del temporizador en un PIC, se producirá exactamente en el mismo intervalo cada vez. En el AVR obtendrá al menos un ciclo de fluctuación.

ADC

Una velocidad de conversión mucho más rápida que la E / S AVR y las E / S de bit-twiddly twiddly son lo mismo que otros registros de archivos, por lo que las operaciones que no sean operaciones de ajuste / borrado de bits requieren menos trabajo: los bits se pueden alternar usando XORWF, se pueden configurar varios bits o borrado simultáneamente usando ANDWF o IORWF, y puede hacer trucos geniales como usar un puerto de salida como registro de desplazamiento para una generación de patrones realmente rápida. Esto último no suele ser útil, pero permite cosas interesantes como la generación de video.

Los puertos de E / S tienen una capacidad de accionamiento mucho mejor: el alto nivel de salida es fácilmente capaz de proporcionar unos pocos miliamperios sin una caída de tensión significativa, útil para encender directamente dispositivos periféricos (por ejemplo, opamps) bajo demanda para ahorrar energía.

PIC puede despertarse del sueño con pulsos cortos y bordes. Los contadores son asíncronos y pueden contar mientras la parte está en suspensión, y cuentan más rápido que el reloj de la CPU. El AVR no puede activarse en los bordes (excepto las pocas partes que se activaron al cambiar el pin), y las interrupciones activadas por nivel deben activarse hasta que el chip se active y el reloj comience; de ​​lo contrario, la parte volverá a dormir. I / O deshabilita la programación en circuito. En los PIC, el pin de reinicio puede configurarse como una entrada sin desactivar la programación en serie, siempre que lo que esté conectado permita el voltaje de programación de 12.5v.

Disponibilidad

Microchip siempre ha tenido una política de plazos de entrega cortos, y nunca ha habido una escasez significativa de piezas liberadas. Atmel ha tenido algunos momentos muy malos en el pasado: su amplia gama de productos significa que los AVR son una pequeña parte de su negocio general, por lo que otros mercados pueden tener prioridad sobre los AVR para la capacidad de producción. Microchip ahora tiene una celda de prueba de respuesta rápida para producir dispositivos a corto plazo (con una prima de precio).

Las piezas de microchip tienden a estar más fácilmente disponibles, especialmente en pequeñas cantidades.

Microchip mantiene las piezas viejas disponibles por mucho tiempo después de haber sido reemplazadas. Todavía puede comprar PIC16C54XT, a pesar de estar ahora en su cuarta revisión. Atmel tiene muchas menos piezas, pero ha obsoleto más de ellas, por ejemplo, el 90S4414 ha quedado obsoleto dos veces.

diferentes proveedores, pin out, instrucciones, programa de software (IDE y compilador) y diferentes herramientas para grabar. Sin embargo, realizan funciones similares.

O déjame decir la misma diferencia que los autos de Maruti Suzuki y Hyndai. Ambos tienen una gran variedad de automóviles, tienen salas de exhibición y estaciones de servicio exclusivas y necesitan repuestos diferentes que pueden no encajar en otros modelos. Sin embargo, puedes comprar a cualquiera de ellos. Realizan las mismas funciones.

PIC tiene MPLAB X, que es bastante estable (v3.15) y fácil de usar, con ensamblador y lenguaje C. Las herramientas de microchip, como el depurador y programador PICkit3 generalmente se ejecutan muy bien desde MPLAB X. Es mucho mejor que el entorno MPLAB 8.x anterior con una mejor integración del depurador, un mejor diseño y es mucho más estable.

AVR tiene AtmelStudio 7, que tiene características comparables pero es enorme (750 MB), ya que utiliza marcos de Microsoft, al igual que MPLAB X, pero Atmel Studio es grande y torpe. Tiene muchas características adicionales como soluciones y acceso web que lo hacen más complicado de lo que debería ser. Hemos descubierto que a muchas personas, especialmente cuando usan computadoras portátiles, les resulta difícil instalarlo y que funciona muy mal. Están volviendo al antiguo AVR Studio 4.18 (con el Service Pack 3), ya que funciona mucho mejor y tiene todas las características que necesitan. El antiguo emulador JTAGICE también es compatible con AVR Studio 4, pero no con versiones posteriores. Las herramientas de depuración como AVR Dragon funcionan bien en todas las versiones.

Haga clic aquí para saber más !! Programa de entrenamiento AVR

Todo lo mejor !!!

Gracias por A2A,

Su arquitectura es diferente y la funcionalidad es la misma que la programación de gpio, el temporizador, el contador, la interfaz del dispositivo de visualización, las interrupciones y el protocolo de comunicación.

Es así que ambas son compañías diferentes y fabrican microcontroladores. En avr, tenemos series como attiny, atmega, atxmega, etc. mientras que en la foto tenemos series como pic 12f, 16f, 18f, 24f, etc.

Los AVR tienen acceso no bancarizado a la memoria de datos, mientras que los PIC parecen requerir la configuración de registros bancarios para acceder a más de 256 bytes de memoria. Además, algunos AVR admiten la conexión de SRAM externa de una manera que permite que la MCU la use de forma nativa (en lugar de pasar por una serie de accesos de puerto).

Los AVR tienen 32 registros de propósito general, el PIC solo tiene uno.

En los AVR que tienen SRAM (la mayoría de ellos), la pila está contenida dentro de SRAM en lugar de limitarse a una pila de hardware incorporada. Por el contrario, con PIC, esto es una cosa menos de qué preocuparse.

ATmega y PIC18F tienen multiplicadores de hardware, ATtiny y PIC16F no.

Los AVR parecen admitir un sistema de interrupción más generalizado (me recuerda a la tabla de vectores de interrupción x86), a diferencia de los vectores de interrupción de alta / baja prioridad PIC.

PIC18F parece ser una mejora importante sobre el PIC16F. ATmega tiene algunas ventajas sobre ATtiny, pero principalmente en capacidad, no tanto en características. Por el contrario, es probable que sean mucho más fáciles de cambiar que PIC16F y PIC18F

Aunque las velocidades de reloj de PIC parecen más altas, parece que la velocidad de reloj se divide por cuatro para dar la tasa de instrucción real.

Con PIC16F, el tamaño de la memoria se da en palabras de 14 bits, mientras que PIC18F y los AVR enumeran sus tamaños de programa en bytes, por lo que la capacidad de tamaño de programa del PIC16F es mayor de lo que indicaría el número de K.

AVR parece ser un objetivo de CCG.

Los AVR y los PIC son dos familias de microcontroladores que funcionan de manera similar. Ambos tienen memoria flash, EEPROM, puertos de E / S, espacio RAM, temporizadores y contadores, USART, CCP (Capture / Compare / PWM- un registro especial para realizar funciones avanzadas), SSP (puerto serie sincrónico), comparadores, ADC (analógico -convertidor digital), comparadores. Todos pueden usar un ICSP (Programador en serie en circuito). Ambos se pueden programar en lenguaje ensamblador o más comúnmente en C o C ++. Cada familia requiere diferentes IDEs para el desarrollo del código, usa diferentes mnemónicos en lenguaje ensamblador y usa diferentes ICSP (y emuladores ICE en circuito). Conocí ambos conjuntos de microcontroladores y poseía ambos conjuntos de herramientas y software. Son divertidos de usar y muy potentes. Ambos conjuntos de microcontroladores tienen diferentes pinouts, a veces diferentes nombres de pin (funciones) PERO, en esencia, es lo mismo que tener un Ford frente a un automóvil GM. Funcionan igual pero muchas similitudes (y diferencias) entre las dos familias de automóviles.

Microchip (que fabrica la familia de microcontroladores PIC) y ATMEL (… AVR) se fusionaron recientemente.

Son microcontroladores completamente diferentes. Compararlos es lo mismo que comparar manzanas con zanahorias. Utilizan una arquitectura diferente, un conjunto de instrucciones completamente diferente, una forma anormalmente diferente de procesar las instrucciones: AVR hace eso en un solo ciclo de reloj, PIC necesita cuatro, diferencias sorprendentes en registros útiles: AVR tiene 32, PIC tiene uno, y así sucesivamente. Siempre elegiré AVR, debido a mucho tiempo, una buena consideración y comparación entre ambos. Me gusta mucho escribir código en el ensamblaje, este solo problema fue suficiente para elegir AVR, ya que el ensamblaje de PIC es confuso y no es práctico al tener menos instrucciones, no tener saltos en condición: se vuelve largo, estilo macarrones.

Los AVR de 8 bits tienen 26 registros de trabajo, mientras que sus equivalentes PIC tienen solo 1, el famoso registro “W”.

Además, los AVR XMega tienen un atractivo sistema de eventos interperiféricos, así como compatibilidad total con DMA, pasos que intentan reducir la funcionalidad ARM a MCU de 8 bits y 32 MHz.

Los AVR de 8 bits tienen 26 registros de trabajo, mientras que sus equivalentes PIC tienen solo 1, el famoso registro “W”.

Además, los AVR XMega tienen un atractivo sistema de eventos interperiféricos, así como compatibilidad total con DMA, pasos que intentan reducir la funcionalidad ARM a MCU de 8 bits y 32 MHz

En caso de que se lo haya perdido de las otras respuestas, los AVR son mucho mejores en hardware que las herramientas de programación PIC y AVR.

No puedo pensar en una buena razón para elegir PIC sobre AVR.

Ambos son MCU, unidad de microcontrolador.

PIC fabricado por Microchip, utilizado en la industria ampliamente.

AVR fabricado por Atmel, utilizado principalmente por aficionados.

Si eres principiante, aprende la familia STM32.