LTC2602 DAC Daten senden

OP #3409742
Lesenswert?
• ▲
▼
Hey


ich habe mal wieder ein Problem mit SPI bzw. einem Baustein daran.
Es handelt sich um einen Atmega16 und dem DAC LTC2602.
das SPI läuft auch mit einem ebenfalls daran angeschlossenen ADC.
Doch eben nicht mit dem DAC.

warum gibt mir der DAC keine Spannung aus?

hier der Code dazu:
1
#define DAC0 0
2
#define DAC1 1
3
void set_CS_DAC(void) {  PORTB = PORTB & 0b11111011;   }
4
void cls_CS_DAC(void) {  PORTB = PORTB | 0b00000100;   }
5
void DAC_set(int DAC_CH, int dac_datah, int dac_datal)
6
{
7
  switch(DAC_CH)
8
  {
9
    case DAC0:
10
    {
11
      SPDR= 0x30;    //Daten für Command und Channel anlegen  
12
      break;
13
    }
14
    case DAC1:
15
    {
16
      SPDR = 0x31;
17
      break;
18
    }
19
  }
20
  set_CS_DAC();        //CS low
21
  while(!(SPSR & (1<<SPIF)));  //Commands übertragen
22
  
23
  SPDR = dac_datah;      //DATA_High übertragen
24
  while(!(SPSR & (1<<SPIF)));
25
  
26
  SPDR = dac_datal;      //DATA_Low übertragen
27
  while(!(SPSR & (1<<SPIF)));
28
  cls_CS_DAC();
29
  _delay_us(10);
30
}
der Aufruf dafür erfolgt per
1
DAC_set(DAC0,125,25); //125 sind die oberen 8Bit und 25 die untern 8Bit

im switch case übergebe ich die Parameter für den Channel sowie die 
Commands
als command nutze ich
C3 C2 C1 C0
0  0   1  1 Write to and Update (Power Up) n \\wobei n der Channel ist - 
dies ist die 3 und danach der Channel des Bausteins [ 0 oder 1]

sieht jemand den Fehler in meinem Code, weshalb es nicht klappt

ich konnte per Logicanalyzer auch schon herausfinden, dass CS klappt und 
der SCK taktet, allerdings gibt der DAC eben keine spannung aus.
OP #3409758
Lesenswert?
• ▲
▼
ok
mittlerweile konnte ich logicanalyzer feststellen, dass die daten 
perfekt übertragen werden

habe ich etwas an den Commands falsch verstanden?
bedeutet
C3 C2 C1 C0
0  0  1  1 Write to and Update (Power Up) n
nicht dass nachdem die Daten empfangen wurden die Spannung an den 
Ausgang angelegt wird?

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.