Library for LTC2460 ADC converter

Committer:
igbt6
Date:
Mon May 11 09:28:24 2015 +0000
Revision:
0:7f26ce7f8ff5
first version of library for LTC2460 ADC converter

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igbt6 0:7f26ce7f8ff5 1 /*
igbt6 0:7f26ce7f8ff5 2 @file LTC2460.h
igbt6 0:7f26ce7f8ff5 3
igbt6 0:7f26ce7f8ff5 4 @brief LTC2460 - Ultra-Tiny, 16-Bit ΔΣ ADCs with 10ppm/°C Max Precision Reference
igbt6 0:7f26ce7f8ff5 5 Breakout SPI Library
igbt6 0:7f26ce7f8ff5 6
igbt6 0:7f26ce7f8ff5 7 @Author lukasz uszko(luszko@op.pl)
igbt6 0:7f26ce7f8ff5 8
igbt6 0:7f26ce7f8ff5 9 Tested on FRDM-KL46Z and FRDM-KL25Z
igbt6 0:7f26ce7f8ff5 10
igbt6 0:7f26ce7f8ff5 11 Copyright (c) 2015 lukasz uszko
igbt6 0:7f26ce7f8ff5 12 Released under the MIT License (see http://mbed.org/license/mit)
igbt6 0:7f26ce7f8ff5 13
igbt6 0:7f26ce7f8ff5 14 Documentation regarding the LTC2460 might be found here:
igbt6 0:7f26ce7f8ff5 15 http://www.linear.com/product/LTC2460
igbt6 0:7f26ce7f8ff5 16 */
igbt6 0:7f26ce7f8ff5 17
igbt6 0:7f26ce7f8ff5 18
igbt6 0:7f26ce7f8ff5 19
igbt6 0:7f26ce7f8ff5 20 #ifndef LTC2460_H
igbt6 0:7f26ce7f8ff5 21 #define LTC2460_H
igbt6 0:7f26ce7f8ff5 22
igbt6 0:7f26ce7f8ff5 23 #include "mbed.h"
igbt6 0:7f26ce7f8ff5 24
igbt6 0:7f26ce7f8ff5 25
igbt6 0:7f26ce7f8ff5 26 class LTC2460{
igbt6 0:7f26ce7f8ff5 27
igbt6 0:7f26ce7f8ff5 28
igbt6 0:7f26ce7f8ff5 29 /**********private members and methods********************************/
igbt6 0:7f26ce7f8ff5 30 private:
igbt6 0:7f26ce7f8ff5 31
igbt6 0:7f26ce7f8ff5 32 DigitalOut mCSpin;
igbt6 0:7f26ce7f8ff5 33 SPI mSpi;
igbt6 0:7f26ce7f8ff5 34 double mResDividerVal;
igbt6 0:7f26ce7f8ff5 35
igbt6 0:7f26ce7f8ff5 36
igbt6 0:7f26ce7f8ff5 37 /**********public methods********************************/
igbt6 0:7f26ce7f8ff5 38 public:
igbt6 0:7f26ce7f8ff5 39
igbt6 0:7f26ce7f8ff5 40 /** Constructor- Creates an LTC2460 instance
igbt6 0:7f26ce7f8ff5 41 * @param cs pin
igbt6 0:7f26ce7f8ff5 42 * @param mosi pin
igbt6 0:7f26ce7f8ff5 43 * @param miso pin
igbt6 0:7f26ce7f8ff5 44 * @param sck pin
igbt6 0:7f26ce7f8ff5 45 */
igbt6 0:7f26ce7f8ff5 46 LTC2460(PinName csPin , PinName mosiPin, PinName misoPin, PinName sckPin,double resDividerVal=0 );
igbt6 0:7f26ce7f8ff5 47
igbt6 0:7f26ce7f8ff5 48
igbt6 0:7f26ce7f8ff5 49 /** Initialization: set member values and configuration registers, ought to be invoked in the body of constructor
igbt6 0:7f26ce7f8ff5 50 * @returns
igbt6 0:7f26ce7f8ff5 51 * true on success,
igbt6 0:7f26ce7f8ff5 52 * false on error
igbt6 0:7f26ce7f8ff5 53 */
igbt6 0:7f26ce7f8ff5 54 bool initLTC2460(void);
igbt6 0:7f26ce7f8ff5 55
igbt6 0:7f26ce7f8ff5 56
igbt6 0:7f26ce7f8ff5 57 /*reading , writing registers
igbt6 0:7f26ce7f8ff5 58
igbt6 0:7f26ce7f8ff5 59 */
igbt6 0:7f26ce7f8ff5 60 uint16_t spiRead(void);
igbt6 0:7f26ce7f8ff5 61
igbt6 0:7f26ce7f8ff5 62 void spiWrite(uint16_t value);
igbt6 0:7f26ce7f8ff5 63
igbt6 0:7f26ce7f8ff5 64 /** Read volatge real value from ADC , with .
igbt6 0:7f26ce7f8ff5 65 * @param resistor divider value: GND---- R1 ----- ADC-----R2--- Vmeasured --> resDividerVal = R1/R2
igbt6 0:7f26ce7f8ff5 66 * @returns
igbt6 0:7f26ce7f8ff5 67 * value of voltage measured voltage
igbt6 0:7f26ce7f8ff5 68 */
igbt6 0:7f26ce7f8ff5 69 float readVoltage();
igbt6 0:7f26ce7f8ff5 70
igbt6 0:7f26ce7f8ff5 71
igbt6 0:7f26ce7f8ff5 72
igbt6 0:7f26ce7f8ff5 73 };
igbt6 0:7f26ce7f8ff5 74
igbt6 0:7f26ce7f8ff5 75 #endif