Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Projektidee: ESP32-basiertes Modul für WiFi+ROM/Disk/HDD-Emulation etc. » Themenansicht

Autor Thread - Seiten: -1-
000
20.06.2024, 19:21 Uhr
Dresdenboy



Hallo zusammen,

beim Grübeln, wie ich eine Entwicklung von ASM-Programmen auf dem BIC effizient angehen könnte (Crossassembler, instant assemble&run, debugging, etc.) dachte ich mir, dass hierfür möglicherweise ein Modul mit einem ESP32-µC darauf der ideale kostengünstige u. dennoch leistungsfähige Ansatz wäre.

Beim Einschalten könnte sich der µC als alles mögliche ausgeben, u.a. auch ein ROM mit direkter Code-Ausführung (hier müsste der ESP Adressen einlesen und Daten liefern.. das könnt ihr euch ja alles denken) oder ein FDC mit Disk-Image zum Laden versch. Software.

Die Daten, die hier benötigt werden, würden über eine WiFi-Kommunikation mit einem kleinen Server bereitgestellt werden oder im ESP32-Flash-Speicher vorliegen.

Es sind natürlich noch ein paar Fragen zu klären (TTL-Pegel-Umsetzer, nutzbare Pins, braucht man Multiplexing, Stromversorgung beim Einschalten, Bootvorgang, etc.).

Aber erst einmal die Frage an die Experten: Klingt das machbar?

P.S.: Den Atmel AVR schließe ich hier aus - sowohl wegen Leistung, als auch Konnektivität. Ich kenne ihn übrigens noch von einem Anti-Schnarch-Kissen-Projekt in einem Startup an der Uni Rostock vor 20 Jahren (Oh Gott, wie die Zeit vergeht!), wo ich iFFT u. a. darauf implementiert habe.
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...

Dieser Beitrag wurde am 20.06.2024 um 19:26 Uhr von Dresdenboy editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
21.06.2024, 10:12 Uhr
HeikoS

Avatar von HeikoS

Hast Du schon mal einen ESP als RAM/ROM für einen 8-Bitter programmiert ? Ist eine gute Idee, geht das vom Timing her beim ESP? Die sind ja sehr schnell.

Grüße, Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
21.06.2024, 12:21 Uhr
Dresdenboy



@Heiko:
In diesem Kontext habe ich den ESP32 noch nicht genutzt, aber ein paar ESP-Sachen (8266 und 32) habe ich schon in der Vergangenheit gemacht und hier auch einige rumliegen. Da ich mir aus Democoding-Gründen auch schonmal den Xtensa-Befehlssatz (und auch RISC-V) interessehalber angeschaut habe, würde ich mich auch nicht vor Routinen mit genauem Zeitverhalten fürchten, falls man da mit C und einem Compiler dazwischen an Grenzen stößt.

Andererseits sind die Chips, wie du schon sagst, sehr schnell. Meine Recherchen haben ergeben, dass es ESP-Module gibt, wo die GPIOs im zweistelligen MHz-Bereich geschaltet werden können. Und selbst bei Modulen mit Kostenoptimierung oder was auch immer an der Stelle sind noch mehrere MHz möglich, was für den Zweck immer noch reichen könnte.

Und da auf dem µC kein OS läuft, hätte man alles unter Kontrolle oder sollte die verbleibenden Unzulänglichkeiten mit wenig externer Logik lösbar sein - von der eh notwendigen 3.3V<->5V-Geschichte mal abgesehen.

Ich habe auch nach schon existierenden ähnlichen Projekten für andere Computer geschaut, und z.B. diese hier gefunden:
Auf ARM Cortex-Basis für C64:
https://github.com/SensoriumEmbedded/TeensyROM
2 ESP32-basierte Projekte für Apple II:
https://www.applefritter.com/content/esp32-softcard-apple-ii
https://www.applefritter.com/content/apple2idiot-card-esp32
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...

Dieser Beitrag wurde am 21.06.2024 um 12:23 Uhr von Dresdenboy editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
21.06.2024, 17:05 Uhr
Ordoban



So vom Gefühl her würde ich sagen dass der ESP32 das schaffen müsste. 2 x 270MHz ist schon flott, auch wenn der nicht immer bei jedem Takt einen Befehl macht.

Ob die Anzahl der GPIO's ausreicht, hängt vom ESP-Modell und vom BIC-Bus ab. Grob durchgezählt komme ich auf 32 nutzbare IO's bei S3-WROOM ohne PRAM. Es gibt da aber zum Teil fiese Fallen mit GPIO-Pins, die für Spezialaufgaben reserviert sind.

Die ESP's sind inoffiziell 5V-Tolerant. Das Thema hatten wir bei dem VGA-Konverter schonmal:
https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=21380 Beitrag 212

Zitat:
MarioG77 schrieb
Hi Sven,

Viele Diskussionen, aber ja...
https://ba0sh1.com/2016/08/03/is-esp8266-io-really-5v-tolerant/

Der CEO von Espressif hat es selbst gesagt. Weil Bastler aber 5V auf den Spannungseingang gejagt haben, hat man diese Aussage wohl aus den Datenblättern entfernt.

Meiner hat es bisher überlebt.
...



Stromversorgung beim Einschalten jaaaaaa, gibst Spannung drauf, und dann läuft der los...
Bootvorgang Bootvorgang vom BIC könnte interessant werden. Der ESP braucht so 1-3 Sekunden zum Starten. In der Zeit will der BIC bestimmt auch schon sein ROM haben. Eventuell müsste der ESP das Reset-Signal vom BIC halten, bis der fertig mit booten ist.
--
Gruß
Stefan

Dieser Beitrag wurde am 21.06.2024 um 17:08 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
23.06.2024, 15:49 Uhr
Dresdenboy



Ich habe auch mal weiter recherchiert, auf beiden Seiten.

Die Startup-Zeit eines ESP32 hängt von vielen Faktoren, aber auch oft eher generösen Einstellungen ab. Je nachdem könnten es auch 0,5 s oder weniger sein.

Ich lese mich derweil in versch. Datenblätter ein, natürlich TGL 32721, aber auch zum TXS0108E (8b bidirektionaler Pegelumsetzer: Link)

Mit den Pins (v.a. alle möglichen Steuersignale +16b Adressen und 8b Daten) wird es aber dennoch eng. Evtl. können hier ein Multiplexer-Chip und ein paar Latches helfen. Aber da lasse ich mich gern beraten bzw. finde entspr. Lösungen irgendwo.
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...

Dieser Beitrag wurde am 23.06.2024 um 15:50 Uhr von Dresdenboy editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
23.06.2024, 17:10 Uhr
Ordoban



Es ist ja schon seit einiger Zeit der ESP32P4 angekündigt. Der soll viel mehr IO's haben und noch schnellere CPU's. Wenn der raus kommt werde ich so etwas ähnliches für MMS16 planen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
24.06.2024, 08:41 Uhr
A.S.



Moin, oder mal hier schauen

https://github.com/robinhedwards/A8PicoCart

Hier hat man einen Raspberry Pico (China Clone mit mehr Anschlüssen & mehr Speicher als der "Normale" glaube ich) für ein ROM Modul herangezogen. Geschwindigkeit und Anschlüsse des Pico genügen.

Wlan fehlt bei diesem Model, aber vielleicht kann man im ersten Schritt auch erst einmal darauf verzichten. Im Gegenzug bietet dieser Pico 16MB Speicher der über USB "beladen" werden kann. Und allg. ist der Aufbau & Teilebedarf mehr als überschaubar.

VG
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
24.06.2024, 16:42 Uhr
Dresdenboy




Zitat:
A.S. schrieb
Moin, oder mal hier schauen

https://github.com/robinhedwards/A8PicoCart

Hier hat man einen Raspberry Pico (China Clone mit mehr Anschlüssen & mehr Speicher als der "Normale" glaube ich) für ein ROM Modul herangezogen. Geschwindigkeit und Anschlüsse des Pico genügen.

Wlan fehlt bei diesem Model, aber vielleicht kann man im ersten Schritt auch erst einmal darauf verzichten. Im Gegenzug bietet dieser Pico 16MB Speicher der über USB "beladen" werden kann. Und allg. ist der Aufbau & Teilebedarf mehr als überschaubar.


Hi,

ja, so ein Multi-ROM-Modul hatte ich letztens auch - ich glaube für C64 - mal entdeckt und auch andere nette Geräte, wie z.B. Tapuino. Aber mein Hauptanwendungsfall soll gerade die live-Austauschbarkeit von ROM-Inhalten (oder respektive emulierten Disketten, RAM-Inhalten oder so) sein, womit ich einen schnellen Build/Assemble - Upload - Run - Zyklus ggf. auch mit Remote-Debugging-Möglichkeit hinbekommen möchte.

Von solchen Projekten ohne WiFi kann man sicher aber auch etwas lernen - z.B. ECU-Fähigkeiten, Teilschaltungen, Implementierungen. Und natürlich lässt sich andere Funktionalität (Spielesammlung usw. im Modul) auch nicht so schwer implementieren, sofern das Grundgerüst einmal steht.


Zitat:
Ordoban schrieb
Ob die Anzahl der GPIO's ausreicht, hängt vom ESP-Modell und vom BIC-Bus ab. Grob durchgezählt komme ich auf 32 nutzbare IO's bei S3-WROOM ohne PRAM. Es gibt da aber zum Teil fiese Fallen mit GPIO-Pins, die für Spezialaufgaben reserviert sind.

[...]

Es ist ja schon seit einiger Zeit der ESP32P4 angekündigt. Der soll viel mehr IO's haben und noch schnellere CPU's. Wenn der raus kommt werde ich so etwas ähnliches für MMS16 planen.


Der S3 soll bis 45 nutzbare GPIOs haben, wovon wohl einige für's SPI genutzt werden. Hattest du das so ähnlich wie er hier gezählt? https://forum.espuino.de/t/die-gpios-des-esp32-welche-eignen-sich-fuer-was/684.

Auf dem BIC-Bus habe ich 43 Signale gezählt. Ich kann erst einmal ein Mapping machen und schauen, was schonmal geht.

Zwischendurch hatte ich auch einen lustigen Blitzgedanken: Warum nicht 2 ESPs nehmen (dann gingen auch etwas kleinere)? Natürlich müsste man die in einer Art Master-Slave-Konfiguration sich untereinander abstimmen lassen, aber theoretisch sollte es gehen.

Der P4 kann dann gern irgendwann als Erlöser auftreten. Bis das Ganze soweit ausgereift ist, wird es diese ESP-Variante günstig in großen Mengen geben.
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...

Dieser Beitrag wurde am 24.06.2024 um 16:52 Uhr von Dresdenboy editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
24.06.2024, 20:23 Uhr
Dresdenboy



Für die GPIO-Erweiterung braucht man offenbar addressable latches, die gäbe es z.B. als 1x8 (74xxx259) oder 2x4 bit (74xxx256) Varianten mit 5 bzw. 4 nötigen Pins für die Ansteuerung.
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
24.06.2024, 20:46 Uhr
Ordoban



Ich meine nicht den nackigen S3-Chip oder ein Prototypboard, sondern ein WROOM-Modul.
GPIO's für Modelle mit SPI-RAM: 4,5,6,7,15,16,17,18,8,3,9,10,11,12,13,14,21,47,48,45,38,39,40,41,42,44,43,2,1 = 29
Zusätzlich für Modelle ohne SPI-RAM: + 35,36,37 = 32

Ich bin gerade für den VGA-Konverter das Wlan-Streaming zu realisieren. Es ist zum verzweifeln. Sobald das Wlan etwas macht, zerkloppt das den Sampleprozess. Der verpasst dann Interrupts vom Zeilenanfang. Also: Wlan und zeitkritische Dinge auf dem ESP32 gleichzeitig => ganz große Grütze.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
24.06.2024, 21:27 Uhr
Ordoban



Als GPIO-Erweiterung lässt sich so ziemlich alles nutzen was D-Flipflops und Tree-State hat. Das Problem dabei ist die Geschwindigkeit.

Eine Frage wäre, ob die 43 Signale vom BIC-Bus wirklich alle gebraucht werden. Ich kenne den BIC nicht, aber ich stelle mir das als ein generischer Z80-Bus vor: 16 Adressen, 8 Daten, eine Handvoll Steuersignale. Braucht man wirklich alle Steuersignale? Sicher nicht. Alle 16 Adresssignale? Kommt auf die Größe des Adressfensters an. Vielleicht 10? Der Rest dann über TTL-Logik als CS-Signal.

Ich verstehe die Überlegung, warum ein reiner ROM-Emulator nicht das Ziel ist. Einen großen µC könnte man auch als IO-Emulator oder als Debugger nehmen.

Ich bin mir nicht mehr so sicher ob der ESP32 hierfür das Richtige ist. Eventuell wäre ein STM32 passender.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
24.06.2024, 21:34 Uhr
Dresdenboy




Zitat:
Ordoban schrieb
Ich meine nicht den nackigen S3-Chip oder ein Prototypboard, sondern ein WROOM-Modul.
GPIO's für Modelle mit SPI-RAM: 4,5,6,7,15,16,17,18,8,3,9,10,11,12,13,14,21,47,48,45,38,39,40,41,42,44,43,2,1 = 29
Zusätzlich für Modelle ohne SPI-RAM: + 35,36,37 = 32


Alles klar. Damit kommt man nicht gerade weit.


Zitat:
Ordoban schrieb
Ich bin gerade für den VGA-Konverter das Wlan-Streaming zu realisieren. Es ist zum verzweifeln. Sobald das Wlan etwas macht, zerkloppt das den Sampleprozess. Der verpasst dann Interrupts vom Zeilenanfang. Also: Wlan und zeitkritische Dinge auf dem ESP32 gleichzeitig => ganz große Grütze.


Ohje. Gut zu wissen. Ich werde mal auch zu dem Zeitverhalten recherchieren. Für meinen Use Case wäre ggf. dann während des Bereitstellen von Daten als Modul das WLAN abzuschalten (bis zum nächsten Reset oder so).
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
24.06.2024, 23:27 Uhr
Bert




Zitat:
Ordoban schrieb
Eventuell wäre ein STM32 passender.


Busteilnehmer mit STM32 am Z80-Bus habe ich probiert.

Das funktioniert rein in Software nicht wirklich.
1. Versuch war /RD auf Interrupt, aber die Latenz war schon zu hoch, um überhaupt den Adressbus vernünftig einlesen zu können.
2. Versuch war ständig den AB zu pollen, aber auch da kann man nicht ernsthaft schnell genug auf eine (oder gar mehrere) Adresse reagieren.

Evtl. kann man irgendwie noch was mit /WAIT oder /BUSRQ hintricksen, aber ich bin dann Richtung FPGA mit zusätzlichen Pegelwandlern gegangen.

Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
25.06.2024, 07:28 Uhr
Andre.as



Ein CPLD(XC95___XL) oder FPGA ist die besser Wahl.

In meinem KC85 Modul verbrauche ich 105 vom 117 IO-PINs um alles zu realisieren.


Schönen Tag
Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
25.06.2024, 11:15 Uhr
Dresdenboy



@Bert:
Welches STM32-Board bzw. welcher µC war das? Bei Interrupts scheint nach meiner Recherche v.a. das Sichern/Wiederherstellen der Register schon viel Zeit zu fressen.

In die Richtung gehen auch Hinweise bei anderen Projekten. Z.B. wird bei https://github.com/ytmytm/teensy64 auch darauf hingewiesen, dass keine Interrupts genutzt werden, sondern alles in busy wait loops lief. Hier wäre nochmal spannend, auf welche Probleme du beim STM32 gestoßen warst.

Wo wir bei Teensy sind: Das hier ist auch spannend: https://github.com/SensoriumEmbedded/TeensyROM

@Andre.as:
Das ist schon eine sehr hohe Zahl. Woran liegt das? Unterschiedliche Pins für Input und Output statt bidirektional?

Wie könnte da die Anbindung an eine über PC updatebare "ROM"-Quelle aussehen?
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
25.06.2024, 13:48 Uhr
HeikoS

Avatar von HeikoS

Das Projekt TeensyROM ist sehr interessant ! Der ARM-Prozessor läuft normal mit 600 MHz und wird dort auf 816 MHz übertaktet. Wahrscheinlich kommt man dann in Regionen, wo das Nachbilden von RAM/ROM möglich wird.

Viele Grüße, Heiko

Dieser Beitrag wurde am 25.06.2024 um 13:49 Uhr von HeikoS editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
25.06.2024, 14:07 Uhr
Dresdenboy



@Heiko:
Ja, davon kann man sicher auch lernen. Was mich interessiert: Zeitverhalten ARM-Outputs. Wenn statt 270 MHz XTensa Cores auch noch 400 MHz RISC-V Cores kommen mit entspr. IO-Peripherie-Zeitverhalten, helfen hier sicher auch nur ein paar genaue Tests weiter (Microbenchmarking), um die Fähigkeiten genauer zu ermitteln.

Wenn es schon in Richtung FPGA oder CPLD wg. der Timings gehen muss, würde ich das aber mit ESP32 zwecks WLAN-Kommunikation kombinieren. Der µC kann dann auch auf etwas entspanntere Weise mit dem FPGA/CPLD kommunizieren oder einfach ein RAM befüllen.
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
25.06.2024, 15:55 Uhr
Bert




Zitat:
Dresdenboy schrieb
Welches STM32-Board bzw. welcher µC war das? Bei Interrupts scheint nach meiner Recherche v.a. das Sichern/Wiederherstellen der Register schon viel Zeit zu fressen.


WIMRE ein STM32F4 mit 168 MHz. Die IOs können jedoch nicht mit der vollen Taktfrequenz laufen und die werden auch erst einsynchronisiert.

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
25.06.2024, 16:07 Uhr
felge1966
Default Group and Edit


@Dresdenboy
Die für mich interessante Frage ist aber, suchst du jemanden, der dir das entwickelt oder hast du da schon Erfahrungen und erforderlice Fähigkeiten?

Gruß Jörg
--
http://felgentreu.spdns.org/bilder/jacob120.gif
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
25.06.2024, 16:56 Uhr
Dresdenboy



@Bert:
Danke für die Infos.

@Jörg
Das meiste, v.a. die Software und prototypische HW kann ich großteils selbst angehen (bis auf Faktor Zeit vllt.). Für komplexere HW-Fragen oder ein späteres PCB könnte ich Hilfe gebrauchen.

Gruß,
Matthias
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...

Dieser Beitrag wurde am 25.06.2024 um 16:57 Uhr von Dresdenboy editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
28.06.2024, 00:11 Uhr
Dresdenboy



Kleines Update:

Ich bin immer noch am Einlesen. Der einfachste Use-Case (ROM-Emulator) sollte mit überschaubarer Komplexität machbar sein. Der K1520-Bus hat ja die passenden Steuersignale, wo über /WAIT u. andere Mechanismen ggf. eine kleine Verzögerung des µC kein Problem darstellen sollte. Vllt. lässt sich die WiFi-Seite u. der ROM-Emulator gut über die 2 Kerne trennen. Und so könnte es auch klappen, dass man ein ROM-Update auf den ESP32 schickt und dieser dann über /RESET den Rechner startet. Korrigiert mich, falls ich mir das falsch vorstelle.

Als "ROM" können auch die Adressleitungen als INPUT und Datenbits fest als OUTPUT gesetzt werden, was möglicherweise weniger Probleme mit Level Shiftern wie einem TXS0108E bereitet, weil Richtungswechsel je nach Bustakt ein ungünstiges Timing für den Chip aufweisen könnten.

Während einige µC-Familien zwar leichter und ohne große Umstände schnelle GPIO-Transferraten erreichen, liegt es beim ESP32 wohl an den verschiedenen High- bis Low-Level Möglichkeiten, die Pins anzusteuern, mit entspr. Leistungsdaten. Ich kann da noch mal Benchmarks posten, wo sich jemand die Varianten angeschaut hat. Und für hohe Datenraten bzw. auch parallele Verarbeitung über GPIOs scheinen I2C bzw. SPI ("Octal-SPI") am geeignetsten zu sein.

Inspiration bzgl. hoher Datenraten gibt es hier v.a. durch LED-Matrix- oder LCD-Screen-Ansteuerungsprojekte bzw. auch VGA-Signalgeneratoren. Allerdings müssen diese ja nur in eine Richtung kommunizieren.

Gruß,
Matthias
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
28.06.2024, 06:43 Uhr
Ordoban



Du könntest das Ganze auch mit einem externen S-RAM aufbauen. Etwa so:

ESP32 und Ziel-Computer können beide über Bustreiber/Register mit Tree-State auf diesen S-RAM zugreifen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
28.06.2024, 21:35 Uhr
Dresdenboy



@Stefan:
Interessantes Konzept! Das könnte man angehen, wenn es mit einer einfacheren Schaltung nicht klappt.


Beim ESP32-P4 fiel mir jetzt erst auf, dass der ohne WiFi ist. Und es gäbe auch ein Arduino R4 WiFi, wo ein ESP32-S3 schon mit drauf hängt, aber da stehen nur wenige GPIOs zur Verfügung.
--
___________________________________
Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Coding-Historie seit 1986: KC85/3 (BASIC), LC-80 (ASM), C64 (BASIC, ASM), KC87/1 (ASM), A5105 BIC (Turbo Pascal), A1200HD (BlitzBASIC, 68k ASM), IBM RS/6000 (C), DEC Alpha (C), NeoGeo (68k ASM), Mega 65 (BASIC, ASM), 286+ (TP, ASM, C, C++, Java, Javascript, Rust, Lua, Perl, PHP, Scheme etc.), div. µC auf Steuergeräten (C, ASM)
HW: BIC A5105 komplett, KC87.21, KC85/2+M006, KC85/4, C64s, C16, Plus/4s, A500s, A1200HD+1240, ESP32s, RasPis, PCs, Laptops, MR 610, ...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek