Schwarz auf Weiß

Auch als Buch mit dem Titel '10 Selbstbauprojekte', ISBN-Nr. 978-3-7448-3433-9 und als e-book mit der ISBN-Nr. 9783744806299 erschienen.

Besuchen Sie auch meine Art site https://khomet.de

Samstag, 23. Januar 2016

DAC MCP4728 per I2C mit PIC18F25K22 verbinden



Inhaltsverzeichnis

Allgemeines
DAC MCP4728
Hardware
Software
Downloads




Allgemeines

Es soll ein 4-Kanal-DAC MCP4728 über die I2C™ Schnittstelle mit dem PIC18F25K22 verbunden werden. Praktische Anwendung ist die Bereitstellung von Steuerspannungen eines Stereo-Audioverstärkers sowie eines Stereo-Kopfhörerverstärkers zur Lautstärkeregelung. Vorteil ist, dass die jeweiligen linken und rechten Kanäle per Parameteränderung eingepegelt werden können. Im Gegensatz z. B. zu einem PWM-Ausgang dessen Signal geglättet werden muss ist beim DAC keinerlei zusätzliche Beschaltung notwendig. Der MCP4728 hat zwar ein EEPROM on board, aber die Anzahl der Schreibzyklen ist begrenzt. 


DAC MCP4728

--Digital-to-Analog-Converter 4 Kanäle
-I2C™
-Adresse bei Lieferzustand 0xC0 (Adressänderung geht nur mit Steuerung des LDAC pins)
-Typ MCP4728-E/UN MSOP-10 
-speed bis 3.4 Mbps (Bibliothek PIC unterstützt bis 400 kbps)
-On-Board EEPROM für DAC Codes and I2C™ Address Bits
-Internal or External Voltage Reference Selection
-Output Voltage Range:
    -bei interner VREF (2.048V): 0.000V to 2.048V mit Gain Setting = 1
                                                 0.000V to 4.096V mit Gain Setting = 2
    -bei externer VREF (VDD):    0.000V to VDD
-Settling Time: 6 μs (typical)
-Single-Supply Operation: 2.7V to 5.5V


Hardware

Die beiden Leitungen SCL und SDA des MCP4728 werden mit Pin 14 und 15 des PIC18F25K22 verbunden und je mit einem pull-up Widerstand von 1k versehen.
LDAC wird fest an GND gelegt, da die Adresse nicht verändert wird (wäre notwendig bei mehreren Bausteinen auf dem selben I2C™ Bus). RDY/BUSY bleibt offen, da die Bibliothek diesen Anschluss nicht verwendet.


Software

Die I2C-Bibliotheken des MicroBasic erkennen automatisch die Pin-Zuordnung zu SCL und SDA anhand des PIC-Typs (gilt nicht für PIC18FxxJ94 or PIC16F170x/171x family). Die Befehlsfolge für das Schreiben der DAC-Werte sind den Examples der Bibliotheken entnommen. Verwendet wurde die sub DACMultiwrite(), die die DAC-Werte nicht ins EEPROM schreibt. 


Downloads

I2C-Schaltplan1.pdf
I2C-Codefragment DAC-PIC.txt