ATMEGA32 und TC1320 DAC funktioniert nicht

#7653575
Lesenswert?

Hallo zusammen,

ich hoffe auf die Schwarmintelligenz des Forums hier. Ich benutze einen ATMEGA32 als µC, der über einen 8-Bit TC1320E0A DAC Spannungen zwischen 0 und 5V ausgeben soll (Schaltung im Bild). Dafür benutze I2C Signale mit jeweils einem 2,2kOhm Pull-Up Widerstand.

Nun mein Problem: Egal, was ich versuche, der DAC nähert sich viel zu schnell V_Ref an. Sogar wenn ich mich mitten im Datenbereich befinde (Bsp. Data=0x80) gibt er mir ca. 4,7V aus. Bei Data=0 gibt er immerhin 0V aus.

Ich benutze die Fleury I2C lib mit "twimaster.c" und nutze sie folgendermaßen im Code.

1
//++DAC Test++
2
uint8_t addr;
3
addr= 0x48;                             //0b01001000
4

5
i2c_start_wait((addr<<1)+I2C_WRITE);    // Adressierung des DAC nach Datasheet (1001 000b)
6
//i2c_start_wait(0x90);                 // 0b10010000 Adressierung funktioniert auch nicht
7
i2c_write(0x00);                        // Command Byte nach Datasheet
8
i2c_write(0x80);                        // Output am DAC = 2.5V 
9
i2c_stop();

F_CPU habe ich auch schon al 8MHz definiert und am µC eingestellt, nachdem ich dort das Problem vermutet hatte. Aber auch das hat mich der Lösung nicht näher gebracht. Hat irgendwer hier aus dem Forum noch Ideen, wo das Problem liegen könnte?

Angehängte Dateien:
#7653617
Lesenswert?

Hi,

V_ref und V_DD habe ich kontrolliert und beide sind bei ziemlich genau 5V (+/- 0.02V).

Daten eingeben, funktioniert, soweit ich das mit Eingeben & Auslesen per Nak mit einer LED-Anzeige einschätzen kann.

Wie soll ich ACK/NACK auswerten? Das passiert doch im start Befehl?

Gerade habe ich festgestellt, dass der DAC für niedrige Werte jedes Bit in ca. 0,34V umwandelt anstatt in ca. 0,2V, wie er es nach Datenblatt sollte.

$$V_{Out}=V_{ref}*\frac{Data}{256}$$

Also seine "Auflösung" ist zu ungenau und er erreicht zu früh eine hohe Ausgangsspannung. Aber woran liegt das?

Moderator (Firma: Titel) Persönliche Seite #7653622
Lesenswert?

Calc-SiC schrieb:

Aber woran liegt das?

Du hast z.B. das hier nicht beachtet:

1
VREF Voltage Reference Range 0  .... VDD–1.2 V

Wenn deine Vcc 5V ist, wie hoch darf dann die Vref höchstens sein?

dass der DAC für niedrige Werte jedes Bit in ca. 0,34V umwandelt anstatt in ca. 0,2V, wie er es nach Datenblatt sollte.

Bist du da um ein paar Zehnerpotenzen verrutscht?

Angehängte Dateien:
#7653635
Lesenswert?

Lothar M. schrieb:

Du hast z.B. das hier nicht beachtet:

1
> VREF Voltage Reference Range 0  .... VDD–1.2 V
2
>

Ach... Einmal das Datenblatt gründlich lesen. Das erklärt natürlich, warum der DAC nicht so funktioniert, wie gewünscht.

dass der DAC für niedrige Werte jedes Bit in ca. 0,34V umwandelt anstatt in ca. 0,2V, wie er es nach Datenblatt sollte.

Bist du da um ein paar Zehnerpotenzen verrutscht?

Ja 0,02V sollte das natürlich heißen. Danke für eure Hilfe! Dann hab ich jetzt einen Punkt, von dem ich weitermachen kann.

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