The MCP4922 is a 12 bit DAC. This library should provide easy access to its basic functionality.

Dependencies:   DAC

Files at this revision

API Documentation at this revision

Comitter:
JimmyTheHack
Date:
Tue Jul 16 06:10:10 2013 +0000
Parent:
0:4e1ee1c4d3bb
Commit message:
separated SPI_DAC into outside library

Changed in this revision

DAC.lib Show annotated file Show diff for this revision Revisions of this file
DAC_SPI/DAC_SPI.cpp Show diff for this revision Revisions of this file
DAC_SPI/DAC_SPI.h Show diff for this revision Revisions of this file
diff -r 4e1ee1c4d3bb -r 454c4d3eeae9 DAC.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DAC.lib	Tue Jul 16 06:10:10 2013 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/JimmyTheHack/code/DAC/#679fa19d91b2
diff -r 4e1ee1c4d3bb -r 454c4d3eeae9 DAC_SPI/DAC_SPI.cpp
--- a/DAC_SPI/DAC_SPI.cpp	Wed Jul 04 01:29:05 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#ifndef DAC_SPI_CPP
-#define DAC_SPI_CPP
-
-#include "DAC_SPI.h"
-/*SPI Channels */
-                          //since we only have two SPI channels, which must be shared, define them here.  
-SPI SPI_A(p5, NC, p7);    //If using with other serial devices, can pass a pointer to the serial channel.
-SPI SPI_B(p11, NC, p13);
-
-/*Initialize DAC */
-DAC_SPI::DAC_SPI(int SPIchannelNum, PinName _CS, PinName _LDAC) : CS(_CS), LDAC(_LDAC){  
-    if (SPIchannelNum ==1){
-        DACspi = &SPI_B;
-    }  
-    else{
-        DACspi = &SPI_A;
-    }
-    messageBits(16);
-}
-
-/** Manually change the SPI frequency 
-* Must be a value supported by the mbed and DAC
-*/
-void DAC_SPI::frequency(int freq){
-    (*DACspi).frequency(freq);    
-}
-
-
-//specify the number of bits used in message packets to the DAC.
-void DAC_SPI::messageBits(int bits){
-    (*DACspi).format(bits,0);
-}
-
-//select a DACnum for use with chips with multiple onboard DACs.
-void DAC_SPI::select(char DACnum){
-    DACselect=DACnum;
-}
-
-#endif //DAC_SPI_CPP
\ No newline at end of file
diff -r 4e1ee1c4d3bb -r 454c4d3eeae9 DAC_SPI/DAC_SPI.h
--- a/DAC_SPI/DAC_SPI.h	Wed Jul 04 01:29:05 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-#ifndef DAC_SPI_H
-#define DAC_SPI_H
-#include "mbed.h"
-
-/* a basic parent library for use with DACs controlled via SPI.  Individual hardware implementations will need their own libraries.
-This provides basic initialization of common pins and provides a serial channel.   Doesn't provide a lot of added functionality, but serves as an interface for the SPI library.
-*/
-class DAC_SPI
-{
-    public:
-    DAC_SPI(int SPIchannelNum, PinName CS,  PinName LDAC);
-    virtual void select(char DACvalue); //choose the active DAC
-    virtual void write(int DACvalue) =0; //write a value to the Digital Analog Converter    
-    virtual void write_mV(int millivolts) =0; //write a value to the Digital Analog Converter specified in mV (may require appropriate scaling factor)
-    
-    /** Manually change the SPI frequency 
-    * @param freq Desired frequency in hertz: must be a value supported by both the mbed and DAC.  The MCP4922 supports frequencies to 20MHz.
-    */
-    void frequency(int freq);
-    //set the number of bits for DAC
-    void messageBits(int bits);
-    //DigitalOut SCK;
-    /** The currently selected DAC channel.  0 for DAC A, 1 for DAC B, etc*/
-    char DACselect;
-    DigitalOut CS;  //serial chip select pin
-    DigitalOut LDAC; //synchronize pin to update both DACs together    
-    SPI * DACspi;  //SPI channel.  0 for p5-p7, 1 for p11-p13
-};
-
-extern SPI SPI_A;  //channel A SPI (pins 5,7)
-extern SPI SPI_B;  //channel B SPI (pins 11,13)
-
-#endif //DAC_H
\ No newline at end of file