Changeset 10109 for firmware/FSC/src/ad7719_adc.h
- Timestamp:
- 01/19/11 15:44:25 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
firmware/FSC/src/ad7719_adc.h
r10102 r10109 10 10 #define ADC_RDY PD6 11 11 #define ADC_RST PD7 12 #define AD C_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. 13 13 14 14 // Port Definitions … … 17 17 #define ADC_PIN PIND 18 18 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 90 void ad7719_init(void); 91 void startconv(U08 continuous); 92 void stopconv(void); 21 93 U32 read_adc(void); 22 94 //-----------------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.