Atmel vs Microchip
| #211 |
| #212 |
|
Beamspot
|
Que casualidad, yo también empecé con equipos médicos, sólo que fui a Suiza la primera vez, luego a San Francisco/Silicon Valley, y luego a Alemania.
Fue en Alemania donde realmente aprendí ingles, ya que en los USA había más mejicanos que americanos, y en Suiza, la profesora resultó ser española, y buena traductora de lo que no entendía de los otros profesores, que hablaban un inglés con demasiado acento alemán. O sea, que al final con tanto curso en el extranjero no necesito las escuelas de idiomas. Eso sí, nunca están de más en el currículum. |
|||||||||||
|
|
||||||||||||
| #213 |
|
eidtech
|
No saber inglés es como no saber C...
|
|||||||||||
|
|
||||||||||||
| #214 |
|
Beamspot
|
Pregunta trampa?
Las diferencias son varias: la parte del procesador (el llamado 'core') es muy diferente entre los dos. La manera de acceder a la memoria (RAM, de programa, periféricos) es diferente. Los periféricos, su funcionalidad y los mapas de los registros son muy diferentes. En el 'core', tenemos que los PIC (pequeños, que los de 16 bits ya no cuentan), son el clásico con un sólo registro acumulador (Working) y varios registros auxiliares. Mientras, en los AVR, el sistema usa 32 registros tipo acumulador que a la vez son registros auxiliares. Los PIC tienen un juego de instrucciones más pequeño, de manera que aprender el ensamblador es más fácil que con los AVR que tienen muchos más (unos 120 a 131, según modelo). El acceso a memoria de los PIC es más complejo debido a que tiene la RAM y los registros (por favor, los maestros del PIC que me corrijan si me equivoco) dividida en páginas. Eso hace que para acceder a un dato de la RAM quizás se deba seleccionar primero la página en la que este se halla. En los AVR, esto no pasa, pero en cambio, las direcciones de la RAM y/o los registros son de 16 bits en lugar de 8. Los PIC ejecutan la mayoría de instrucciones en 4 ciclos de reloj. Los AVR lo hacen en 1 ciclo de reloj (eso no es exactamente cierto, ya que en realidad los AVR tienen un Pipeline de dos estados: fetch y ejecución), de manera que con un reloj (cristal de cuarzo) igual en un PIC que en un AVR, el último va (en teoría, que esto no es la realidad) cuatro veces más rápido. El hecho de tener varios acumuladores en los AVR significa que para hacer lo mismo, se necesita acceder menos veces a la memoria RAM, y por tanto, el programa en ensamblador es más corto, y encima se ejecuta más rápido, al no tener que ejecutar las instrucciones de acceso a memoria. Y aún más si no tiene que ir cambiando de página de memoria. Lo cual relativiza mucho el término 'velocidad'. En cuanto a precio, probablemente haya algunas diferencias, sobre todo en la parte de los micros más 'pequeños', que sea favorable a los PIC. Otra diferencia, es que el programa en ensamblador de un PIC 12f seguramente no sea para nada usable en un 16f. En un ATtiny las instrucciones son las mismas (quizás tenga algunas menos) que en uno grande (ATmega y ATXmega), así que el mismo programa seguramente se podrá ejecutar, si no hay particularidades de los periféricos (cosa muy habitual en todos los fabricantes, por cierto). La mayor diferencia de ensamblador y 'core' entre toda la gama AVR es la capacidad de direccionar más memoria (128KB implica pasar de registros de 16 bits a registros de 24), el multiplicador, y muy poco más, de ahí que las 110 instrucciones básicas sean las mismas en todos los micros, y el resto sea una ampliación. Esto último desaparece si uno usa inglés, perdón, C ;) Respecto de los periféricos, bueno, cada fabricante tiene sus cosas, y encima las cambian de un modelo a otro, así que esto es demasiado específico como para generalizar. Quizás la excepción aquí sean los PSoC de Cypress, que es un animal muy diferente sobre todo en este aspecto. |
|||||||||||
|
|
||||||||||||
| #215 |
|
Javier Rambaldo
|
Beamspot escribió: Pregunta trampa? No es correcto: la linea de PICs 12F y 16F usan el mismo set de instrucciones. Puedes hacer cualquier programa para toda la linea media y baja de PICs (que son mas de 100 modelos distintos) y con seguridad va a funcionar. Eso es una gran ventaja! |
|||||||||||
|
|
||||||||||||
| #216 |
|
Meta
|
Javier Rambaldo escribió: Otra pequeña ventaja es que las 35 instrucciones aparecen en los 18F y si quieres hacer lo mismo que un 16F84 la verdad puedes utilizar esas instrucciones sin usar las nuevas que te viene. Si usas las nuevas del 18F te ahorras más líneas de código ya que puedes hace cosas más directas que el 16F. Para hacer adaptación de un 16F876A a 18F2550 ya que son el mismo patillaje, pues no cuesta nada adaptarla pero si lo haces al revés ya es más complejo porque las instrucciones que usa el 18F no se incluyen en los 16F, pero como dije antes, si en el 18F2550 usa las instrucciones del 16F, pues puedes adaptarla al 16F876A. Cosas así es lo que importa y ahorra mucho tiempo. PD: Me he dado cuenta que algunos le da pánico el ASM. |
|||||||||||
|
|
||||||||||||
| #217 |
|
Beamspot
|
Gracias por las correcciones. Queda demostrado mi desconocimiento de los PIC.
Por cierto, a mí no me gusta mucho el ASM, pero también es por razones objetivas (escribo y depuro mucho más código en C que en ASM). Y además, creo que es fundamental tener buenos conocimientos de cómo funciona al menos el ASM del micro que uno programa. A veces, para acabar de apurar tiempos, hay que bajar al ASM, y ahí es donde uno realmente aprende a programar. Por desgracia, debido a los tiempos de desarrollo cada vez más cortos, hoy muchos prefieren poner micros que vayan sobrados de potencia de cálculo, y ahorrarse tiempo de depuración programando 'a saco'. Así que parece que vamos a acabar usando ARM's con mucha RAM para hacer algo que se haría con un 16F, pero que con el ARM desarrollamos en un día, y con el 16F igual tendríamos que depurar y afinar durante a lo mejor semanas o meses. |
|||||||||||
|
|
||||||||||||
| #218 |
|
Meta
|
Beamspot escribió: con el 16F igual tendríamos que depurar y afinar durante a lo mejor semanas o meses. No te pases. |
|||||||||||
|
|
||||||||||||
| #219 |
|
Beamspot
|
Me refiero que a algo como un pequeño filtro o FFT, en un ARM es 'copiar y pegar'. Sin problemas de restricciones. Hacer lo mismo con un PIC sería bastante más arduo, por no decir imposible.
Pero el ejemplo lo he visto con una FFT sobre los 50Hz de la red, que con un AVR se conseguía haciéndolo a mano con ASM, y se tardó bastante en optimizarlo. Con un ARM, en una mañana estaba hecho. Por supuesto, no estaba ni la mitad de optimizado, ocupaba más memoria, gastaba más RAM, etc. Pero el coste de I+D superaba con creces la diferencia de precio. Es más, con los ARM ahora por un euro y medio, incluso los dsPIC quedan en entredicho (por supuesto, también los AVR grandes). |
|||||||||||
|
|
||||||||||||
| #220 |
|
Meta
|
La verdad que los ARM poco va hacer frente en el mercado junto con los PIC, AVR y Motorola.
|
|||||||||||
|
|
||||||||||||
|
| Otros temas de interés | |
|---|---|
| Destacado: Programador de microcontoladores PIC Puerto USB | |
| Programar un PIC para controlar un TFT | |
| Programar el PIC16C765 por el puerto serial y el USB | |
| Programar un lm35 en visual basic por el puerto paralelo | |
| programar en assembler | |
| Foros de Electronica |
| ||
Cuestiones Elementales de Electrónica ||
Fuentes de alimentacion ||
Circuitos de radio ||
Diseño de circuitos en general || || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Contacto |
Acerca de |
Ayuda |
Normas de la Comunidad |
Privacidad |
Mapa de los foros
© Foros de Electrónica - Comunidad Internacional de Electrónicos
© Foros de Electrónica - Comunidad Internacional de Electrónicos

