Cambio de PIC a AVR [cerrado]

13

He trabajado con PIC16 y PIC18 por más de tres años y me gustaría conocer AVR también. No tengo ningún proyecto específico en mente, pero me gustaría probar con las diferentes arquitecturas. Me gustaría obtener un informe de compatibilidad en PIC y AVR.

software de uC
Estoy familiarizado con la Asamblea y C para PIC16 y PIC18. ¿Cómo varían las variantes de ensamblaje y C para los microcontroladores AVR de las variantes PIC? ¿Hay muchas diferencias?

Software para 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 los PIC, pero esa placa no puede programar los AVR. ¿Tengo que comprar un programador o hay algún circuito disponible en la web que pueda construir yo mismo?

hardware de uC
Para los PIC, he usado mucho PIC18F4620 . Estoy buscando un AVR con características similares. Las características que me gustan son:

  • Oscilador interno
  • temporizadores
  • versiones de 5V y 3.3V
  • ADC
  • MSSP con soporte I2C y SPI
  • (E) USART
  • PWM
  • Muchos pines de E / S
  • > = 32kB de memoria del 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. ¿Qué sería un AVR con características similares?

Variantes de SPI y I2C
Me dijeron que Microchip tiene sus propias variantes en los protocolos SPI e I2C. A menudo utilizo dispositivos esclavos SPI e I2C de microchip en combinación con un PIC. ¿Podré 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 mediante I2C o SPI?

    
pregunta Keelan

3 respuestas

8

software de uC

Los conjuntos de instrucciones PIC y AVR son similares, pero no comenzaría a programar 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 de ella, las instrucciones de ensamblaje resultantes, muy útiles. También descargaría WinAVR .

Software para PC

Utilice Atmel Studio . No se moleste con Eclipse, el Bloc de notas del programador o cualquier otro IDE aleatorio que utilice 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 económicos, como el Bus Pirate, pero obtén un Atmel ICSP . El gasto adicional vale la pena en su totalidad si pretende realizar más de un proyecto AVR. Utiliza USB y es controlable desde el interior de Atmel Studio.

hardware de uC

Hay una herramienta de selección , pero en general, el hardware típico de AtMega 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 dependerá del chip en particular. La mayoría de las piezas de piezas de AtMega están disponibles en PDIP, y el número de pines realmente alto es QFP.

Variantes de SPI y I2C

Es posible utilizar dispositivos MCP I2C (TWI para AVR) y SPI con uU AVR. Realmente necesita leer cuidadosamente las secciones SPI y TWI de la hoja de datos de AVR, 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 está dispuesto en las hojas de datos, y es muy legible. No sería difícil vincular un AVR y un PIC. Solo deberías jugar con los modos SPI o TWI hasta que hayas establecido la comunicación.

    
respondido por el Matt Young
11
  • C será igual con algunas pequeñas diferencias de compilación. El montaje será bastante diferente ya que es una arquitectura diferente. Aconsejo ir con C, y tal vez recoger suficiente ensamblaje para poder en línea 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 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. Hoy en día, principalmente uso 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 tener en hardware.
I2C es un poco más complejo. No recuerdo la historia de la concesión de licencias / nombres (por ejemplo, 2 cables, I2C, SMBus) desde 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.

    
respondido por el Oli Glaser
11

Trabajo igualmente bien en PIC y AVR (y en 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 ( UNLIKE el plib de Microchip, pero plib tiene un código completo, lo que realmente aprecio). Los AVR utilizan gcc y gdb antiguos, lo que significa que no se interponen IDE idiotas en mi camino. 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 fuentes con su propia basura.

La programación de los AVR generalmente se realiza a través de ISP o JTAG (hubo una pregunta reciente acerca de eso), y desde el punto de vista de la programación, realmente no es muy diferente de cualquier otro micro.

Desde un punto de vista personal, me han disgustado mucho las hojas de datos de Microchip y la numeración de partes. Me corté los dientes con Microchip y me encantaron 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 por sus piezas de SAM, y también he tenido algunos problemas con el soporte de fábrica).

En cuanto a cuál usar ... probar 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 utilizar.

    
respondido por el akohlsmith

Lea otras preguntas en las etiquetas