Infos zur Verwendung von RAM und ROM

  • 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
      1. Bei den Eigenschaften der Komponente ist nicht löschbar ausgewählt
      2. Daten können dann vor oder nach dem Start per Kontextmenu geladen werden
    • Variante 2: löschbar
      1. Bei den Eigenschaften der Komponente ist nicht löschbar nicht ausgewählt
      2. 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
      1. Bei den Eigenschaften der Komponente ist aysnchron ausgewählt
      2. Die Daten liegen an D0…D7 direkt an
    • Variante 1: asynchron
      1. Bei den Eigenschaften der Komponente ist aysnchron nicht ausgewählt
      2. Die Daten liegen an D0…D7 erst nach einer fallenden Flanke am Eingang /CS

Um die Daten zu konvertieren, kann das Freeware Tool Audacity genutzt werden. In diesme sind folgende Schritte notwendig:

  1. im Footer von Audacity die Audioposition auf samples stellen (falls dies nicht schon automatisch eingestellt ist)
    microcontrollertechnik:umstellendesfooters.png
  2. Datei (wav / mp3) laden.
    1. Hier kann z.B. auf freie, selbst-erzeugte Songs von Suno oder Loops aus FreeSound.org zurückgegriffen werden
    2. 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).
  3. 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>)
  4. Die Daten über Spuren » Mix » Stereo zu Mono heruntermischen auf nur eine Mono-Spur zusammenlegen
  5. Es empfiehlt sich nun die Daten durch ein Tiefpass zu filtern, z.B. mit 4000Hz und : Effekt » Low-Pass-Filter.. » Frequenz: 4000,0 und Rolloff: 48 dB/Octave.
    Damit kann die Menge an Daten und die Wiedergabefrequenz im Anschluss reduziert werden.
  6. Abspeichern der Daten:
    1. Der Einfachste Weg ist das Abspeichern eines Audiofiles:
      1. Datei » Audio exportieren
      2. Format: WAV, Kanäle: Mono, Abtastrate: 8000 Hz, Encodierung: Unsigned 8-bit PCM
    2. Es gibt aber auch einen umständlichen Weg über den Sample-Export, der im Anschluss noch konvertiert werden muss:
      1. Markieren aller Daten im Track: <Strg>+A
      2. Werkzeuge » Sample-Datenexport
      3. Ausgabe beschränken auf die ersten: 65535 (oder Samplewert des letzten Samples), Messskala: linear, Datei exportieren nach: Pfad + Name eingeben, Index: Aus, Headerinfo: Aus
      4. 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
  7. 8-bit *.wav Dateien und *.data Dateien mit Komma-separierten Werten können beide direkt in Simulide in ein RAM Baustein laden:
    1. Rechtsklick auf RAM-Baustein
    2. Daten laden

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