Inhaltsverzeichnis:

Robot Brain: Einen Einplatinencomputer an einem Abend bauen - Gunook
Robot Brain: Einen Einplatinencomputer an einem Abend bauen - Gunook

Video: Robot Brain: Einen Einplatinencomputer an einem Abend bauen - Gunook

Video: Robot Brain: Einen Einplatinencomputer an einem Abend bauen - Gunook
Video: Assembler Kurs 3 | Commodore Floppy 8250 2024, November
Anonim
Robot Brain: Baue einen Einplatinencomputer an einem Abend
Robot Brain: Baue einen Einplatinencomputer an einem Abend

Kein Speicher mehr auf Ihrem Picaxe oder Arduino? Aber ein PC ist für den Job übertrieben? Schauen Sie sich diesen Open-Source-Einplatinencomputer an, der in Sprachen wie C, Basic, Forth, Pascal oder Fortran programmiert werden kann. Dieses Board verwendet kostengünstige ICs und verwendet bewusst große Chips, damit es leicht zu löten ist. Es verwendet ein Betriebssystem namens CPM, das auf einem Z80 läuft, das in den späten 1970er bis Mitte der 1980er Jahre populär war. Als Ergebnis steht mindestens ein Gigabyte an Software zur Verfügung, darunter Programmiersprachen, Tabellenkalkulationsprogramme und Textverarbeitungsprogramme. CPM ist ein textbasiertes Betriebssystem und eine einfache Version von DOS. Dieses Board ist perfekt, wenn Sie ein hochkomplexes Roboter- oder Heimautomationssystem bauen und immer wieder feststellen, dass Single-Chip-Computer wie Pics, Arduinos und Atmegas einfach nicht die haben Erinnerung. Moderne Technologie bedeutet, dass Festplatten und Diskettenlaufwerke auf einzelnen Speicherchips existieren können, und Computer, die früher eine dreiphasige Stromversorgung benötigten, können jetzt auf einem batteriebetriebenen Board emuliert werden. Eine Reihe von N8VEM-Boards werden auf der ganzen Welt gebaut von einer Gruppe befreundeter Enthusiasten https://groups.google.com.au/group/n8vemBoards sind ein Open-Source-Design, und Sie können Ihr eigenes Design erstellen oder eines von einem Enthusiasten in den USA zum Selbstkostenpreis (20 USD) kaufen. EPROMs können vorprogrammiert gekauft werden oder Sie können Ihre eigenen programmieren. Lassen Sie uns eines zusammenstellen und sehen, was es tun kann…

Schritt 1: Der Google-Gruppe beitreten

Treten Sie der Google-Gruppe bei
Treten Sie der Google-Gruppe bei

Sie können die Gruppe https://groups.google.com.au/group/n8vem durchsuchen, aber wenn Sie eine Anfrage senden, der Gruppe beizutreten, können Sie zur Diskussion beitragen. Es gibt eine Bibliothek mit Dateien und viele Bilder von Arbeitstafeln. Ich habe der Gruppe vor ein paar Wochen eine Nachricht geschickt und gebeten, beizutreten. Ich habe ein Board bestellt und es kam eine Woche später an, was ziemlich schnell von den USA nach Australien geht. Ich habe nicht viele der Teile, so dass ich die Stückliste von hier https://n8vem.googlegroups.com/web/TestPrototype_BOM_PART-LIST.lst?gda=6DMrhVQAAABRoI8ydU505jGCwGWcAnRLVYTZaCdyJias028kLbDjM7mHeIlRNZNuWyWm5kKNAJr2D8gD3ctlIYKczaAghgqdUwk_6Qi3BU8HCN0q6OYwM6JXPqrFQS5SIfKND7QsaYYQuite ein paar Läden haben die Teile erhalten, einschließlich Digikey, Jameco und Futurlec. Alle Logikchips sind als LS-Teile spezifiziert. LS ist ein bisschen old school und die Chips verbrauchen mehr Strom und laufen warm. Ich habe alle LS-Chips durch die modernere HCT-Reihe ersetzt. HCT sind direkt kompatibel, verbrauchen aber viel weniger Strom. Ebenso habe ich mich für einen CMOS Z80, einen CMOS UART (16C550) und einen CMOS Input/Output Chip (82C55) entschieden. Die Platine kam ungefähr zur gleichen Zeit wie die Teile an, und es war Zeit, mit dem Löten zu beginnen.

Schritt 2: Löten Sie die Platine

Löten Sie die Platine
Löten Sie die Platine

Das Löten war ziemlich einfach und war in anderthalb Stunden erledigt. Ich beschloss, die großen Chips zu sockeln und die kleineren Chips direkt einzulöten. Das größte Problem bestand darin, alle Chipstifte leicht zu biegen, damit sie in die Platine passen. Es gibt einen Echtzeituhr-Chip, den ich nicht brauchte, also habe ich ihn weggelassen. Es kann später hinzugefügt werden. Ich habe auch einen DC-Stecker auf mein Board und einen 5V-Regler gesteckt. Dieses Board ist so effizient, dass es nicht einmal einen Kühlkörper am Regler benötigt. Ich habe es von einer 9-V-Wandwarze laufen lassen. Das Eprom hat ein Etikett über dem Fenster, sonst könnte es gelöscht werden, wenn es in die Sonne geht. Der Schaltplan ist hier https://n8vem.googlegroups.com/web/Printing+TestPrototype- sch.pdf?gda=MaRhCFMAAABRoI8ydU505jGCwGWcAnRLnTJP08ZxIX8TVeSmRPYsxGLTiGlLa5mMzgNTsMYdvKCD3Kr1rUv-XML38vqpBkuybcVT3VtYGKLco-_l-8Az2jQY braucht die Platine wirklich zu verstehen, um dies zu bauen. Aber ich fand es hilfreich, mit meinem ersten Computer zu vergleichen, der 8 RAM-Chips hatte, um 64K zu erhalten. Dieses Board hat ein halbes Megabyte auf einem einzigen Chip. Die CPU ist eine Z80. Der Z80 kam vom 8080-Chip, und der 8080 brachte auch den 8086, 80286 bis 80586 hervor, der Pentium genannt wurde, weil das Patentamt sagte, man könne keine Nummern patentieren. Die 8080-Maschinencode-Anweisungen in einem Z80 existieren noch in modernen PCs.

Schritt 3: Programmieren Sie das Eprom

Programmieren Sie das EPROM
Programmieren Sie das EPROM

Wenn Sie kein Eprom programmieren möchten, können Sie jederzeit ein vorprogrammiertes kaufen, wenn Sie das Board erhalten. Aber ich dachte mir, ich könnte programmierte Eproms in einigen anderen Projekten verwenden, also habe ich einen Programmierer und einen Radiergummi bekommen. Diese kosteten früher Tausende. Aber ich habe den Programmierer für 34 US-Dollar einschließlich Versand abgeholt (Suche nach Eprom-Programmierer bei ebay), und der Radierer kostete 25 US-Dollar inklusive Versand. Der Programmierer wird mit einer eigenen Software geliefert und wenn Sie ihm die Chipnummer mitteilen, erhalten Sie ein Bild davon, wie der Chip eingesetzt und alle Schalter eingestellt werden. Die Eproms sind leer, aber ich habe eine programmiert, sie dann für 5 Minuten gelöscht und neu programmiert, um zu überprüfen, ob alles funktioniert hat. Das gesamte ROM-Image ist hier https://n8vem.googlegroups.com/web/ROMIMAGE.zip?gda =5RkX1kEAAAABRoI8ydU505jGCwGWcAnRLTpwShSoH8O7HvxGhdHl1lXeXmbZQXujx0V3ulhJIKNrhtrFcBixfottYTQUy-Muj7WbB0sVAO2Hmgtm1PE2xNg Es ist ein bisschen wie Ihre XP-Installationsdiskette, außer dass diese in einen Chip geht. Entpacken Sie die Datei, starten Sie den Programmierer, laden Sie die.bin-Datei und programmieren Sie den Chip. Sie können die Daten zurücklesen, um zu überprüfen, ob sie durchlaufen wurden. Der einzige Haken bei diesem Programmierer ist, dass er einen parallelen Port benötigt. Einige neuere PCs haben keine parallele Schnittstelle. Ich habe mir ein Parallelport-Verlängerungskabel selbst gebaut, damit ich nicht ständig hinter den PC greifen musste. Es besteht aus einem IDC D25 Stecker und einer IDC D25 Buchse und 2 Meter Flachbandkabel. Drücken Sie den Stecker mit einem Schraubstock auf den Stecker. Der Willem-Programmierer, den ich gekauft habe, zeigt nicht alle Einstellungen an, die zum Programmieren eines 1-Megabyte-EPROMs erforderlich sind. Auf der linken Seite des Chips unten muss ein Jumper verschoben werden. Die Einstellungen sind jedoch im Handbuch enthalten, das eine Datei namens Willem PCB5.0 Manual.html im Handbuchabschnitt ist. Dies hat viel mehr Details zu den Einstellungen.

Schritt 4: Verdrahten Sie ein serielles Kabel

Verdrahten Sie ein serielles Kabel
Verdrahten Sie ein serielles Kabel

Wenn Sie zu Schritt 2 zurückkehren, sehen Sie das serielle Kabel im Bild. Dies besteht aus drei Teilen: 1) Mein Verlängerungskabel, das von der Rückseite des PCs kommt. Das ist das Regenbogenkabel. Ich habe es genauso gebaut wie das Verlängerungskabel für das Programmierkabel, außer dass dieses einen D9-IDC-Stecker und eine Buchse verwendet. Es ist wirklich praktisch, nicht ständig hinter den Computer greifen zu müssen. Das Verlängerungskabel hat an einem Ende eine Buchse und am anderen einen Stecker.2) Ein Nullmodem. Dies ist eine Verbindung von Frau zu Frau. Ich habe die Schaltung von hier https://www.beyondlogic.org/serial/serial.htm (ein bisschen nach unten scrollen). Im Wesentlichen verbindet ein Nullmodem die Pins 7 und 8, verbindet die Pins 1, 4, 6 und vertauscht die Pins 2 und 3. Die 9-polige Verbindung wird dann zu einer 3-Draht-Verbindung - Masse, Daten senden und Daten empfangen. Es vereinfacht RS232.3) Ein 10-Pin-Header auf der Platine zu einem D9-Stecker. Mehr dazu auf der nächsten Seite. Auf dem Schaltplan wird der Stecker D9 links mit dem PC verbunden. Das Nullmodem ist eine Verbindung von Buchse zu Buchse mit den Anschlüssen in den Steckern. Ich hätte das alles mit viel weniger Steckern verkabeln können, aber ich werde das Nullmodem in anderen Projekten verwenden.

Schritt 5: Verdrahten Sie den seriellen Header

Verdrahten Sie den seriellen Header
Verdrahten Sie den seriellen Header

Der Header auf der Platine ist für ein 9-poliges IDC-Flachbandkabel und dann für einen D9-Stecker ausgelegt. Der einzige Trick besteht darin, dass der 10-Wege-Header für 10-Wege-Flachbandkabel ausgelegt ist. Wenn Sie ein 9-poliges Kabel verwenden, gibt es eine Lücke für den fehlenden Draht. Ich habe eine Nahaufnahme gemacht, um das zu verdeutlichen. Wenn Sie es richtig verdrahten, geht Pin 1 auf der Platine zu Pin 1 auf dem D9. Pin 5 auf dem D9 sollte mit Masse auf der Platine verbunden sein. Wenn diese beiden angeschlossen sind, sind auch die restlichen Drähte in Ordnung.

Draht 1 befindet sich links von beiden Ansichten des Flachbandkabels. Sie können Flachbandkabel mit Farben verwenden, wenn Sie möchten. Das unordentliche Zeug am IDC-Stecker ist Heißkleber. Wahrscheinlich nicht notwendig, aber es macht die Dinge ein bisschen stärker.

Schritt 6: Laden Sie einige Software herunter

Laden Sie einige Software herunter
Laden Sie einige Software herunter

Wir brauchen etwas Software auf dem Board, und bevor wir Programme herunterladen können, brauchen wir ein Modemprogramm. Wir werden xmodem verwenden, einen seit Jahren bestehenden Standard. Xmodem existiert als CPM-Programm, und es existiert in vielen Formen auf PC-Programmen, wie z. B. Hyperterminal. So können wir dies nutzen, um zwischen der alten und der neuen Technologie zu kommunizieren. Holen wir uns die Hex-Datei von xmodem von hier: https://n8vem.googlegroups.com/web/xm50_LB1.zip?gda=O2tYn0EAAAABRoI8ydU505jGCwGWcAnRL1RQ8Aj5bHZQJ6hxcf7VyVbwBih-m421sINv3 files Sie benötigen diejenige, die auf.hex endet. Jetzt müssen wir dies an den Vorstand senden. Für diesen Einplatinencomputer benötigen Sie ein Terminalprogramm, das einen Monitor und eine Tastatur emuliert. Windows hat ein Hyperterminal, das sich normalerweise im Ordner start/programme/accessories versteckt. Oder Sie können das private Hyperterminal verwenden. Oder Teraterm. Oder absolutetelnet. Oder ein dos-basiertes Programm namens conex. Es gibt viele Terminalprogramme, denn so haben Sie sich vor dem Breitband ins Internet eingewählt. Lassen Sie uns das Hyperterminal starten. Es gibt Ihnen drei Bildschirme und Sie müssen alle Einstellungen richtig machen! Sobald Sie dies einmal eingegeben haben, können Sie diese Sitzung speichern und es wird eine kleine Datei mit der Endung.ht erstellt. Wenn Sie dann auf diese Datei klicken (ziehen Sie sie auf den Desktop, damit Sie sie später finden können), wird Hyperterminal mit allen gestartet die richtigen Einstellungen. First screen=Name der Verbindung. Nennen Sie es SBC und wählen Sie ein Symbol. Zweiter Bildschirm. Stellen Sie den COM-Port ein. Mein Computer ist auf dem Setup-Bildschirm standardmäßig auf COM2 eingestellt und muss auf COM1 geändert werden. Fahren Sie fort und wechseln Sie zum Bildschirm COM1. Third. Baudraten usw. Stellen Sie die Bits pro Sekunde auf 9600 ein. 8 Datenbits. Parität zu Keine. Stoppbits auf 1. Und Flusskontrolle auf Keine. Sie müssen wahrscheinlich nur Bits pro Sekunde und Flusskontrolle ändern. Jetzt wird Ihnen der Terminalbildschirm angezeigt. Schließen Sie das Board an den seriellen Port an und schalten Sie es ein und Sie sollten eine Willkommensnachricht erhalten. Wenn nicht, gehen Sie in die Google-Gruppe und bitten Sie um Hilfe. Jetzt ist es Zeit, mit dem Vorstand zu sprechen!

Schritt 7: Xmodem herunterladen

Xmodem herunterladen
Xmodem herunterladen

Wenn Sie den batteriegepufferten RAM-Chip gekauft haben, müssen Sie dies nur einmal tun. Tatsächlich arbeiten andere daran, dies auf den Eprom-Chip zu übertragen, sodass Sie dies möglicherweise in naher Zukunft überhaupt nicht mehr tun müssen. Geben Sie an der Eingabeaufforderung > h. ein

Geben Sie nichts anderes ein. Geben Sie nicht die Eingabetaste ein. Nur ein einzelnes h, entweder Klein- oder Großbuchstaben. Der Cursor bewegt sich eine Zeile nach unten, aber sonst passiert nichts. Klicken Sie nun oben im Hyperterminal-Programm auf das Menü Transfer. Klicken Sie auf Textdatei senden. Verwenden Sie in Dateiname browse, um die Hex-Kopie von xmodem zu finden, die Sie heruntergeladen haben. Es heißt XM50LB1. HEX Möglicherweise müssen Sie die Standardsuche für *.txt in *.hex ändern, um es zu finden. Klicken Sie auf OK, und viele Zahlen werden etwa 30 Sekunden lang über den Bildschirm angezeigt. Warten Sie, bis sie aufhören. Drücken Sie dann erneut den Buchstaben c ohne Eingabe. Warten Sie 2 Sekunden und Sie befinden sich im CPM mit der Eingabeaufforderung A>. Geben Sie nun Folgendes ein und drücken Sie die Eingabetaste: Save 40 b:xm.com Geben Sie nun B: ein und geben Sie ein, um zu Laufwerk B zu wechseln, und Sie erhalten eine B>-Eingabeaufforderung. Geben Sie nun DIR ein und geben Sie ein, um die Dateien aufzulisten. Es gibt drei Laufwerke auf diesem Computer, A, B und F. Sie können sehen, was sich auf jedem befindet, indem Sie den Laufwerksbuchstaben, dann einen Doppelpunkt, dann Enter und dann DIR eingeben. Das Bild zeigt einen Screenshot.

Schritt 8: Besorgen Sie sich etwas Software

Schnapp dir etwas Software
Schnapp dir etwas Software

Es gibt viele CPM-Software da draußen. ZBhttps://www.loomcom.com/cpm/cpm_cdrom/https://www.gaby.de/ecpmlink.htmAber versuchen wir es mit etwas Einfachem. Lassen Sie uns Basic dazu bringen, ein paar Zahlen hinzuzufügen und die Antwort auszudrucken. Dazu benötigen wir eine Kopie von Basic. Es gibt viele Kopien, aber lassen Sie uns ein bisschen tangieren und über den Altair-Simulator sprechen. Dieses kleine Programm ist eine vollständige Emulation einer CPM-Maschine, die auf einem PC läuft. Es verfügt über eine große Softwarebibliothek, die praktischerweise in Portionen in Festplattengröße verpackt ist, und es läuft viel schneller als ein echter CPM-Computer, was beim Kompilieren sehr praktisch ist. Der Simulator ist hier:https://www.schorn.ch/cpm/intro.phpLaden Sie die Software herunter und laden Sie mindestens das CPM2.2-Disk-Image und ungefähr auf der Hälfte der Seite das Basic-Image herunter. Legen Sie sie alle in das gleiche Verzeichnis. Während Sie dort sind, schauen Sie sich alle anderen Sprachen wie C Cobal, Fortran, Pascal an. Wenn Sie das Programm AltairZ80.exe ausführen, erhalten Sie ein DOS-Fenster. Wenn Sie die Datei basic.dsk heruntergeladen haben, können Sie diese mit dem BefehlDo basic im Simulator ausführen. Dann DIR, um die Dateien aufzulisten (die sich auf Laufwerk A: und B: befinden). Wir wollen MBASIC und es befindet sich auf Laufwerk A Verzeichnis, in dem sich das Altair-Programm befindet. Sie können das Gegenteil mit dem R-Befehl tun, der Dateien vom PC auf die Altair-Simulator-Disketten überträgt. Wenn Sie mit CPM spielen möchten, ist dies eine großartige Möglichkeit, dies zu tun, ohne etwas bauen oder kaufen zu müssen. Wenn Sie Dateien auf der virtuellen Festplatte speichern möchten, verlassen Sie den Altair-Simulator mit Strg (Strg-Taste und E). Dies wird beendet und gespeichert. Wenn Sie keine Änderungen speichern möchten, schließen Sie das Fenster einfach mit dem X oben rechts.

Schritt 9: Verschieben Sie die Datei MBASIC. COM in das Board

Verschieben Sie die Datei MBASIC. COM in das Board
Verschieben Sie die Datei MBASIC. COM in das Board

Übertragen wir Basic auf das Board.

Gehen Sie in der Hyperterminal-Sitzung zu Laufwerk B: und geben Sie XM R MBASIC. COM ein und geben Sie dann ein. Dadurch wird das xmodem-Programm gestartet und es wartet auf das Eintreffen einer Datei. Gehen Sie nun zum Hyperterminal-Menü und klicken Sie auf Übertragen und dann auf Datei senden. Suchen Sie nach der Datei MBASIC. COM. Wählen Sie im Protokollabschnitt Xmodem aus. In Hyperterminal ist es das dritte unten. Klicken Sie auf Senden und nach einigen Sekunden wird die Datei jedoch gesendet. Es dauert ungefähr eine Minute. Wenn es funktioniert, sollten Sie die Eingabeaufforderung B> erhalten. Geben Sie DIR ein, um zu überprüfen, ob es vorhanden ist. (Ignoriere alle B> auf dem Bildschirm - ich habe versehentlich die Eingabetaste gedrückt)

Schritt 10: Führen Sie Basic aus und schreiben Sie ein Programm

Führen Sie Basic aus und schreiben Sie ein Programm
Führen Sie Basic aus und schreiben Sie ein Programm

Jetzt können wir Basic auf dem Board ausführen und ein kleines Programm schreiben. ZB mbasic10 A=2020 B=3030 C=A+B40 print "Die Antwort ist: ";CRUNSave "MYPROG", AJetzt haben wir einen funktionierenden Computer.

Schritt 11: Kompilieren Sie ein Programm

Kompilieren Sie ein Programm
Kompilieren Sie ein Programm

Wenn Sie wirklich Lust haben, können Sie ein Programm kompilieren. Dies erzeugt eine.com (das Äquivalent einer.exe auf einem PC). Com-Dateien können als unabhängige Programme ausgeführt werden und können sogar so eingerichtet werden, dass sie beim Start des Boards automatisch ausgeführt werden. Jetzt kann das Board als eigenständiger Controller fungieren, ohne jemals an einen PC angeschlossen zu sein. Das N8VEM-Board kann Programme auf dem Board kompilieren oder Sie können den Altair-Simulator verwenden. Letzteres ist schneller, aber es spielt keine Rolle. Wenn Sie Programme kompilieren möchten, benötigen Sie Folgendes: MBASIC. COM, BRUN. COM L80. COM BCLOAD, BASLIB. REL UND BASCOM. COMC ist etwas anders, aber ich denke, es verwendet immer noch den L80-Linker. Sehen Sie sich den Screenshot an, um zu erfahren, wie Sie ein Programm schreiben, kompilieren und ausführen. Und seid gespannt, denn demnächst gibt es Festplatten, ein Mini-LCD-Display, ein Display, das einen alten VGA-Monitor nutzt https://www.tvterminal.de/index.html#deutsch mit Tastaturschnittstelle, ein Flash-Laufwerk und Eingabe und Ausgangsplatinen!

Empfohlen: