Library to control the 12 Bits Analog Digital Converter MCP4921
Diff: Mcp4921.h
- Revision:
- 0:38e03f9fa18a
- Child:
- 1:1352606a60c6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Mcp4921.h Fri Nov 15 14:53:04 2013 +0000 @@ -0,0 +1,72 @@ +#ifndef MCP4921_H +#define MCP4921_H + +#include "mbed.h" + +/** +* The MCP4921 is a single 12 bit DAC. + The maximum voltage output is limited by the input voltage at V_DD which can go up to about 5.5V. + +* Datasheet: http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en020398 +* +*/ + +class Mcp4921 +{ + +public: + /** Initializes the MCP 4921 DAC with the frequency + * + * for exemple: + * Mbed Mcp4921 + * p11: Mosi <--->p4:Sdi + * p12: Miso No Connected + * p13: Sck <--->p3:Sck + * p14 <--->p2:Cs + * Vout <--->p1:Vdd + * Vout <--->p6: Vref + * Gnd <--->p7:Gnd + * Gnd <--->p5:Ldac + */ + Mcp4921(PinName _mosi,PinName _sck,PinName _cs, int _frequency); + + /** return the frequency use by the Mcp4921 + */ + int getFrequency(void); + + /** Writes a value between 0-4095 to the currently selected DAC output + * @param dataIntNum a value from 0-4095 to write to the DAC register + */ + void write(int dataIntNum); + + /** Writes a float value between 0.0-1.0 to the currently selected DAC output + * @param dataFloat a value from 0.0-1.0 to write to the DAC register + */ + void write(float dataFloat); + + /** Writes a value in mV to the DAC outputs. + * The output will only be accurate if Vref is set to the appropriate voltage reference scaling factor. + * @param millivolt The desired voltage output in millivolts + */ + void write_mV(int millivolt); + + /**An operator for shorthand write(int) + */ + void operator=(int dataIntNum); + + + /**An operator for shorthand write(float) + */ + void operator=(float dataFloat); + + +protected: +// + void setup(void); + SPI mySPI; + DigitalOut myCs; + int myFrequency; + +}; + +#endif \ No newline at end of file