¿Qué microprocesador para experimentación?

33

Albergo una fantasía secreta (¡Uy, ya no es tan secreta!) Para construir una computadora simple desde cero. Estoy buscando un microprocesador fácil de usar para empezar. Conozco a los sospechosos habituales como el 6502, 68000, 8086, Z80, etc. Pero me pregunto si hay algo mejor por ahí. Aquí está mi lista de deseos:

Debe tener:

  • Baja frecuencia de reloj (4-25 MHz)
  • No más de 40-60 pines, preferiblemente en configuración DIP
  • Capacidad para abordar alrededor de 64 KB de memoria, pero hasta 1 MB sería bueno
  • Arquitectura de programa almacenado (no espacio de instrucción de solo lectura) (Editar: esto descarta la mayoría de los microcontroladores de gama baja, como PIC y AVR)
  • Modelo de memoria plana, no almacenado o segmentado como el 8086

Me gustaría, pero no es necesario tener:

  • Conjunto de instrucciones RISCy (load-store)
  • Registros de uso general
  • Surtido de pines de E / S TTL
  • ROM flash incorporada

¿Qué microprocesador o microcontrolador sugeriría que sea relativamente fácil de conectar y obtener las primeras rutinas ROM escritas?

Mi objetivo es poner en marcha un sistema Forth (o similar) simple. Solo para decir que lo hice.

Editar: Después de investigar un poco, creo que algo como el ARM7 me convendría. Viene con una cantidad no trivial de flash y SRAM para jugar, a veces hasta 256K flash y 64K SRAM, junto con E / S digital, ADC, E / S en serie y más.

Aquí hay uno: la placa de desarrollo STR711 ARM .

Barry Brown
fuente
No está realmente relacionado con la programación. Suena más como una pregunta de hardware (es decir, material de superuser.com).
3
sí, pero solo un público programador puede responder correctamente
Stefano Borini
¿Desea que el dispositivo maneje el teclado, el mouse y la pantalla por sí solo o solo se va a conectar en serie?
Serial estaría bien para mí.
STR711 ARM no está realmente hundido

Respuestas:

15

Estoy de acuerdo en que ARM es el camino a seguir para los microcontroladores de 32 bits. ARM es omnipresente y su lenguaje ensamblador se puede utilizar en una amplia gama de familias de microcontroladores. ARM también tiene un buen soporte de la cadena de herramientas GCC. La arquitectura del chip ARM7TDMI ha dominado el espacio mcu de 32 bits en los últimos 5 años y el ARM Cortex-M3 es el reemplazo emergente. El Cortex-M3 tiene una arquitectura de Harvard (instrucciones separadas y espacios de direcciones de datos), pero no creo que sea una limitación.

Micromint tiene una sólida reputación, y ofrecen una placa Cortex-M3 con opciones configurables a un precio decente. Sin embargo, si realmente necesita la configuración DIP, he tenido éxito con mbed

Ahora, lo siguiente son los idiomas. Mencionaste FORTH. También recomiendo Python-on-a-Chip y eLua como lenguajes potentes y fáciles de aprender que funcionan en esta plataforma de destino de tamaño. eLua está más desarrollado pero tiene mayores recursos necesarios que Python-on-a-Chip. Divulgación completa: soy el autor de la máquina virtual PyMite utilizada en Python-on-a-Chip. Entonces, si su objetivo es hacer su propio idioma, entiendo completamente la alegría de ese ejercicio.

dwhall
fuente
1
ARM tiene buses de datos e instrucciones separados , el espacio de direcciones está unificado (es decir, puede leer instrucciones y ejecutar datos si lo necesita). También recomendaría mirar los chips Cortex-Mx de gama baja de NXP: echa un vistazo a LPCXpresso.
Igor Skochinsky
7

Para pequeñas cosas uC Arduino , comunidad barata, divertida y buena

Para las máquinas de clase ARM, el más barato es probablemente el conector sheeva , hacen una máquina completa increíble incorporada en una fuente de alimentación wallwart y una máquina de placa única ligeramente grande con mucha más E / S

O hay una placa beagle , dirigida más al rendimiento de audio / video.

Todos ellos ejecutan Linux para que tengas una gran variedad de software de desarrollo

Martin Beckett
fuente
Totalmente. Obtenga el kit Fuzebox, arme y piratee pequeños juegos (todos son software libre hasta ahora, creo) para su televisor.
5

MSP430 de Texas Instruments tiene un consumo de energía muy bajo, un conjunto de instrucciones pequeño pero muy sensato (a diferencia de PIC), herramientas de código abierto y formato DIP en su línea de valor. Recientemente han lanzado un kit de inicio de $ 4.30 (sí, eso es cuatro dólares treinta centavos, envío gratis) que incluye una interfaz USB para programación y depuración y dos chips DIP para jugar. Compruébelo usted mismo .

Igor Skochinsky
fuente
¡Eso es muy bonito! He marcado ese sitio como favorito. :)
4

Podrías obtener un FPGA y simular todo esto sin necesidad de procesador.

He tenido la tentación de intentar hacer una computadora MIPS simple antes. Tengo un diseño básico de CPU, pero sería difícil decir lo menos para enrollar o prototipos.

McPherrinM
fuente
Esa es una idea interesante. ¿Existen fuentes para diseños de procesadores de referencia que se puedan programar en un FPGA?
La mayoría de los devkits de FPGA vienen con un diseño de CPU gratuito o con licencia. A veces incluso con un RTOS acompañante.
Un PDP-1 sería factible. Está construido a partir de componentes modulares. Los diagramas lógicos para cada componente se publican en el Manual de lógica digital, 1969 (¡el mío acaba de llegar por correo hoy!).
luser droog
2

Echa un vistazo a los microcontroladores ATmega de Atmel, tienen todo lo que pides, excepto la capacidad de ejecutar código desde RAM, y son muy fáciles de configurar.

Un pequeño procesador ARM de 32 bits como ARM7TDMI sería una alternativa, pero estos no vienen en paquetes DIP. Lo mismo se aplica a los microcontroladores Renesas R8C / M16C.

starblue
fuente
Todos los AVR usan un espacio de instrucción de solo lectura, ¿no? Necesito poder ejecutar sin RAM, para que mis programas puedan escribir programas.
Sí, parece que tienes razón. Aunque cuando jugué con Forth hace 25 años, utilicé una implementación de código roscado, que sería posible con AVR.
Starblue
Se ha visto un ARM Cortex M0 en un paquete DIP de 28 pines: nxp.com/products/microcontrollers/cortex_m0/lpc1100_x_l/…
starblue
2

¡Suena como un gran proyecto! Hice uno en los años 70 con un chip 8008 y un poco de RAM y ROM. Lo programé para reproducir una pequeña melodía con altavoces conectados al puerto de E / S. Parte del circuito de memoria involucraba un chip temporizador controlado por un condensador. Soldaba un condensador adicional que, cuando se ponía en contacto, hacía que todo se ralentizara en 1000. Luego lo usé en clase como demostrador. Primero, iba despacio y los estudiantes podían escuchar a los altavoces haciendo clic, clic. Luego desenganché el condensador y oyeron la melodía. Intenté impresionarles sobre cómo las computadoras terminan una instrucción antes de comenzar la siguiente.


fuente
1

Echa un vistazo a OLIMEX , tienen placas de desarrollo para la mayoría de los microcontroladores modernos y si realmente quieres DIP, tienen procesadores ARM en placas en formato DIP ( 1 ). También venden JTAG y tienen algunos códigos de demostración disponibles para la mayoría de las placas (gcc), por lo que son muy fáciles de poner en funcionamiento. La mayoría de sus tableros está disponible a través de Sparkfun . Personalmente, me gustan los micros basados ​​en Phillips LPC ARM, pero cualquier cosa de Olimex es buena.

El AVR32 también funcionará para usted (no en Havard). Hace poco comencé a usarlos y me sorprendió lo capaces y fáciles de usar que son.

Construir desde cero no es realmente una opción hoy en día, a menos que use un micro dip de 8 bits o tenga una configuración para soldar placas de montaje en superficie y depurar placas de PC digitales complejas.

Gerhard
fuente
1

Dependiendo de sus objetivos, puede considerar construir su propia CPU con las características que desee, en lugar de usar una CPU existente. Echa un vistazo a la construcción de CPU Homebuilt. ¡Incluso hay un entusiasta loco que construyó una CPU a partir de relés!

Dour High Arch
fuente
1
¡GUAUU! ¡Eso es espeluznante! Y se ve orgulloso de ello ....
asp316
Es un lindo proyecto. Alan Turing trabajó con hardware basado en relés. El material de retransmisión de este tipo se ve perfectamente ensamblado y construido en bonitos gabinetes. ¡Buen trabajo!
Kaz
1

Hélice de paralaje

El único procesador de 32 bits que se fabrica actualmente en un paquete DIP es el Parallax Propeller . (El mismo chip también está disponible en paquetes QFP de 44 pines y QFN de 44 pines mucho más pequeños, todos con 32 pines de E / S de uso general). Además del IDE de Windows, también hay algunas herramientas de desarrollo que se ejecutan en Linux .

Parece que cumple con todos sus requisitos, excepto "ROM flash incorporada"; en cambio, el Propeller se carga desde una EEPROM externa de 8 pines. (Eso es una cosa más para conectar, pero es mucho más fácil conectar un chip de 8 pines que la mayoría de los chips de almacenamiento de programas externos).

davidcary
fuente
0

+1 Para los micros ATmega. Los obtienes con un cargador de arranque para la programación a través de USB, lo que hace que sea aún más fácil ejecutar esa primera placa sin necesidad de tener un programador dedicado. Sin embargo, te perderás las cosas de ICE si sigues esta ruta.

Belrog
fuente
0

Una segunda votación para el Amtel. Me gusta especialmente el teensy ++ para prototipos y experimentación. El USB suministra alimentación, proporciona una interfaz de programación y muestra la salida de depuración. Herramientas de desarrollo de GNU. Toneladas de diversión por alrededor de $ 30.

Frobozz512
fuente
0

Atmel va a ser bastante popular, los arduinos (me gustan los modelos profesionales de sparkfun) son populares. Encontrará MUCHOS aficionados que están familiarizados y pueden responder a cualquier pregunta sobre el uso del AVR.

Prefiero el conjunto de instrucciones msp430 al avr, y el conjunto de instrucciones de armado por encima de los demás. Olimex hace una serie de tableros de "encabezado" que son perfectos para experimentos. Luminary micro tiene algunos buenos, pero muchos de los pines se consumen en los chips que muestran los periféricos del chip, buenos para aprender el chip y las características, pero finalmente desea cortarlos para obtener E / S. De todos modos, olimex es bueno, intente http://www.sparkfun.com y navegue a través de los paneles de desarrollo, algunos son de olimex, algunos son de sparkfun, una amplia selección y muchos menos de $ 40 o $ 50 para que pueda probar algunos para ver qué me gusta. Estoy a punto de pedir un armmite, que si cumple con su lista de características es probablemente la mejor placa controladora para mis propósitos.

viejo contador de tiempo
fuente
0

He tenido el mismo sueño, pero nunca lo he logrado.

La mayoría de las recomendaciones anteriores son para paneles de desarrollo. Como dijiste "desde cero", supongo que quieres comenzar con un solo chip de procesador DIP y no comprar una placa de desarrollo. En cuyo caso, le recomendaría extremadamente que se quede con algo como los sospechosos habituales que enumeró en su publicación. Son populares porque funcionan bien para tal tarea. Puede superar la necesidad de más líneas de E / S con multiplexores y demultiplexores.

Suponga que encontró esa CPU "perfecta" que hace todo lo que desea y tiene el número exacto de líneas IO que desea. No va a encontrar en ningún lugar cerca de una pizca del soporte que encontrará para los procesadores populares. Debería poder encontrar fácilmente libros usados ​​viejos en E-Bay, Amazon, etc. por solo unos centavos que muestran cómo diseñar un sistema completo usando esos procesadores. Sin mencionar sitios web, compiladores y otras personas que hacen lo mismo.

Si vas con algo más, creo que te vas a arrepentir profundamente. Pasará más tiempo frustrado por la falta de soporte que por superar cualquier problema técnico que tenga con esos procesadores. Además, dado que las personas ya han diseñado computadoras enteras con esos chips, usted sabe que se puede hacer. Con cualquier otra cosa, siempre existe la posibilidad de que golpees una pared de ladrillos.


fuente
Además, es posible que desee considerar la opción de copiar una arquitectura existente como el C64 que ya ha sido hackeado hasta la muerte.
0

Elija Atmel AVR. Aquí hay algunas plataformas de juegos a su alrededor:

http://belogic.com/uzebox/index.asp
http://avga.prometheus4.com/
http://www.innovativedevice.com/console/GameStation.asp
http://www.lucidscience.com/pro-lazarus-64%20prototype-1.aspx
http://www.lucidscience.com/pro-vga%20video%20generator-1.aspx
avra
fuente
0

Prefiero el conjunto de instrucciones msp430 al avr, y el conjunto de instrucciones de armado por encima de los demás.

Rckt
fuente