Electronic Components Datasheet Search |
|
AD7707 Datasheet(PDF) 42 Page - Analog Devices |
|
|
AD7707 Datasheet(HTML) 42 Page - Analog Devices |
42 / 53 page AD7707 Rev. B | Page 41 of 52 CODE FOR SETTING UP THE AD7707 The C Code for Interfacing AD7707 to 68HC11 section gives a set of read and write routines in C code for interfacing the 68HC11 microcontroller to the AD7707. The sample program sets up the various registers on the AD7707 and reads 1000 samples from the part into the 68HC11. The setup conditions on the part are exactly the same as those outlined for the flowchart of Figure 22. In the example code given here, the DRDY output is polled to determine if a new valid word is available in the data register. The sequence of the events in this program are as follows: 1. Write to the communications register, selecting Channel 1 (AIN1) as the active channel and setting the next operation to be a write to the clock register. 2. Write to the clock register setting the CLKDIV bit to 1, which divides the external clock internally by two. This assumes that the external crystal is 4.9512 MHz. The update rate is selected to be 50 Hz. 3. Write to communication register selecting Channel 1 (AIN1) as the active channel and setting the next operation to be a write to the setup register. 4. Write to the setup register, setting the gain to 1, setting bipolar mode, buffer off, clearing the filter synchroniza- tion, and initiating a self-calibration. 5. Poll the DRDY output. 6. Read the data from the data register. 7. Repeat Step 5 and Step 6 until the specified number of samples have been taken from the selected channel. C CODE FOR INTERFACING AD7707 TO 68HC11 /* This program has read and write routines for the 68HC11 to interface to the AD7707 and the sample program sets the various registers and then reads 1000 samples from one channel. */ #include <math.h> #include <io6811.h> #define NUM_SAMPLES 1000 /* change the number of data samples */ #define MAX_REG_LENGTH 2 /* this says that the max length of a register is 2 bytes */ Writetoreg (int); Read (int,char); char *datapointer = store; char store[NUM_SAMPLES*MAX_REG_LENGTH + 30]; void main () { /* the only pin that is programmed here from the 68HC11 is the /CS and this is why the PC2 bit of PORTC is made as an output */ char a; DDRC = 0x04; /* PC2 is an output the rest of the port bits are inputs */ PORTC | = 0x04; /* make the /CS line high */ Writetoreg (0x20); /* Active Channel is AIN1/LOCOM, next operation as write to the clock register */ Writetoreg (0x18); /* master clock enabled, 4.9512 MHz Clock, set output rate to 50 Hz*/ Writetoreg (0x10); /* Active Channel is AIN1/LOCOM, next operation as write to the setup register */ Writetoreg (0x40); /* gain = 1, bipolar mode, buffer off, clear FSYNC and perform a Self Calibration*/ while (PORTC and 0x10); /* wait for /DRDY to go low */ for (a=0;a<NUM_SAMPLES;a++); { Writetoreg (0x38); /*set the next operation for 16 bit read from the data register */ Read (NUM_SAMPES,2); } } |
Similar Part No. - AD7707_17 |
|
Similar Description - AD7707_17 |
|
|
Link URL |
Privacy Policy |
ALLDATASHEET.COM |
Does ALLDATASHEET help your business so far? [ DONATE ] |
About Alldatasheet | Advertisement | Datasheet Upload | Contact us | Privacy Policy | Link Exchange | Manufacturer List All Rights Reserved©Alldatasheet.com |
Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
Family Site : ic2ic.com |
icmetro.com |