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.

[参考译文] ADS1243:读取和写入内部寄存器

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/656382/ads1243-reading-and-writing-internal-registers

部件号:ADS1243
线程中讨论的其他部件:TMS320F2.8027万

您好,
我正在使用ADS1243与TMS320F2.8027万启动板的接口。
硬件配置为

ADS1243侧面
VDD-GND 3.3 V直流(相对于接地)
参考电压- 1.23 / 1.24 V直流[(参考输入+)= 1.24V abd (参考输入–)= GND]
4.9152 MHz的XIN和XOUT之间的晶体振荡器(我已检查了断电时示波器上的正弦波与VDD的针接线)
~CS直接连接至GND
我已检查了~μ L DRDY脉冲,其为33.60 MS (开+关-它低的时间超过高),根据数据表,这是正确的。
和输入在读取寄存器时浮动。 我没有将任何东西连接到针脚中的ADC。 我正在使用内部默认条件读取寄存器值。

DIN-MOSI
dout - miso
SCLK至SCLK
DRDY至GPIO
关闭至VDD
CS接地

控制器SPI配置
设置为主中继器
时钟极性-数据输出在上升沿,数据输入在下降沿(数据输入无关紧要,因为我正在检查DSO上的ADC输出信号)
SPI时钟为500MHz
8位数据传输

代码序列
控制器端初始化(时钟,PIE和PIE矢量表)
SPI初始化
发送0x11;//读取内部寄存器
延迟16US;
发送0x00;//单寄存器读取
延迟16US;
发送0x00;//伪字节发送到genrate时钟以接收数据


在这种情况下,当我发送数据并检查DSO时,它是正确的,延迟,8时钟周期和数据处于上升边缘
但ads1243没有数据DOUT引脚
它是完全高的,我的控制器的接收缓冲区中填充了0xFF的数据,因为我期望缓冲区中有0x01数据

任何人都有代码序列或工作代码。
我尝试了这个序列,有不同的延迟,最多100us,但结果是一样的。

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

    您好,
    我正在使用 ADS1243TMS320F2.8027万 启动板的接口。
    硬件配置为

    ADS1243 侧面
    VDD-GND 3.3 V直流(相对于接地)
    参考电压- 1.23 / 1.24 V直流[(参考输入+)= 1.24V和(参考输入–)= GND]
    4.9152 MHz的Xin和XOUT之间的晶体振荡器(我已检查了连接至VDD的断电引脚时示波器上的正弦波)
    ~CS直接连接至GND
    我已检查了~μ L DRDY脉冲,其为33.60 MS (开+关-它低的时间超过高),根据数据表,这是正确的。
    和输入在读取寄存器时浮动。 我没有将任何东西连接到针脚中的ADC。 我正在使用内部默认条件读取寄存器值。

    ADC到控制器的引脚配置  

    DIN-MOSI
    dout - miso
    SCLK至SCLK
    DRDY至GPIO
    ~断电至VDD
    ~CS接地

    控制器SPI配置
     控制器设置为主控制器
    时钟极性- 数据从上升沿的控制器输出,数据从下降沿的控制器输入(数据输入无关紧要,因为我正在检查DSO上的ADC输出信号)
    SPI时钟为500MHz
    8位数据传输

    代码序列
    控制器端初始化(时钟,PIE和PIE矢量表)
    SPI初始化
    发送0x11;//读取内部寄存器
    延迟16US;
    发送0x00;//单寄存器读取
    延迟16US;
    发送0x00;//伪字节发送到genrate时钟以接收数据


    在这种情况下,当我从控制器向ADC发送数据并检查DSO时,正确的延迟,8时钟周期和上升沿上的数据
    但是  ,当我检查DSO和rxbuffer时,ads1243的DOUT引脚上没有数据
    dout pin非常高,我的控制器接收缓冲区中填充了0xFF值(在屏蔽为8位后),因为我期望缓冲区中有0x01数据

    任何人都有代码序列或工作代码。
    我尝试了这个序列,有不同的延迟,最多100us,但结果是一样的。

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


    如果/DRDY脉冲正在发出,则设备应正常工作。 这意味着它不处于睡眠模式或某种重置模式。

    您的通信描述是正确的。 根据时钟频率,SCLK周期似乎正常。 但是,您需要验证通信的所有时间。 计时图如数据表第6页所示。 如果您已经使用DSO来查看此情况,请发布DIN,DOUT和SCLK的范围快照,假设您已将/CS降低。

    请注意,打捆/CS过低也可能会导致问题。 如果您在SCLK上有很大的噪音,这将中断您的SPI通信,因为设备可能会接收到您发送的更多SCLK。 可能很难从该错误中恢复。 您需要运行SCLK重置波形来重置SPI通信。 如果您有GPIO可用,我将使用/CS。

    我还会验证您的物理连接,检查以确保测量的针脚和输出正确。 如果您能够,能否发布示意图以显示您的连接?


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

    e2e.ti.com/.../doc.doc

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

    Ajay,

    我不确定问题到底是什么,但我认为您的第二个图解显示得相当多:

    Dout似乎有点浮起来了,这不应该是事实。 对于ADS1243,DOUT处于主动驱动状态(无需上拉或下拉即可读取器件)。

    我会检查几件事。 首先确保主从具有共同的接地。 两个设备的GND必须相同。 检查并确认未将示波器的输入设置为交流耦合,而是设置为直流耦合。 最后检查从控制器到主控制器的连接是否正确,以及您测量的针脚是否正确。

    如果仍然有问题,示波器镜头非常有用。 最好尝试一次获取所有四条SPI线(DIN,DOUT,SCLK,/CS)。 如果您将/CS系为低,则添加/DRDY。

    吴若瑟

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

     吴德伟

    我已经多次检查我的硬件连接是否正确 (公共接地,MOSI到Din,miso到dout,SCLK到SCLK和/CS与接地连接,我也尝试了/CS连接到/CS ,所有条件主机都正常工作)。我的DSO在处理串行通信时始终设置为DC耦合,我也验证了它 两次。 我正在注意 并满足数据表第6页中指定的所有计时特性。/断电引脚连接到VDD,/CS连接到接地,并且我检查ADC上的电压正确。

    我已尝试使用重置命令和SCLK模式,并在适当的延迟下测试静息设备。此外,我还根据数据表测试了具有5V VDD条件和其指定参数的设备。我也会更换芯片并再次测试。但每次测试都得到相同的结果。

    我没有4通道DSO,所以我不能一次发送四个信号。早些时候,当我尝试以下是ADC的DOUT引脚的结果,它的时钟响应为MUX电阻器。

    我已使用此启动板测试了AD7730芯片,并在数据表中指定了程序我能够在该设备中读取和写入正确的数据。  

    您是否对包含读/写内部寄存器的所有步骤的ADS1243有任何明确的想法或任何清晰的文档,或者您使用此设备测试的任何代码样本,或者任何有助于读取或写入此数据或从设备读取数字数据的材料, 否则,我必须继续进行其他任何工作。   

    您是否有我可以试用的此设备的已测试代码??

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

    Ajay,

    回到下面的图解,我提到这可能是一个漂浮的地方。

    但是,它也可能是DOUT引脚到接地的大量电容。

    我今天确实花了一些时间尝试从设备读取,确实花了一些时间,但最终我从设备获得了正确的输出。 我遇到了两个问题,一个是焊接连接不良,另一个是定时错误。 下面是我获取数据的流程:

    我放了一个小板,总相Aardvark作为主板。 下面是主板的图片:

    然后是Aardvark主控板的图片:

    首先,我在设备通电时查看/DRDY行。 我只是想确保设备正常运行。

    在这里,您可以看到/DRDY输出大约为66uS,因此数据速率为15SPS。 最后,我使用了一个更快的主时钟(这个频率是2.45MHz,我最终使用了4.91MHz),但我稍后会讨论这个问题。 同样,此图显示设备正在运行。

    很长一段时间以来,我在DOUT上什么都没有。 但是,正如我所提到的,我遇到了DIN上焊接连接不良的问题。 虽然我可以从探头连接中看到DIN,但它没有连接到设备,因此没有计时。

    我还发现了SPI计时的问题,如果你看第6页上的计时图,从REG命令到DOUT的第一个SCLK边缘的时间是50tosc周期。 这大约是20.5us。 很遗憾,我可以控制SCLK频率(设置为最低设置125kHz),但我无法控制WREG字节与DOUT读取字节之间的计时。 主中继器发送一个字节,其间距约为11us。 为了解决这个问题,我不得不将主时钟速度提高到4.91MHz。

    最后,我得到了以下输出:

    或者,如果您近距离查看:

    粉色是/CS。 蓝色代表DIN,黄色代表SCLK,绿色代表DOUT。 我读了这篇文章,我能够读取全刻度(增益)校准寄存器。

    为了验证设备是否正在获取信息,我使用了几个技巧。 正如我之前提到的,我通过查看/DRDY行来验证设备是否正常工作。 如果您监控此线路,还可以验证与设备的通信是否正常。 如果发送sleep (FDH),/DRDY脉冲将消失。 如果您发送SCLFCAL (F0h),则/DRDY会在设备校准时的2个数据周期内达到较高的值。 不管怎样,这将测试您是否可以向设备写入数据。

    我再次使用这些技巧来确定设备是否接收到该命令。 之后,我对照正时图进行检查,确定T6被违反了。

    不管怎样,您应该能够使用类似的方法来确定通信问题。

    吴若瑟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的Joseph:
    感谢您的回复。 你能给我发送你的ADC电路图吗? 正如我在图片中看到的那样,您已经连接了一些Crystal所珍视的组件。我将在您的设置中尝试一次。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ajay,

    将ADS1243安装在TSSOP-20电路板上,将测试电路连接在一起。 这是一个基本原理图:

    没有精确的参考,输入不能测量除偏移之外的任何东西,也没有任何旁路电容器。 这不是我用来建立精密测量系统的工具,但我可以使用它与设备进行通信,并在必要时进行基本测量。

    请注意,我的主要问题是时间图中的此规格:

    T6正时比我预期的要长。 显然,设备在与部件通信之前解析RDATA,RDATAC,RREG和WREG命令需要较长时间。 我没有能力和我的主人一起控制这个,这就是我提高时钟速度的原因。 如果您正在对微控制器进行编程,您应该能够避免此问题。

    吴若瑟

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

    Ajay,

    我在图中忘记提到的另一个连接是从主板到从板的接地连接。

    两者必须共用一个接地,否则SPI通信可能无法工作。

    吴若瑟

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


    我只是想看看您是否能够很好地读取ADS1243。 如果您无法获得正确的数据或注册设备读出的内容,请在回帖中提供有关读取错误的更多详细信息,我们可以查看其他要调试的内容。 如果您能够从设备中读取,我想关闭此帖子。

    我会让帖子持续打开一段时间,但很快就会关闭。 如果您决定重新发布并锁定在该线程之外,请随时开始新线程。


    吴若瑟