Prinzip des Memory

Memory

In beinahe jeder digitalen Schaltung, vor allem in den programmierbaren, ist es zumindest zeitweise oft notwendig, gewisse Daten und Werte zentral abzulegen. Oft existiert in den einzelnen Logikbausteien bereits ein kleiner Speicherbereich, den man zusammen mit dem Bauteil ersteht - zum Glück, da externe Speicher oft teuer und aufwändig anzusteuern sind. Als Teilgruppe Memory ist es unsere Aufgabe, den zur Verfügung stehenden Speicher eines ATmega16 Mikrocontrollers effizient zu nutzen und den anderen Teilgruppen eine einfache und intuitive Schnittstelle zum Laden und Speichern von Einstellungen und Daten anzubieten.

Der für MonoToni nutzbare Speicher begrenzt sich auf den internen EEPROM
1. Auf dem von unserer Gruppe verwendeten Mikrocontroller ATmega16
stehen somit 512 Kilobyte an permanentem Speicher zur Verfügung,
was, gemessen an der später begründeten Datengröße von 14 Byte pro Speicherwert
mehr als genug ist.

Unser Modul kommuniziert ausschließlich mit dem Core-Modul des Hauptcontrollers. Dort gehen alle Benutzereingaben, wie z.B. Lade- und Speicherbefehle, aber auch Einstellwerte der Potentiometer und die ADSR-Kennwerte ein. Gerade bei den erstgenannten Operationen ist es die Aufgabe der Memory-Gruppe, einzugreifen und die Speicherzugriffe zu organisieren.


Gespeichert werden konkret immer ganze Gruppen von Einstellungen in sogenannten Presets, die die Bedienung des Synthesizers vereinfachen und
exibilisieren sollen. Da der EEPROM in Blocken von jeweils einem Byte organisiert ist und sich die Größenordnung der zu speichernden Daten nicht ändert, haben wir uns dafür entschieden, eine Array-Struktur mit festen Speicheradressen zu verwenden.

[Zurück]

(Quellenangaben und Bildquellen)