Atmel vs Microchip

Estado
Cerrado para nuevas respuestas.
Soy el necio que quiere todo en eespañol porque on se Inglés ni tengo por qué aprenderlo. Me contradigo. En realidad si tengo poraue me lo piden en los trabajos, en el cual debo reforzar condo me toque en el curso para escapar.

Cuando hay alibros en español de AVR hablamos. lo más gracioso que si está aRduino, he visto unlibro en español de un microcontrolador Philips en la época cuando sacaron el www.pic16f84a.org

microcontroladores_motorola_freescale.gif


Este de abajo no lo sabía, ajjajjja, estoy desactualizado. Por el 2008/09 no lo encontré.
PORTADA-LIBRO-SPB0090625-MAX.jpg


Otro de Freescale que no sabía.
Extra-libro-avanzado-de-micros-portada.jpg


Libros en español de Arduino hay muchos y muy recientes y eso que se preparan más unos muy básicos y otros más complicados, otros solo se centran en proyectos otros en la programación que es lo que me interesa.

Arduino muy básico de lo básico, esti si que no lo compro. PAra novatos muy novatos está muy bien.
introduccion-a-arduino-9788441531772.jpg


PORTADA-LIBRO-SPB0209309-MAX.jpg


De PIC muchos libros más viejo que el tiempo y siguen en ello, no para de sacar libros. El má reciente que compré es este que te habla de programar en ASM y en C del CCS.
9788492779987.jpg


No pongo más porque hay muchísimos para escoger, eso si, el mejor para ASM es este.

Microcontrolador+PIC16F84+-+PALACIOS%252C+REMIRO%252C+L%25C3%2593PEZ.gif


Y en C los mejores están en Inglés, en español no tengo idea, al menos por ahora. El libro que compraría ahora sería de C para PIC bajo el compilador del XC8 para el nuevo MPLAB X, ya lo harán, eso seguro.

Siempre he deseado libros de AVR y ARM puros y duros. Por lo que he heblado con algunos autores de libros en español, prefieren perder el tiempo en hacer un buen libro con tecnologías muy conocidas y muy fáciles de adquirir en las tiendas directamente que recurrir a Internet en locales on-line.

Buscando más a fondo, encontré este libro que aún o he visto en librerías, menos mal que hay Internet.
portada_libro.jpg


http://www.utm.mx/~fsantiag/Libro_Micros_AVR.htm

Un libro de ARM. ¿Este es español?
arm7_book.gif

No lo es pero lo parecía.
http://aliatron.pt/e-biz/product_info.php/cPath/3/products_id/781

Ya no encuentro el libro de Philips en español, está ya en desudo, una lástima.

Una cosa le comento.

1) Apreder microcontroladores solo por Internet, al menos empezar el aprendizaje con PIC que es el más recomendado y me lo han recomendado muchas personas hace años. Hay muchos tutoriales de todo tipo. Cuando llegas un momento de soltura, sientes que te faltan conocimientos profundo sea parte de la electrónica y sobre todo de la programación.

2) Aprender microcontroladores solo en libros y de los buenos, no cualquier libro, sientes que tienes todo machacado, bien aprendido la programación de base que es lo importante para seguir con las cosas complejas, en este sentido tendrás solturas, por otro lado, sientes con ganas de aprender más, pro ejemplo, viendo tutoriales por Internet, proyectos y más cosas.

3) ¿Conclusión bajo mi experiencia? Mejor observar antes de entrar en este mundo, leer de que va el tema por Internet, probarlo. Si quieres parneder de verdad desde labase, libros, para continuar con más conocimientos, Internet, la combinación es lo mejor. Muchos no se gastan dinero porque están limitados y si lo tienen es como que se sienten estafados o creen arrepentirse.


Me gusta tener un cirucito con variso microcontroladores como PIC, AVR, FreeScale, ARM y otros más todos juntos, jejejjejejee. He tenido esa manía desde el siglo pasado. Al menos algunos de los microcontroladores se centra en dar información en una LCD 20x4, otros hacen de decoder o code para una tabla de la verdad, otros se centran en periféricos y cosas así. Es una locura, pero me llama la atención. Locura en sentido que no hace falta usar todo eso para hacer lo mismo con un solo µC, en mi caso me da igual. Se que hay que gastarse programadores para varias marcas. Si, hay que tener dinero y tiempo para aprender de todo un poco y centrarte mucho en una marca.
 
¿PIC tiene JTAG para hacer debbug o es necesario una herramienta super especial de Microchip?
 
Yo no compro libros de microcontroladores por una simple razon "La mayoria de esa informacion esta disponible en internet o bien fue robada de internet y puesta en esos libros" juajuajua Como sea y aunque nos duela y odiemos tener que hablar ingles, mi estimado Meta tendras si o si que entrarle al ingles, pues todo apunta a ese idioma. Diablos porque no se hizo mas popular el español, asi estariamos del otro lado y tendriamos a los ingleses usando sus traductores para entender nuestro foro jajajaja
 
Porque mal que nos pese el inglés es un idioma mucho más sencillo de aprender que el español. :D

Comparto la mejor información la sacás de las hoja de datos del fabricante y foros.
 
Muy cierto, hay que meterse en el Inglés, ajjaajjajaj. La escuela de idiomas está muy ocupada y es cara. No es tan simple, por ahora me conformo aprendiendo poco a poco en leer y traducir cosas que no se. No es una forma d eprender pero se aprende algo, que es mejor que nada. No me queda otra.

En cuanto a los libros, depende que libros, que si está sacado en Internet, pue si, como que está bien comprobado antes de publicarlo en un libro. Está bien elaborado, sobre todo la parte de la programación, eso si, comprar uno bueno (o conseguirlo en PDF), no basuras que te quedas a medias.

Por cierto, en cuanto el habla en español, se está extendiendo hasta en China y se a anunciado que se incrementará en más países como otra lengua optativa, ya que esta habla aunque sea más dífícil que el Inglés se usa cada vez más, incluido en Internet. Se que el Chino mandarín se habla más que el Inglés tengo entendido, pero no me va esa lengua.

Un saludo.
 
Tanto para Meta como para locodelafonola, si queren un buen libro de lenguaje C (incluso está en español :aplauso:), les recomiendo "El lenguaje de programación C" de Kernighan y Ritchie, busquenlo en su tienda electrónica favorita que la van a conseguir fácilmente ;).
 
Última edición:
el libro de sistemas enbedidos en C para microcontroladores
ami se me hiso un fraude lo lei pero no ayuda en nada a la hora de programar
el libro de pic16f84a igual no me fue de ayuda en nada

un libro para C de microcontroladores pues yo creo que ninguno en especial la buena programacion C
es el ANSI C o el MISRA C
un libro de C para computadora de escritorio y la ayuda del compilador es mas que suficiente para hacer una buena programacion
 
como dice don cosme

el C lo aprendes de C para PC yo aprendi a usar el C del borland C
y mucha informacion la puedes sacar de paginas de programacion C y de libros de C para PC

te sirven muy bien en cualquier tipo de microcontrolador

el C18 microchip solutions toda su ayuda esta en MISRA C y ese codigo comentando los registros especiales del micro puedes usarlo tanto en AVR ,ST ,TEXAS ,etc.
 
Yo empecé a programar en C utilizando TURBO C, en el año 2004. Luego aprendí assembler para PIC en 2007 y en el mismo año le agarré la mano al C de CCS para PIC.
Más adelante el paso a otras plataformas como AVR, me resultó muy sencillo pero lo mejor es aprender en la PC y luego aplicar el conocimiento en los sistemas embebidos.
 
ensamblador.jpg


En PC empecé con ASM del 8085, 8086, 8088. Ahora lo tengo olvidado, un poco de Borland Delphi (pascal), C++ por el aire. Más tarde en autómatas con lenguajes de todo tipo, el más complejo es AWL, nada ver con PIC. Más adelante en ciclo superior que hoy endía sigo es Python, no me gusta, Java no es mi alago aunque sea el más usado del mundo desde hace años, Visual Basic .net 2010 y lenguaje de cuarta genración que es SQL Server y MySQL. El C# antes que VB. Sin contar con proceso por lotes como VBS, BAT, entre otros. He probado muchos, ningulo los manipulos.

Ahhhhhhh, el asm del PIC16F84A lo sigo usando y no lo domino, siempre estoy con ejemplos, libros para recordar cosas que se me olvidan si dejo pasar el tiempo.

En fin, mejor probar de todo un poco.

Saludo.
 
el libro de sistemas enbedidos en C para microcontroladores
ami se me hiso un fraude lo lei pero no ayuda en nada a la hora de programar
el libro de pic16f84a igual no me fue de ayuda en nada

un libro para C de microcontroladores pues yo creo que ninguno en especial la buena programacion C
es el ANSI C o el MISRA C
un libro de C para computadora de escritorio y la ayuda del compilador es mas que suficiente para hacer una buena programacion

Exacto :LOL: si aprendes a programar en el PC usando ANSI C ya con eso basta, programar el chip es solo asignar valores a los espacios de memoria de los periféricos y un par de funciones, destellar un LED en mi MSP430 lo haría:
Código:
#include <msp430.h>
#include <intrinsics.h>
//noten que las variables están definidas en la cabecera
void main(void) {
	WDTCTL = WDTPW + WDTHOLD;
	BCSCTL1 = CALBC1_16MHZ;
	DCOCTL = CALDCO_16MHZ;
	BCSCTL2 = SELM_0 + DIVM_0 + DIVS_0;
	BCSCTL3 = 0;
	P1DIR = BIT0;
	P1OUT = 0;
	while (1){
		P1OUT ^= BIT0;
		__delay_cycles(8000000);
	}
}
Eso es ANSI C, la única cosa extra es la función __delay_cycles(), y de la misma forma programo los PIC, a excepción de que necesitan el #pragma config mientras que en el MSP430 solo la asignación a la memoria (bueno, los MSP430 necesitan el #pragma para las interrupciones).
Tanto que mencionan ensamblador que me ha interesado aprender, pero no me gusta la sintaxis, solo me he leído las instrucciones y entiendo los programas, pero no puedo crear los míos propios, de igual forma no está de mal aprender las instrucciones que soporta el chip, por ejemplo mi MSP430 tiene 27 instrucciones y otras 24 simuladas (el compilador las traduce en las primeas 27), lo importante es que aunque no programes en ensamblador leas el conjunto de instrucciones y lo introduzcas en tus costumbres al programar en C, por ejemplo no uses un for(i=0;i<100;i++) y en su lugar usa for(i=100;i!=0;i--) para que el compilador pueda usar la instrucción de "saltar si cero" que tienen todos los procesadores.
 
bueno si el CPU del micro aunque sea muy rapido o su set de instrucciones sea muy amplio

no importa la velocidad ni el set de instrucciones para checar el estado de un boton o prender un led

pero cuando es critica la velocidad como la comunicacion USB o generar audio con un DAC o generar video lo mejor es usar un timer y los ciclos for soy malo en los ciclos for
prefiero los ciclos condicionales While
alomejor la estoy cajeteando corrijanme si no pero creo que usar el while es como una funcion de subrutina como un CALL o un GOTO , haciendo similar en codigo el for

la ventaja del ANSI C es que el codigo es un 90% portable a diferencia del CCS que el 60% del codigo es portable
sobretodo sus librerias que no son de tan codigo abierto , por que muchas de las funciones estan en el preprosesador del mismo compilador
un ejemplo son #use fast io ,#use RS232 , eprom(); ,etc.
y si uno migra ese codigo a un compilador truena #use no es parte de el compilador

#pragma es leido como comentario o etiqueta en un compilador estandar
eso es lo que MISRA C o ANSI C hacen que el codigo sea compatible entre diferentes compiladores

un ejemplo es el Hitec C , C18 ,AVR Studio ,Code warrior con sus ejemplos que viene en MISRA C
y si uno agara un pedazo de codigo hay la ventaja de modificar unas cuantas lineas
al CCS que hay que modificar varios cientos de lineas o si no el codigo entero para que funcione en otra plataforma
 
Hola:

Antes que nada, si optas por usar el asm por cualquier motivo, que puede ser descompilar un .bin hecho en C y por fuerza te quedas con el asm si o si.

Antes de hacer programas, un buen diagrama de flujo, como que también se hace en C. Luego escribir línea por línea en papel, pasarlo a asm. Una tarea que te pegas media vida. Con PIC es el más fácil de lograr que otras marcas, está demostrado.

Tener claro sus equivalencias en ASM con el C, por ejemplo, los btfss con los if-else, cosas así.

En mi caso voy a optar por C de Arduino y XC8 de los PIC, son microcontroladores que encuentro muy fáciles en los locales o tiendas de electrónica. ARM hay que pedirlo a ellos y no todos te hacen caso, más bien comprarlo por Internet.

ASM lo sigo estudiando y me da pena avandonarlo con el tiempo que he empleado, pero ahy peros, me quita mucho tiempo y es difícil hacer pequeñas actualizaciones.

Antes no podía ver ni de lejos Arduino, luego me fue gustando hasta un punto, tiene muchos apoyos y mucha documentación de todo tipo y en español. Siiiiiiiiiiiiii, en Inglés está que se sale, no hay duda.

Por probar no pasa nada, eso si, los proyectos finales con Arduino prefiero hacerlo con placas hechas por mi, no con la entrenadora. Por ahora es lo único que me ahorra mucho tiempo.


Proyectitos como este aún se usa asm, aunque no te guste.
http://www.inventable.eu/2012/10/03/llave-electronica-universal/#comments

Un saludo.
 
Última edición:
Tanto que mencionan ensamblador que me ha interesado aprender, pero no me gusta la sintaxis, solo me he leído las instrucciones y entiendo los programas, pero no puedo crear los míos propios, de igual forma no está de mal aprender las instrucciones que soporta el chip, por ejemplo mi MSP430 tiene 27 instrucciones y otras 24 simuladas (el compilador las traduce en las primeas 27).

Yo creo que lo recomendable es que puedas hacerte rutinas básicas, manejar los condicionales, las operaciones suma/resta (y si el uC es CISC multiplicación y división, hoy no creo que encuentres esto en RISC) y los loop.

Ya que por ej. si en algún momento tenés que realizar un filtro digital, haciendo esa rutina en assembler queda muchísimo más optimizada que haciendola en C y son muy pocas líneas de código lo que se tiene que implementar, es cuestión de pasarle los argumento desde C al assembler y trabajarlo desde ahí.

En x86 (PC), la diferencia de hacer esos filtros en C vs assembler es muy grande, ya que al ser el procesador CISC, la transformación C a assembler no es tan buena debido a que tenés muchísimas instrucciones de las cuales se encuentran las MMX (de las viejas pentium).

En cambio en una arquitectura RISC es más fácil que el código C quede más optimizado.
 
Pero te digo que yo uso más los MSP430 no los PIC, mi MSP430F5510 es RISC de 16bits, tiene multiplicador en hardware que soporta operaciones de 8, 16, 24 y 32bits, y cuesta lo que sus PIC18F4550, y si no, pues ahí tengo el Cortex-M4F con instrucciones de DSP y computo de punto flotante, ahí son como 115 instrucciones que me dan pereza leer.
 
Recién me fijé y los AVR también tienen las instrucciones que te permite multiplicar, incluso permite multiplicar números fraccionales (y le toma solo 2 clk's :eek: ).

Sobre el DSP, insisto hay que ver como lo compila C, pero casi siempre vas a lograr una mejor performance en assembler que en C, en el peor de los casos lo empatás. Si estás corto de tiempo, lo mejor es ir directamente a assembler, de lo contrario si la optimización no es del todo necesaria, se puede resolver en C.

Por cierto, la instrucción de división es la que siempre se complica tener, por ej. un 89S52 si la trae
 
Estado
Cerrado para nuevas respuestas.
Atrás
Arriba