Sinusgenerator mit ROM-Baustein

Gast #1776855
Lesenswert?

Hallo,

ich sitze gerade vor einer eventuellen Prüfungsaufgabe und komme da 
nicht weiter.
Ich hoffe ihr könnt mir dazu ein paar Ratschläge geben.

Hier die Aufgabe:
Bauen Sie einen Sinusgenerator, der ein Sinunssignal anhand von 8 
Stützstellen ausgeben soll. Realisiert werden soll die Schaltung mit 
einem geeigneten ROM-Baustein und der erforderlichen Anzahl 
MS-D-Flipflops.
Ein 8Bit-D/A-Wandler soll die gespeicherten Stützstellen in ein analoges 
Ausgangssignal umwandeln. Die Erzeugung der Folgeadresse soll im ROM 
selbst erfolgen. Die Schaltung soll taktgesteuert betrieben werden.

d) Stellen sie zunächst eine Tabelle auf, die die geforderten 
Stützstellen (0, PI/4, PI/2, ...) des Sinussignals(positive 
Sinusschwingung) in Dezimal- und Dualdarstellung enthält.(Bemerkung: um 
die nötige 8Bit-Auflösung zu erhalten, schieben Sie bitte ihr 
Rechenergebnis um die benötigte Anzahl von Bits nach links.)

e) Ermitteln Sie die erforderliche Anzahl von Zustandsbits und stellen 
Sie danach die Übergangstabelle einschliesslich Ausgangsvariablen auf.

f) Skizzieren Sie die Schaltung und belegen Sie das ROM wie üblich mit 
Verbindungspunkten.

Mich überfordert die Aufgabe, weil man mit 8 Stützstellen einen 8Bit 
D/A-Wandler ansteuern soll.

MfG
Dennis
#1776865
Lesenswert?

dohwulkla schrieb:

> Mich überfordert die Aufgabe, weil man mit 8 Stützstellen einen 8Bit
> D/A-Wandler ansteuern soll.

Da steht nichts davon, dass du zwischen den Stützstellen interpolieren 
sollst.

Die Aufgabe ist also gleichwertig mit:
  In einem ROM sind 8 Werte gespeichert, die nacheinander am DA
  Wandler ausgegeben werden sollen.

Das diese Werte einen 'Sinus' ergeben sollen interessiert dich nur bei 
der Berechnung der auszugebenden Werte. Für die Schaltung selbst ist die 
Signalform irrelevant.


Diese ROM-Sequenzer arbeiten normalerweise nach diesem Muster:

      Steuersignale
        +-----------------------------+
        |                             |
        |     +------------+          |
        |     | Adressen   |          |
        v     v            |          |
      +------------+     +-------+    |
      |            |     |       |----+
      |  ROM       |     |       |
      |            |     | Logik |
      | Datenbits  |     |       |
      +------------+     +-------+
        | | |   | |         ^ ^
        | | |   | |         | |
        v v v   | +---------+ |
     Datenbits  +-------------+
      zum D/A


D.h. von den Datenbits, die aus dem ROM rauskommen, wird ein Teil 
abgezweigt und kodiert von welcher Adresse als nächstes vom ROM 
ausgelesen werden soll.
Wird dann von dieser Adresse gelesen, so enthält der gelesene Wert 
wiederrum die Adressinformation, wo als nächstes gelesen werden soll.

(Ist ein bischen so, wie wenn in einem Buch ganz unten auf jeder Seite 
steht: Weiter bei Seite xyz)
Gast #1776891
Lesenswert?

Hallo Karl Heinz,

erstmal danke für deine Antwort!
Auf dieser Basis habe ich folgende Überlegung angestellt (siehe Anhang).
1. 8 beliebige Stützstellen der positiven Periode gewählt
2. Darstellung in 3Bit-Form
3. Umwandlung in 8Bit durch links schieben

Sollte die Wertetabelle stimmen, denke ich mit dem Rest der Aufgabe 
klarzukommen.
Das Endergebnis kann ich dann ja nochmal posten.

Vielen Dank erstmal.
Angehängte Dateien:
Gast #1776907
Lesenswert?

Du solltest schon die "echten" Werte des Sinus nehmen... so erzeugst du 
einen Sägezahn... und nicht irgendwas mit 3-bit, sondern 8 bit 
genauigkeit. Die ADRESSE im Speicher ist 3 Bit, die DATEN können "echte" 
8 Bit sein.
Gast #1777011
Lesenswert?

Hallo,
ich glaube ich habe das ganze nun gelöst.
Dazu habe ich angenommen, dass der 0 Pegel des Sinus auf U/2 liegt 
(Offset).
Somit ergibt sich dann folgende Lösung (im Anhang).
Ich hoffe, dass ich die Aufgabenstellung richtig verstanden und 
umgesetzt habe :-P
Vielleicht kann ja jemand nochmal drüber schauen.

MfG
Dennis
Angehängte Dateien:
#1777033
Lesenswert?

Also ich würde schon die vollen 8Bit des D/A-Wandlers ausnutzen, dann 
hast du auch etwas, was mehr nach Sinus aussieht (siehe Anhang).
Dazu einfach den Wert des Sinus an den Stützstellen (Wertebereich 0..2) 
mit 127 multiplizieren und das dann in Binär umrechnen.
Die Folgezustände könntest du auch über einen 3-Bit zähler mit mehreren 
D-FF berechnen.
Oder du nimmst von den 8Bit-Werten im ROM 3Bit für den Folgezustand und 
die restlichen 5Bit für den Sinus-Wert.
Oder gleich 11Bit im ROM speichern, steht ja nirgends, dass der nur 8Bit 
breit ist ;)
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren