mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sinusgenerator mit ROM-Baustein


Autor: dohwulkla (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: melt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist das Problem die 8 Stützstellen nacheinander an den DAC zu geben?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: dohwulkla (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: melt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: dohwulkla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die "echten" Werte, wie du sie nennst sind ja auf dem ROM Baustein 
gespeichert und die 3Bit dienen ja nur der Adressierung des ROMS, von 
dem wir ja nun die Werte des Sinus herausziehen.

Autor: melt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau das meinte ich... Nur die Erweiterung auf 8 Bit macht dann nicht 
wirklich Sinn, deshalb war ich mir nicht sicher was deine Tabelle sagen 
soll.

Autor: dohwulkla (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan N. (laser)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.