He trabajado con PIC16 y PIC18 durante más de tres años y también me gustaría conocer AVR. No tengo un proyecto específico en mente, pero me gustaría probar con las diferentes arquitecturas. Me gustaría obtener un informe de compatibilidad de PIC y AVR.
El software de uC
estoy familiarizado con Assembly y C para PIC16 y PIC18. ¿En qué se diferencian las variantes Assembly y C de los microcontroladores AVR de las variantes PIC? ¿Hay muchas diferencias?
Software de PC
¿Qué software necesitaría para compilar y ensamblar mis programas para chips AVR? ¿Es gratis y dónde puedo descargarlo?
Hardware de programación
He usado Wisp648 de VOTI para programar PIC, pero esa placa no puede programar AVR. ¿Tengo que comprar un programador o hay algún circuito disponible en la web que pueda construir yo mismo?
Hardware de uC
Para PIC, he usado mucho el PIC18F4620 . Estoy buscando un AVR con características similares. Las características que me gustan son:
¿Qué chip AVR tendría las mismas características? El paquete es un factor decisivo, realmente quiero DIP, PDIP o SPDIP. ¿Cómo sería un AVR con características comparables?
Variantes SPI e I2C
Me dijeron que Microchip tiene sus propias variantes en el protocolo SPI e I2C. A menudo uso dispositivos esclavos SPI e I2C de microchip en combinación con un PIC. ¿Sería capaz de usar estos chips (23K256, RTC, ENC28J60, ...), en combinación con un AVR? Además de eso, ¿sería posible vincular un AVR y un chip PIC usando I2C o SPI?
software de uC
Los conjuntos de instrucciones PIC y AVR son similares, pero no comenzaría programando un AVR en ensamblaje. Programa en C, con Atmel Studio. Viene empaquetado con la versión AVR de gcc, y tiene un desensamblador realmente bueno que le muestra la línea de C que escribió, y debajo, las instrucciones de ensamblaje resultantes, muy útiles. También descargaría WinAVR .
software de pc
Utilice Atmel Studio . No se moleste con Eclipse, Programmer's Notepad o cualquier otro IDE aleatorio que use la gente. Atmel Studio se basa en Visual Studio, tiene todo tipo de complementos disponibles de Atmel y tiene un buen simulador incorporado.
Hardware de programación
Hay muchos programadores AVR baratos, como Bus Pirate, pero consigue un Atmel ICSP . Vale la pena el gasto adicional si tiene la intención de hacer más de un proyecto AVR. Utiliza USB y es controlable desde Atmel Studio.
hardware de uC
Hay una herramienta de selección , pero en general, el hardware típico de AtMega de gama baja es:
Internal Oscillator (8 MHz)
3 Timers
2.7-5.5V Supply range
8-channel multiplexed ADC
I2C and SPI support
USART
2 PWMs that work in conjunction with the 8 bit timers
Ir a chips de mayor rendimiento le comprará más temporizadores y PWM. La cantidad de memoria flash y SRAM que tenga disponible depende del chip en particular. La mayoría de las piezas de AtMega están disponibles en PDIP, y el número realmente alto de pines es QFP.
Variantes SPI e I2C
Es posible utilizar dispositivos MCP I2C (TWI para AVR) y SPI con AVR uC. Realmente necesita leer cuidadosamente las secciones SPI y TWI de la hoja de datos de AVR, no se salte una línea. Existen múltiples registros de control para el orden de los datos, la polaridad del reloj, etc. para cada interfaz. Todo está presentado en las hojas de datos y es muy legible. No sería difícil vincular un AVR y un PIC. Solo necesitaría jugar con los modos SPI o TWI hasta que establezca la comunicación.
Trabajo igualmente bien en PIC y AVR (y otros también).
Me gustan los AVR en gran parte debido a AVR-libc . Es una biblioteca incrustada decente que es de código abierto y está razonablemente bien documentada ( A diferencia de plib de Microchip, pero plib tiene fuente completa, lo cual realmente aprecio). Los AVR usan gcc y gdb normales, lo que significa que no hay IDE idiotas que se interpongan en mi camino. Las mismas herramientas funcionan en Windows, OSX y Linux, y no necesito un IDE de más de 600 MB con Java y Netbeans o Eclipse para tropezar o contaminar mi árbol de fuentes con su propia basura.
La programación de AVR generalmente se realiza a través de ISP o JTAG (hubo una pregunta reciente al respecto), y desde el punto de vista de la programación, en realidad no es muy diferente de cualquier otro micro.
Desde una perspectiva personal, he llegado a detestar mucho las hojas de datos y la numeración de piezas de Microchip. Me inicié en el diseño integrado con Microchip y me encantaron durante mucho, mucho tiempo, pero cuando busco un micro en estos días, tiendo a comenzar con Atmel, aunque también tienen sus fallas. (SAM-BA es basura para sus partes SAM, y también tuve algunos problemas con el soporte de fábrica).
En cuanto a cuál usar... prueba ambos, es como la diferencia entre Coca-Cola y Pepsi. Son muy, muy similares y la elección generalmente se reduce al precio y las herramientas que prefiere usar.
C será el mismo con algunas pequeñas diferencias de compilador. El montaje será bastante diferente ya que es una arquitectura diferente. Aconsejo ir con C, y tal vez recoger suficiente ensamblaje para poder alinear algunas rutinas importantes.
Para el IDE y el programador, Atmel tiene ofertas similares a las de Microchip, solo eche un vistazo a su sitio web, descargue el IDE gratuito y elija un programador.
Un chip similar a un 18F podría ser algo así como el ATMega328 (el que se usa en Arduinos) Creo que tienen versiones de paquetes DIP.
Sí, I2C y SPI deberían funcionar igual. Vincular un AVR y un PIC no debería ser un problema.
Descargo de responsabilidad: no he usado un AVR durante mucho tiempo. Principalmente uso PIC y ARM hoy en día, pero nunca he tenido problemas para conectar nada con SPI/I2C en el pasado, he usado SPI con frecuencia para conectar, por ejemplo, PIC/Atmel EEPROM/Cortex-M3/FPGA. SPI es un protocolo muy básico que casi cualquier micro moderno debería ser capaz de hacer en hardware.
I2C es un poco más complejo. No puedo recordar la historia de la licencia/denominación (por ejemplo, 2 hilos, I2C, SMBus) de mi cabeza, pero la mayoría de los periféricos son compatibles en el nivel básico que yo sepa. Lea las páginas Wiki para obtener más detalles.
usuario17592
olin lathrop
Kaz
yippie
usuario17592
yippie
usuario17592
clabacchio
usuario17592
chris stratton