This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS7953:ADS7953在Auto-1模式下获取错误数据

Guru**** 2549230 points
Other Parts Discussed in Thread: ADS7953

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/604039/ads7953-ads7953-get-bad-datas-in-auto-1-mode

部件号:ADS7953

我在自动1模式下使用ADS7953 (所有通道),但接收的数据为bow:


340
1710.
2703.
374F
481e
5838.
63a8.
7810.
8782.
8718.
838a
180
C330
C182
e381
f180

我的代码 是:

//请求下一帧进入自动模式1
	SPI1_SEND_DATA (ADS79XX_PROG_AUTO1)的编程模式;

//对自动模式1信道序列进行编程,以包括所有信道
	SPI1_SEND_DATA (AUTO1_ALL _CHAN_ENABLE);

//编程自动模式1范围和配置设置
	SPI1_SEND_DATA (ADS79XX_AUTO_MODE1 | AUTO1_PROG_ENABLE | AUTO1_CHAN_COUNT_RESET | AUTO1_5VRANGE_SEL | AUTO1_NORM_OP_SEL | AUTO1_CHAN_ADDIY_SEL);

	while (1)
	{
		res = SPI1_SEND _DATA (0x0000) //发送到ADS7953
		printf("%x\n",res);
		delay_ms(2000);					
	} 

为什么我有错误的数据? 请帮助我,谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在Auto-1模式下从ADS7953获取的正确数据是:
    0xxx
    1xxx
    2xxx
    3xxx
    4xxx
    5xxx
    6xxx
    7xxx
    8xxx
    9xxx
    axxx
    Bxxx
    Cxxx
    Dxxx
    Exxx
    FXXX
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,用户368.132万

    这可能是与SPI信号之间的计时不匹配相关的问题。 您能否捕获示波器上的SDI/CS/SCLK/SDO信号并共享详细信息。

    验证是否是与计时相关的问题的另一种方法是将设备设置为手动模式,并仅重复监控一个通道(首选接收 错误数据的通道)。 从ADC返回的数据在每种情况下都应相同。 如果不是,则是与计时相关的问题

    谢谢,顺祝商祺

    Abhijeet

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Abhijeet Godbole!

    由于 主板上的电源问题,我已经解决了问题。

    但现在我遇到了一个新问题,我从 ADS7953接收数据,如下所示:

    xxxx (ADS7953初始化后我首先得到此 项)
    0xxx
    1xxx
    2xxx
    3xxx
    4xxx
    5xxx
    6xxx
    7xxx
    8xxx
    9xxx
    axxx
    Bxxx
    Cxxx
    Dxxx
    Exxx
    FXXX

    0xxx
    1xxx
    2xxx
    3xxx
    4xxx
    5xxx
    6xxx
    7xxx
    8xxx
    9xxx
    axxx
    Bxxx
    Cxxx
    Dxxx
    Exxx
    FXXX

    ...

    我的代码是:

    //请求下一帧进入自动模式1
    SPI1_SEND_DATA (ADS79XX_PROG_AUTO1)的编程模式;
    
    
    //编程自动模式1通道序列以包括所有通道
    SPI1_SEND_DATA (AUTO1_ALL _CHAN_ENABLE);
    
    
    //编程自动模式1范围和配置设置
    SPI1_SEND_DATA (ADS79XX_AUTODE_SEND_AUTO1
    
    
    )
    | AUTODE1 AUTODEG_SEL_NOM_ADDE1,同时| AUTODEG_SEL_NOM_AUTODE1
    RES = SPI1_SEND_DATA (0x0000); //首先我得到xxxx (仅一次)
    printf ("%x\n",res);
    delay_ms(2000);
    } 

    为什么  我一开始就得到xxxx?  请帮助我,谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好

    开机或重置后的首次转换无效,应忽略。 有关详细信息,请参阅第12页的电气字符表规格

    谢谢

    Abhijeet

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Abhijeet Godbole

    现在我看到了,谢谢!