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.

[参考译文] 编译器/ADS1292R:数据输出代码和SPI

Guru**** 2582405 points
Other Parts Discussed in Thread: ADS1292

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/579608/compiler-ads1292r-data-output-code-and-spi

部件号:ADS1292R
主题中讨论的其他部件:ADS1292

工具/软件:TI C/C++编译器

您好,  

我对数据输出有疑问。 在数据表第38页上的"RREG: Read from Register"一节中,建议必须发出2个操作代码,然后在第17个SCLK reg数据上移出。 如果我做得对,前8个SCLK用于REG命令,后8个SCLK用于我要读取的寄存器数量-1。 意思是,我想在addres 0x00 -->上读取ID寄存器

write_spi (0x20);//第一个8 SCLK
的Write_SPi (0x00);//I要读取1个寄存器(第二个8 SCLK的)
Write_SPi (0x00);//另一个8个SCLK的寄存器用于reg数据

我不太明白的是当我想读多个寄存器时。 如果第二个操作码是Write_SPI(0x06),这是否意味着我要读取5个寄存器? 对于螺旋桨,我应该再发送40个SCLK?

我的READ_BYTE函数处于While循环中,因此我不断读取下面示例图片中显示的内容。

这是示波器的图片,当我发送48个SCLK时(比我实际发送的时钟多8个时钟)

这是我发送7张SCLK的  

为什么我必须发送7字节时钟(在2字节操作码时钟之后)才能读取propper?

为什么在6字节时钟(在2字节操作码时钟之后)上,最后一个reg数据是在第一个操作码中从另一个read_byte函数读取的?

在RREG命令期间,不应通过DIN发送任何数据,但根据最后一张图片,ADS的作用类似于SPI全双工协议,但它不应该,或者?

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

    嗨,Mate,

    对于ADS1292 -使用RREG命令时,第二个OpCode是要读取的寄存器数减去1,因此Write_SPI(0x06)将要求设备发回 前七个寄存器的内容。  您需要发出值为9字节的SCLK,一个用于命令,一个用于读取寄存器的#,然后再发出七个用于检索寄存器详细信息。

    如果您未读通所有您要求的寄存器(即 —只发送8字节时钟),您在第一个命令中要求的最后一个寄存器将出现在SDO上。  如果仔细检查,在该循环的第一次迭代时,您将不会在SDO上看到任何数据-您只会在循环2到X上看到它  

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