ich möchte mir einen D/A Wandler zulegen. Ich habe diesen hier gefunden: Sparkfun MCP4725
Ich möchte über den Output Pin des MCP4725 Spannungen zwischen 0 und 5V erhalten.
Nun habe ich einige Fragen:
Kann man mehrere von diesen D/A Wandler benutzen? Ich habe auf meinen Arduino nur 2 SDA und SCL Pins oder kann ich alle parallel schalten?
Ich habe das Prinzip nicht so ganz verstanden, wie ich über den Output des MCP4725 die Spannung varrieren kann?! bzw. wie spreche ich den MCP4725 an?
Bitte das Datenblatt lesen.
Da steht drin, dass der Baustein 1 konfigurierbares Adressbit hat.
Du kannst also 2 dieser Bausteine am Bus betreiben.
Sollen es mehr werden, ist ein I2C Multiplexer das Mittel der Wahl.
SDA und SCL sind Daten- und Taktpins des I2C-Busses eigent, an den mehrere Master und Slaves angeschlossen werden können. Unterschieden werden sie durch Adressen.
Im Datenblatt http://www.adafruit.com/datasheets/mcp4725.pdf nachgelesen:
Das Teil hat 8 mögliche Adressen:
4 Bit A7 bis A4 Fix 1100
2 Bit A3 und A2 programmierbar während der Herstellung auf Wünsch des Kunden
1 Bit A0 mit dem A0 Eingang.
Darum sind Adressen zwischen
b1100000 und b1100111 möglich (0x60 und ox67).
Am einfachsten läßt sich die Adresse mit einem I2C Scanner Sketch herausfinden: Arduino Playground - I2cScanner
Die Adresse ist im der Typenbezeichnung angegeben:
MCP4725A0T Adresse A2 A3 00 (0x60 / 0x61)
MCP4725A1T 01 (0x62 / 0x63) ecc
Was aber wenig nützt da das IC zu klein ist als daß die Typenbezeichnung draufgedruckt ist.
Darum steht
AJxx für MCP4725A0T (0x60 / 0x61)
APxx für MCP4725A1T (0x62 / 0x63)
AQxx für MCP4725A2T (0x64 / 0x65)
ARxx für MCP4725A3T (0x66 / 0c67)
wobei xx für 2 Zeichen steht die eine Losnummer sind.
Grüße Uwe
Ich brauche 4 D/A Wandler. Mein Arduino Due hat 2xSDA und 2xSCL Pins. Habe ich es richtig verstanden, dann brauche ich KEINEN I2C Multiplexer?
Richtig!
Der Due hat selber schon 2 DAC drauf.
Evtl. brauchst du also nur einen MCP4725
Hmmm...
Auch gerade beim Due, sollte man evtl auf SPI DAC setzen.
Denn der Due hat auch noch DMA, damit sollte sich eine recht hohe Akualisierungsrate, ohne viel Prozessorlast erreichen lassen, wenn man es geschickt anstellt.
Noch eine blöde Frage, gibt es wesentliche unterschiede zwischen den Sparkfun MCP4725 und den Adafruit MCP4725 außer das es zwei verschiedene Firmen sind?
Über das Lötpad "Addr" kann man zwei verschiedene Adressen einstellen. Dadurch kann man dann zwei an einem Bus ansprechen. Fertig.
Steht auch auf der Seite:
By default, this pin is pulled LOW to GND. To change the address of your other device, simply de-solder the jumper and add a blob of solder to the middle pad and the Vcc pad.
Darunter steht auch dass es eine gute Idee ist die Pullupwiderstände auf einem der Breakouts zu deaktivieren. Weil die sonst parallel hängen und man nur noch den halben Widerstand hat
Alles mit Bildern schön gezeigt. Viel deutlicher kann es nicht werden