ImageImageImageImage
Hazte Socio (El Foro siempre Gratis)
Paga con Tarjetas+ Info www.arde.cc/socios

El fin de la guerra PIC-AVR.

Postea todo lo relacionado con el mundo de los microcontroladores aquí

Moderator: Junta Directiva

Post Reply
User avatar
Meta
Forero Habitual
Forero Habitual
Posts: 142
Joined: Sun Jan 20, 2008 8:49 pm
Location: http://electronica-pic.blogspot.com
Contact:

Re: El fin de la guerra PIC-AVR.

Post by Meta » Sat Apr 23, 2011 8:49 pm

Hola:

Me dio por probar AVR que hice un minimanual muy simple.
http://electronica-pic.blogspot.com/201 ... sy-20.html" onclick="window.open(this.href);return false;

En cuanto a microcontroladores, me dio una época por buscar todas las marcas que hay y saber cuantos hay. Siempre estaba viendo los PIC, AVR, ARM, FreeScale.... Debe haber más que no recuerdo y me topé con una lista publicado en mi Blog. Seguro que me faltan muchos más PIC que no tengo añadido.

* ARM
* Atmel
* Cypress
* Diodes
* Ember
* Energy Micro
* Fairchildsemi
* FreeScale
* FTDIchip
* Fujitsu
* Hitachi
* Holtek
* IDT
* Infineon
* Intersil
* JMicron
* LSI
* Maxim-IC
* Micrel
* Microchip
* Microsemi
* National
* NEC
* Nuvoton
* Oki
* On Semi
* Parallax
* Philips
* Picaxe
* Rabbit
* Renesas
* Rohm
* Samsung
* Semtech
* Silabs
* STMicroelectronics
* TI
* Toshiba
* Winbond USA
* Xmos

Tienes para artarte.

Ah, lo bueno de MPLAB ahora, que por fin se está preparando uno hecho con Java y para Windows, Mac y Linux con NetBeans. Por ahora está la beta 5 del MPLAB X y cada vez mejor. Aún en paralelo seguirá actualizando el MPLAB de toda la vida.

http://ww1.microchip.com/downloads/mpla ... index.html" onclick="window.open(this.href);return false;

Saludo.

User avatar
beamspot
Usuario Desarrollador
Usuario Desarrollador
Posts: 1132
Joined: Thu Oct 11, 2007 8:56 pm
Nombre: Guillem

Re: El fin de la guerra PIC-AVR.

Post by beamspot » Tue Apr 26, 2011 9:18 am

Creo que hay que objetivar un poco y separar un poco los posibles casos, ya que no es lo mismo un novato que nunca ha tocado un micro que una aplicación de millones de productos de tirada que casos puntuales de tiradas más cortas, pongamos 100 unidades.

Creo, y va a ser difícil de convencerme de lo contrario, que para aprender a programar micros, poco hay mejor que un PIC 16f84. Sencillo y funcional. Rápido de aprender y eficaz para hacer cosas básicas como las luces del coche fantástico. Evolucionar y seguir con una segunda parte de ampliación de conocimientos con programación de C embebido usando AVR's creo que sería una continuación básica y lo conveniente (otra cosa es que se haga). De ahí a los ARM, el paso es más fácil. Empezar directamente con ARM's Cortex M3 es una locura para cualquier novato.

Por cierto, el hecho que en PIC se siga recurriendo a ASM es debido a varios factores: escasa capacidad de procesamiento comparado con otros micros, y dificultad de generar código ensamblado eficiente desde C debido a la arquitectura interna. Hace tiempo hice una propuesta que nadie se dignó a replicar, comparando simplemente el código ensamblador de un sumador de 256 bytes hecho en C para AVR con el equivalente en PIC (familia 16f por un lado, 18f por otro), para comparar la eficiencia a la hora de hacer lo mismo de diferentes maneras y con diferentes arquitecturas. Creo que es un buen ejemplo para ilustrar diferencias, potencias, filosofías, arquitecturas, etc.

Por lo que respecta a aplicaciones 'comerciales', si la tirada es muy grande, hay aplicaciones en las que un ARM nunca va a tener mucho sentido (un termómetro, por ejemplo), y otras donde incluso siendo más caro un ARM, el valor añadido compensa sobradamente. Hasta en la automoción se están usando cada vez más los ARM en detrimento de arquitecturas propias de los grandes fabricantes de este ramo (fujitsu, renesas, hitachi).

Para tiradas comerciales pequeñas (donde estoy yo currando ahora mismo), el cambio tecnológico es aún más abismal. Se están abriendo paso cada vez más los sistemas tipo Beagleboard/IGEP, linux embebido, ethernet, etc, en aplicaciones cada vez más 'masivamente paralelas', pero donde el tiempo de desarrollo de SW se ve muy condicionado, y por tanto se sigue usando mucho el LabView (un dinosaurio zombie que debería haber sido aniquilado hace mucho tiempo), el VisualStudio (el IDE y las librerías llevan muchas ventajas sobre las aplicaciones de Linux Embebido con las que empiezo a trabajar), y otras herramientas como los sistemas de visión (hay poco en linux, y menos en embebido... por ahora) hacen que sea difícil hacer entrar todavía estas tecnologías, si bien queda claro que es el futuro.

Si a todo esto le añadimos el reciente anuncio de Zynq, la cosa parece que va a acabar siendo un tsunami que acabe con lo que ya hay hecho, pero el desarrollo y las herramientas no sólo están verdes, si no que hay que cambiar de filosofía (de 'chip', tanto en el sentido metafórico, como en el más real).

Aunque sigo haciendo cosas con AVR en mis escasos ratos libres que me deja la niña (año y medio ya), en el trabajo tenemos claro dos cosas: ARM cortex M? para los sistemas que no queda más remedio que estén embebidos, y ARM's grandes con Linux embebido en el resto, con FPGA cada vez más abundantes (me remito, una vez más al Zynq). Sistemas distribuidos, red en profusión, y mezclas de PC/Windows con SBC's y Linux.

En automoción no se aleja tanto la filosofía. ARM's con aceleradoras gráficas, Linux embebido, networking sobre fibra óptica, etc, están en la hoja de ruta de nuevos proyectos que ya son casi una realidad.

Por otro lado, y como último apunte. Los microcontroladores pertenecen al dominio del tiempo real, donde difícilmente se llegarán a meter los microprocesadores (como los ARM's 'grandes') con linux. Son dos mundos distintos que cada vez conviven más, pero con requerimientos totalmente diferentes. No es de extrañar que los Zynq estos usen el ARM dual core interno para ciertas tareas, pero tengan micros software (Microblaze, por ejemplo) que se encarguen de las tareas de tiempo real, además del HW adecuado para acelerar tales fines.
Beamspot.

User avatar
beamspot
Usuario Desarrollador
Usuario Desarrollador
Posts: 1132
Joined: Thu Oct 11, 2007 8:56 pm
Nombre: Guillem

Re: El fin de la guerra PIC-AVR.

Post by beamspot » Tue Apr 26, 2011 9:23 am

Por cierto, Meta, creo que Xilinx y Altera, probablemente (por confirmar) Lattice y Actel tienen micros también, aunque algunos de ellos son 'raros' (definidos por 'software').
Beamspot.

User avatar
Meta
Forero Habitual
Forero Habitual
Posts: 142
Joined: Sun Jan 20, 2008 8:49 pm
Location: http://electronica-pic.blogspot.com
Contact:

Re: El fin de la guerra PIC-AVR.

Post by Meta » Tue Apr 26, 2011 10:42 am

Hola:

http://www.xilinx.com" onclick="window.open(this.href);return false;
http://www.altera.com" onclick="window.open(this.href);return false;
http://www.latticesemi.com" onclick="window.open(this.href);return false;
y
Actel parace FPGA, por eso no lo he añadido. Sólo busco microcontroladores tipo PIC.

En cuanto a sistemas Linux embedido me encanta, cada vez más fuerte, eso si, lleva unos 10 años, como si no estuviera, si te metes a estemundo te enteras, la mayoría de la gente pasa un kilo de todo.

Se dice que para aprener es bueno el http://www.pic16f84a.org" onclick="window.open(this.href);return false; . La verdad es que si, luego te familiarisas con los demás. Es bueno aprender primero ASM, luego el C que sino el trabajo se te hace pesado.

Saludo.

User avatar
beamspot
Usuario Desarrollador
Usuario Desarrollador
Posts: 1132
Joined: Thu Oct 11, 2007 8:56 pm
Nombre: Guillem

Re: El fin de la guerra PIC-AVR.

Post by beamspot » Tue Apr 26, 2011 12:59 pm

Si dejamos aparte el tema de 'micros software' (hay varios 'core IP' de PIC, AVR y lo que te parezca disponibles gratuitos para cualquier plataforma FPGA), Xilinx tiene los Virtex que llevan PowerPC's integrados, y ahora han sacado los Zynq con ARM Cortex A12 dualcore (como los que están a punto de salir de TI OMAP4, para las tablet Galaxy TAB y derivados, por ejemplo) integrados 'hardware'. Altera si no los tiene, están trabajando en el mismo tipo de producto (con el mismo core, por ejemplo).

Así que ahora les está dando a la mayoría de fabricantes de FPGA de integrar microcontroladores en sus core, aunque en realidad sean más microprocesadores con algunos periféricos. Justo el camino inverso del Cypress PSoC (el 3 y el 5) y la 'original' (el primer producto con este concepto) FPSLIC de Atmel (más de 10 años han pasado ya), y los posteriores AT91 configurables (ARM920 + FPGA).

Personalmente, si pudiese conseguir unos pocos Zynq, dejaba de lado las plataformas OMAP con las que estoy trabajando (a las cual añado de momento un Spartan).
Beamspot.

User avatar
Meta
Forero Habitual
Forero Habitual
Posts: 142
Joined: Sun Jan 20, 2008 8:49 pm
Location: http://electronica-pic.blogspot.com
Contact:

Re: El fin de la guerra PIC-AVR.

Post by Meta » Tue Apr 26, 2011 1:12 pm

Hola:

Cada vez más se usa el ARM hasta para móvile y tablets. Por algo será. Encima 4 núcleo, no se cuando saldrán, pero las baterías no durarán mucho si no mejoran hasta eso.

Hay muchas cosas para escoger, cada vez más estamos en un mundo muy competitivo. Tener un PIC para jugar, AVR para cosas más series según algunos, y ARM seriedad total, hasta portátiles.

La guerra que más oigo es el PIC entre AVR, total, en el fondo hacen lo mismo. Led parpadeantes, control por puerto serie, manejo de LCD 16x2, ect. Lo que cambia es la arquitectura.

Saludo.

User avatar
Thoron
Principiante
Principiante
Posts: 33
Joined: Thu Sep 30, 2010 10:35 pm
Nombre: Thorontir
Location: Valencia

Re: El fin de la guerra PIC-AVR.

Post by Thoron » Tue Apr 26, 2011 3:57 pm

Saludetes.

Es la primera vez que participo en el topic, y aunque lo he leído todo, pido disculpas si menciono algo que ya se ha comentado. Van unas cuantas páginas...

A lo que iba. Yo trabajo diseñando sistemas embebidos relativamente pequeños -mayoritariamente máquinas de vending y similares, alguna cosilla más grande pero eso es muy ocasional-, y, para lo que hacemos, los PIC se quedan cortos. Pero el jefe no quiere oir hablar de cambiar -como no quería cuando usabamos micros de otras casa que se dejaron de fabricar 20 años antes, pero bueno...- así que toca hacer virguerias. De hecho, recuerdo una conversación en la que el distribuidor que nos vende los PICs pretendía convencerme de que no era posible hacer con el PIC en cuestión algo que no sólo ya habíamos implementado, si no que llevaba varios meses en marcha. Lo que quiero decir es que, si no te queda otra, a base de darle vueltas -y usar mucho ASM, porque en C ya no entraba- acabas haciendo el proyecto casi casi en lo que haga falta. Pero son ganas de sufrir, o fobias del jefe al cambio. Por que francamente, recuerdo ahora mismo una placa que nos dio mucho por saco, y que llevaba 3 pic18, que seguro habría salido mucho más barata con un micro ARM -y seguramente el desarrollo habría sido menos traumático :D- y probablemente habría tirado mucho mejor. Lo que quiero decir es que un micro se puede llevar hasta límites insospechados, que se puede usar para cosas complejas no sólo para jugar, pero... ¿Vale la pena? En mi opinión no. Entiendo que se usen PICs en entornos de trabajo, para cosas muy concretas -Si habeis trabajado con módulos embebidos de DIGI, tengo entendido que las famosas FIM son PICs programados para hacer de módulo CAN, UART, etc- Pero para cosas más grandes, es tontería. Pero ahí entramos en cuestiones que muchas veces no dependen de nosotros. Por ejemplo, yo no puedo convencer a mi jefe para que nos pasemos a otros micros -que demonios, ni siquera quiere que miremos los PIC32, y dsPIC sólo hemos usado 2 en casos muy específicos...-.

Me acabo de dar cuenta que todo lo escrito anteriormente sólo ha sido un poco de desahogo por mi parte. Pido disculpas, aunque prefiero no borrarlo, seguro que más de uno se siente identificado.

El caso es que, viendo de lo que hablabais, me puse a mirar uCs con nucleo ARM, ya que el jefe no quiere, para mi uso personal. Me apunté a la web no hace demasiado por que quería iniciarme en esto de la robótica, y aun no he diseñado el primer bicho, así que, en lugar de tirar con PIC32 -que era mi idea inicial, por aquello de aprender...- he pensado en rehacer el esquemático con un ARM. De momento he tirado por Texas, he pedido dos samples de uCs pequeños -64 y 100 pines en LQFP, para poder hacerme la placa en el curro...-, he empezado a bajar datasheets y application notes como un condenado, y estoy "preparandome" para comenzar. Así que viendo que andais más puestos por aquí, quería aprovecharme un poco de vosotros -Joder, primero despotrico para quedarme más tranquilo y luego pido ayuda... me vais a mandar a cierto sitio... :mrgreen: - y preguntar... ¿Conoceis algún buen libro/web donde se expliquen un poco el tema de programadores, debbugers, primeros pasos y demás? JTAG no he manejado nunca, en mi empresa siempre me ha tocado tirar, para PICs, con ICDs 2 y 3, PicKits en casa y demás. He estado leyendo también sobre el SWD, y si no siempre queda el recurso de programar con el bootloader serie que traen los micros, aunque ahí ya te quedas sin debug.

Y ya que estoy... ¿Recomendariais alguna comunidad sobre el tema de los ARM? En la web de Texas además de info la comunidad es muy agradable, pero por si conoceis alguna otra que valga la pena. No importa si es en inglés, o incluso en francés -en castellano doy por hecho de que habrá poco o nada...-

Por cierto, he trabajado -poco- con la IGEPv2, y la verdad es que es una pasada. pero para cosas pequeñas, con un uC puedes ahorrar MUCHO dinero. Son targets distintos, pienso, aunque nunca está de más conocer más cosas... Y además, en esa placa, ya prácticamente no "ves" el micro, al menos lo que he tocado yo, programas como en un PC.

Bueno, tras llorar y pedir, me despido de ustedes. Ruego disculpen las molestias ;) A ver si puedo contribuir un poco, que desde que me apunté al foro apenas he escrito nada -Y leído menos de lo que desearía...
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

–Brian Kernighan

User avatar
Meta
Forero Habitual
Forero Habitual
Posts: 142
Joined: Sun Jan 20, 2008 8:49 pm
Location: http://electronica-pic.blogspot.com
Contact:

Re: El fin de la guerra PIC-AVR.

Post by Meta » Tue Apr 26, 2011 4:21 pm

Hola:

Por eso se dice por ahí que los PIC son para jugar, cosas grandes o usas los dsPIC que tienen fama de ser buenísimos o usas ARM o otras marcas como la lista que puse antes.

Hay una lista de microcontroladores arriba, hay mejores que los ARM según modelo más que marca. ¿Para qué un ARM puediendo usar un 12F509?

Depende para que lo vas a usar.

De todas maneras, http://www.microchip.com" onclick="window.open(this.href);return false; si se ven negros con el dinero que ganan con los PIC, cambiará de gama a plan bestia.

Te guste o no, el más que se vende son PIC y AVR. Aunque ARM y FreeScale sean mejores. eso sin contar con otras marcas.

Saludo.

Ranganok
Usuario Desarrollador
Usuario Desarrollador
Posts: 3874
Joined: Mon Nov 07, 2005 3:10 pm
Location: Barbaros del Valle
Contact:

Re: El fin de la guerra PIC-AVR.

Post by Ranganok » Tue Apr 26, 2011 5:11 pm

Que nadie se ofenda, pero siempre me hacen mucha gracia este tipo de afirmaciones...
Meta wrote:Te guste o no, el más que se vende son PIC y AVR. Aunque ARM y FreeScale sean mejores. eso sin contar con otras marcas.
¿Cómo podemos decidir que un micro es mejor que otro? Meta mismo se responde.
Meta wrote:Depende para que lo vas a usar.
Tengo un compañero de la uni que trabaja en una empresa donde usan PIC12's a miles, pero claro lo usan únicamente para controlar una resistencia calefactora, un sensor y poco más, en su empresa lo que interesa es que el precio sea muy bajo (ya que compiten en eso) por lo que necesitan la gama más baja y con menos florituras que haya.

Sobre las máquinas de vending, en la empresa en la que trabajo se ha hecho alguna (con PIC24) y no han tenido ningún problema, es más casi todo lo que trabajamos actualmente es con esa gama de productos, pero claro nosotros tenemos que tener un compromiso entre precio y características. Sólo hemos pensado poner un ARM en uno de los productos, aunque por cantidad y precio final casi nos sale más a cuenta poner un PC embebido (o no tan embebido) y tirar de Linux.

Te puedes quejar más o menos (como hace el compañero Thoron) de que el micro que estas usando no tiene potencia suficiente para aguantar todo el programa, pero eso no es culpa de que una gama sea mejor que otra (puede que en ese caso sí pero en otros estarías tirando el dinero tontamente).

Ahora directamente, Thoron sólo dos cosas,
1.- No veo lo malo que tiene en poner 3 micros pequeños en vez de uno grande (a no ser que quieras ahorrar dinero y no siempre es así). Se puede combinar perfectamente las dos cosas: micros pequeños para controlar los motores y los sensores y micros grandes para controlar las decisiones, la visión artificial, etc.
2.- A raíz de lo anterior: ¿Es necesario poner un ARM a mover un par de motores DC? Si lo haces por aprender, oye!, no seré yo quién diga nada (al contrario te animo ha hacerlo), pero si no es así tardarás más tiempo aprendiendo como funciona el micro que montando lo quieres hacer.

S2

Ranganok Schahzaman
skiras.blogspot.com

"En igualdad de condiciones la explicación más sencilla es la cierta"

User avatar
Thoron
Principiante
Principiante
Posts: 33
Joined: Thu Sep 30, 2010 10:35 pm
Nombre: Thorontir
Location: Valencia

Re: El fin de la guerra PIC-AVR.

Post by Thoron » Tue Apr 26, 2011 5:55 pm

1.- No veo lo malo que tiene en poner 3 micros pequeños en vez de uno grande (a no ser que quieras ahorrar dinero y no siempre es así). Se puede combinar perfectamente las dos cosas: micros pequeños para controlar los motores y los sensores y micros grandes para controlar las decisiones, la visión artificial, etc.
No, si el problema aquí es que los tres pequeños entraban "justos", hasta el punto de que habia que compilarlos con todas las optimizaciones por memoria -Y para debugear tocaba quitar partes, para que te hagas una idea-. Y eso evitando los stacks de microchip y haciendo a pelo librerias básicas para, por ejemplo, manejar SDs a bajo nivel, en lugar de implementar tema FAT y demás -luego se leen con un "aparato" nuestro, por lo que el tema FAT no era necesario ahí...-, recortando en el tema ethernet tanto como fue posible, etc etc.
2.- A raíz de lo anterior: ¿Es necesario poner un ARM a mover un par de motores DC? Si lo haces por aprender, oye!, no seré yo quién diga nada (al contrario te animo ha hacerlo), pero si no es así tardarás más tiempo aprendiendo como funciona el micro que montando lo quieres hacer.
No, no es necesario en absoluto. Pero, personalmente, aprender a usar un micro sin nada concreto en mente nunca me he gustado. No se a otra gente, pero me da pereza. Aprender a usar ese micro para mover dos motores -Y ya que estamos, puestos a aprender, pues llevará sus encoder, puede que un acelerómetro, etc etc- se me hace más ameno. Obviamente es una burrada y un desperdicio, pero como digo es cosa de aprender.

Por cierto, viendo que utilizas los PIC24, ¿que tal están? Nosotros, como digo, sólo hemos tocado los 18, y un par de dsPIC. Los 24 ¿están al nivel de los dsPIC, por encima, por debajo...? Ya comentaba que me apetecia probar -en principio pensaba mirarme los PIC32 y ahora pues creo que tiraré más por ARM, los stellaris de TI concretamente- pero lo cierto es que en los 24 ni pensé, no se muy bien por qué...

Por cierto, como ejemplo de micro pequeño para uso concreto, para piratear las playstation se usaba, si no recuerdo mal, un PIC12. Y no necesitabas más. Y valia 50cents, más o menos. Y pedían una pasta. Todo ganancia :D

Nos vemos :D
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

–Brian Kernighan

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest