Consulta Atmega - pics

fernandob

Excluido
Hola, le hago una consulta tonta de ignorante:

He usado pics hace tiempo , pero como hace mucho que no uso , pues , casi ni me acuerdo, a ese nivel estoy.
pero leo a veces que cuando alguien menciona alguna aplicación un poco sofisticada se refieren siempre a que se usa ARM.
pues bien, mi duda es la siguiente: ¿ Por que ? Me refiero a que los pic hay 12F pero tambien hay de 32 bits, hay DSpic , esos se programan en C y supongo que son poderosos, que es lo que limita a los PIC y hace que los ARM sean mencionados para cosas de cierta envergadura ?
 
Por que los ARMs son mucho mas potentes en cuanto a procesamiento, si hasta existen ARMs que trabajan con cristales de mas de 1Ghz.
Pero al decir Atmega creo que te confundes con los AVRs que son de Atmel, por lo que me han contado los AVR Atmega mas avanzados son muy dignos competidores de los PIC de Gama alta o incluso PIC32FXX es decir ambos dan dura competencia mutuamente cada uno es muy útil para lo que esta diseñado, una de las ventajas que destaco de los AVR atmega es su bajo costo en relacion al de los PIC, pero una desventaja es la falta de info.
 
gracias por responder, si, puede que me confundan, yo con las marcas.........:oops:..(n)..... pero bueno, por lo visto los ARMS son "otro tipo de estructura" o algo asi.

y los demas compiten entre ellos(motorola, pic, atmel, texas) ??
 
de los procesadores de ocho bits estan:

8051, que originalmente es de intel, y despues varios fabricantes lo han tomado, incorporandole algunos perifericos embebidos. Es el mas "simple" de todos, y por ende mas limitado. Pero aun asi funciona excelente.

Pics de Microchip 12F y variedades. Mucho mas sofisticado que el 8051, algunos incluyen perifericos como comunicacion I2C, SPI, UART. Incluyen tambien ADC, PWM, Timers, mas memoria, etc.

AVR ATmega de ATMEL, es la competencia directa de los pic. Tienen tambien prestaciones similares a los pic, y su programacion se realiza con dispositivos mas simples que el pic. Igual que ellos, hay con diferentes prestaciones. En lo personal prefiero usar el AVR sobre el pic, tratandose de 8 bits, ya que nunca he tenido problemas con el.

y de los de 16bits:

Estan la familia de HC11 y HC12 de motorola. Con prestaciones similares al AVR y PICs en cuestion de perifericos embebidos, pero a diferencia que tienen instrucciones mas potentes, y sobre todo son a 16bits.

Esta la familia dsPIC de Microchip. En lo personal, prefiero este procesador sobre motorola, ya que es por asi decirlo, un híbrido de un DSP y un simple microcontrolador de 16bits. Digamos que en los DSP es de los mas simples y baratos, mucho muy baratos, pero es el microcontrolador mas sofisticado tratandose de 16bits. Llegan a soportar 4MIPS y reloj de 100Mhz en configuracion PLL. Hermosura de chips.

esos son los microcontroladores de los que te puedo hablar y contestar con mi experiencia sobre ellos. Realmente todos son una excelente opcion sabiendo elegir. No usaras un DSPic en un reloj simple, pero tampoco querras usar un 8051 para hacer una FFT.

Ahi es donde entra el ingenio y la ciencia del diseño.
 
Desconozco por completo la estructura de los PICs, pero de Arm te puedo decir que son unas bestias si los comparara por ej. con un 8051 (que es un uC ya viejo, pero que todavia tiene para dar).

Ademas tienen ciertas capacidades interesantes:

- Son de 32 bits
- Pensados para usarlos con C
- Poseen varios modos, usuario (el tipico), supervisor, fiq, irq, etc
- Utilizan la tecnica pipeline, que les permite realizar instrucciones en un solo clk, salvo que se produzcan saltos de memorias (seria tipo una cache)
- Pueden trabajar en modo thumb (16 bits), ahorrando de esta forma codigo, pero sacrificando velocidad
- Poseen un PLL interno programable, que nos permite por ej. trabajar a 60 MHz usando un cristal de 11,0592 MHz (esto es sumamente interesante)
- Dependiendo del modelo, pueden venir con ADC incorporado, serial (completo, igual que el de la Pc, con los datos de control tambien), DAC, PWM, timers (obviamente), usb, etc
- Jtag, te permite ejecutar en tiempo real paso a paso el codigo.
- Gran capacidad en RAM y flash.
- Muy economicos, por ej. el modelo mas barato de nxp el LPC2104 sale u$d 3 (casi el mismo precio que un 89s52).

Lo unico malo que le veo, mas por un problema propio que el de la linea, es que son todos de montaje superficial.
 
Para procesadores ARM ya de velocidad considerable te recomendaria el uso de un sistema operativo multitarea (e.g. GNU/Linux), ya que de esa forma vas a aprovechar realmente las capacidades del procesador, pero esto tiene una clara desventaja, muchas cosas simples se vuelven complicadas, y muchas complicadas se vuelven faciles.

Es cuestión de balancear distintas variables que intervienen en el desarrollo de un proyecto.
 
Con todos mis respetos, pero creo que hay que diferenciar entre ARM y ARM. Quiero decir que ARM cubre desde los más modestos Cortex M0, más parecidos a un ATXmega, hasta las bestias tipo Gazelle, Jade, Cortex M8, OMAP (no os fiéis mucho de las nomenclaturas de estos últimos) con Linux, soporte para gráficos, DSP, gestores de memoria SDRAM, etc.

Los más modestos son microcontroladores más del estilo de un PIC, ATmega, dsPIC, Motorolas, 8051, etc pero más potentes (32bits, 100MHz), mientras que los últimos son más bien procesadores de ordenador, al estilo Pentium, y que se usan para teléfonos móviles, ordenadores SBC, decodificadores de vídeo, servidores WEB embebidos, etc (mirad la beagleboard, por ejemplo).

La gran ventaja de los ARM es que todos los fabricantes tienen, menos Microchip. Incluso Intel y Freescale. Eso significa que si uno no tiene lo que buscas, lo puedes encontrar en otro. Y por eso, hay una varidedad infinitamente grande y económica. No en vano, más de la mitad de los microcontroladores y microprocesadores que se fabrican en el mundo anualmente son ARM en alguna de sus variantes.

Los PIC de 32 sin embargo son más limitados en cuanto a variedad, que no en prestaciones. Y las herramientas de desarrollo son más caras. Lo normal si tenemos en cuenta que los ARM tienen GCC gratuito con unos resultados tan buenos como los de los mejores compiladores. Y los JTAG de depuración pueden salir por menos de 3€.

Por su contra, dos 'problemas': SMD (cosa que se puede esquivar comprando break out boards o placas de desarrollo, por ejemplo de Olimex), y que son de todo menos sencillos.

Los sistemas operativos tipo Linux sólo son soportados por los ARM más potentes y complejos, mientras que los menos potentes, como por ejemplo el STM32, o los AT91SAM7, o los LPC1111, LPC2103, etc. suelen programarse como se hace con los PIC y los AVR, quizás con ciertos sistemas operativos más particulares, como son los CooCox, FreeRTOS, Worx, o similares, que no tienen casi nada que ver con el Linux.

Los periféricos también son más complejos, con más tipos variados y más prestaciones. ADC's de 12bits a 1-2MSPS, DMA, DACs, ethernet, SDIO, etc.

Por cierto, los 8051 no sólo dan guerra, si no que los hay con mejores prestaciones que muchos PIC y AVR's: 100MHz, ethernet, servidor web HW incluido, I2C, SPI, etc. Y desde 'tiempos inmemoriales'. De hecho, los 80552 y similares son bastante superiores en cuanto a periféricos a los PIC 12f y 16f, ATTiny, y algunos ATmega. Y si no me falla la memoria, no llevan la memoria RAM paginada.

Hasta los mismos 8051, PIC, AVR y similares de 8 bit también llevan Pipeline, igual que los ARM. Quizás en cuanto a arquitectura, la mayor diferencia respecto de los 8 bits, con la excepción de los AVR (con 32), sea que llevan varios acumuladores (16 mas los shados) en lugar de uno sólo.
 
Es mi deber corregir mis propios argumentos, y en este caso, hacia el 8051. Por falta de leer un poco, no habia tomado en cuenta que el 8051 ha seguido evolucionando, y efectivamente, se les ha incluido perifericos muy potentes y prestaciones muy generosas.

Salu2!
 
Es mi deber corregir mis propios argumentos, y en este caso, hacia el 8051. Por falta de leer un poco, no habia tomado en cuenta que el 8051 ha seguido evolucionando, y efectivamente, se les ha incluido perifericos muy potentes y prestaciones muy generosas.

Salu2!
Podrias decir que periferios nuevos se han adicionado al 8051, por que ATMEL que es la industria que ha seguido fabricando esos microntroladores, se dedica ha mejorar los micros que ellos diseñan como son los AVRs. Y no creo que tomen tiempo para mejorar micros diseñados por INTEL como son el 8051.

Ademas la arquitectura del 8051 es muy obsoleta ya que en mis tiempos cada instruccion se ejecutaba en 12 ciclos de maquina y algunas cosas que ni quiero acordarme.

No veo como se pueda mejorar a los 8051.
 
Silicon Labs, así como otros fabricantes SI siguen con el 8051, pero no Atmel, tal y como comentas.

No me acuerdo que fabricante era que tenía sistemas 8051 a 100MHz y con uno o dos ciclos de reloj por ciclo de instrucción en lugar de los 12 anteriormente habituales. Tampoco sé el nombre de aquel fabricante que hizo un servidor web basado en el 8051, con todo el protocolo TCP/IP en HW incluido y montones de RAM.

Texas Instrument, como actual propietaria de la extinta ChipCon tiene un ZigBee con un 8051 integrado (transceiver completo de RF con el core, Flash, RAM, etc), incluyendo un sistema de posicionamiento. Es de suponer que migrarán al más moderno y potente MSP430-470.

Como estos, hay multitud de ejemplos, pero de 'fabricantes secundarios', no de los 'major players' del mercado. Si vamos a mirar lo que se fabrica más hoy en día, la respuesta es clara: ARM. Todo programador que conozco de la industria se está o bien en el proceso de migración, o trabajando ya con este tipo de micros. Lo cual no quita que ciertas aplicaciones 'pequeñas' se sigan haciendo con micros de 8 bits, pero cuando un ARM está por debajo del euro, y lo más similar de 8 bits, pero menos potente, cuesta sólo unos pocos céntimos menos (he visto PICs y AVRs más caros que el correspondiente ARM), la elección suele ser fácil. Máxime si se cumple con otra prioridad del departamento de compras: disponibilidad por parte de diferentes fabricantes.
 
Silicon Labs, así como otros fabricantes SI siguen con el 8051, pero no Atmel, tal y como comentas.
Por lo general usaba el AT89C52, AT89S52 y AT89S8252 el cual en su encapsulado tienen grabado ATMEL, y es logico suponer que ellos los fabrican aun la familia MCS51/52 es de INTEL.

Pero igual, en la actualidad hay micros para escoger y es obvio saber que ya hay micros que son obsoleto o que son muy buenos que nadie los conoce.
 
Lo que pasa con el 8051, hasta donde tengo entendido, mas no he investigado a fondo, es que fue una tecnologia que se abrio, y todos la agarraron para hacer sus propios desarrollos. Atmel efectivamente sigue haciendo su pequeño 89C52... Por cierto es un micro muy noble y aguantador. Pero existen mil variantes y mejoras sobre el micro.
y lo mejor de todo, es que si entiendes el ensamblador del 8086, el 8051 es casi igual.
 
Atrás
Arriba