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?