微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADS1274数据读取问题

ADS1274数据读取问题

时间:10-02 整理:3721RD 点击:

本人想使用ADS1274的高速模式来传输数据,采用FRAME-SYNC传输格式,接收的数据不正常。现在改为测试低速模式,SPI传输格式,示波器观察波形,都正确,但读出的数据依然不对。MCU用的是STM32F103ZE,模拟的SPI时序

int SPI_Read(void)
{
   u8 i;
   u8 Temp_byte = 0;
   int Result = 0;
  
   ADS1274_SCLK = 0;      //    SCK=1;
   Delay_Us(1);    
   ADS1274_SCLK = 1;
   for(i=0;i<24;i++)
   {   
   Delay_Us(1);
   ADS1274_SCLK = 0;     
   Delay_Us(1);  
      ADS1274_SCLK = 1;
    Temp_byte = ADS1274_SDO ;
   Result  = (int)Result <<1 ;
   Result +=  Temp_byte ;
   }
   Delay_Us(1);
   ADS1274_SCLK = 0;                           
   return(Result); 

}该读数据时序在外部中断函数中执行(DRDY产生中断)。

十六进制数转为电压值的函数为:

buffer_1 = SPI_Read( );

if( buffer_1&0x800000)
   {
    dTmp = 0xffffff - buffer_1;
    dTmp = -dTmp;
   }
   else dTmp = buffer_1 ;
   dTmp = dTmp/0x7fffff;
   dTmp *= 2.5;
   /*if(dTmp == 0)
   {
    __nop();
   } */
   //printf("buffer_1 = %x\n\r",buffer_1);
   printf("V = %lf\n\r",dTmp);

是不是结果是实际值的 2 倍 ?

开始为什么多发一个脉冲,注意时序中, DOUT 在下降沿后就输出数据了。

根据这句话。

请问你这个问题解决了没有?我现在遇到了一个和你一样的问题?能不能请教下,谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top