Infos zur Verwendung von RAM und ROM
Nutzung von RAM/ROM in Simulide
- Bei Verwendung der Komponente
RAM/ROM Memory
in Simulide können die Daten über das Kontextmenu (Rechtsklick aus die Komponente) geladen und abgespeichert werden. - Falls Daten aus einer Datei geladen werden sollen, so sind folgende Varianten möglich:
- Variante 1: nicht löschbar
- Bei den
Eigenschaften
der Komponente istnicht löschbar
ausgewählt - Daten können dann vor oder nach dem Start per Kontextmenu geladen werden
- Variante 2: löschbar
- Bei den
Eigenschaften
der Komponente istnicht löschbar
nicht ausgewählt - Daten können dann nur nach dem Start per Kontextmenu geladen werden
- Andernfalls wird der Speicher beim Start des Simulation wieder mit 0 gefüllt
- Für das Auslesen der Daten muss der Eingang
/WE
auf $5\rm~V$ und/OE
auf $0\rm~V$ und gelegt werden.
Dann sind folgende Varianten möglich- Variante 1: asynchron
- Bei den
Eigenschaften
der Komponente istaysnchron
ausgewählt - Die Daten liegen an
D0…D7
direkt an
- Variante 1: asynchron
- Bei den
Eigenschaften
der Komponente istaysnchron
nicht ausgewählt - Die Daten liegen an
D0…D7
erst nach einer fallenden Flanke am Eingang/CS
Beispiel in Simulide
Konvertierung von *.wav / *.mp3 in *.dat / *.wav
Um die Daten zu konvertieren, kann das Freeware Tool Audacity genutzt werden. In diesme sind folgende Schritte notwendig:
- im Footer von Audacity die Audioposition auf
samples
stellen (falls dies nicht schon automatisch eingestellt ist)
- Datei (wav / mp3) laden.
- Hier kann z.B. auf freie, selbst-erzeugte Songs von Suno oder Loops aus FreeSound.org zurückgegriffen werden
- Audacity hat mit OpenVINO auch ein eigenes AI Tool zum lokalen Erzeugen von Musik. Dies ist aber nur bei hinreichend schneller Hardware empfohlen (Ein Laptop von 2021 reicht nicht).
- Den gewünschten Bereich markieren und eine separate Spur daraus herstellen (Auswahl mit Maus,
<Strg>+X
,<Strg>+V
, Rest löschen über: markieren und<Entf>
) - Die Daten über
Spuren
»Mix
»Stereo zu Mono heruntermischen
auf nur eine Mono-Spur zusammenlegen - Es empfiehlt sich nun die Daten durch ein Tiefpass zu filtern, z.B. mit 4000Hz und :
Effekt
»Low-Pass-Filter..
»Frequenz: 4000,0
undRolloff: 48 dB/Octave
.
Damit kann die Menge an Daten und die Wiedergabefrequenz im Anschluss reduziert werden. - Abspeichern der Daten:
- Der Einfachste Weg ist das Abspeichern eines Audiofiles:
Datei
»Audio exportieren
- Format:
WAV
, Kanäle:Mono
, Abtastrate:8000 Hz
, Encodierung:Unsigned 8-bit PCM
- Es gibt aber auch einen umständlichen Weg über den Sample-Export, der im Anschluss noch konvertiert werden muss:
- Markieren aller Daten im Track:
<Strg>+A
Werkzeuge
»Sample-Datenexport
- Ausgabe beschränken auf die ersten:
65535
(oder Samplewert des letzten Samples), Messskala:linear
, Datei exportieren nach:Pfad + Name eingeben
, Index:Aus
, Headerinfo:Aus
- Konvertieren der Daten: Die Daten liegen als float $[-1.00, ... , +1.00]$ vor und müssen auf $[0, ... , 255]$ konvertiert werden.
Dazu kann die folgende Excel-Datei genutzt werden: conversiontool.xlsx
- 8-bit
*.wav
Dateien und*.data
Dateien mit Komma-separierten Werten können beide direkt in Simulide in ein RAM Baustein laden:- Rechtsklick auf RAM-Baustein
- Daten laden
Dateien
- Simu-Datei: audio_ram_example.sim1
- Beispiel-Dateien für Audio: ram_rom_data.zip
Die Simulide Datei ermöglicht:
- ohne Mikrocontroller
- die Daten aus einem adressierbaren RAM/ROM Byte für Byte auszulesen
- aus diesen 8-Bit Daten Analogwerte zu generieren
- diese Analogwerte auf einem Scope und Lautsprecher auszugeben
Ich empfehle, zur Performancesteigerung folgendes:
- Schaltungsoptionen optimieren:
Einstellungen
(⚙️) »Schaltung
- Farbanimation deaktivieren
- Canvas aktualisieren nur mit 10 Bilder pro Sek.
- Nicht notwendige Ausgaben entfernen
- 7-Segmentanzeige für Adresse und Ausgabe löschen
- Oszi löschen