Similitud entre Atmega162 y Arduino

2

Voy a tomar un curso de sistemas integrados donde usaremos el Atmega162 y quiero comenzar a aprender las cosas antes de que comience el curso. Ahora mi pregunta es, considerando que hay muchos buenos recursos para Arduino y recursos relativamente escasos para el Atmega162, y que el Arduino es mucho menos intimidante que el Atmega162, sería beneficioso si solo aprendiera el Arduino y luego usara parte de ese conocimiento en el 162 ?, o si los dos microcontroladores tienen diferencias significativas ¿Eso haría ineficaz usar esta estrategia? Además, ya tengo acceso a un Arduino Uno, pero probablemente no tenga acceso a un Atmega162 real hasta que comience el curso.

    
pregunta KillaKem

3 respuestas

4

El Arduino Uno tiene un Atmel ATmega328 incorporado fuera de la caja, pero puede ser reemplazado por un 168, y un par de otros más si la memoria me sirve. La moraleja de la historia es que todos los tableros Arduino utilizan microcontroladores Atmel. La arquitectura de la línea AVR es casi idéntica de chip a chip, hasta el contenido del registro en algunos casos. Lo que hace que Arduino sea fácil para los aficionados y novatos es el software.

Aprenderás a programar micros como un profesional de tu clase. En la industria, ese pseudocódigo de Arduino es inútil. No me molestaría en Arduino a menos que tenga algún proyecto de hobby en el que necesite un micro, y no quiera pensar mucho en ello.

    
respondido por el Matt Young
1

Si desea hacer algo más cercano a la clase, puede instalar el software Arduino para probar la placa, y luego aprender a usar avr-gcc y avrdude para compilar y cargar proyectos de metal desde donde escribe todos los código, en lugar de utilizar las funciones de la biblioteca Arduino.

La diferencia entre los dos chips tendrá una relevancia bastante limitada, aunque podría ser educativo comparar las hojas de datos y hacer una lista de las diferencias que encuentre.

Sin embargo, existe una posibilidad bastante alta de que su curso no use avr-gcc, pero sí algún otro compilador y probablemente alguna otra herramienta de programación. Además, probablemente habrá un estilo de codificación diferente y tal vez algunas macros para los registros de chips diferentes de lo que se establezca en su won. Por lo tanto, es probable que aún termine con alguna transición, pero de alguna manera que sea útil contemplar, ya que aprender a traducir entre esos problemas ambientales le dará más flexibilidad en el futuro. Por ejemplo, es posible que desee aprovechar el código de aplicación-nota que supone un compilador diferente al que terminará usando en un proyecto. O puede estar trabajando en un proyecto durante algún tiempo, decidir que varias limitaciones de la cadena de herramientas que ha estado usando ya no son tolerables, y desea mover el proyecto a otro diferente.

    
respondido por el Chris Stratton
0

Poco de una respuesta tardía, pero puede ser de interés para alguien que se encuentre con esto. Si bien es cierto que en la actualidad, Arduino es un lenguaje muy alto para ser realmente útil profesionalmente, aunque ciertamente hay productos de compañías más pequeñas que llegan al mercado hoy en día con algunas partes basadas en Arduino. Sin embargo, creo que esto puede cambiar:

Estoy más familiarizado con la ingeniería de software que con el diseño integrado y electrónico con unos 20 años de experiencia profesional en el primero. Comencé a aprender sobre programación en mi C64, pero pronto me adentré en C y más tarde también en C ++ desde aquellos lenguajes estándar en los que tenía que dominar. 1995 Java apareció y yo era uno de los primeros adaptadores. Sin embargo, la mayoría de las personas eran bastante escépticas, un lenguaje administrado con la recolección de basura y ese alto nivel de abstracción seguramente no era más que una herramienta de enseñanza o algo en lo que se podía construir una interfaz de usuario simple o algo así. Para aplicaciones reales, aún necesitaba C ++. Bueno, hoy en día Java y C # (que se encuentran en gran medida en el mismo nivel de abstracción) son fácilmente los idiomas más dominantes, especialmente cuando se trata de aplicaciones empresariales. Sí, todavía hay lugares donde se usa C ++, los juegos son obvios, pero eso es algo así como que, como máximo, el 5% de todo el código se escribe hoy.

¿Por qué es esto? Bueno, los avances tecnológicos se producen rápidamente en este campo y se pueden usar para básicamente cuatro cosas: hacer que el hardware sea más barato, hacerlo más pequeño, hacerlo más rápido o permitirle realizar tareas antes, no es posible. En las computadoras, tanto en las PC como en los Servidores, las más pequeñas no son realmente un problema, el factor limitante para hacer que una computadora portátil sea más pequeña son las baterías y el hecho de que no es necesario tener una pantalla tan pequeña. Nuevas tareas, bueno, no hay realmente ninguna demanda para eso a menos que sea algo espectacular. Así que el hardware se volvió más rápido y más barato. Al mismo tiempo, la demanda de programadores aumenta constantemente, lo que significa que se vuelven cada vez más caros, lo que lleva al hecho simple en el desarrollo de software de computadoras hoy en día: las horas de programación son más caras que los ciclos de RAM y CPU, por lo que no tendrá idiomas ni marcos. eso no es necesariamente simple, pero se ocupa de cosas "repetitivas" como la administración de memoria, los protocolos de comunicación, el acceso a datos, etc., lo que permite a los programadores concentrarse en las cosas que realmente no se pueden resolver al lanzarles hardware.

Ahora, las cosas incrustadas son levemente, pero no muy diferentes, principalmente en dos factores: el tamaño seguía siendo un problema, y aún lo es en algunas aplicaciones y los sistemas incrustados son a menudo partes de dispositivos y, por lo tanto, no se pueden actualizar o cambiar fácilmente. t aproveche otras unidades en una red para descargar trabajos, etc. Lo que son cuando se construyen es lo que permanecerán y tienen que ser autosuficientes. Esta última parte está cambiando a medida que las diferentes pilas de comunicación están cada vez más disponibles para los sistemas integrados. Sin embargo, estas diferencias no son fundamentales, solo hacen que el mismo desarrollo se produzca más tarde y no tan rápido como el software informático. Estamos llegando a un punto en el que puede obtener el poder de cómputo de una PC de juegos promedio hace 10 años por 8 dólares del tamaño de una tarjeta de crédito, incluidos los periféricos de conexión e incluso Wi-Fi. en un punto en el que lo mismo ocurre con el software embebido e integrado: las horas de ingeniería son más caras que el hardware, lo que significa que tendrá más y más sentido utilizar niveles más altos de abstracción. Dada la opción de hacer que un chip Atmel sea dos veces más rápido o dos veces más pequeño al mismo costo que en la actualidad, en la mayoría de los casos tendría más sentido hacerlo más rápido y gastar ese rendimiento en hacer que la vida del programador sea más fácil.

No, no estoy diciendo que Arduino sea el futuro del desarrollo integrado, creo que tiene muchas fallas que lo descalificarán de eso. Sin embargo, creo que un lenguaje de más alto nivel se manifestará muy pronto y será un gran cambio para la industria.

Saludos

    
respondido por el Jens Johansson

Lea otras preguntas en las etiquetas