Pregunta

¿Qué familia debo comenzar a aprender? (Nunca hice ninguna programación en el microcontrolador)

¿Fue útil?

Solución

Hoy AVR y PIC son probablemente los microcontroladores más comunes entre los aficionados. Ambos tienen una amplia gama de variantes de dispositivos y ambos se pueden utilizar para lograr resultados similares.

Para un principiante, sugeriría AVR debido a varias razones:

  • La familia AVR (pequeña, mega) es coherente y fácil de entender. La arquitectura es potente y moderna, y es especialmente adecuada para compiladores de C. Por supuesto, los AVR también se pueden programar en ensamblaje.

  • Debido a su arquitectura amigable con C, hay compiladores C de calidad disponibles, tanto comerciales como gratuitos. El ubicuo GCC se transfiere a AVR y se llama avr-gcc .

  • Para comenzar, todo lo que realmente necesita es un puñado de componentes básicos, el propio chip AVR y un placa de prueba . Incluso el cable de programación entre PC y AVR se puede construir esencialmente de forma gratuita (un llamado wiggler). Sin embargo, hay varios kits de desarrollo comercial disponibles, especialmente el STK500 . Un kit de desarrollo comercial es la forma más costosa de comenzar, pero no requiere prácticamente ningún conocimiento previo sobre electrónica. Algunos kits de desarrollo contienen, por ejemplo, pantallas LCD , por lo que es fácil hacer cosas interesantes.

  • Tiene una rica comunidad de aficionados .

PIC es conocido por su arquitectura peculiar. A muchos les encanta PIC por esto, algunos lo odian. AVR es más directo y no parece causar tantas opiniones extremas y polares.

Tanto AVR como PIC se utilizan en muchas aplicaciones comerciales serias. Sin embargo, no son las únicas opciones, por supuesto. Mi microcontrolador favorito personal para el trabajo hobby y comercial es la familia C8051 de Silicon Laboratories, más notablemente C8051 F530 . Hay un excelente compilador y ensamblador de C gratuito para la familia C8051 llamado SDCC .

Resumen: hay muchas opciones, pero no dejes que eso te abrume. Solo elige uno y comienza a aprender con él. ¡Los microcontroladores son, en realidad, sorprendentemente fáciles de dominar una vez que decide ponerse en marcha!

Otros consejos

Mi jefe aprendió lo básico usando AVR en una semana sin experiencia previa.

Sugeriría AVR. Ha superado por mucho a PIC como la plataforma de microcontroladores elegida para proyectos de aficionados en general. En particular, considere la plataforma Arduino (y otra * duino), que proporciona un AVR de gama alta en una interfaz fácil de usar y un factor de forma popular.

Prefiero mucho el AVR sobre el PIC, cuya arquitectura me parece un poco desordenada. Esto puede ser solo yo, y no te molestará si puedes escribir en un idioma de alto nivel, muy probablemente (algún dialecto de) C.

Como eres nuevo en microcontroladores, supongo que el rendimiento no será el problema, por lo que buscaría la disponibilidad de herramientas de desarrollo: placas de creación de prototipos, IDE y herramientas de simulación / depuración. Personalmente, me gustó mucho AVR Studio (el entorno de desarrollo gratuito de Atmel).

Jason menciona el MSP430 de TI, que es un excelente controlador, especialmente si se encuentra en aplicaciones de muy baja potencia. Pero no lo recomendaría para un novato, ya que la configuración es un poco engorrosa. (Recuerdo que la descripción del oscilador cubría más de 20 páginas en el manual del usuario).

Algunas personas comentaron sobre la arquitectura extraña (y C poco amigable) del micro PIC. Esto es cierto para los PIC más pequeños, pero los chips de 16 bits (PIC24F, dsPIC30, etc.) tienen arquitecturas muy claras que funcionan muy bien con C.

La línea PIC24F tiene la capacidad de asignar pines a funciones (temporizadores, A / D, E / S en serie) sobre la marcha, lo que facilita su diseño. El entorno MPLAB para depuración y desarrollo es bastante agradable.

He hecho algo de programación PIC, principalmente porque me gustó la idea de que el chip solo costara un dólar o dos. Sin embargo, para un principiante, tomar una decisión únicamente sobre el precio es una optimización prematura.

La programación en ensamblador es una experiencia. Básicamente, debe aprender sobre 100 conceptos antes de poder parpadear un LED. (Temporizador de vigilancia, pines de reinicio, contadores / desbordamientos de 8 bits, bucles de retardo, hexadecimal, binario, enmascaramiento de bits, interrupciones, solicitudes de servicio de interrupción, puertos IO, etc.) Todo es muy educativo y una gran sensación de estar tan cerca para la máquina, pero poder codificar algo en C ocultará algo de esta complejidad para que pueda concentrarse en los resultados. Por esta razón, diría que vaya con el AVR. (Y creo que los precios ahora están más cerca de los PIC).

Además: si está interesado en hacer las cosas (y no le importa gastar ~ $ 30), consulte arduino . Un tipo que los vendía en mi tienda de electrónica local decía que vendía toneladas de ellos a estudiantes de arte. (Utiliza el IDE del proyecto Processing y compila el código con avr-gcc.)

Actualización: Se corrigió el comentario de que Arduino ejecuta el código interpretado. También actualicé el precio aproximado de Arduino.

No entiendo cuál es el problema con Arduino, arruinará tus posibilidades de entender lo que realmente está sucediendo. Programa con AVR y PIC regularmente, básicamente no hay mucha diferencia, no puedo ver de qué se trata todo este alboroto. Sin embargo, para que un principiante se mantenga alejado de Arduino, puede ser simple, pero esa es la trampa, no le da ningún concepto de arquitectura de hardware, y no tiene idea de lo que está sucediendo detrás de escena, las cosas que los principiantes deben aprender para ser un programador efectivo. Cuando era principiante comencé con un programador USBmep ATmega32, $ 20, AVR Studio (gratuito) y AVRDude (viene con WinAVR) y seguí los tutoriales de introducción en AVR Freaks. ¡Eso es todo lo que necesitas, listo!

P.S. Si realmente quieres aprender a programar micros y tener el tiempo de aprender el ensamblador de tu micro, serás 20 veces el programador C que alguien que comenzó a usar arduino.

Mi voto es para PIC por la variedad extrema de dispositivos disponibles. Pero debo decir que cuando comencé a usar los PIC, no eran casi nada más. Quizás ahora las cosas hayan cambiado.

Voto por MSP430 de TI serie. He usado PIC ampliamente (también chips Atmel un poco) y, con mucho, lo más importante para mí es un buen IDE de depuración. TI ha hecho un trabajo bastante bueno en esto, y su compilador C ++ funciona muy bien. Puede comenzar con una placa de evaluación por menos de $ 100, incluido un depurador IDE + USB. Los PIC tienen mejores & amp; periféricos de hardware más diversos, pero MPLAB es una mierda y el único IDE de C ++ para PIC es uno de IAR, que es bastante caro. (más de $ 2K)

Elegí / PIC principalmente porque hay más hardware periférico por el mismo precio. Y lo más importante, ni siquiera puede encontrar AVR comparables. Sin embargo, elegí una de las versiones gratuitas heredadas (comencé con PIC18, migré a dspic33)

El IDE es gratuito, el compilador (C) es gratuito en la versión del alumno (que desactiva la optimización después del primer mes). Los programadores de nivel básico también son bastante baratos. Si tiene un montón de interrupciones, contadores y temporizadores, existe la posibilidad de que no necesite optimización en absoluto. Un programador directamente de Microchip cuesta $ 30.

Tenga en cuenta que las observaciones anteriores sobre AVR que atienden más al desarrollo HLL están un poco desactualizadas a menos que realmente elija las arquitecturas heredadas como PIC12 y 16.

Uno típicamente programa las arquitecturas PIC18 más modernas (8 bits) y las arquitecturas de 16 bits (24F, 30F y dspic33 que se basan en el mismo núcleo principal) en C. Los 16 bits incluso usan GCC. También hay 32 bitters basados ??en MIPS ahora, pero compiten más con ARM en la escena de procesamiento de audio / video. Por extraño que parezca, los modernos a menudo son más baratos que los antiguos. Probablemente se producen en un proceso más moderno que tiene mayores rendimientos.

Otra nota: mientras tanto Microchip / PIC compró Atmel / AVR, pero supongo que durante los primeros años eso no afectará mucho las líneas de productos.

Tengo muchas ganas de que el ethernet de 60MIP habilitado para 16-bitter que se lanzará este verano (precio de la calle afaik justo por encima de 10 euros)

Si solo quieres saber qué es la programación MCU, comenzar desde Arduino es una buena idea. Es barato, con un IDE amigable para principiantes (basado en el lenguaje de programación de procesamiento, que tiene una sintaxis similar con C).

Pero esto no respondió a su pregunta, ya que aunque Arduino está basado en AVR, no puede sentir que haya una MCU AVR detrás de ese IDE moderno. :)

Tuve mucho más éxito con PIC mientras recién comenzaba. Intenté obtener un kit básico simple de Arduino y simplemente no pude obtener un buen kit básico sin gastar más de $ 100-200 en níquel y atenuar la configuración juntos. Obtuve un pequeño kit de inicio de PIC por aproximadamente $ 40 y tiene todo: IDE, programador, placa de inicio con circuitos integrados para demostraciones y tutoriales. Una compra Además, el entorno PIC fue muy fácil de configurar y trabajar. Estaba jugando con él en una hora.

Mi primera experiencia con microcontroladores fue con un OOPic-R . Me permitió hacer experimentos robóticos simples sin preocuparme demasiado por el código. El flujo de programación orientado a objetos hace que todo funcione rápido y es fácil de programar.

Recientemente, probé otra variedad de PIC, el PICAXE barato. La interfaz de programación incluida es muy fácil de usar. Además, para interactuar físicamente con el PICAXE, solo necesita un puerto RS-232 para programarlo y dos pines en el chip (no es necesario realizar cambios de nivel). He incrustado el PICAXE en contenedores muy pequeños (chips SMD y DIP disponibles) y ha funcionado bastante bien.

No tengo experiencia con la programación de microcontroladores en ensamblaje. Si desea probar eso, el AVR podría ser más adecuado debido a su mayor comunidad de usuarios.

Hasta donde yo sé, la forma más barata de programar un AVR usando las herramientas de ATMEL es el ATMEL AVR ISP mkII por 35 $. Puede encontrar programadores de terceros por 10-15 $.

Haría mi elección en función de la disponibilidad de un compilador cruzado en C. En el pasado, eso haría que AVR fuera la elección. No estoy seguro de cuál es el estado ahora.

He programado un PIC en ensamblador, y no fue muy divertido. C es mucho más agradable en muchos sentidos.

Una de las mejores características de AVR es la comunidad en los foros en www.avrfreaks.net. Tienes un montón de ingenieros electrónicos experimentados que están dispuestos a ayudar a los novatos a ponerse en marcha.

Yo diría que encontré el microcontrolador 8051 de la manera más fácil y Atmel ha creado microcontroladores con tantas funciones incorporadas ... pero aún la gente está usando más preferiblemente los AVR ... mi mano subía con el 8051 familia (si se encuentra cómodo) de lo contrario el AVR ...

Me encanta AVR. Es fácil de programar y los recursos disponibles. Hay pocas comunidades como Arduino trabaja con él.

Alguna discusión más sobre la superioridad de AVR, en el otro Stack Overflow: http://embeddedgurus.com/stack-overflow/2009/04 / pic-stack-overflow /

  

La popularidad de los PIC de 8 bits me desconcierta. Su arquitectura es horrible.   la pila de llamadas limitadas es solo la primera cosa terrible. Tirar en el   necesidad de paginación y banca junto con el vector de interrupción único   y tienes la pesadilla de un modelo de programación. Seria una cosa   si esta fuera la norma para dispositivos de 8 bits, pero no lo es. El AVR   la arquitectura vuela el PIC, mientras que los HC05 / HC08 también   calles por delante del PIC. Dada la elección, creo que incluso tomaría un   8051 sobre el PIC. No veo ninguna ventaja de costo, empaque   ventajas (Atmel acaba de lanzar un AVR SOT23-6 que es esencialmente   conjunto de instrucciones compatible con sus dispositivos más grandes) o periféricos   Establecer ventajas. En resumen, ¡no lo entiendo! Por cierto, esto no es un   acusación de Microchip - son una gran compañía y realmente me gusta un   muchos de sus otros productos, su sitio web, soporte técnico, etc.   (¿quizás por eso se usa tanto el PIC?)

Empecé con un Motorola M68HC11, era bastante simple. Creo que obtendrás la misma experiencia con cualquier controlador de 8 bits.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top