Welcher Mikroprozessor zum Experimentieren?

Ich hege eine geheime Fantasie (oops, nicht mehr so ​​geheim), einen einfachen Computer von Grund auf neu zu bauen. Ich suche für den Anfang einen einfach zu bedienenden Mikroprozessor. Ich kenne die üblichen Verdächtigen wie 6502, 68000, 8086, Z80 usw. Aber ich frage mich, ob es da draußen etwas Besseres gibt. Hier meine Wunschliste:

Haben müssen:

  • Niedrige Taktrate (4-25 MHz)
  • Nicht mehr als 40-60 Pins, vorzugsweise in DIP-Konfiguration
  • Fähigkeit, etwa 64 KB Speicher zu adressieren, aber bis zu 1 MB oder so wären gut
  • Gespeicherte Programmarchitektur (kein Nur-Lese-Befehlsraum) (Bearbeiten: Dies schließt die meisten Low-End-Mikrocontroller wie PIC und AVR aus)
  • Flaches Speichermodell, nicht in Banken unterteilt oder segmentiert wie der 8086

Wünschenswert, aber nicht zwingend erforderlich:

  • RISCy-Befehlssatz (Load-Store)
  • Universalregister
  • Sortiment von TTL-I/O-Pins
  • Eingebautes Flash-ROM

Welchen Mikroprozessor oder Mikrocontroller würden Sie vorschlagen, der relativ einfach zu verdrahten ist und für den die ersten ROM-Routinen geschrieben werden?

Mein Ziel ist es, ein einfaches Forth- (oder ähnliches) System zum Laufen zu bringen. Nur um zu sagen, dass ich es getan habe.

Bearbeiten: Nach ein wenig Recherche denke ich, dass so etwas wie der ARM7 zu mir passen würde. Es kommt mit einer nicht unerheblichen Menge an Flash und SRAM zum Spielen – manchmal bis zu 256K Flash und 64K SRAM – zusammen mit digitalen I/O, ADC, seriellen I/O und mehr.

Hier ist eines: das STR711 ARM-Entwicklungsboard .

Nicht wirklich programmierbezogen. Klingt eher nach einer Hardware-Frage (dh superuser.com-Material).
Ja, aber nur ein Programmierer-Publikum kann richtig antworten
Möchten Sie, dass das Gerät Tastatur, Maus und Display alleine verwaltet, oder werden Sie nur eine serielle Verbindung herstellen?
Serie wäre für mich in Ordnung.
STR711 ARM ist nicht wirklich dip
Dies ist entweder keine elektrotechnische Frage oder nur eine Einkaufsfrage. Wie auch immer, es scheint nicht gut zu dieser Seite zu passen.

Antworten (15)

Ich stimme zu, dass ARM der richtige Weg für 32-Bit-Mikrocontroller ist. ARM ist allgegenwärtig und seine Assemblersprache kann in einer Vielzahl von Mikrocontroller-Familien verwendet werden. ARM wird auch von der GCC-Toolchain gut unterstützt. Die ARM7TDMI-Chiparchitektur hat den 32-Bit-MCU-Bereich in den letzten 5 Jahren dominiert, und der ARM Cortex-M3 ist der aufkommende Ersatz. Der Cortex-M3 hat eine Harvard-Architektur (getrennte Befehls- und Datenadressräume), aber ich denke nicht, dass dies eine Einschränkung darstellt.

Micromint hat einen soliden Ruf und bietet ein Cortex-M3-Board mit konfigurierbaren Optionen zu einem anständigen Preis an. Wenn Sie jedoch wirklich eine DIP-Konfiguration benötigen, hatte ich Erfolg mit dem mbed

Als nächstes geht es um Sprachen. Sie haben FORTH erwähnt. Ich empfehle auch Python-on-a-Chip und eLua als leistungsstarke, einfach zu erlernende Sprachen, die auf Zielplattformen dieser Größe funktionieren. eLua ist weiter entwickelt, hat aber größere Ressourcenanforderungen als Python-on-a-Chip. Vollständige Offenlegung: Ich bin der Autor der PyMite-VM, die in Python-on-a-Chip verwendet wird. Wenn Ihr Ziel also darin besteht, Ihre eigene Sprache zu erstellen, verstehe ich die Freude an dieser Übung voll und ganz.

ARM hat separate Befehls- und Datenbusse , der Adressraum ist vereinheitlicht (dh Sie können Befehle lesen und bei Bedarf Daten ausführen). Ich würde auch empfehlen, sich die Low-End-Cortex-Mx-Chips von NXP anzusehen – sehen Sie sich LPCXpresso an.

Für kleine uC-Sachen Arduino , billig, lustig, gute Community

Für Maschinen der ARM-Klasse ist der billigste wahrscheinlich der Sheeva-Stecker. Sie stellen eine erstaunliche vollständige Maschine her, die in ein Wandnetzteil und eine etwas große Einplatinenmaschine mit viel mehr E / A eingebaut ist

Oder es gibt ein Beagle-Board , das mehr auf Audio-/Videoleistung abzielt.

Alle von ihnen laufen unter Linux, sodass Sie über eine große Auswahl an Entwicklungssoftware verfügen

Total. Holen Sie sich das Fuzebox-Kit, bauen Sie es zusammen und hacken Sie kleine Spiele (bisher sind sie alle kostenlose Software, glaube ich) für Ihren Fernseher.

MSP430 von Texas Instruments hat einen sehr geringen Stromverbrauch, einen kleinen, aber sehr vernünftigen Befehlssatz (im Gegensatz zu PIC), Open-Source-Tools und ein DIP-Format in seiner Wertlinie. Sie haben erst kürzlich ein Starterkit für 4,30 $ (ja, das sind vier Dollar dreißig Cent, kostenloser Versand) herausgebracht, das eine USB-Schnittstelle zum Programmieren und Debuggen und zwei DIP-Chips zum Spielen enthält. Sieh es dir an .

Das ist ziemlich toll! Ich habe diese Seite mit einem Lesezeichen versehen. :)

Sie könnten sich ein FPGA besorgen und das Ganze darauf nachbauen – es ist kein Prozessor erforderlich.

Ich war schon einmal versucht, einen einfachen MIPS-Computer zu bauen. Ich habe ein grundlegendes CPU-Design, aber es wäre, gelinde gesagt, schwierig, Wire-Wrap oder einen anderen Prototypen zu erstellen.

Das ist eine interessante Idee. Gibt es Quellen für Referenzprozessordesigns, die in ein FPGA programmiert werden können?
Die meisten FPGA-Devkits werden entweder mit einem kostenlosen oder lizenzierten CPU-Design geliefert. Manchmal sogar mit einem begleitenden RTOS.
Ein PDP-1 wäre machbar. Es ist aus modularen Komponenten aufgebaut. Die Logikdiagramme für jede Komponente sind im Digital Logic Handbook, 1969, veröffentlicht (meins kam heute mit der Post!).

Schauen Sie sich die ATmega-Mikrocontroller von Atmel an, sie haben alles, was Sie sich wünschen, außer der Fähigkeit, Code aus dem RAM auszuführen, und sie sind sehr einfach einzurichten.

Einige kleine 32-Bit-ARM-Prozessoren wie ARM7TDMI wären eine Alternative, aber diese sind nicht in DIP-Paketen enthalten. Gleiches gilt für Renesas R8C/M16C Mikrocontroller.

Alle AVRs verwenden einen schreibgeschützten Befehlsraum, nicht wahr? Ich muss in der Lage sein, aus RAM heraus auszuführen, damit meine Programme Programme schreiben können.
Ja, sieht so aus, als hättest du recht. Als ich vor 25 Jahren mit Forth gespielt habe, habe ich jedoch eine Thread-Code-Implementierung verwendet, die mit AVR möglich wäre.
Ein ARM Cortex M0 in einem 28-Pin-DIP-Gehäuse wurde gesichtet: nxp.com/products/microcontrollers/cortex_m0/lpc1100_x_l/…

Klingt nach einem tollen Projekt! Ich habe in den 70er Jahren einen mit einem 8008-Chip und ein bisschen RAM und ROM gemacht. Ich habe es so programmiert, dass es eine kleine Melodie spielt, wenn die Lautsprecher an den I/O-Port angeschlossen sind. Ein Teil der Speicherschaltung umfasste einen von einem Kondensator gesteuerten Timer-Chip. Ich habe einen zusätzlichen Kondensator angelötet, der, wenn er in Kontakt geschoben wurde, das Ganze um 1000 verlangsamt hat. Dann habe ich ihn im Unterricht als Demonstrator verwendet. Zuerst ließ ich es langsam laufen und die Schüler konnten hören, wie die Lautsprecher klick, klick machten. Dann habe ich den Kondensator abgehängt, und sie haben die Melodie gehört. Ich habe versucht, ihnen beizubringen, wie Computer eine Anweisung beenden, bevor sie mit der nächsten beginnen.

Sehen Sie sich OLIMEX an , sie haben Entwicklungsboards für die meisten modernen Mikrocontroller und wenn Sie wirklich DIP wollen, haben sie ARM-Prozessoren auf Boards im DIP-ähnlichen Format ( 1 ). Sie verkaufen auch JTAGs und haben Demo-Code für die meisten Boards (gcc) zur Verfügung, so dass sie sehr einfach zum Laufen zu bringen sind. Die meisten ihrer Boards sind über Sparkfun erhältlich . Ich persönlich mag die Phillips LPC ARM-basierten Mikros, aber alles von Olimex ist gut.

Der AVR32 wird auch für Sie arbeiten (non havard). Ich habe erst vor kurzem angefangen, sie zu benutzen, und war sehr überrascht, wie leistungsfähig und einfach zu bedienen sie sind.

Von Grund auf neu zu bauen ist heute nicht wirklich eine Option, es sei denn, Sie verwenden ein 8-Bit-Dip-Mikro oder haben ein Setup zum Löten von oberflächenmontierten Platinen und zum Debuggen komplexer digitaler PC-Platinen.

Abhängig von Ihren Zielen können Sie erwägen, Ihre eigene CPU mit den gewünschten Funktionen zu bauen, anstatt eine vorhandene CPU zu verwenden. Sehen Sie sich den Webring für selbstgebaute CPUs an. Es gibt sogar einen verrückten Enthusiasten , der eine CPU aus Relais gebaut hat!

BEEINDRUCKEND! Das ist gruselig! Und er sieht stolz darauf aus....
Es ist ein schönes Projekt. Alan Turing arbeitete mit Relais-basierter Hardware. Das Relais-Zeug dieser Jungs sieht ordentlich zusammengebaut und in schönen Schränken eingebaut aus. Gut gemacht!

Parallax-Propeller

Der einzige 32-Bit-Prozessor, der derzeit in einem DIP-Paket hergestellt wird, ist der Parallax-Propeller . (Derselbe Chip ist auch in viel kleineren 44-Pin-QFP- und 44-Pin-QFN-Gehäusen erhältlich, alle mit 32 Allzweck-I/O-Pins). Neben der Windows-IDE gibt es dafür auch ein paar Entwicklungstools, die unter Linux laufen .

Es scheint alle Ihre Anforderungen zu erfüllen, mit Ausnahme von "Built-in Flash ROM" - stattdessen bootet der Propeller von einem externen 8-Pin-EEPROM. (Das ist noch etwas zu verkabeln, aber es ist viel einfacher, einen 8-Pin-Chip zu verkabeln als die meisten externen Programmspeicherchips).

+1 Für die ATmega-Mikros. Sie erhalten sie mit einem Bootloader zum Programmieren über USB – was es noch einfacher macht, das erste Board zum Laufen zu bringen, ohne dass ein dedizierter Programmierer benötigt wird. Sie werden jedoch das ICE-Zeug verpassen, wenn Sie diese Route wählen.

Eine zweite Stimme für die Amtel. Ich mag besonders das teensy++ für Prototypen und Experimente. Der USB liefert Strom, bietet eine Programmierschnittstelle und zeigt Debug-Ausgaben an. GNU-Entwicklungswerkzeuge. Jede Menge Spaß für etwa 30 $.

Atmel wird ziemlich beliebt sein, die Arduinos (ich mag die Pro-Modelle bei Sparkfun) selbst sind beliebt. Sie werden VIELE Bastler finden, die mit den meisten Fragen zur Verwendung des AVR vertraut sind und diese beantworten können.

Ich bevorzuge den msp430-Befehlssatz gegenüber dem avr und den Arm-Befehlssatz über den anderen. Olimex stellt eine Reihe von "Header"-Boards her, die sich perfekt für Experimente eignen. Luminary Micro hat einige gute, aber viele der Pins werden von Chip-Peripheriegeräten verbraucht, die gut zum Erlernen des Chips und der Funktionen sind, aber Sie möchten sie schließlich wegschneiden, um an die E / A zu gelangen. Wie auch immer, Olimex ist gut, versuchen Sie http://www.sparkfun.com und stöbern Sie durch die Entwicklungsboards, einige sind von Olimex, andere von Sparkfun, eine große Auswahl und viele unter 40 oder 50 US-Dollar, also können Sie ein paar ausprobieren, um zu sehen, was Ihnen gefällt mögen. Ich bin dabei, ein Armmite zu bestellen, das, wenn es seiner Feature-Liste gerecht wird, wahrscheinlich das beste Controller-Board für meine Zwecke ist.

Ich hatte den gleichen Traum, bin nur nie wirklich dazu gekommen.

Die meisten der oben genannten Empfehlungen gelten für Entwicklerboards. Da Sie "von Grund auf neu" sagten, würde ich davon ausgehen, dass Sie mit einem einzelnen DIP-Prozessorchip beginnen und kein Entwicklungsboard kaufen möchten. In diesem Fall würde ich Ihnen sehr, sehr empfehlen, sich an so etwas wie die üblichen Verdächtigen zu halten, die Sie in Ihrem Beitrag aufgeführt haben. Sie sind beliebt, weil sie für eine solche Aufgabe gut geeignet sind. Sie können den Bedarf an mehr E/A-Leitungen mit Multiplexern und Demultiplexern überwinden.

Angenommen, Sie haben diese "perfekte" CPU gefunden, die alles tut, was Sie wollen, und die genaue Anzahl von IO-Leitungen hat, die Sie wollen. Sie werden nicht annähernd die Unterstützung finden, die Sie für die beliebten Prozessoren finden. Sie sollten sehr leicht in der Lage sein, alte gebrauchte Bücher bei E-Bay, Amazon usw. für nur ein paar Cent zu finden, die zeigen, wie man ein komplettes System mit diesen Prozessoren entwirft. Ganz zu schweigen von Websites, Compilern und anderen Leuten, die dasselbe tun.

Wenn Sie sich für etwas anderes entscheiden, werden Sie es meiner Meinung nach zutiefst bereuen. Sie verbringen mehr Zeit damit, frustriert über mangelnden Support zu sein, als mit der Bewältigung technischer Probleme, die Sie mit diesen Prozessoren haben. Und da Leute bereits ganze Computer mit diesen Chips entworfen haben, wissen Sie, dass es machbar ist. Bei allem anderen besteht immer die Möglichkeit, dass Sie gegen eine Mauer stoßen.

Darüber hinaus sollten Sie die Möglichkeit in Betracht ziehen, eine vorhandene Architektur wie den C64 zu kopieren, der bereits zu Tode gehackt wurde.

Wählen Sie Atmel AVR. Hier sind einige Spielplattformen drumherum:

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

Ich bevorzuge den msp430-Befehlssatz gegenüber dem avr und den Arm-Befehlssatz über den anderen.