He trabajado con PIC16 y PIC18 durante más de tres años y me gustaría conocer AVR también. No tengo en mente ningún proyecto específico, pero me gustaría probar con las diferentes arquitecturas. Me gustaría obtener un informe de compatibilidad sobre PIC y AVR.
El software de uC
Estoy familiarizado con Assembly y C para PIC16 y PIC18. ¿Cómo varían el ensamblaje y las variantes C para 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:
- Oscilador interno
- Temporizadores
- Versión de 5V y 3.3V
- ADC
- MSSP con soporte I2C y SPI
- (E) USART
- PWM
- Muchos pines de E / S
- > = 32kB de memoria de programa,> = 2kB RAM
- Paquete DIP
¿Qué chip AVR tendría las mismas características? El paquete es un factor decisivo, realmente quiero DIP, PDIP o SPDIP. ¿Cuál sería un AVR con características comparables?
Variantes SPI e I2C
Me dijeron que Microchip tiene sus propias variantes en los protocolos SPI e I2C. A menudo uso dispositivos esclavos SPI e I2C de microchip en combinación con un PIC. ¿Podría 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?
Respuestas:
software de uC
Los conjuntos de instrucciones PIC y AVR son similares, pero no comenzaría a programar un AVR en conjunto. Programa en C, con Atmel Studio. Viene empaquetado con la versión AVR de gcc, y tiene un muy buen desensamblador 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
Utiliza Atmel Studio . No te molestes con Eclipse, el Bloc de notas del programador o cualquier otro IDE aleatorio que la gente use. 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 obtén un Atmel ICSP . Vale la pena el gasto extra si tiene la intención de hacer más de un proyecto AVR. Utiliza USB y es controlable desde el interior de Atmel Studio.
hardware de uC
Existe una herramienta de selección , pero en general, el hardware típico de gama baja de AtMega es:
Ir a chips de mayor rendimiento le comprará más temporizadores y PWM. La cantidad de memoria flash y SRAM que tiene disponible depende del chip en particular. La mayoría de las partes de piezas de AtMega están disponibles en PDIP, siendo QFP la cantidad de clavijas realmente alta.
Variantes SPI e I2C
Es posible utilizar dispositivos MCP I2C (TWI para AVR) y SPI con AVR uC. Realmente necesita leer las secciones SPI y TWI de la hoja de datos AVR cuidadosamente, no omita una línea. Existen múltiples registros de control para el orden de los datos, la polaridad del reloj, etc. para cada interfaz. Todo se presenta en las hojas de datos y es muy legible. No sería difícil vincular un AVR y PIC. Solo necesitaría jugar con los modos SPI o TWI hasta que establezca la comunicación.
fuente
C será igual con algunas pequeñas diferencias de compilación. El ensamblaje será bastante diferente ya que es una arquitectura diferente. Aconsejo ir con C, y tal vez recoger suficiente ensamblaje para poder incorporar algunas rutinas importantes.
Para el IDE y el programador, Atmel tiene ofertas similares a 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 paquete DIP.
Sí, I2C y SPI deberían funcionar igual. Vincular un AVR y PIC no debería ser un problema.
Descargo de responsabilidad: no he usado un AVR durante mucho, mucho tiempo. Hoy en día uso principalmente PIC y ARM, pero nunca he tenido problemas para conectar nada con SPI / I2C en el pasado, ya que 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 las licencias / nombres (por ejemplo, 2 hilos, I2C, SMBus) fuera 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 de Wiki para obtener más detalles.
fuente
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 razonablemente bien documentada (a diferencia de Plib de Microchip, pero plib tiene fuente completa, lo que realmente aprecio). Los AVR usan gcc y gdb viejos y regulares, lo que significa que no se me interponen IDEs idiotas. Las mismas herramientas funcionan en Windows, OSX y Linux, y no necesito un IDE de 600 MB + con Java y Netbeans o Eclipse para tropezar o contaminar mi árbol de origen con su propia basura.
La programación de AVR generalmente se realiza a través de ISP o JTAG (había 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 disgustarme mucho con las hojas de datos y la numeración de piezas de Microchip. Me corté los dientes en el diseño incrustado con Microchip y los amé durante mucho, mucho tiempo, pero cuando busco un micro en estos días tiendo a comenzar con Atmel, aunque no están exentos de defectos. (SAM-BA es basura para sus partes SAM, y también he tenido algunos problemas con su soporte de fábrica).
En cuanto a cuál usar ... pruebe ambos, es como la diferencia entre Coca-Cola y Pepsi. Son muy, muy similares y la elección generalmente se reduce al precio y a las herramientas que prefiere usar.
fuente