www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ad9833 ansteuerung mit ATMEGA32


Autor: Seabstian H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
seit tagen versuche den Ad9833 (DDS-Generator)zum laufen zu bringen. 
Aber irgendwie bekomme ich es nicht hin daten an ihn zu übertragen.

Ich habe versucht nach dem timingdiagramm (figure 3) aus dem Datenblatt 
eine routine zu erstellen. 
http://www.analog.com/static/imported-files/data_s...

Das hier ist das ergebniss:

//PB3 - SCLK
//PB4 - SDATA
//PB5 - FSYNC
#define  FSYNC PB5
#define SDATA PB4
#define SCLK  PB3

void wave_send ( uint16_t temp )

{
  uint8_t  counter;

  PORTB |= (1 << SCLK);
  _delay_us(10);
  PORTB &= ~( 1 << FSYNC );
  _delay_us(5);


  for ( counter = 16; counter > 0; --counter )
  {
    if  ( temp & ( 1 << (counter-1) ) )
      PORTB |= ( 1 << SDATA);
    else
      PORTB &= ~( 1 << SDATA);
  
    PORTB &= ~( 1 << SCLK );
                _delay_us(1);
    PORTB |= ( 1 << SCLK );
                _delay_us(1);
  }





  PORTB |= ( 1 << FSYNC );
    _delay_us(5);
  return;
}

auf die gestalltung des layouts mit dem Hardware-SPI wurde bewust 
verzichtet (nicht von mir).

Der ausgangszustand ist: SData = Low, SCLK = low, Fsync = low

Abflauf:
-SCLK auf HIGH
-10us pause
-fsync auf LOW
-5us pause
-die 16 einzelnen bits des datenwortes an SDATA anlegen und jeweils für 
eine uS warten
-am ende FSNC wieder auf HIGH ziehen

die routine wird mit dem übergabewert 0b0010000100000000. Das sollte 
eigentlich einen reset auslösen. am ausgang kann ich jedoch permanent 
eine sinusspannung mit Uss=0,6V und ca. 300KHZ messen. Ohne das diese 
auf irgendetwas reagiert.

Ich sehe leider keinen fehler. Ich hab die Pausen extra vergrößert, war 
vielleicht gerade das der fehler?

Außerdem liegen in reihe zu den eingängen SDATA, Fsync und Sclk 4,7k 
widerstände. Ich habe in einem anderen tread zum thema gelesen das die 
die ursache sein können indem sie die flankensteilheit so weit 
verringern das der Ad9833 probleme bekommt. Aber die schaltung habe ich 
aus einer Zeitschrift entnommen (ELV).

Ich weiß leider nciht mehr wo ich noch suchen soll.
Hoffe ihr könnte mir helfen.

Sebastian

Autor: Sebastian H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe heute unterm Mikroskop die antwort gefunden. In einem leiterzug war 
eine winzige unterbrechung (Ätzfehler). So kann das ja ncihts werden.
Schönen Tag noch.
Sebastian

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.