Requisitos mínimos del circuito ARM

He hecho algo de desarrollo con ATMega y estoy buscando ampliar mis horizontes. Tengo un par de chips de la serie Cortex M4 y me gustaría hacer un ARM equivalente al Breadboarduino

Planeo grabar mi propia placa o usar una placa de ruptura para el ARM y la placa de pruebas para el resto. Una referencia o esquema de los componentes mínimos sería muy apreciada.

¿Existen buenos recursos para determinar los componentes mínimos necesarios para operar e, idealmente, programar un chip ARM?

ACTUALIZAR:

Estoy abierto a sugerencias de hardware alternativo. A continuación se muestra el chip con el que estoy tratando de trabajar actualmente:

¿Puedes decirnos qué dispositivos tienes? El enlace a la hoja de datos sería genial.
Espero que no sea el paquete WLCSP para el que desea grabar su propia PCB: ¡un BGA de paso de 0,4 mm! :-/
@stevenvh No soy tan valiente. Es el paquete LQFP 144
Verifique la serie NXP LPC, ellos (¿todos?) Tienen un cargador de arranque en serie integrado. lpc21isp es una buena herramienta para PC. ¡LPC1114 está incluso disponible en DIP28! El lpc1343 tiene un cargador de arranque usb (!) incorporado (que suena bien, pero es un poco engorroso de usar IMO).
@Wouter: sí, también descubrí ese DIP (ver respuesta). El LPC1114 es el único Cortex, sea cual sea el fabricante que figura en Digikey, disponible en DIP.

Respuestas (6)

Esto realmente depende de los chips que esté utilizando; no especificó cuál recibió. Por lo general, necesitaría al menos un cristal, tapas de desacoplamiento y lógica de reinicio. La interfaz de programación puede ser una interfaz JTAG simple.

Pero todo esto debe indicarse en la hoja de datos de chips.

Actualización (para el STM32F407):

Mire las siguientes páginas en la hoja de datos

  • 23ss. para los voltajes necesarios (1.8-3.6V, por lo que necesita un regulador) y cómo usar el regulador interno (al poner el pin PDR_ON alto)
  • 69ss. para los pinouts
  • 69+74 para el esquema de alimentación (estas son las páginas más interesantes ya que muestran las conexiones de alimentación y los condensadores necesarios)

No necesitará un circuito de reinicio (está integrado, consulte la página 23) ni un oscilador (el oscilador integrado de 16 MHz se selecciona al inicio, consulte la página 22). Por lo tanto, usar una placa de conexión LQFP144 (como la de futurlec (ver la parte inferior de la página) podría ser suficiente).

También puede consultar el esquema de la placa STM32F4DISCOVERY (consulte su manual de usuario , página 33). Lo que ve allí es el circuito básico, e incluso contiene los cristales externos.

Gracias por tu contribución. Hago esta pregunta porque la hoja de datos es enorme y, francamente, no entiendo todo lo que contiene. Sé que la solución real sería obtener un título de EE, pero mi carrera actual y otras responsabilidades no hacen que esto sea una posibilidad en este momento. ¿Hay algún proyecto de hardware abierto que tenga un esquema de su circuito ARM? Estoy seguro de que podría separar eso y hacer un proyecto utilizable.
La placa de demostración STM vinculada anteriormente viene con el esquema, por lo que puede comenzar con esto. De lo contrario, Olimex abre sus esquemas, por ejemplo, para esta placa M4 .
No me di cuenta de eso. Gracias por la info. Muy útil,

¿Estás seguro de que quieres hacer esto para un Cortex-M4? Es un gran salto desde AVR, y no veo cómo harías uso de todas las funciones que ofrece. Para empezar, un Cortex-M4 generalmente viene en un paquete grande, generalmente más de 80 pines para las partes de nivel de entrada, y más de 200 no es una excepción, piense en QFP o BGA. ¿Van a hacer una placa de ruptura con dos filas de 40 pines para la placa de prueba?

El Cortex-M4 también está diseñado para alta velocidad: 120 MHz a 200+ MHz típicamente. De acuerdo, es posible que no necesite diseñar su PCB para esas velocidades si usa un PLL en chip. Pero, ¿qué pasa con los periféricos, como USB o Ethernet?

Por supuesto, puede ejecutarlo a velocidades más bajas y omitir gran parte de la funcionalidad en el chip, pero me pregunto cuál es el uso de un Cortex-M4 para empezar. Creo que un Cortex-M3 o incluso -M0 es más apropiado para empezar. No quiero desanimarte, quiero ser realista.

Si desea seguir adelante con el Cortex-M4, puede hacerlo con un hardware externo mínimo . El NXP LPC407x , por ejemplo, tiene un oscilador RC interno que es el oscilador predeterminado en el reinicio, por lo que ni siquiera necesita un cristal. Un circuito de reinicio y un desacoplamiento adecuado de la fuente de alimentación serán todo lo que necesita para ponerlo en funcionamiento.

Para un Cortex-M0 , puede valer la pena echarle un vistazo al NXP LPC111x . De acuerdo, no viene con mucha memoria, pero está disponible en un paquete DIL-28 , que es una rareza para los ARM. Alternativamente, puede usar una placa de desarrollo como LPCXpresso ,

ingrese la descripción de la imagen aquí

donde la mitad derecha es la placa de aplicación, que se puede separar del enlace LPC. Como puede ver, apenas se requiere hardware externo para la aplicación. Y si le suelda un conjunto de encabezados, puede conectarlo a una placa de prueba.

Gran retroalimentación. No estoy muy decidido a usar el Cortex-M4. Buscaré en los modelos M3/M0. Verificaré el chip y el paquete exactos que tengo y actualizaré la pregunta.
He dado un salto de PIC18s a LPC2100s (esto fue en 2008, ahora ARM7 fue reemplazado por Cortex-M3). Fue un gran salto en el rendimiento, pero no fue un gran salto en la complejidad del hardware a nivel de placa.
@Nick: también usé varias piezas LPC2000, pero como dices, fueron reemplazadas por Cortex-M3. Cortex-M4 es una liga diferente.

Como dice Steven, es un gran salto a ARM desde un micro de 8 bits, así que espere un poco de aprendizaje/tiempo en el camino.
Tampoco elegiría el M4 para su primer ARM, simplemente porque no ha estado disponible por mucho tiempo y hay menos soporte/información disponible para él. Creo que un M3 o M0 es una mejor opción, y será suficiente para continuar.

Ciertamente puede hacer su propia placa, pero tal vez sería mejor obtener primero una placa de desarrollo pequeña/barata. En cuanto al desarrollo, hay muchas opciones, desde gratuitas (Eclipse + GCC + OpenOCD) hasta costosas (Keil, Rowley, etc.). Personalmente, uso el IDE Raisonance Ride7 y las herramientas con la serie STM32 ARM M3/M4s, que es un poco más barata. que Keil/Rowely pero lo suficientemente bueno.

Eche un vistazo a una de las placas de desarrollo simples de alguien como ST, Olimex, etc. Esta placa de desarrollo tiene el esquema más simple que pude encontrar, para un STM32 Cortex-M3.

ingrese la descripción de la imagen aquí

Gran sugerencia. Tengo una placa de desarrollo en camino (Stellaris Launchpad) y planeo familiarizarme con eso antes de hacer mi propia placa. También actualicé mi publicación con la información del hardware.
Tenga en cuenta que las placas cuestan alrededor de 3 veces más que la propia oferta de ST.
La plataforma de lanzamiento más nueva de @ChrisStratton TI estaba disponible por $5 con envío . Todavía podría estar disponible. Precio difícil de superar.
@ChrisStratton: sí, lo agregué por el esquema en lugar del precio (ni siquiera lo verifiqué). Tengo una de las placas Discovery STM32F4, son muy baratas, pero pensé que podría confundir un poco las cosas con todas las cosas adicionales que hay allí y el programador STLink integrado sin conexión JTAG "estándar". Aún así, por menos de $ 10 (o lo que sea ahora) probablemente valga la pena comprar uno de estos también (tal vez la versión M3 sea mejor como se mencionó)
Para proyectos integrados simples, encuentro que el SWD de 4 pines es mucho más conveniente que jtag. En su forma original de bloqueo de herramientas del proveedor, puede que no lo sea, pero ahora hay soluciones abiertas para hablar con los adaptadores.

El Arduino Due debería estar disponible bastante pronto:

adruino debido

El chip es un SAM3X8 Cortex-M3 de Atmel. Puede valer la pena esperar si ya está familiarizado con las placas de estilo Arduino y la documentación de estilo Atmel. Y dado que será de código abierto para satisfacer los requisitos de Arduino, por supuesto, podría crear una placa de pruebas.

Gran sugerencia. Sabía que esto iba a salir, pero no pensé en usar este modelo aa. Gran sugerencia.

Le recomendaría que verifique que Mbed es un dispositivo cortex-m3 con algunos periféricos agradables, nxp proporciona un compilador y muchas bibliotecas y bibliotecas comunitarias, una manera realmente fácil de programarlo y ya está en un paquete para usarse en un protoboard. Creo que sería la forma más fácil de pasar de AVR a ARM.

Muchas de las partes del ST pueden funcionar con su oscilador interno de alta velocidad, al menos si no se usa un transceptor USB.

Básicamente, eso significa que su "circuito" consta de tapas de derivación y algunas resistencias en cosas como el reinicio y como terminación en la interfaz SWD.

Los tableros de evaluación de $ 8-10 de ST programarán partes que coloque en su propio tablero sobre el bus SWD; también hay herramientas de código abierto para ellos, por lo que puede poner la operación de programación directamente en su Makefile.

Ir por algo en el 48 PQFP probablemente hará la vida más fácil en su primer intento de tablero. Puede ensamblarlos sin aumento (solo tenga una trenza fina disponible para arreglar el puente o dos que probablemente creará por lado), pero sería útil tener una lupa disponible para verificar su trabajo.

$ 8-10 no serán Cortex-M4, supongo. ¿Puedes especificar en qué partes estás pensando? ¿También para el paquete QFP-48? AIT
Cortex M3... tienden a hacer cada versión en varios paquetes, de los cuales el QFP-48 será el más fácil de trabajar a mano.