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:
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
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.
¿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 ,
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.
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.
El Arduino Due debería estar disponible bastante pronto:
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.
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.
stevenvh
stevenvh
ZnArK
Wouter van Ooijen
stevenvh