Ignore:
Timestamp:
01/19/11 15:44:25 (14 years ago)
Author:
lutz
Message:
niculin & dom debugged quite some stuff
File:
1 edited

Legend:

Unmodified
Added
Removed
  • firmware/FSC/src/ad7719_adc.h

    r10102 r10109  
    1010#define ADC_RDY PD6
    1111#define ADC_RST PD7
    12 #define ADC_IS_READY() !(PIND & (1<<PD6)) // TRUE if PD6=0 AD_RDY is inverted logic.
     12#define AD7719_IS_READY() (!(PIND & (1<<PD6))) // TRUE if PD6=0 AD_RDY is inverted logic.
    1313
    1414// Port Definitions
     
    1717#define ADC_PIN PIND
    1818
    19 void adc_init(void);
    20 void startconv(void);
     19
     20// ON CHIP REGISTER ADDRESSES
     21#define STATUS_RD 0x40
     22
     23#define MODE_WR 0x01
     24#define MODE_RD 0x41
     25
     26#define AD0CON_WR 0x02
     27#define AD0CON_RD 0x42
     28
     29#define AD1CON_WR 0x03
     30#define AD1CON_RD 0x43
     31
     32#define FILTER_WR 0x04
     33#define FILTER_RD 0x44
     34
     35#define AD0DAT_RD 0x45
     36#define AD1DAT_RD 0x46
     37
     38#define IOCON_WR 0x07
     39#define IOCON_RD 0x47
     40
     41#define AD0OFS_WR 0x08
     42#define AD0OFS_RD 0x48
     43
     44#define AD1OFS_WR 0x09
     45#define AD1OFS_RD 0x49
     46
     47#define AD0GAIN_WR 0x0A
     48#define AD0GAIN_RD 0x4A
     49
     50#define AD1GAIN_WR 0x0B
     51#define AD1GAIN_RD 0x4B
     52
     53#define ID_RD 0x4F
     54
     55// REGISTER INIT VALUES
     56
     57        //Init Configure and Initialize AD7719
     58        //http://designtools.analog.com/dt/adc/codegen/ad7719.html
     59
     60#define IOCON_INIT_HIGH 0x03    //0000.0011 // I-sources I1 and I2 are switched on, thats all
     61#define IOCON_INIT_LOWBYTE 0x00
     62
     63#define FILTER_INIT 0x52        //0x52 euro use 50Hz = -171dB and 60Hz = -58dB Rejectjon Updaterate = 4Hz
     64                                                                                        // 0x52=82 decimal. f_ADC=16.6Hz; t_ADC=60ms; t_settle = 120ms
     65
     66#define AD1CON_INIT 0x31        //0011.0001     
     67        // AD1EN is set --> AUX ADc is used for Temp measurement.
     68        // ACH = 011 --> Tempsensor
     69        // U/#B = 0 --> bipolar, but i'm not entirely sure if this is correct.
     70        // ARN = 1 --> input range is REFIN2 , but when tempsensor is chosen, internal ref is used ...
     71
     72#define AD0CON_INIT 0x8E // 1000.1110
     73        // AD0EN is set
     74        // WL is cleared --> 24bit
     75        // CH = 00 --> AIN1 , AIN2 used
     76        // U/#B = 1 --> unipolar
     77        // RN=110 --> input range = +-1.28V --> whatever this means in ratiometric measurements.
     78
     79
     80#define MODE_IDLE 0x01
     81#define MODE_SINGLE 0x02
     82#define MODE_CONT 0x03
     83#define MODE_INTERNAL_ZERO_CAL 0x04             // not tested
     84#define MODE_INTERNAL_FULL_CAL 0x05             // not tested
     85
     86// since the ADC is chopped, one should wait 3 conversions
     87// after the muxer was switched, until the reading is okay.
     88#define READINGS_UNTIL_AD7719_SETTLED 3
     89
     90void ad7719_init(void);
     91void startconv(U08 continuous);
     92void stopconv(void);
    2193U32 read_adc(void);
    2294//-----------------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.