# Tutorial de ARM Cortex



## Hellmut1956 (Ago 17, 2012)

Hola amigos
Soy aficionado al modelismo naval y en ese contexto a la electrónica. He hechos algunos trabajos basados en los AVR de Atmel, pero para lo que sigue quiero pasar a los controladores del tipo ARM y allí en especial a los Cortex-Mx. He estado mirando los hilos sobre temas relacionados con esto aquí en el foro y me decidí, favor corregirme si me equivoco, que abrir un hilo propio tiene mucho sentido.

Para juntarlo en un lugar permítanme porfavor definir lo que es ARM en general y los Cortex-Mx dentro de esto.

ARM es un tipo de controlador que es definido, desarrollado, por una empresa llamada ARM y que vende licencias a diversos productores de circuitos integrados. Significa que no existe un controlador ARM de la empresa ARM que se pueda comprar, como se hace con los PIC o los Atmel.

La ventaja de esto es, que existe una parte que define los miembros de la familia ARM, define las instrucciones y su implementación en silicio, que define una abstracción en Software de cada miembro de los ARM. Por esa razón programas escritos para ciertos miembros de la familia ARM son muy similares para todos los productos del mismo miembro de la familia ARM y que son realizados por las empresas que compran una licensia de ARM para este miembro. Cada productor por lo tanto usa la misma implementación del miembro de ARM e implementa la periferia de acuerdo a sus conceptos propios. En solo eso, la periferia, se diferencian los productos de diferentes productores de miembros de la misma familia ARM!

Como en muchos campos, los ARM se han ido desarrollando por lo que existen miembros antiguos y miembros modernos. Yo, interesado en el uso de los ARM, como reemplazo de los Atmel AVR, solo estoy interesado en los productos nuevos de las familias de los Cortex-Mx.

Esto es para diferenciarlos claramente de aquellos miembros de ARM, que por ejemplo están previstos para usar con los sistemas operacionales Linux y/o Windows 8, que si entendí bien, son los miembros mas potentes, como los ARM 7 o 9 por ejemplo. Estos, ya prefiero llamarlos procesadores y no controladores, ya son tan complejos que mas vale dejarle al sistema operacional la labor de manejar los detalles del Hardware y limitarse a escribir o “drivers” para periferias o aplicaciones que andan dentro del medio ofrecido por el sistema operacional.

Si bien entiendo, aunque no lo estudié de forma exhaustiva, los Cortex existen en 4 familias y están empesando a aparecer subfamilias nuevas relacionadas a estas 4 familias como por ejemplo los Cortex-M0+.
Son los:
Cortex M0 (M0+)
Cortex M3
Cortex M4

Estos últimos, los Cortex M4 creo que ya van más en dirección a ser usados con sistemas operacionales y no les he puesto atención. Creo que hay que limitarse para no perderse y creo que para los objetivos que tengo, uso como afición en reemplazo de PICs y Atmels, por ejemplo, los Cortex M0 (m0+) y M3 más que cubren toda la gama que pueda ser de interés.

Así pues Los ARM Cortex M0 (M0+) y los Cortex M3 son a los que recomendaría concentrarnos, si comparten mi opinion que vale la pena crear un ecosistema en Español.
Aquí en el foro, relacionado a los ARM, ya se ha hablado de varias alternativas y creo, al igual que existen fervientes seguidores de las familias de los PIC y de los Atmel, a veces casi religiosa la afición a una de estas familias y la antagonía a las alternativas, esto también se puede aplicar a los ARM. Quiero mencionar, quizá como prueba que no se debe a la hardware o disponibilidad de alguna placa, que he recibido de forma gratuita un STM32F0-Discovery!

Como resultado de lo expuesto arriba quiero subsumar:
Nos concentramos en los ARM Cortex Mx, donde gracias a los esfuerzos de estandardisación y compatibilidad de la empresa ARM, cualquier software escrita se puede, con adaptaciones menores, hacerse andar en los productos de otro proveedor, dependiendo básicamente de la disponibilidad de la perferia usada en el programa y siguiendo ciertas reglas implementadas en el CCS creo que se llama, que si bien lo he entendido es una interfaz de programación que permite ocultar lo específico de la hardware ante un programa en la lengua “C” y que require incluir las bibliotecas que contienen la información especifica.

También yo estudie los diferentes proveedores y deje que experiencias previas me influenciaran. Hace mucho tiempo trate de usar un Cortex M3 STM32 de STMicroelectronics, y habiendo solo trabajado con BASCOM, fui incapaz de hacer funcionar la "toolchain". Y lo traté. Estoy seguro que mis capacidades como programador son miserables. Pero eso creo que es de importancia cuando se trata de usar los Cortex Mx como afición, no se debe empesar luchando una larga y tediosa lucha por poder escribir el primer programa que hace blinquear un LED. Esa "toolchain", o serie de programas que en conjunto generan código capaz de ejecutarse un controlador, debe ser creada de forma automática durante la instalación automática. Considero esto un criterio decisivo.

El segundo criterio igualemente decisivo es la posibilidad de establecer un medio para programar y encontrar erroes (debugging) lo mas económico posible.

El tercer criterio es lo que se gusta llamar "ecosistema". Bajo "ecosistema" se entiende toda la infraestructura de apoyo que exista.

El cuarto criterio para mí es la disponibilidad y los costos de las componentes.

5. La gama de controladores y la estabilidad del proveedor.

Como ya tuve problemas que me dejaron desistir de resolverlos de usar Studio de Atmel para programar los controladores de este proveedor en la lengua "C", el criterio "1" saco Atmel como posible proveedor para mí. Comparado con BASCOM no era competitivo para mí!
Admito que mis problemas de establecer la toolchain para el STM32 es el criterio que me hizo no tomar STM como proveedor.

Bajo los criterio "1", "3" , "4" y "5" la decisión admitida como dificil ya, que comparables según estos critrios y realemente son totalmente equivalentes fue entre TI y NXP.

El criterio "2", personalizado por los LPCXpresso, una gama de placas muy económicas para muchos de los elementos de NXP de los controladores Cortex Mx con su interfaz JTAG incluido es el criterio que me hizo seleccionar los controladores de NXP, LPCxxxx, como productos que pienso utilizar. Estas placas LPCXpresso representan todo un sistema completo para el desarrollo y para el uso de Cortex Mx. La toolchain es gratuita hasta 128kByte a grabar en un controlador, lo que es muchísimo para empesar y existe la psibilidad a bajo costo ampliar esto a 256kB y/o 512kByte, el tamaño máximo que existe hoy en día como memoria flash en los controladores Cortex Mx.

Es más, reflexionado sobre el tema durante mis paseos con mi perro en los campos y bosques del alrededor, si considero el costo de solo 20.- Euros para una de estas placas, el uso de estas placas de forma similar a como se hace con los Arduino, se compra la placa y se usa esta, la justificación de hacer una placa propia para el controlador se pone dificil de justificar y definitivamente no es mucho mas caro que hacer una placa comprando las componentes uno mismo. Se le puede quitar aquella parte que contiene la interfaz JTAG, reduciendo su tamaño aún mas! Es mas existe un elemento de biblioteca para el programa de diseño de circuitos y placas Eagle, que representa el LPCXpresso! Así es posible construir una placa en lo cual se inserta la placa LPCXpresso y que implementa las funciones de nuestra aplicación. Así hasta en la aplicación definitiva se tiene una interfaz USB que permite actualizar el programa usando el "bootloader", un programa que es capaz de recibir un programa atravez de la interfaz USB y grabarlo en la memoria flash del controlador.

Por esta razón progonga aquí, si a alguién le parece de interés, trabajar en conjunto para crear un ecosistema para los ARM Cortex Mx en la lengua Española aquí. Esto también tiene razones egoistas. Como aficionado a la electrónica en el modelismo naval, he estado evangelizando el uso de electrónica autodesarrollada en mi afición y como soy de nacimiento Suramericano, esto lo hago en foros de esta nuestra lengua!


----------



## Chico3001 (Ago 17, 2012)

Pues no estaria mal... aunque personalmente me gustaria enfocarme en la gama alta de ARM (yo tengo un ARM7TMI ) de todos modos me parece que las herramientas son casi las mismas.. ya que el 7 es el mas chico de los mas grandes.. asi que me imagino que se puede usar para ambos campos.. 

De todos modos cambie el titulo para diferenciarlo de los procesadores grandes....


----------



## Hellmut1956 (Ago 18, 2012)

También para mi sería interesante poder participar leyendo algo similar a lo que hago aquí, y que ojalá encuentre otros foristas para participar, en los ARM grandes.
Dentro de mi proyecto de modelismo naval, una tarea que seguro que no completaré mientras Dios me permita dedicarme a mis aficiones, también está la construcción de una emisora. Mi idea es combinar salgo estilo iPad con los controles clásicos y un XBee pro. primero mi intención era usar una tableta con el Windows 8 integrado, pero la explosión en la disponibilidad de Apps para Android abre el camino a usar una tableta con Android integrada y comunicarse con la hardware dedicada a las funciones del radio control por USB. de allí resulta que tus intereses en los ARM grandes es complementario, porque es imposible tratar de hacer todo a la vez.
Eso sí, el avanze de este proyecto de mi parte será lento, pues en paralelo sigo construyendo la infraestructura mecánica de mi velero.
El cambio del título me parece muy bueno y lo agradezco!


----------



## Mostdistortion (Ago 18, 2012)

Alguna vez quise empezar con éstos pero no encontré un buen(?) programador antes de decidirme a comprar uno jajaja


----------



## Hellmut1956 (Ago 19, 2012)

Eso es lo que me gusta de las placas LPCXpresso, que ya viene incluido en la placa, la placa es sumamente económica, solo 23,- Euros y todo el sofware es gratuito hasta 128kB de código, lo que es muchísmo.
Pero desde mañana haré mayores cambios a mi taller, lo que me tenfrá ocupado el resto de la semana, le siguen los trabajos mecánicos. ya llegará el día que empieze a experimentar con mi placa.


----------



## ilcapo (Sep 2, 2012)

hola yo estoy comenzando con ARM7 TDMI (LPC 2148) y estoy preparando un tutorial bien basico en español con ejercicios practicos ,,, lo que me doy cuenta ahora es que por aca (argentina)  el LPC2148 no se consigue !! yo lo obtuve por un regalo de un amigo de Chile.... ( los chilenos son amigos de los ingleses por eso jajaaj cuando le digo eso siempre me dice: los chilenos no ayudamos a los ingleses para que Argentina pierda la guerra con los ingleses esos fueron los dictadores de nuestro pais, igual yo siempre se lo repito cuando necesito algo y asi se enoja y despues me regala mas cosas  jaajaj  XD!) aca en Argentina si se consigue el Cortex M3  pero queria preguntarles cuales son las diferencias con el ARM7 TDMI , a que se refieren cuando dicen que los Cortex son gama baja respecto a ARM7,,,como hubicarlos haciendo una linea desde pics hasta lo mas potente que creo q son los ARM11. saludos


----------



## Moyano Jonathan (Sep 2, 2012)

En realidad si se consiguen los microcontroladores y las placas de desarrollo.

- En Buenos Aires, electrocomponentes es representante de la línea de ARM de FreeScale.
- http://apexar.com/web/index.php?lang=es
- http://www.rdss.com.ar/
- Luego hay páginas especializadas en el tema de ARM y embebidos: http://www.sistemasembebidos.com.ar/cms/
En esta página uno de los moderadores , me parece, importa algunos micros de ATMEL con núcleo de ARM.

Saludos !


----------



## Sebastian1989 (Sep 2, 2012)

Yo hace unas semanas estoy usando la placa de prueba stm32f4discovery que viene con el programador, un micro stm32f407, unos cuantos leds, un botón, acelerometro y varias cosas mas. El micro es un cortex m4 funcionando a 168MHz con 1MB de memoria y 192KB de RAM. Estoy programando con Keil uvision4 que es el compilador "oficial" de ARM. 
La verdad es que es por mucho el micro mas complicado que me a tocado usar y hasta ahora solo he podido prender y apagar leds, leer botones, usar algunos timers y unas pocas interrupciones, claramente aun me falta bastante.


----------



## cosmefulanito04 (Sep 2, 2012)

Les dejo un resumen de los LPC21xx en word 2007 basado en las hojas de datos sobre el uso de:

- PLL
- Timers
- Interrupciones
- ADC
- Puerto Serie

De todas formas, lo mejor es tener siempre las hojas de datos a mano.


----------



## Hellmut1956 (Sep 3, 2012)

Hola amigos:
Yo me he grabado la conclusión que los ARM Cortex Mx son aquellos para sistemas embebidos, controladores realmente, los 7 o 9 son algo equivalente al los procesadores. En ellos se esperaría instalar por ejemplo Linux. Como no es posible aprender todo al tiempo yo me limito a los Cortex. Lo que si puede hacer sentido es instalar el FreeRTOS, un sistema operacional gratuito para sistemas embebidos donde se trata de mantener la cantidad de código al mínimo requerido. del resto pienso haber explicado mis criterios arriba! Existe en Youtube un curso de iuntroducción de un brasilero muy bueno. Busquen en Google bajo "Tutorial LPC1769"


----------



## CARLOS0907 (Sep 6, 2012)

Hola,
Me gustaría tener una LPCXpreso, personalmente he trabajado con el LPC1768 pero con la tarjeta de desarrollo MBED, el compilador es en C++, esta en Internet y hay mucha ayuda, existen montones de librerías y la comunidad esta creciendo, aunque he trabajado con casi todos sus periféricos a sido usando  las librerías (que son libres) y teniendo en cuenta que una de las ventajas de ARM es potabilidad pienso que se podrían usar en otro compilador.

Gracias a estas librerías y a que el compilador es en c++ (para lo cual están optimizados los cortex) me he podido dedicar mas al procesamiento que a la interacción con los periféricos.

desde hace unos días empece un blog, en el cual pienso ir mostrando como usar esta placa, por ahora solo he puesto un par de post en los que hago una breve introducción (mas bien Histórica) de ARM y pienso publicar lo que he hecho hasta el momento.

Me uno a Hellmut1956, seria bueno proponer un proyecto e iniciar a trabajar en el.


----------



## Hellmut1956 (Sep 7, 2012)

Hola Carlos
Tu sabes si existe algún lugar en la argentina para conseguir los LPCXpresso localmente? Cuando yo miré hace ya algunos años los ARM en general y el STM32 en especial, fui incapaz de armar la cadena de herramientas (tool chain). Por eso mi decisión entre otros factores paso a los ARM de NXP (antiguamente Philips). Ahora se ha demostrado que el LPCXpresso, quitándole la parte de la interfaz JTAG, es probablemente tan pequeña como si la hiciera yo mismo y no cuesta mas que comprando las componentes por separado, antes cuesta menos. Si a esos argumentos le sumamos el reto que representa crear una placa para un escarabajo de tantas patas tan juntas, y también hacer el Layout en Eagle por ejemplo, por esome he decidido usar el LPCXpresso en mis aplicaciones en vez de crear mis propias placas. Ademas como efecto lateral muy práctico se puede implementar el acceso al controlador por JTAG por si hay que tocar el controlador en la placa definitiva.


----------



## Moyano Jonathan (Sep 7, 2012)

> Tu sabes si existe algún lugar en la argentina para conseguir los LPCXpresso localmente?



Pienso que acá podés conseguir algo: http://www.micros-designs.com.ar/foros/index.php?topic=88.0

_Buscar en Mercadolibre: MLA-431533686-placa-microcontrolador-lpcxpresso-nxp-arm-cortex-m0-lpc1114-_JM_

_Buscar en Mercadolibre: MLA-431121535-placa-microcontrolador-lpcxpresso-nxp-arm-cortex-m3-lpc1769-_JM_

Hay lugares para conseguir las placas y el precio, teniendo en cuenta lo dificil de traer las cosas de afuera, creo que está muy bien.

Saludos !


----------



## Chico3001 (Sep 7, 2012)

alguien conoce herramientas gratuitas para compilar ARM??


----------



## Moyano Jonathan (Sep 7, 2012)

Si WINARM es una de ellas: http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/#winarm

Cocox, una opción más reciente: http://www.coocox.org/CooCox_CoIDE.htm

Igual lo mejor siempre será usar Keil ...e IAR.

Saludos !

PD: LPC expreso también tiene una IDE basada en WEB, bastante buena.


----------



## Hellmut1956 (Sep 9, 2012)

Si se quiere compartir y aprender en equipo sería muy recomendable usar la misma plataforma desde el punto de la Hardware y de la Software. En general se dice que ARM como parte de su licencia para los controladores Cortex requiere la implementación de una HAL común. HAL est para "hardware abstraction layer" y no significa mas que todas las las peripferias equivalentes tienen que poder ser usadas por los programas atravez del HAL en una forma común en todos los ARM Cortex Mx, asumiendo que la periferia exista en un controlador. 
Eso lo voy a verificar que tan facil es, cuando este invierno o primavera en el hemisfeerio norte, trataré de pasar una Software que existe para un ARM Cortex M0 de samsung. Se trata de la Software de la placa StepRocker de la empresa Trinamic que uso para estudiar los sistemas que pienso implementar en mi velero usando motores de paso con las componentes TMC 249 y TMC261, MOSFETS integrados. La placa StepRocker tiene la denominación TMCM1100.
Yo recomendaría usar la placa LPCXpresso 1769 y su correspondiente IDE. La placa aquí en Europa cuesta aprox. 23,- Euros e incluye la interfaz JTAG que permite grabar los programas en el controlador y el "debug", la búsqueda de errores permitiendo mirar dentro del controlador el valor de todos los registros y de las variables etcétera. 23.- Euros me parece un costo adecuado para experimentar hasta el límite de 128kB de programa y datos en la memoria Flash lo que es bastante sin costo adicional. Existe la posibilidad de aumentar el límite a 256kBytes o 512kBytes a costos muy moderados.
Moyano, no se si te entendí correctamente. La IDE se puede descargar de forma gratuita del web, pero funciona local en el PC! Lo que a mi me gusto mucho es que instala toda la cadena de herramientas de forma automática y genera todo lo que se requiere para compilar y grabar el el controlador bajo control de wizards totalemente automático.
Como saben, en los sistemas embebidos el "Hla Mundo" es el blinqueo de un LED y eso entre muchísimos otros ejemplos de puede compilar y grabar en cosa de minutos sin tener que perder semanas tratando de lograr ese objetivo.


----------



## cristian_elect (Sep 9, 2012)

Yo tengo como 4 años con esos micros y no me sale a cuenta al menos que me fabrique un montón de placas, por el momento mis proyectos no necesita mucho velocidad de proceso.
Pero si tengo muchos cortex lo uso poco. 
Vi muchos proyectos en los foros pero en eso queda.


----------



## IPGDEVICES (Oct 9, 2012)

Chico3001 dijo:


> alguien conoce herramientas gratuitas para compilar ARM??



El unico compilador gratuito que conozco es ARMGNU y se puede integrar a keil uvision sin ningun problema


----------



## LUCASLEON (Ene 8, 2013)

Muy intersante el tema quisiera saber si alquien tiene informacion de los ARM de atmel los SAM7 y que compiladores usan. gracias


----------



## Moyano Jonathan (Ene 10, 2013)

> Muy intersante el tema quisiera saber si alquien tiene informacion de los ARM de atmel los SAM7 y que compiladores usan



Podés usar ATMEL studio 6 para programarlos, además tenes la posibilidad de usar la herramienta para programar en C/C++ los microcontroladores de 8 bits / 16 bits de la misma marca.

Saludos !


----------



## Hellmut1956 (Ene 19, 2013)

En sí si se quiere compartir el proceso de aprendizaje de los ARM para sistemas embebidos, cualquier proveedor con ARM Cortex es equivalente. Si se quiere extender la reusabilidad de los programas a la IDE entonces hay que limitarse a una. Yo, como escribí arriba, hace años trate de instalar la cadena de herramientas y no fui capaz. Igualmente la complejidad de configurar los parámetros de las diferentes herramientas de la IDE estaba fuera de mi alcance, por lo que decidí no seguir ese proyecto. Ahora los LPCxpresso de NXP vienen con una IDE completamente adaptada a la placa LPCxpresso que se escoja. Ademas la herramienta ya conoce de todas las peripherias disponibles en cada placa/controlador y viene con un extensísimo ecosistema. Ademas viene con ejemplos de como usar cada una de las periferias del controlador y el "make file" se auto genera. Así el programar se puede logar muy fácil modificando un ejemplo que use las periferias requeridas. Como la IDE es gratis hasta 128kBytes de código, en mi vida he escrito programas para aplicaciones embebidas que lleguen ni cerca a ese límite.


----------



## X1un1Mundo1Mejor1wii (Ene 22, 2013)

hola alguien sabe si hay tutoriales o como puedo hacer para programar ARM con ensamblador ?
busco información pero creo que no se buscar encuentro cosas tipo C o C++  , la verdad no entiendo bien aparte no se usar C , ni C++ que hasta donde se incluye el 99% de C y tiene mas funciones de lenguaje de alto nivel,
bueno si alguien sabe, solo quisiera saber si hay algún programa que me permita programar en ASM
algún tipo de ARM de los básicos, en ensamblador solo se programa PICs y también estoy (no hace mucho) programando en ASM un 18F4550
saludos.

aia entendi porque me lo editaron lo dejaré asi para recordar, es que escribo rápido :s
y la verdad desde 2006 que no estaba activo en un foro, antes en el de Motores 3D


----------



## ByAxel (Ene 22, 2013)

X1un1Mundo1Mejor1wii dijo:


> hola alguien sabe si hay tutoriales o como puedo hacer para programar ARM con ensamblador ?
> busco información pero creo que no se buscar encuentro cosas tipo C o C++  , la verdad no entiendo bien aparte no se usar C , ni C++ que hasta donde se incluye el 99% de C y tiene mas funciones de lenguaje de alto nivel,
> bueno si alguien sabe, solo quisiera saber si hay algún programa que me permita programar en ASM
> algún tipo de ARM de los básicos, en ensamblador solo se programa PICs y también estoy (no hace mucho) programando en ASM un 18F4550
> ...



Hola.
Para el nivel que tienen los ARM en cuanto a arquitectura y otros, lo conveniente es programar en C por las librerías y demás , con el tiempo te darás cuenta.
Para ASM, sugiero el Keil uVision IDE y esto Keil µVision IDE 
ASM compile tutorial es un tutorial para configurar el uVision en ASM. Y asta aqui ya que he visto poco sobre el asm para los ARM.

PD: Consulta http://www.keil.com/ para los ARM, que es como Microchip para los PIC.

Saludos.


----------



## Hellmut1956 (Ene 25, 2013)

Byaxel: Yo estoy usando las placas LPCxpresso y en ese contexto la IDE gratis que viene con ellos. Allí es posible ver las sentencias en C y en assembler. Tine razón quien te recomienda programar en C. La IDE de Keil no es gratuita, por lo que yo no uso esa.
pero eso no es todo lo que tienes que considerar. Los Arm tiene diversas versiones de una lengua, por llamarla estilo "assembler" que se llama "thumb" y "thumb2". He leido recientemente que ARM, la empresa que diseña todos los ARM y vende licencias a los diferentes productores de estos, en el contexto de los nuevos ARM de 64 bit, habla de eliminar el apoyo para las instrucciones tipo "assembler" para hacer posible el diseño mas eficiente de procesadores y controladores.
Yo hace algunos años trate de instalar y aprender la IDE GNU, en la que basan casi todas las IDEs y te cuento que fui incapaz. Entre otras la razón para decidirme por los ARM Cortex Mx de NXP fue que la IDE viene pre configurada así que se pueden compilar los abundantes programas que existen como demostración o como webinarios, vídeos de aprendizaje. Así es posible partir de uno de esos ejemplos y programar su propio programa. La IDE para esos LPCxpresso se encarga de forma autónoma de generar los make files necesarios para la compilación.

Otro punto a considerar y que apoya la recomendación para la programación en "C" que así sevuelve muy sencilla, es el HAL o API común a todo controlador del tipo ARM Cortex Mx. es parte de las obligaciones de toda empresa que produce un controlador ARM Cortex Mx de implementar esta para todas las periferias que incluye en un controlador. Así todo programa escrito para acceder las periferias de cualquier ARM Cortex Mx de cualquier proveedor usando esos APIs funciona con mínimo esfuerzo en cualquier otro incluyendo esa API al compilar el programa. para los controladores de NXP existen programas de demostración para el uso de todas sus periferias, así que copiando y pegando el código en el programa propio la labor de escribir un programa se facilita mucho.

Otra razón para escoger los controladores de NXP es la disponibilidad de los LPCxpresso a un precio de menos de 30.- USD mas flete y que esas placas vienen con un adaptador JTAG incluido, que se puede separar físicamente teniendo así una placa muy chiquita con un controlador y toda la periferia requerida a un precio inferior a lo que se puede construir una placa propia. Yo uso esa placa y la monto en una placa madre a la cual le agrego las periferias que requiero, por ejemplo las componentes para controlar un motor de paso, etcétera.

Esta es la fuente mas económica que conozco en Europa para comprarlas y se pueden dejar mandar pagando el flete moderado que cuesta. Yo uso esta placa LPC1769 LPCXpresso, que allí se ofrece por módicos 23,80 Euros, incluyendo el flete me costo 37,80 Euros.


----------



## lissChiki (Ago 9, 2013)

Hola a Toditos,

Soy novata en el tema de sistemas embebidos y mas con Linux. Por eso necesito accesoria con plastilina...

Tengo una placa de prueba basada en un microcontrolador de 32 bits (procesador ARM CORTEX M3)y necesito instalarle sistema operativo Linux, pero realmente no conozco nada del tema...

No se si me puedan recomendar la distribución adecuada y la información de como realizar la instalación paso a paso... o algún lugar donde haya información clara.

Gracias Anticipadas


----------



## Chico3001 (Ago 9, 2013)

Que modelo de kit es? en base a eso podemos buscar una distribucion adecuada para instalarle...


----------



## lissChiki (Ago 9, 2013)

Hola,

La board de evaluacion es Texas Instruments se llama ek-lm3s811


----------



## Chico3001 (Ago 9, 2013)

mmm... es una stellaris con 8k de RAM... no creo que pueda entrarle un kernel linux completo, solo uno extremadamente recortado....

http://www.freertos.org/portlm3s811keil.html

En esta pagina comentan como desarrollar bajo linux... pero no como instalarle linux
http://www.moteprime.org/article.php?id=27

Y texas ofrece un RTOS que desconozco si es gratuito... 
http://www.ti.com/lit/ug/spruhd4c/spruhd4c.pdf
http://www.ti.com/lit/ug/spruhd3e/spruhd3e.pdf


----------



## Hellmut1956 (Ago 9, 2013)

Hola amigos, después de tanto tiempo de haber iniciado el hilo, que pena que no sea posible encontrar un grupo para meterse en eso de los ARM Cortex en sistemas embebidos. Yo me estoy aproximando a la fase caliente de meterme en lo de la programación de los ARM Cortex Mx. Como para mí ese tema primero irá relacionado para trabajar en conjunto con un circuito para controlar motores de paso







Estaré combinando esta placa de la empresa Trinamic, la tengo como parte de una evaluación temprana con la lpcxpresso 1769.







En la próxima imagen pueden ver como he puesto mi laboratorio electrónico para hacer los experimentos y así ir a entender a profundidad el control de los motores de paso. para quien sea de interés, quiero publicar este tutorial en materia de motores de paso avanzado en este foro.






La placa que ven allí es la StepRocker la placa anterior a la avanzada mostrada arriba y que utilizé para los experimentos. Voy a usar codificadores angulares magnéticos que generan un set de señales de quadratura, que puede ser conectado directamente al sofisticado decodificador de quadratura, una de las periferias del LPC1769!


----------



## cosmefulanito04 (Ago 9, 2013)

Yo estuve leyendo el libro de Free-Rtos aplicado a esta familia, me hice todos lo ejemplos.

Si les interesa, después subo un tutorial siguiendo al libro con código.


----------



## Hellmut1956 (Ago 10, 2013)

Definitivamente me interesa!


----------



## lissChiki (Ago 11, 2013)

Chico3001 dijo:


> mmm... es una stellaris con 8k de RAM... no creo que pueda entrarle un kernel linux completo, solo uno extremadamente recortado....
> 
> http://www.freertos.org/portlm3s811keil.html
> 
> ...




Disculpa ...Lo que me quieres decir es que debo modificar el kernel...O debo buscar una determinada versión??....Gracias





cosmefulanito04 dijo:


> Yo estuve leyendo el libro de Free-Rtos aplicado a esta familia, me hice todos lo ejemplos.
> 
> Si les interesa, después subo un tutorial siguiendo al libro con código.



Me interesan ambos, el libro y el turorial....


----------



## Chico3001 (Ago 12, 2013)

Lo que quiero decir es que tu kit solo tiene 8K de RAM y con esa memoria es dificil que le entre cualquier Kernel, tienes 3 opciones... usar un kernel ya echo que no es linux (como los que te deje en los links), recortar tu misma un kernel linux y compilarlo, solo que para mi gusto quedaria extremadamente recortado al punto de casi no poder hacer nada... o usar un kit que sea mas grande y al cual si le quepa un kernel linux mas completo

La pregunta es... para que requieres meterle un kernel a ese kit? si es un experimento entonces lo mejor es que tu recortes tu propio kernel, si es para un trabajo entonces necesitas usar uno ya echo o cambiar de kit...


----------



## Hellmut1956 (Dic 1, 2013)

La IDE para los microcontroladores ARM de NXP tiene la nueva versión 1.1.0 disponible, que a diferencia de la versión gratis anterior, por ejemplo 6.0.4, todavia bajo la empresa Code Red, que solo tenia gratis la limitación de 128kB de código y 2 upgrades, uno para ampliar a 256kB de código , la otra para eliminar todo límite. Ahora la 6.1.0, después de registrarse, gratis subió el límite a 256kB y una versión Pro sin límite y con un año de apoyo por NXP por email, que claro si cuesta. Otra cosa interesante es que la versión gratis ahora también incluye C++!

Como quizá recuerden, debido a la importancia estratégica de la IDE para el éxito de los ARM de NXP, NXP adquirió Code Red, empresa que desarollo la IDE. También vale recordar que la instalación de la IDE no solo conoce todas las variantes de controladores ARM de NXP, sinó que también conoce las placas LPCXpresso existentes y la cadena de herramientas se autoconfigura para la LPCXpresso escogida al tiempo de arrancar la IDE en el ordenador!


----------



## galopezi (Ene 11, 2014)

Hola buenas a todos, siempre e leído este foro y la verdad me parece súper interesante, en mas de una ocasión me han sacado de líos, les cuento que estoy interesado en el microcontrolador ARM Cortex M3 y estoy usando el ATSAM3U de ATMEL, la verdad me he familiarizado bastante con ATMEL, y uso IDE coocox con el compilador gratuito DE ARM-GCC, la verdad tengo una duda, que necesito hacer para compilar Linux para este micro??. bueno no se si mi pregunta esta fuera de forma pero la verdad es una inquietud que tengo.

Gracias por su atención.


----------



## cristian_elect (Ene 13, 2014)

lissChiki dijo:


> Hola a Toditos,
> 
> Soy novata en el tema de sistemas embebidos y mas con Linux. Por eso necesito accesoria con plastilina...
> 
> ...


 Yo tengo tiempo con estos micros ya de los ARM7 DMI si hay Linux para ellos es uClinux no lo probé físicamente pero si en simulación eso fue hace mucho. Segun lo ultimo vi que funciona para Cortex M3 y M4. 

  Últimamente no me dedico a los micros ARM porque no hay mucho que hacer con ellos.
Digo en el trabajo mas facil compran intrumentos echos y probados.


----------



## Hellmut1956 (Feb 17, 2014)

@LissChiki: El controlador del kit tiene muy poca memoria para que instalar Linux tenga sentido y/o pueda ser posible. cristian muy correctamente se refiere a los ARM 7 o equivalentes, donde una placa con estos procesadores, no controladores, tienen memoria externa disponible, con la cual es sencillo tener suficiente memoria. Muy justificadamente aquí para controladores, y el ARM Cortex M3 definitivamente es un controlador, o se escribe un manejo de los recursos disponibles propio, lo mas sencillo de sistema operacional, o se usa un sistema operacional RTOS, especial para controladores donde el tiempo de reacción previsible y corto es esencial, siendo FreeRTOS una buena alternativa.


----------



## foso (Feb 26, 2014)

Estoy viendo la página de FreeRTOS y de "Free" no tiene nada. Ni siquiera se puede bajar gratis el pdf del manual. Pero es interesante la cantidad de marcas a las que se aplica.


----------



## cosmefulanito04 (Feb 26, 2014)

foso dijo:


> Estoy viendo la página de FreeRTOS y de "Free" no tiene nada.



¿Por?

Si bien tenés que cumplir con ciertas condiciones al estilo GNU algo modificadas, se puede usar en forma gratuita en cualquier aplicación comercial.



foso dijo:


> Ni siquiera se puede bajar gratis el pdf del manual. Pero es interesante la cantidad de marcas a las que se aplica.



El soporte no necesariamente debe ser gratuito, aunque como mencioné en el hilo del FreeRTOS, el libro se consigue fácilmente y a un excelente precio .


----------



## foso (Feb 27, 2014)

Pude descargar el software. Pensé que no era gratis. Claro las licencias son para comerciar. 
Gracias


----------



## thunder2 (Mar 4, 2014)

Hola para todos, quería saber si por favor tendrían un tutorial para la board STM32F0 discovery, estoy encartado con esta board y no se como usarla o con que podría usarla.

Saludos a todos y buen día.


----------



## luisgorris (Mar 22, 2014)

Hola amig@s.

Tengo conectado y funcionando un LCD de 20x4 con un stm32f0xx usando la libreria de Stormbytes y algunas pequeñas modificaciones (la libreria es para 16x2).

He adquirido un modulo I2C para estos LCD pero la unica informacion que encuentro es la dichosa libreria LiquidCrystalI2C para arduino (y encima en C++).

¿alguien tiene alguna libreria en C para stm32f0xx de este modulo I2C?

gracias!!!!


----------

