Pico-basierter SRAM-Emulator für Busch Microtronic
-
-
Ach so, wozu das ganze? Damit kann ich mir dann das langsame Kassetten-Interface sparen. Programme können dann entweder auf EEPROM, oder SD-Karte gespeichert und wieder geladen werden - in Sekundenbruchteilen statt Minuten.
Es wäre auch nett, soetwas für andere SBCs zu haben - z.B. den Microprofessor. Mal sehen.
-
GitHub - lambdamikel/picoram2090: A Raspberry Pi Pico (RP2040)-based 2114 SRAM Emulator for the Busch 2090 Microtronic Computer SystemA Raspberry Pi Pico (RP2040)-based 2114 SRAM Emulator for the Busch 2090 Microtronic Computer System - GitHub - lambdamikel/picoram2090: A Raspberry Pi Pico…github.com
-
Update: ohne Level-Shifter wurde mir die Sache dann doch zu heiss. Also verschiedene Sachen ausprobiert. Es war gar nicht so einfach, eine Lösung zu finden... die aktiven Konverter mit MOS-fets oder TXS0108E funktionierten aus verschiedenen Gründen nicht. Am Ende (auch Dank der hervorragenden Mitarbeit von hans !) sind's dann Spannungsteiler geworden: 10k-20k für Address-Leitungen, und 1k-2k für Daten-Leitungen. Auf dem Brot-Brett sieht das natürlich etwas gammelig aus, aber am Ende gibt's noch ne richtige Platine wenn alle Features vorhanden sind. Mehr Details im GitHub oder auf der Hackaday page:
PicoRAM 2090Wouldn't it be nice if I could load and save programs, or even better - full memory dumps! - into my beloved Microtronic 4bit computer system from 1981 in a…hackaday.ioGitHub - lambdamikel/picoram2090: A Raspberry Pi Pico (RP2040)-based 2114 SRAM Emulator for the Busch 2090 Microtronic Computer SystemA Raspberry Pi Pico (RP2040)-based 2114 SRAM Emulator for the Busch 2090 Microtronic Computer System - GitHub - lambdamikel/picoram2090: A Raspberry Pi Pico…github.com -
einfach nur bewundernswert👍wenn es dann noch für andere Einplatinenrechner funktioniert hätte ich großen Bedarf 😊
Beste Grüße
Marco
-
Danke, Marco... mal sehen. Erstmal will ich die Microtronic-Version fertig machen. Dann sehen wir weiter.
Durch Zufall gesehen:
Michael Wessel Turns a Raspberry Pi Pico Into an Add-On for the Four-Bit Busch 2090 Microtronic SBCRaspberry Pi Pico-powered project a first step to bypassing the machine's slow-even-by-1981-standards 14-baud cassette interface.www.hackster.io -
Hackaday hat auch was geschrieben:
Pi Pico Becomes SRAM For 1981 Educational ComputerEver since the Raspberry Pi Pico was introduced in early 2021 we’ve seen the tiny Pi being used for an astonishing variety of applications. It has powered…hackaday.com -
Davon nehme ich auch eins den kleinen Computer müsste ich auch im Lager haben mal suchen..
-
Mit Kanonen auf Spatzen geschossen, Top !
-
Mit Kanonen auf Spatzen geschossen, Top !
Du hast es nicht begriffen - erst lesen, dann Rumsülzen.
Zitat:
"This project aims at realizing a RAM-image based mass storage solution, and maybe some other extensions for the original Microtronic along the way (display, speech, and a banked memory expansion)."
D.h., da kommt noch SD-Karte usw hin. Klar, Du machst das ohne MIcrocontroller in TTL oder gleich mit Transistoren.
-
Doch hab ich schon.
Ich finde nur einen Dualcore ARM CPU neben einen 4bit CPU etwas seltsam.
Aber es darf ja jeder machen was er will.
Viel Spaß weiterhin! -
Ich finde nur einen Dualcore ARM CPU neben einen 4bit CPU etwas seltsam.
Seltsam ist hier vieles... hast Du denn einen Vorschlag, wie man es besser / weniger seltsam machen kann? EInen AVR kaufen der langsamer und teurer ist? Ich habe schon einiges mit AVR / STM32 gemacht:
lambdamikel - Repositorieslambdamikel has 32 repositories available. Follow their code on GitHub.github.comAber ich wollte mit dem Pico auch mal was anderes machen.
Kritik äußern ist gut, aber sie sollte konstruktiv sein. Mich würde ja wirklich interessieren, wie Dein Design hier aussähe - Machbarkeit (Zeit, Kosten) bitte ebenfalls berücksichtigen. Bitte erleuchte uns.
-
Statusbericht: inzwischen kann ich auch SRAM-Zugriffe identifizieren. Das ist beim Microtronic gar nicht so einfach, da ich nicht einfach das Chip Enable vom SRAM abgreifen kann, das SRAM per GPIO and den TMS1600 angeschlossen ist, und die gleichen GPIO ports auch für Tastatur-Matrix-Abfrage als auch für das LED-Anzeige-Multiplexing verwendet werden! D.h., der Bus Sniffer sieht jede Menge Aktivität, und man muss erstmal das Protokoll verstehen um darin die SRAM-Zugriffe zu erkennen.
Ich habe dann den 2. Core des Pico dazu verwendet, ein Op-Code Display zu implementieren. Das wird dann auch noch Mnemonics etc. anzeigen in der nächsten Version.
Da ich jetzt den aktuellen Op-Code und den Wert vom Program Counter (PC) kenne, kann ich jetzt jede Menge lustige Sachen machen. Z.B. kann ich einige der Op-Codes mit neuer Semantik versehen. Alle Op-Codes sind schon belegt im Microtronic, aber es gibt einige die nichts sinnvolles machen, und kein Programm verwendet die. Z.B. "0<x><x>", "kopiere Register <x> in Register <x>". Eine No-Op. Und dann gibt es noch Op-Codes with "addiere 0 zu <x>", "subtrahiere 0 von <x>". Kein Programm verwendet die. Sind also schon 3x16 neue Op-Codes! Ich kann nun z.B. sagen, "OK, 0<x><x> bedeutetet nun Sound-Ausgabe auf dem Pico - spiele Note <x>", oder "Sende Zeichen <x> zum OLED-Display!", usw. Bank-Switching ist mit dieser Method natürlich ebenfall möglich. Für einfach Nebeneffekte ist das ein No-Brainer.
Komplizierter wird es, wenn man mit einem neuen Op-Code etwas berechnen möchte, dass der Microtronic weiterverarbeiten soll. Das Ding ist ja Harvard Architecture, und so kann ich zwar mit dem Pico "Programme schreiben", aber nicht direkt in die 32 4bit Register des Microtronics schreiben. Allerdings kann ich ein Programmsegment injizieren, dass dann Register-Inhalte modifiziert. Also z.B. soetwas wie "0<x><x>" bedeutet "berechne den Sinus von <xx> und schreibe den Wert in Register A bis F". Dann kann ich den Op-Code abfangen, der Pico berechnet den Sinus, und nun kann ich ein Programmsegment injizieren (durch virtuelles Bankswitching), dass die entsp. Sinus-Werte mittles "MOVI <wert> -> <reg>" in die Register schreibt. Der Microtronic führt dieses Programmsegment aus, dadurch werden die Register mit den Pico-berechneten Werten beschrieben, und am Ende gibt's einfach nen Goto zum originalen PC / OP-Code, und das Original-Programm wird wieder eingeblendet und wie gehabt weiter ausgeführt.
Ja, und etwas mit Dampf wie der Pico mit seinen 2 Kernen sind hier schon sehr praktisch! Wenn ich nämlich das DIsplay-Update im gleichen Kern laufen lasse wie die SRAM-Emulation, wird's mit dem Timinig schon sehr sehr eng! Der Pico ist genau das Richtige für das Projekte mit seinen 2 Kernen.
-
Für Englisch-kundige hier auch noch einmal etwas besser erklärt:
I know what you are doing! | Details | Hackaday.io<p><strong>Alright Microtronic, I finally know what you are doing! </strong><br></p> <p>An additional motivation for this project is to <strong>make the…hackaday.io -
So, Boiler Plate Hardware / Prototyp ist aufgebaut. Treiber funktionieren auch alle; an Board sind:
- Mono PWM Sound
- Sprachsynthesizer DECtalk TTS
- SD-Karte
- OLED Display
- 5 Buttons für User Interface
- PAM Audio-Verstärker mit Lautsprecher
Da ich keine IOs mehr am Pico habe, geht nur entweder Sprache oder Sound. Dafür ist ein Schalter vorhanden.
Der 1. Kern emuliert das SRAM, während der 2. Kern sich um Sound, Sprache, Display, SD-Karte kümmert.
Ich bin erleichtert, dass sich die beiden SPI-Geräte miteinander am gleichen SPI0 vertragen (Epson Speech und SD-Karte).
Jetzt muss ich nur noch eine vernünftige Firmware zusammenkloppen.
-
RetroChallenge 2023/10 Log Entry #2 | Details | Hackaday.io<p>Video: <br></p><div class="video-container"><iframe style="width: 500px; height: 281px;" src="//www.youtube.com/embed/vJlBbVwC5bU" frameborder="0"…hackaday.io
-
Die RetroChallenge 2023/10 Regeln verlangen, dass man regelmäßig Updates / Blog-Einträge macht.
Inzwischen ist die Firmware eigentlich fast fertig, und die Co-Prozessor Idee wurde umgesetzt.
Ich habe jetzt Sound, Sprache, OLED Text- und Graphik, und Banked Memory. Speichern und Zurückladen von RAM-Images ebenfalls.
Hier eine Mini-Demo - Eingabe eines (HEX) ASCII Codes über die Microtronic-Tastatur in Register 0, 1, und dann Ausgabe dieser auf dem OLED als ASCII, und zusätzlich Sprachausgabe über DECtalk (Epson S1V30120).
https://youtube.com/shorts/Jtdv2HehZYk?feature=share
RetroChallenge 2023/10 Log Entry #3 | Details | Hackaday.io<p>The firmware is almost finished by now! <br>The co-processor idea has matured; by now, I am using the following "vacuous" op-codes to implement…hackaday.io -
Demo der Co-Prozessor / "IO-Erweiterung" Funktion: Graphic, Text, Sprache!
Ohne 2. Kern geht soetwas nicht. Der 1. Kern macht SRAM-Emulation, der 2. Co-Prozessor / IO-Erweiterung.
Das muss jetzt nur noch als PCB, dann ist es eigentlich fertig. Nächtes Projekt - das ganze für den Microprofessor. Das interessiert vielleicht doch mehr Leute als nur mich
Nun, DOOM spielen kann ich damit mit, aber immerhin!
-
Jetzt mit batteriegepufferter Echtzeituhr! Der Microtronic hat ja ebenfalls eine eingebautet Echtzeituhr. Und einen OP-code mit dem man die Zeit lesen kann: F06 (load time). Die Zeit erscheint in den Registern A-F. Nachteil: keine Batterie, muss man also jedesmal beim Einschalten manuell stellen die Uhr (PGM 3). Das ist natürlich doof. Daher - PicoRAM 2090 to the rescue! Das hat jetzt eine DS3231.
PicoRAM fängt den F06 (load time)-Befehl ab, und lädt dann per Bank Switching die "echte Zeit" in die A-F Register (von der DS3231).
Video:
RetroChallenge 2023/10 Log Entry #5 - DS3231 for Microtronic | Details | Hackaday.io<p>In my original RetroChallenge 2023/10 participation announcement, I promised a battery backed-up Real Time Clock (RTC) for the Microtronic. Well, here it…hackaday.ioDamit habe ich jetzt alles implementiert, was ich für meine RetroChallenge 2023/10-Teilnahme angekündigt hatte. Jetzt fehlt nur noch ein Demo-Video am Ende, wo alles noch einmal demonstriert wird.
-
Und hier ist das Abschluss-Demo-Video für die RetroChallenge - full feature demonstration of PicoRAM 2090:
https://youtu.be/U6LDjYz8LTk
Im nächsten Monat mache ich dann die Platine.
RetroChallenge 2023/10 Log Entry #6 - Final Wrap-Up Demo Video | Details | Hackaday.io<p>I achieved everything I wanted for this year's RetroChallenge 2023/10 - here is a final wrap up demo video:</p> <div class="video-container">…hackaday.io -
Glückwunsch zum erfolgreichen Projekt!
-
Glückwunsch zum erfolgreichen Projekt!
Danke, matze79
Ich hoffe, es wurde jetzt etwas klarer warum der Pico eine gute Platform dafür ist!
Ich musste den Pico sogar auf 250 Mhz übertakten... für einige Grafikdemos (Display-Update braucht ja etwas Zeit...) kam der Pico sonst nicht hinterher. Ich kann den Microtronic ja nicht "anhalten". Wenn der Pico also nicht schnell genug reagiert, verpasst er Instruktionen auf dem Bus. Das Problem trat nur für den 2. Kern auf, der die Erweiterungen und Display etc. macht. Der 1. Kern, SRAM-Emulation, ging auch ohne Probleme mit der Standard-Frequenz vom Pico.
-
verkaufst Du die Teile oder ist das nur zum Spass ?
-
Ich mach die Platine fertig und stelle dann alles auf GitHub, wie mit meinen anderen Projekten auch. Das kann dann nachbauen, wer will. Ich mache alle Through Hole, damit es einfach nachzubauen ist. Wer's nicht selbst aufbauen kann, dem kann ich auch was zusammenlöten. Mit mehr als 5 Bestellungen rechne ich eh nicht
-
ich nehm auf jeden Fall einen Bausatz Sitz scheinbar sogar in Deiner Nähe
-
ich nehm auf jeden Fall einen Bausatz Sitz scheinbar sogar in Deiner Nähe
Schön! Das ist immer eine gute Motivation, in die Pötte zu kommen wenn's noch mehr Interessenten gibt. Damit habe ich schon 3! (Bin nicht mehr in Hamburg, aber ursprünglich, falls Du das meinst?) Es sollte aber schon noch vor Weihnachten fertig werden.
-
Update: inzwischen ist die erste Version der Platine in Produktion - bin gespannt! Habe Express-Service bei JLCPC gewählt. Ende der Woche sollte ich die also schon in Händen halten.
-
Inzwischen ist die Rev. 1 der Platine fertig. Ein paar Korrekturen sind erforderlich, aber im Großen und Ganzen funktioniert es wie es soll.
-
Es ist auch immer wieder interessant, was "man" für blöde Fehler macht... z.B. die 3. Dimension vergessen. So führte der ursprünglich vorgesehene Ein/Aus-Schalter doch zur Voll-Blockade des USB-Ports vom Pico.
Hier jetzt die hoffentlich letzte Version der Platine:
-
PicoRAM 2090 ist fertig. Jetzt kommt noch ein abschließendes Demo-Video, und dann lade ich alles auf GitHub hoch.