mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega88 und DAC MCP4725


Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

http://www.sparkfun.com/datasheets/BreakoutBoards/... 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

Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.