Problem Interfacing ADC AD7856 with LPC2148

OP #1872643
Rate this post
useful
not useful
Hello

I am trying to interface external ADC AD7856 with LPC2148. Here goes my 
code
1
int main(void)
2
{
3
  U16 adc_val = 0;
4
  U8 data = 0;
5
  U8 upper = 0, lower = 0;
6
  
7
 
8
  HardwareInit();     //SPI and ADC initialised
9
  AD_7856_SYNC_SET(); // SYNC bit set high
10
  
11
  while(1)
12
  {
13
   while((AD_7856_BUSY_IOPIN & AD_7856_BUSY));//wait for BUSY bit to set 0
14
    AD_7856_SYNC_CLR();         // SYNC bit high
15
    delay(3);
16
    data = 0xE0;                //Upper MSB write
17
    SPI_Write(1, &data);
18
    data = 0xC0;                //lower LSB write
19
    SPI_Write(1, &data);
20
    delay(3);
21
    AD_7856_SYNC_SET();         
22
    delay(3);
23
 
24
  while((AD_7856_BUSY_IOPIN & AD_7856_BUSY));//wait for BUSY bit to set 0
25
   AD_7856_SYNC_CLR();
26
   delay(3);
27
   SPI_Read(&upper);          //Upper MSB read
28
   adc_val = upper <<8;
29
   SPI_Read(&lower);          //Lower LSB read
30
    adc_val = adc_val | lower;
31
    AD_7856_SYNC_SET();
32
  }
33
  return 1;
34
}

According to the data I can writing I should read back the data as 
0x20C0 but instead the output is always Garbage values.
Moreover the Busy  bit never sets high during conversion it always 
remains low.

Any suggestion is most welcome. And any change in the code required???

Joydeep

Reply

Please log in before posting.

or

Log in with Google account

Registration is free and takes only a minute.

Register now