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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren