Basic libraries for functionality of the MCP4822 DAC, an easy to use DAC outputting up to 4.096V.
Revision 2:39a2c041eefe, committed 2013-07-16
- Comitter:
- JimmyTheHack
- Date:
- Tue Jul 16 06:23:19 2013 +0000
- Parent:
- 1:a710d52d3d19
- Commit message:
- DAC_SPI now in separate library
Changed in this revision
diff -r a710d52d3d19 -r 39a2c041eefe DAC.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DAC.lib Tue Jul 16 06:23:19 2013 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/JimmyTheHack/code/DAC/#679fa19d91b2
diff -r a710d52d3d19 -r 39a2c041eefe DAC_SPI/DAC_SPI.cpp --- a/DAC_SPI/DAC_SPI.cpp Thu Jun 14 03:59:22 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -#include "DAC_SPI.h" - -/*SPI Channels */ -SPI SPI_A(p5, NC, p7); //since we only have two SPI channels, which must be shared, define them here. -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); -} \ No newline at end of file
diff -r a710d52d3d19 -r 39a2c041eefe DAC_SPI/DAC_SPI.h --- a/DAC_SPI/DAC_SPI.h Thu Jun 14 03:59:22 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +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 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; - 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