Quale microprocessore per la sperimentazione?


33

Porto una fantasia segreta (oops, non più così segreta) per costruire un semplice computer da zero. Sto cercando un microprocessore di facile utilizzo per cominciare. Conosco i soliti sospetti come il 6502, 68000, 8086, Z80, ecc. Ma mi chiedo se c'è qualcosa di meglio là fuori. Ecco la mia lista dei desideri:

Deve avere:

  • Frequenza di clock bassa (4-25 MHz)
  • Non più di 40-60 pin, preferibilmente in configurazione DIP
  • Capacità di indirizzare circa 64 KB di memoria, ma fino a 1 MB circa sarebbe buona
  • Architettura del programma memorizzato (spazio di istruzione non di sola lettura) (Modifica: questo esclude la maggior parte dei microcontrollori di fascia bassa, come il PIC e l'AVR)
  • Modello di memoria piatta, non inclinato o segmentato come l'8086

Vorrei, ma non necessario avere:

  • Set di istruzioni RISCy (load-store)
  • Registri di uso generale
  • Assortimento di pin I / O TTL
  • ROM flash integrata

Per quale microprocessore o microcontrollore suggeriresti che è relativamente facile collegarsi e ottenere le prime routine ROM scritte?

Il mio obiettivo è far funzionare un semplice sistema Forth (o simile). Solo per dire che l'ho fatto.

Modifica: dopo aver fatto un po 'di ricerche, penso che qualcosa come ARM7 mi farebbe comodo. Viene fornito con una quantità non banale di flash e SRAM con cui giocare - a volte fino a 256K flash e 64K SRAM - insieme a I / O digitale, ADC, I / O seriale e altro.

Eccone uno: la scheda di sviluppo ARM STR711 .


Non proprio legato alla programmazione. Sembra più una domanda hardware (ad esempio materiale superuser.com).

3
sì, ma solo un pubblico programmatore può rispondere correttamente
Stefano Borini,

Vuoi che il dispositivo gestisca la tastiera, il mouse e il display da solo o ti connetti solo via seriale?

Serial andrebbe bene per me.

STR711 ARM non è proprio un tuffo

Risposte:


15

Sono d'accordo che ARM è la strada da percorrere per i microcontrollori a 32 bit. ARM è onnipresente e il suo linguaggio di assemblaggio può essere utilizzato in un'ampia gamma di famiglie di microcontrollori. ARM ha anche un buon supporto dalla toolchain GCC. L'architettura del chip ARM7TDMI ha dominato lo spazio mcu a 32 bit negli ultimi 5 anni e ARM Cortex-M3 è la sostituzione emergente. Cortex-M3 ha un'architettura Harvard (istruzioni separate e spazi di indirizzi dei dati), ma non credo che sia un limite.

Micromint ha una solida reputazione e offre una scheda Cortex-M3 con opzioni configurabili a un prezzo decente. Tuttavia, se hai davvero bisogno della configurazione DIP, ho avuto successo con mbed

Ora, la prossima cosa sono le lingue. Hai citato FORTH. Consiglio anche Python-on-a-Chip ed eLua come lingue potenti e facili da imparare che funzionano su questa piattaforma target di dimensioni. eLua è più completamente sviluppato ma ha requisiti di risorse maggiori rispetto a Python-on-a-Chip. Informativa completa: sono l'autore della VM PyMite utilizzata in Python-on-a-Chip. Quindi, se il tuo obiettivo è creare la tua lingua, capisco appieno la gioia di quell'esercizio.


1
ARM ha istruzioni separate e bus dati , lo spazio degli indirizzi è unificato (ad esempio è possibile leggere le istruzioni ed eseguire i dati se necessario). Consiglierei anche di guardare i chip Cortex-Mx di fascia bassa di NXP: dai un'occhiata a LPCXpresso.
Igor Skochinsky,

7

Per piccole cose degli Stati Uniti Arduino , economico, divertente, buona comunità

Per le macchine della classe ARM la più economica è probabilmente la spina sheeva, che rende una macchina completa sorprendente integrata in un alimentatore wallwart e una macchina a scheda singola leggermente grande con molto più I / O

Oppure c'è la beagle board , rivolta più alle prestazioni audio / video.

Tutti eseguono Linux, quindi hai una vasta gamma di software di sviluppo


Totalmente. Prendi il kit Fuzebox, mettilo insieme e hackera i piccoli giochi (sono tutti software gratuiti finora, credo) per la tua TV.

5

MSP430 di Texas Instruments ha un consumo energetico molto basso, un set di istruzioni piccolo ma molto sano (a differenza di PIC), strumenti open source e formato DIP nella loro linea di valore. Di recente hanno rilasciato un starter kit da $ 4,30 (sì, quattro dollari e trenta centesimi, spedizione gratuita) che include un'interfaccia USB per la programmazione e il debug e due chip DIP con cui giocare. Dai un'occhiata .


È abbastanza bello! Ho aggiunto quel sito ai preferiti. :)

4

Potresti ottenere un FPGA e simulare tutto su questo - nessun processore richiesto.

Sono stato tentato di provare a creare un semplice computer MIPS prima. Ho un design di base della CPU, ma sarebbe difficile dire il minimo per avvolgere il filo o altrimenti prototipare.


Questa è un'idea interessante. Esistono fonti per i progetti di processori di riferimento che possono essere programmate in un FPGA?

La maggior parte dei devkit FPGA viene fornita con un design CPU gratuito o con licenza. A volte anche con un RTOS di accompagnamento.

Un PDP-1 sarebbe fattibile. È costruito con componenti modulari. Gli schemi logici per ciascun componente sono pubblicati nel Manuale di logica digitale, 1969 (il mio è appena arrivato per posta oggi!).
Luser droog,

2

Dai un'occhiata ai microcontrollori Atmega di Atmel, hanno tutto ciò che desideri tranne la possibilità di eseguire codice dalla RAM e sono molto facili da configurare.

Qualche piccolo processore ARM a 32 bit come ARM7TDMI sarebbe un'alternativa, ma questi non sono disponibili in pacchetti DIP. Lo stesso vale per i microcontrollori Renesas R8C / M16C.



Tutti gli AVR usano uno spazio di istruzioni di sola lettura, vero? Devo essere in grado di eseguire da RAM, quindi i miei programmi possono scrivere programmi.

Sì, sembra che tu abbia ragione. Tuttavia, quando ho giocato con Forth 25 anni fa, ho usato un'implementazione del codice threaded, che sarebbe possibile con AVR.
Starblue,

È stato avvistato un ARM Cortex M0 in un pacchetto DIP a 28 pin: nxp.com/products/microcontrollers/cortex_m0/lpc1100_x_l/…
starblue

2

Sembra un grande progetto! Ne ho fatto uno negli anni '70 con un chip 8008 e un po 'di RAM e ROM. L'ho programmato per riprodurre un po 'di melodia con gli altoparlanti collegati alla porta I / O. Parte del circuito di memoria riguardava un chip timer controllato da un condensatore. Ho saldato un condensatore aggiuntivo che, quando è stato messo in contatto, ha rallentato il tutto di 1000 unità. Poi ho usato in classe come dimostratore. Per prima cosa lo farei lento e gli studenti potrebbero sentire gli altoparlanti che fanno clic, clic. Quindi ho sganciato il condensatore e hanno sentito la melodia. Stavo cercando di impressionare su come i computer completano un'istruzione prima di iniziare la successiva.


1

Dai un'occhiata a OLIMEX hanno schede di sviluppo per la maggior parte dei micro controller moderni e se vuoi davvero DIP hanno processori ARM su schede in formato DIP come ( 1 ). Vendono anche JTAG e hanno un po 'di codice demo disponibile per la maggior parte delle schede (gcc), quindi sono molto facili da installare e da utilizzare. La maggior parte delle loro schede è disponibile tramite Sparkfun . Personalmente mi piacciono i micro basati su ARM LPC di Phillips ma qualsiasi cosa di Olimex è buona.

L'AVR32 funzionerà anche per te (non havard). Ho appena iniziato a usarli e sono rimasto molto sorpreso da quanto siano capaci e facili da usare.

Costruire da zero non è davvero un'opzione oggi a meno che non si utilizzi un micro dip a 8 bit o si abbia una configurazione per saldare schede a montaggio superficiale e eseguire il debug di schede per PC digitali complesse.


1

A seconda dei tuoi obiettivi, potresti prendere in considerazione l'idea di costruire la tua CPU con le funzionalità che desideri, invece di utilizzare una CPU esistente. Dai un'occhiata al webring della CPU Homebuilt. C'è anche un appassionato pazzo che ha costruito una CPU dai relè!


1
WOW! Ciò è inquietante! E ne sembra orgoglioso ....
asp316,

È un bel progetto. Alan Turing ha lavorato con hardware basato su relè. La roba di questo ragazzo sembra ben assemblata e costruita in bei armadietti. Buon lavoro!
Kaz,

1

Elica parallasse

L'unico processore a 32 bit attualmente prodotto in un pacchetto DIP è l' elica Parallax . (Lo stesso chip è disponibile anche in pacchetti QFP a 44 pin e QFN a 44 pin molto più piccoli, tutti con 32 pin I / O per uso generico). Oltre a Windows IDE, ci sono anche alcuni strumenti di sviluppo che funzionano su Linux .

Sembra soddisfare tutti i requisiti ad eccezione di "ROM flash incorporata" - invece, l'elica si carica da una EEPROM esterna a 8 pin. (Questa è un'altra cosa da collegare, ma è molto più facile collegare un chip a 8 pin rispetto alla maggior parte dei chip di archiviazione del programma esterno).


0

+1 Per i micro ATmega. Li ottieni con un caricatore di avvio per la programmazione tramite USB, rendendo ancora più facile far funzionare quella prima scheda senza bisogno di un programmatore dedicato. Tuttavia, ti perderai la roba ICE se segui questa strada.


0

Un secondo voto per l'Amtel. Mi piace particolarmente Teensy ++ per prototipi e sperimentazione. L'USB fornisce alimentazione, fornisce un'interfaccia di programmazione e visualizza l'output di debug. Strumenti di sviluppo GNU. Tonnellate di divertimento per circa $ 30.


0

Atmel sarà abbastanza popolare, gli arduinos (mi piacciono i modelli pro di Sparkfun) stessi sono popolari. Troverai MOLTI hobbisti che conoscono e possono rispondere a quasi tutte le domande sull'utilizzo dell'AVR.

Preferisco l'istruzione msp430 impostata su avr e l'istruzione arm impostata sopra le altre. Olimex crea una serie di schede "header" perfette per gli esperimenti. Il micro luminare ne ha alcuni buoni, ma molti dei pin sono consumati dal chip show off le periferiche del chip, ottimo per imparare il chip e le funzionalità, ma alla fine si desidera tagliarli via per accedere all'I / O. Comunque olimex è buono, prova http://www.sparkfun.com e sfoglia le schede di sviluppo, alcuni sono di olimex alcuni sono di sparkfun, una vasta selezione e molti sotto $ 40 o $ 50, quindi puoi provare alcuni per vedere cosa piace. Sto per ordinare un armmite, che se è all'altezza del suo elenco di caratteristiche è probabilmente la migliore scheda controller per i miei scopi.


0

Ho fatto lo stesso sogno, ma non ci sono mai riuscito.

La maggior parte delle raccomandazioni di cui sopra sono per le schede di sviluppo. Dato che hai detto "da zero", suppongo che tu voglia iniziare con un singolo chip del processore DIP e non comprare una scheda di sviluppo. In tal caso, ti consiglio vivamente di continuare con qualcosa come i soliti sospetti che hai elencato nel tuo post. Sono popolari perché funzionano bene per tale compito. È possibile superare la necessità di più linee I / O con multiplexer e demultiplexer.

Supponiamo di aver trovato quella CPU "perfetta" che fa tutto quello che vuoi e ha il numero esatto di linee IO che desideri. Non troverai un punto vicino al supporto che troverai per i processori popolari. Dovresti riuscire a trovare facilmente vecchi libri usati su E-Bay, Amazon, ecc. Solo per pochi centesimi che mostrano come progettare un sistema completo usando quei processori. Per non parlare dei siti Web, dei compilatori e di altre persone che fanno la stessa cosa.

Se vai con qualcos'altro, penso che te ne pentirai profondamente. Trascorrerai più tempo frustrato per la mancanza di supporto di quanto supereresti qualsiasi problema tecnico che hai con quei processori. Inoltre, poiché le persone hanno già progettato interi computer con quei chip, sai che può essere fatto. Con qualsiasi altra cosa, c'è sempre la possibilità che tu colpisca un muro di mattoni.


Inoltre, potresti prendere in considerazione l'opzione di copiare un'architettura esistente come la C64 che è già stata hackerata a morte.

0

Scegli Atmel AVR. Ecco alcune piattaforme di gioco attorno ad esso:

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

0

Preferisco l'istruzione msp430 impostata su avr e l'istruzione arm impostata sopra le altre.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.