Forum: Mikrocontroller und Digitale Elektronik ad9833 ansteuerung mit ATMEGA32


von Seabstian H. (Gast)


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_sheets/AD9833.pdf

Das hier ist das ergebniss:

1
//PB3 - SCLK
2
//PB4 - SDATA
3
//PB5 - FSYNC
4
#define  FSYNC PB5
5
#define SDATA PB4
6
#define SCLK  PB3
7
8
void wave_send ( uint16_t temp )
9
10
{
11
  uint8_t  counter;
12
13
  PORTB |= (1 << SCLK);
14
  _delay_us(10);
15
  PORTB &= ~( 1 << FSYNC );
16
  _delay_us(5);
17
18
19
  for ( counter = 16; counter > 0; --counter )
20
  {
21
    if  ( temp & ( 1 << (counter-1) ) )
22
      PORTB |= ( 1 << SDATA);
23
    else
24
      PORTB &= ~( 1 << SDATA);
25
  
26
    PORTB &= ~( 1 << SCLK );
27
                _delay_us(1);
28
    PORTB |= ( 1 << SCLK );
29
                _delay_us(1);
30
  }
31
32
33
34
35
36
  PORTB |= ( 1 << FSYNC );
37
    _delay_us(5);
38
  return;
39
}

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

von Sebastian H. (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.