Requisitos mínimos del circuito ARM

13

He desarrollado algo 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 propio tablero o usar un tablero de arranque para el ARM y el resto del tablero. Una referencia o esquema de los componentes mínimos sería muy apreciado.

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

ACTUALIZAR:

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

ZnArK
fuente
77
¿Puedes decirnos qué dispositivos tienes? El enlace a la hoja de datos sería genial.
stevenvh
Espero que no sea el paquete WLCSP el que desea grabar su propia PCB: ¡un BGA de 0.4 mm de paso! : - /
stevenvh
@stevenvh No soy tan valiente. Es el paquete LQFP 144
ZnArK
1
Verifique la serie LPC de NXP, ¿todos tienen un cargador de arranque en serie incorporado? 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 usar IMO).
Wouter van Ooijen
1
@Wouter - Sí, también descubrí que DIP (ver respuesta). El LPC1114 es el único Cortex, cualquiera que sea el fabricante listado en Digikey disponible en DIP.
stevenvh

Respuestas:

9

Esto realmente depende de los chips que esté utilizando: no especificó cuál obtuvo. Por lo general, necesitaría al menos un cristal, desacoplando las tapas y restableciendo la lógica. La interfaz de programación podría ser una simple interfaz JTAG.

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

Actualización (para el STM32F407):

Mira las siguientes páginas en la hoja de datos

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

No necesitará un circuito de reinicio (está integrado; consulte la página 23) o 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 (consulte la parte inferior de la página) puede ser realmente suficiente).

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

hli
fuente
Gracias por tu contribución. Estoy haciendo 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 lo hacen posible 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 útil.
ZnArK
1
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 .
hli
No me di cuenta de eso. Gracias por la info. Muy útil,
ZnArK
10

¿Seguro que quieres hacer esto para un Cortex-M4? Es un gran salto de AVR, y no veo cómo utilizaría todas las funciones que proporciona. Para comenzar con un Cortex-M4 generalmente viene en un paquete grande, típicamente más de 80 pines para las partes de nivel de entrada, y 200+ no es una excepción, piense en QFP o BGA. ¿Va a hacer una tabla de ruptura con dos filas de 40 pines a la placa de pruebas?

El Cortex-M4 también está diseñado para alta velocidad: 120 MHz a más de 200 MHz típicamente. OK, es posible que no necesite diseñar su PCB para esas velocidades si usa un PLL en el 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 para qué sirve un Cortex-M4. Creo que un Cortex-M3 o incluso -M0 es más apropiado para comenzar. No quiero desanimarte, quiero seguir siendo realista.

Si no desea seguir adelante con el Cortex-M4 se puede hacer con un mínimo de hardware externo. 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, vale la pena echarle un vistazo al NXP LPC111x . Por supuesto, no viene con mucha memoria, pero está disponible en un paquete DIL-28 , lo cual 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 suelda un conjunto de encabezados, puede enchufarlo a una placa de pruebas.

stevenvh
fuente
Gran retroalimentación No estoy decidido a usar el Cortex-M4. Examinaré los modelos M3 / M0. Comprobaré el chip y el paquete exactos que tengo y actualizaré la pregunta.
ZnArK
1
He dado un salto de PIC18 a LPC2100 (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 Alexeev
1
@Nick: también utilicé varias piezas LPC2000, pero como tú dices, fueron reemplazadas por Cortex-M3. Cortex-M4 es una liga diferente.
stevenvh
8

Como Steven dice que es un gran salto hacia 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 fuera demasiado tiempo y hay menos soporte / información disponible para ello. Creo que un M3 o M0 es una mejor opción, y será suficiente para seguir adelante.

Ciertamente, puede hacer su propia placa, pero tal vez sería mejor tomar 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 herramientas con el ARM M3 / M4 de la serie STM32, que es un poco más barato 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í

Oli Glaser
fuente
Gran sugerencia Tengo una placa de desarrollo en camino (Stellaris Launchpad). Planeo familiarizarme con eso antes de hacer mi propia placa. También actualicé mi publicación con la información del hardware.
ZnArK
Tenga en cuenta que los tableros cuestan aproximadamente 3 veces más que la oferta propia de ST.
Chris Stratton el
La plataforma de lanzamiento más nueva de @ChrisStratton TI estaba disponible por $ 5 enviados . Todavía podría estar disponible. Precio difícil de superar.
ZnArK
@ChrisStratton: sí, lo agregué por el esquema en lugar del precio (ni siquiera lo verifiqué). Tengo una de las placas STM32F4 de descubrimiento, de hecho son muy baratas, pero pensé que podría confundir un poco las cosas con todas las cosas adicionales 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 es mejor como se mencionó)
Oli Glaser
Para proyectos integrados simples, encuentro el SWD de 4 pines mucho más conveniente que jtag. En su forma original de proveedor de bloqueo de herramientas, puede que no sea así, pero ahora hay soluciones abiertas para hablar con los adaptadores.
Chris Stratton
5

El Arduino Due debería salir pronto:

adruino debido

Chip es un SAM3X8 Cortex-M3 de Atmel. Vale 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, puede duolarlo.

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

Recomiendo que compruebe que Mbed es un dispositivo cortex-m3 con algunos periféricos agradables, nxp proporciona un compilador y muchas bibliotecas y bibliotecas comunitarias, una forma realmente fácil de programarlo y ya está en un paquete para ser utilizado en una placa de pruebas. Creo que sería la forma más fácil de hacer la transición de AVR a ARM.

Kvegaoro
fuente
2

Muchas de las partes ST pueden, al menos si no están usando un transceptor USB, funcionar con su oscilador interno de alta velocidad.

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 las 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 colocar la operación de programación directamente en su Makefile.

Buscar 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.

Chris Stratton
fuente
1
$ 8-10 no será Cortex-M4, supongo. ¿Puedes especificar en qué partes estás pensando? ¿También para el paquete QFP-48? TIA
stevenvh
1
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.
Chris Stratton el