Forum: Mikrocontroller und Digitale Elektronik Atmega88 und DAC MCP4725


von Marcus (Gast)


Lesenswert?

Hallo,

ich habe ein Problem mit dem DAC MCP4725. Ich habe mir eine kleine 
Testschaltung aufgebaut  mit der ich Analogwerte von einem Poti mit dem 
Atmega88 lese und über den I²C-Bus an den DAC4725 (12Bit) sende. Meine 
Schaltung funktioniert, nur wenn ich mit meinem Analogwert in einen 
Bereich zwischen 1V und 2V komme blockiert die Kommunikation zwischen 
Atmega und dem DAC. Ich sende folgende Bytes an den DAC:
1. Startbit
2. Das Adressbyte mit z.B. 11000010 Bit0=0 -> write Command
3. Das ertste Datenbyte mit 0000XXXX (erste 4 Bit's stehen für fast Mode 
und Power Down Select, letzten 4 Bit's sind die Datenbits D11-D8)
4. Das zweite Datenbyte (D7-D0)
5. Stopbit
Ich konnte für dieses Verhalten zwei Bit's isolieren, D10 und D8 im 
zweiten Byte. Wenn ich diese Bit's ausblende läuft die Sache ohne 
Probleme, nur das ich dadurch natürlich nicht alle Werte übertragen 
kann.
Hat jemand eine Idee oder Rat warum sich der MCP so verhält ?

Danke für Eure Antworten !

Gruß Marcus

von Horst (Gast)


Lesenswert?

Hallo,

http://www.sparkfun.com/datasheets/BreakoutBoards/MCP4725.pdf Seite 18
Es sieht so aus, als ob man das erste und zweite Datenbyte nochmal 
wiederholen sollte. "Repeat bytes of 2nd and 3rd bytes".
Denn scheinbar erwaret der MCP4725 beim schreiben >immer< vier zu 
übertragende Byte, auch wenn sie nicht genutzt werden.
Ganz schön tricky.

Gruß Horst

von Marcus (Gast)


Lesenswert?

Hallo Horst,

Danke für Deine Antwort! Das habe ich im Datenblatt (Figure 6-1 Page 24) 
auch gesehen, das das 2. und 3. Byte wiederholt gesendet wird und danach 
das Stop-Signal. Ich habe aber keinen Hinweis darüber gefunden das die 
Bytes wiederholt gesendet werden müssen. Ich habe es auch schon probiert 
und die Datenbytes wiederholt und danach das Stop-Siganl aber ohne 
Erfolg. Sobald das Bit D10 & D8 gesetzt ist hängt sich der I2C-Bus bzw. 
das ganze Programm auf.

Gruß Marcus

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.