2010-10-01 11 views
7

Pronto me embarcaré en el carro ARM Cortex M3 con un entrenamiento oficial (lado de la CPU).Asesoramiento necesario para el principiante ARM Cortex M3

Ahora, hice un poco de Arduino y AVR antes y tengo algunos conceptos básicos en electrónica, pero en su mayoría soy un desarrollador de software. He leído la mayoría de los temas aquí y bastante en otro lugar con respecto a las herramientas disponibles y han sido de gran ayuda. Lo que necesito es algo para conectar todos esos elementos de respuesta.

me gustaría dotar a mí mismo con un kit de inicio que es suficientemente general como para que me va y que al menos me permite experimentar diferentes combinaciones de hardware/software (steppers, CAN-Bus, SPI, etc ...). Estoy buscando en la siguiente lista (no dude en añadir más artículos!):

  • Cortex M3 tablero de viruta
  • Evaluación
  • cadena de herramientas
  • herramientas JTAG

Para el chip Me gustaría que uno de los modelos de gama más alta pudiera probar un poco de todo. El NXP LPC1768 parece una buena opción, pero también hay que considerar STM y Stellaris.

Los candidatos interesantes para el tablero en este momento son los Keil MCP1760, los STM3210E-EVAL pero me da miedo el bloqueo de proveedores porque me gustaría poder probar varias cadenas de herramientas en una sola placa. mBed es muy atractivo, pero está fuera de la ecuación debido a que es un compilador en línea (a menos que también se pueda usar un compilador común)

Para Toolchain, tengo una "sensación" hacia IAR, Rowley Associates. Preferiría la facilidad de uso/el buen cumplimiento frente al código abierto y, preferiblemente, las herramientas que podrían usarse en objetivos múltiples.

¿Realmente necesito una unidad JTAG? Si se trata de una "herramienta estándar de la industria", como parece ser, me gustaría obtener al menos algo de experiencia en ella. Parece otra fuente de bloqueo de proveedor resistente. ¿Sería mejor utilizar una externa con la que me pueda familiarizar o simplemente usar una incluida en la placa de evaluación?

Básicamente, necesito ayuda para elegir una combinación ganadora para las categorías antes mencionadas. ¿Es posible o estoy siendo ingenuo y debería considerar los costos de ahorro porque terminaré comprando uno de cada uno al final?

Gracias.

RESULTADOS: lo que pedí:

Finalmente compré Joseph Yiu de "La guía definitiva para la ARM CortexM3 (Embedded Technology)", encontrado algún tipo de formación para la plataforma CortexM3 (próximamente) y compró un kit STMicro: STM3210C-Eval, que tiene un conjunto de sensores integrados y no está bloqueado por un proveedor para un entorno de software específico. También recogí algunas tarjetas STm32vl-Discovery (13 $ cdn de digikey!) Con JTAG a bordo. ¡Ahora estoy jugando con una versión de evaluación (32K) del uVision IDE de Keil y puedo decir que estoy REALMENTE impresionado! ¡Pude volver a compilar el firmware de Discovery, cargarlo de nuevo y pasarlo con el depurador en un solo día!

¡Gracias a todos!

+1

Es posible que desee preguntar esto en http://electronics.stackexchange.com –

+0

Gracias, gran sitio, otro marcador! –

+0

Tengo el descubrimiento stm32vl pero acabo de recibir el descubrimiento stm32f. Cachés de 168Mhz, iyd, unidades de coma flotante, cifrado, hash, una buena cantidad de memoria, mucho flash, etc., por $ 20 o menos. los mbeds se almacenan y se quedan en mi escritorio. https://github.com/dwelch67/stm32vld/tree/master/stm32f4d –

Respuesta

1

También soy desarrollador de software originalmente. Usé un par de kits diferentes, pero el que encontré más fácil de usar y con el que más hice es mbed.Literalmente puedes ponerlo en funcionamiento en cinco minutos desde que abres la caja. No es necesario instalar ningún IDE desde el CD, no hay necesidad de los dongles JTAG, no hay necesidad de volver sobre las hojas de datos, solo escriba el código, compile y ejecute.
Sí, algunos se quejan de que está "vinculado" al compilador en línea. Pero solo escuché eso de personas que realmente no lo intentaron. Y es solo no es verdad - aún puede usar cualquier otra cadena de herramientas que pueda producir binarios para LPC1768: IAR, Keil, CodeSourcery, Yagarto o su propia cadena de herramientas. Todavía no encontré un caso para eso, pero ciertamente es posible.
Probablemente la mayor desventaja de mbed es que no expone la interfaz JTAG y por lo tanto no se puede depurar de forma interactiva. Hasta ahora no creo que esto sea crítico, pero podría ser importante si haces mucho trabajo de bajo nivel.

+1

Un gran inconveniente para el cortex-m3 es que el ARM cambió a una interfaz jtag que utiliza menos pines (algunas cosas en serie aunque jtag ya está en serie) y no lanzarán la documentación en él sin una NDA, al menos ese fue el caso cuando intenté a principios de este año. Así que ir con algo como el mbed o stellaris donde no estás encerrado en un cajón de arena, pero tienes una manera de cargar tus programas es deseable para un cortex-m3. –

+1

En realidad, SWD (JTAG a dos hilos) es una opción en Cortex-M3, no es un requisito. Por ejemplo, LPC17xx todavía tiene el JTAG de cuatro hilos completo (pero LPC11xx y LPC13xx son de hecho solo SWD). Y los documentos SWD están definitivamente disponibles sin NDA, aunque es posible que deba registrarse en arm.com para descargarlos. –

+0

El mbed hubiera sido mi primera opción para proyectos en el hogar, principalmente por el precio. Actualmente estoy buscando capacitación de Doulos y eventualmente me gustaría tener algunas tablas personalizadas fabricadas para ahorrar en costos. En una experiencia de aprendizaje estaba pensando en ir con el atuendo completo (aprendizaje en profundidad de M3, jtag, depuración de fuentes, etc.). ¿Tal vez no debería descartarlo todavía? –

2

Es posible que desee mirar el Atmel ATSAM3U-EK dev kit (aproximadamente $200 from Digi-Key). Tiene una pantalla táctil LCD, acelerómetro, sensor de temperatura, entradas analógicas, JTAG, dos puertos serie y USB 2.0 (integrado en el SAM3U).

Lo que más me gusta de la serie SAM3 es la fácil puesta al día. Tiene una ROM incorporada y flash para el almacenamiento del programa. De fábrica, arranca la ROM (más tarde la cambia para arrancar desde el flash), que activa el puerto USB, que se declara como una Clase de Dispositivo de Comunicación USB (CDC), y ejecuta el monitor de arranque SAM-BA. También tiene un pin ERASE en el chip que restablece todo a la configuración de fábrica.

Así que todo lo que tiene que hacer, volver a programar desde cero

, es:

  • Jumper ERASE durante al menos 200 ms con la alimentación
  • reinicio y conecte la tarjeta en un puerto USB
  • ejecutar el programa SAM-BA de Atmel en Windows o Linux
  • seleccionar el puerto serie
  • permitir la escritura de flash
  • seleccionar el archivo binario y enviarlo
  • configúrelo para arrancar desde el flash
  • desenganche el USB y pulse restablecer de nuevo.

No se necesita dongle o caja JTAG. Sé que la reprogramación a través de JTAG a través de IAR es probablemente menos pasos, pero me gusta saber que hay una manera de llegar a un estado conocido si las otras herramientas se rompen.

La cadena de herramientas IAR es compatible con la serie SAM3, y hay una port of FreeRTOS to SAM3U + IAR (que ahora intento exportar a SAM3U + GCC ya que las licencias de IAR de $ 5K son muy ricas para nosotros).

Otra cosa buena del SAM3U-EK: tiene un flash NAND a bordo, y si conecta el tablero a una computadora mientras ejecuta la demostración, montará el flash en su computadora como una "unidad flash" . En este flash encontrará la documentación, los esquemas, los programas de demostración y las bibliotecas de las cadenas de herramientas GCC, IAR y Keil, y las instrucciones y archivos para restaurar el programa de demostración al tablero (útil en caso de que piense que rompió algo).

+0

Esto realmente se ve como un buen tablero. Sin embargo, si tengo una placa cargada, Ethernet y CANbus son muy importantes, son mi lista de prioridades y no están aquí. –

3

Tengo un simulador de pulgar http://github.com/dwelch67/thumbulator/wiki/thumbulator esto es solo el pulgar y no el pulgar 2, pero el cortex-m3 hace ambos pulgar y pulgar2. No necesitarás preocuparte por las diferencias por un tiempo. El directorio de regresión tiene un archivo make para los ejemplos de gcc y llvm. El archivo Léame incluso podría cubrir el tema.

Tanto llvm como gcc están perfectamente bien, no es necesario comprar ningún software.La mayoría de las personas que brindan ayuda gratuita serán usuarios de gcc. Codesourcery es el lugar actual para obtener el gcc más nuevo/mejor (para el brazo). La versión lite está perfectamente bien. Hacer rodar tu propio gcc es algo relativamente fácil, pero tal vez no es algo en lo que te estés metiendo. Algo bueno de llvm es que siempre es un compilador cruzado y los pre-builts generalmente tienen varios/todos los objetivos.

También tengo ejemplos de stellaris y mbed y otros ejemplos de cortex-m3. Me gusta Stellaris, no soy fanático de lpc, evito el expresso, el mbed en realidad no está mal. Los locos leds azules brillantes me dan una migraña, así que los reemplacé con verde, de lo contrario funciona muy bien, es fácil de usar. Igor tiene razón, no estás encerrado en su caja de arena, como lo haces con el expresso, tengo un ejemplo que parpadea los leds usando gcc para compilarlo en alguna parte. simplemente copie el archivo .bin a la cosa que se parece a una unidad de memoria flash y presione el botón de reinicio para cargar el nuevo archivo.

sparkfun.com tiene el encabezado stm32 por menos de $ 50 más el mbed y quién sabe qué más. Las tablas stellaris están en el rango sub $ 100 y están perfectamente bien. He bloqueado mi 811 casi de inmediato haciendo accidentalmente lo que la advertencia decía que no debía hacer. Gire mis jtag gpio pins de forma incorrecta y ... se acabó el juego. La serie de 1968 y otras series que no son 811 no son aptas para ladrillar o no son tan fáciles de fabricar. Las placas stellaris mastican todo el io con periféricos a bordo, lo que es divertido por un tiempo, pero no si quieres hacer algo más que solo cómo usar esos periféricos. Usted querrá un jig wiggler si está usando el encabezado stm32 (evite los primers stm) amontek hace uno bueno, jtag-tiny y olimex deberían funcionar bien, pero en realidad no sé que alguna vez obtuve el mío de la caja. En teoría, un tablero estelar puede usarse como un jig wiggler para otro o para otros cortex-m3. si tiene una placa Stellaris no necesitará nada más, todo lo que necesita viene en la caja por un precio, así que si no quiere usar esa cadena de herramientas, entonces puede descargar una lista arriba.

+0

Es cierto que obtener el chip de una junta de evaluación es mi objetivo a mediano plazo. Comenzar con una tabla llena de gadgets me atrae realmente para centrarme en aprender la CPU y no cómo interconectar cosas. ¡Ese encabezado stm32 se ve bien sin embargo! PD: ¿Cuál es la diferencia entre un JTAG y un wiggler? ¿Si alguna? –

+0

Lo mismo. Lo que llamo wigglers son jtag bit golpeado, vs tener una interfaz jtag diseñada a propósito. Se usa para usar puertos paralelos, pero ahora se usa usb para chips de tipo de puerto paralelo. –

2

Por mi parte, me gusta la placa LPCXpresso para LPC1768. Tiene una interfaz USB JTAG incorporada y viene con una versión gratuita del Code Red IDE (basado en Eclipse). La depuración interactiva de JTAG me pareció muy útil cuando aprendí a usar este chip. Normalmente no utilizo depuración interactiva cuando programo, pero para la programación integrada la encuentro cada vez más esencial.

El todo solo cuesta $ 33 en DigiKey.

Cuestiones relacionadas