-

Dependents:   AD7730_demo

Fork of AD7730 by Controls2 Developer

Committer:
frada
Date:
Tue Mar 17 12:13:39 2015 +0000
Revision:
1:82872c4221fc
Parent:
0:c584a588c24f
-

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cfscontrols2 0:c584a588c24f 1 #ifndef AD7730_H
cfscontrols2 0:c584a588c24f 2 #define AD7730_H
cfscontrols2 0:c584a588c24f 3
cfscontrols2 0:c584a588c24f 4 #include "mbed.h"
cfscontrols2 0:c584a588c24f 5
frada 1:82872c4221fc 6 #define STATUS_REG 0x00
frada 1:82872c4221fc 7 #define DATA_REG 0x01
frada 1:82872c4221fc 8 #define MODE_REG 0x02
frada 1:82872c4221fc 9 #define FILTER_REG 0x03
frada 1:82872c4221fc 10 #define DAC_REG 0x04
frada 1:82872c4221fc 11 #define OFFSET_REG 0x05
frada 1:82872c4221fc 12 #define GAIN_REG 0x06
frada 1:82872c4221fc 13 #define TEST_REG 0x07
frada 1:82872c4221fc 14
cfscontrols2 0:c584a588c24f 15 class AD7730{
cfscontrols2 0:c584a588c24f 16
cfscontrols2 0:c584a588c24f 17 public:
cfscontrols2 0:c584a588c24f 18 AD7730(PinName mosi, PinName miso, PinName sclk, PinName ready, PinName cs);
cfscontrols2 0:c584a588c24f 19 ~AD7730(void);
cfscontrols2 0:c584a588c24f 20
cfscontrols2 0:c584a588c24f 21 int readRegistry(int registry);
cfscontrols2 0:c584a588c24f 22 int writeRegistry(int registry, int value);
cfscontrols2 0:c584a588c24f 23 int initialize(void);
cfscontrols2 0:c584a588c24f 24 int systemLowCal(double wgt);
cfscontrols2 0:c584a588c24f 25 int systemHighCal(double wgt, double fullScale);
frada 1:82872c4221fc 26 int read(bool _wait);
cfscontrols2 0:c584a588c24f 27 int startConversion(bool wait);
cfscontrols2 0:c584a588c24f 28 void setFilter(int SF, bool chop, int filter2);
cfscontrols2 0:c584a588c24f 29 void setFilterSF(int SF);
cfscontrols2 0:c584a588c24f 30 void setFilterMode(int mode);
cfscontrols2 0:c584a588c24f 31 void setFilterChop(int enabled);
cfscontrols2 0:c584a588c24f 32 void reset(bool fullReset);
cfscontrols2 0:c584a588c24f 33 int adjustDAC(int direction);
cfscontrols2 0:c584a588c24f 34 void start(void);
cfscontrols2 0:c584a588c24f 35 void stop(void);
cfscontrols2 0:c584a588c24f 36 bool isReady(void);
cfscontrols2 0:c584a588c24f 37 double getHz(void);
cfscontrols2 0:c584a588c24f 38
cfscontrols2 0:c584a588c24f 39
cfscontrols2 0:c584a588c24f 40 private:
cfscontrols2 0:c584a588c24f 41
cfscontrols2 0:c584a588c24f 42 SPI _spi;
cfscontrols2 0:c584a588c24f 43 DigitalOut _cs;
cfscontrols2 0:c584a588c24f 44 DigitalIn _readyDig;
cfscontrols2 0:c584a588c24f 45 DigitalOut _LED3;
cfscontrols2 0:c584a588c24f 46 InterruptIn *_interruptReady;
cfscontrols2 0:c584a588c24f 47 PinName _readyPin;
cfscontrols2 0:c584a588c24f 48 double _fullScaleWeight;
cfscontrols2 0:c584a588c24f 49 double _minWeight;
cfscontrols2 0:c584a588c24f 50 double _maxWeight;
cfscontrols2 0:c584a588c24f 51 int _readBuffer[100];
cfscontrols2 0:c584a588c24f 52 int _bufferCount;
cfscontrols2 0:c584a588c24f 53 int _lastValue;
cfscontrols2 0:c584a588c24f 54 bool _continous;
cfscontrols2 0:c584a588c24f 55 int _frequency;
cfscontrols2 0:c584a588c24f 56 Timer _tmr;
frada 1:82872c4221fc 57
cfscontrols2 0:c584a588c24f 58 //define empty spi command
cfscontrols2 0:c584a588c24f 59 static const int EMPTY_SPI = 0xFF;
cfscontrols2 0:c584a588c24f 60
cfscontrols2 0:c584a588c24f 61 //internal registries
cfscontrols2 0:c584a588c24f 62 int _mode;
cfscontrols2 0:c584a588c24f 63 int _filter;
cfscontrols2 0:c584a588c24f 64 int _dac;
cfscontrols2 0:c584a588c24f 65 int _offset;
cfscontrols2 0:c584a588c24f 66 int _gain;
cfscontrols2 0:c584a588c24f 67
cfscontrols2 0:c584a588c24f 68
cfscontrols2 0:c584a588c24f 69 //timing variables
cfscontrols2 0:c584a588c24f 70 Timer _exeTmr;
cfscontrols2 0:c584a588c24f 71 int _exeTime;
cfscontrols2 0:c584a588c24f 72
cfscontrols2 0:c584a588c24f 73 //error variables
cfscontrols2 0:c584a588c24f 74 int _exeError;
cfscontrols2 0:c584a588c24f 75
cfscontrols2 0:c584a588c24f 76 //private functions
cfscontrols2 0:c584a588c24f 77 int internalZeroCal(void);
cfscontrols2 0:c584a588c24f 78 int internalFullCal(void);
frada 1:82872c4221fc 79 void interruptRead(void);
cfscontrols2 0:c584a588c24f 80 };
cfscontrols2 0:c584a588c24f 81
cfscontrols2 0:c584a588c24f 82 #endif