www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP DDS-Singalgenerator mit ATmega88 und DDS AD5932


Autor: Martin Ernst (mrtnernst)
Datum:
Angehängte Dateien:

Hallo zusammen,

ich brauche mal dringend Hilfe. Ich möchte einen Signalgenerator mit de
AD 5932 und einem Atmega88 realisieren. Jetzt hapert es aber bei mir
schon an der SPI-Kommunikation. Hat jemand vielleicht für so einen
Baustein eine funktionierende Kommunikation? Ich programmiere in C.

Mein Schaltplan hänge ich mal an. Vielleicht ist auch ein Fehler in der
Hardware zwischen dem Atmega 88 und dem AD5932 (DDS).

Martin
Autor: Otto (Gast)
Datum:

Pullups an SCK und SDA fehlen
Autor: Martin Ernst (mrtnernst)
Datum:

Hallo,

wozu sollen die Pullups nötig sein? Und wo ist SDA?

Martin
Autor: Harald M. (mare_crisium)
Datum:

Martin,

vergiss das mit dem SCL und SDA - Otto meint, Du benutztest den TWI-Bus.
Es geht Dir aber um SPI; das schreibst Du ja deutlich und am Schaltplan
sieht man's auch.

Funktion und Einstellmöglichkeiten des SPI-Busses sind sehr gut und
ausführlich im Datenblatt des ATmega88 erklärt. Das Datenblatt findest
Du hier

http://www.atmel.com/dyn/resources/prod_documents/8271.pdf

Kapitel 18 beschäftigt sich mit dem SPI, auf Seite 170 und 171 findest
Du auch Programmbeispiele. Damit kannst Du alles Notwendige erledigen.

Ciao,

mare_crisium
Autor: Martin Ernst (mrtnernst)
Datum:
Angehängte Dateien:

Hallo,

es scheint nun was zu kommunizieren, aber ich bekomme nichts sinnwolles
raus. Ich wollte zunächst mal nur einen Sinus oder Dreieck erahlten was
z.B. 50Hz hat. Ich habe folgenden Code geschrieben!

Kann da jemand einen Schnitzer entdecken warum ich zwar was raus bekomme
aber nicht was ich wünsche. Von Sinus auf Dreieck lässt sich auch nicht
umstellen.

Martin
Autor: Martin Ernst (mrtnernst)
Datum:
Angehängte Dateien:

Kann mir jemand sagen wie für die Ansteuerung des AD5932 über die SPI
des ATmega88 eine funktionierende funktionierende SPI-Routine aussieht
mit der eine richtige Kommunikation statt finden kann? Ich habe es wie
im Datenblatt vom Atmega versucht und auch versucht damit die ganzen
Bits im Controllregisster usw. zu setzen. Der Baustein spuckt zwar auch
was aus aber nicht definiertes. Einen meiner Versuche habe ich mal
angehängt. Die Idee hinter der Routine meines Versuches ist eine Version
von Herrn Skibowski aus Stuttgart!

Wäre toll, wenn mir jemand helfen könnte. Ich probiere schon längere
Zeit rum und verstehe nicht das Problem.

Martin
Autor: Martin Ernst (mrtnernst)
Datum:
Angehängte Dateien:

Hir noch ein neuer SPI Screenshot

D0 = FSYNC
D1 = SCLK
D2 = SDATA (SPI)
Autor: Martin Ernst (mrtnernst)
Datum:

Hi,

jetzt scheint die SPI richtig zu kommunizieren. Ich kann auch über das
Bit D9 im Controlregister von Sinus auf Dreieck umschalten. Woran kann
es nun liegen, dass ich mehrmals programmieren muss bis ein sauberes
Signal raus kommt? Nach mehrmaligem programmieren ist am MSBout ein
Rechteck und am Vout ein Dreieck oder Sinus am Oszi zu beobachten, aber
was ich hierbei auch nicht verstehe warum es nicht die von mir
übermittelte Frequenz z.B. von 50 Hz hat. Wie kann ich am besten
feststellen ob das Frequenzwort richtig übertragen wird?
Ich teile es auf ad Register Fstart_low und Fstart_high und setze dann
den Pin CTRL von Null auf high und ändere ihn nicht mehr. Laut
Datenblatt soll so die in Fstart stehende Frequenz am Vout und MSBout
ausgegeben werden. Woran könnte es liegen, dass die Frequenz nie der von
mir gewünschten Frequenz stimmt?

Vielen Dank schon für die Hilfe!

Mar
Autor: Martin Ernst (mrtnernst)
Datum:
Angehängte Dateien:

Hier noch mein momentaner Quellcode!

Mar

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net