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.

[参考译文] ADS1146:寄存器写入失败

Guru**** 2586135 points
Other Parts Discussed in Thread: ADS1246

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/633425/ads1146-register-write-failure

部件号:ADS1146
在“线程:ADS1246”中讨论的其他部件

你(们)好

对系统控制寄存器(或设备中的任何其它寄存器)的写入无法更新。 但是,我可以根据数据表读取初始化的值,它们是匹配的! 什么设置会阻止写入配置寄存器?

也许我的初始化顺序错误?

1-设置开始= 1,设置重置= 0;

2-等待20毫秒

3-设定开始=1,设定复位=1;

4 -等待20毫秒//省略此延迟没有影响

5-发送命令SDATAC //This将仅在下一个就绪信号后生效

6-等待就绪信号

7-阅读16位答案以清除DOUT

8-读取一次扫描(11)中的所有寄存器//这只是为了查看它们与数据表的比较情况。

BCS = 0x01

VBIAS = 0x00

MUX1 = 0x00

SYS0 = 0x00

OFC0 = 0x00

OFC1 = 0x00

OFC2 = 0x00

FSC0 = 0x00

FSC1 = 0x00

FSC2 = 0x40

ID = 0x72

9-写入控制系统寄存器= 0x05 //将速度设置为160SPS

10 -等待40微秒

11-读取一个扫描中的所有11个寄存器以进行比较->所有寄存器保持相同,控制寄存器不更新!

请提供建议。

Phlip

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


    只要符合时间要求,就不应该有任何东西可以阻止写入寄存器。 但是,在沟通中仍有一些事情需要注意。

    您是否能够获得SPI线的示波器照片? 如果您有四通道范围,请查看SCLK,DIN,DOUT和/CS。 它有助于查看所有波形以检查计时。 如果您有逻辑分析器,则还应选择/DRDY。

    SCLK频率是多少? 如果单独设置了SPI读写,则可能设置了错误的SPI样式。 您是否已将/CS设置为在整个写入过程中保持较低的值? 我还会检查您的设置中是否没有将注册恢复为默认设置的错误重置。

    不管怎样,看看您是否可以获得通信的示波器照片并将结果发布回。


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

    您好,

    请在下面查找SPI行的范围捕获。 SPI的速度为1MHz。 所有通道均设置为5V/div,时间刻度为2 us/div或10US/div。 顶部(黄色)波形是/CS,第二个(绿色)是时钟(我的SPI设置为在/CS之后延迟时钟,因此时钟出现之前的间隙),第三个(蓝色)是DI (MOSI),底部(红色)是DOUT (Miso)。

    "停止连续读取"命令:

    就绪信号后获取结果:

    在写入命令前读取寄存器,写入命令将立即执行:

    在读取寄存器后的写入命令上放大:

    此写入命令(如上所述)似乎无效。

    波形有点嘈杂,尽管不应该是不将值写入寄存器的原因...

    Phlip

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

    菲利普

    首先,确保起始引脚较高,以便启用设备。 我相信,如果起始引脚较低,您仍可以从设备(包括寄存器)读取数据,但可能无法写入设备。

    其次,确保SPI通信是干净的。 尤其是SCLK上的噪音会导致设备在主中继器未发送SCLK时提前发送SCLK计数。 如果您只使用一块板,SCLK上的盖子可能会有所帮助。 我不认为这是您的问题,但它可能会在以后引发问题。

    请告诉我是否是起始针脚的问题。 我们不会再考虑其他可能性。

    吴若瑟

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


    此外,请检查以确保您未处于睡眠模式。 休眠模式和低启动引脚在功能上相似。


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

    我检查了起始针脚和就绪针脚。 初始重置后,起始针脚保持高位。 每次转换完成后,就绪引脚保持低电平,脉冲持续高电平。 这意味着它正在运行,而不是处于断电模式?

    SPI线路上的180 pF电容器可清除噪音。 正如您所料,这似乎不是问题。

    但是,我确实发现复位线路上的脉冲有时会低至2.5V,而数字VCC为3.3V。 这可以重置设备吗? 脉冲对应于SPI的DI行,每个上升沿都会降低复位线,下降沿会使复位线出现尖峰。 我找不到复位线路和任何SPI线路之间的任何短路,它们都是高千欧。 当我断开DI线路时,重置线路上的噪音消失。

    在PCB上,这些线条不会彼此平行,也不会交叉。 有什么建议?

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

    菲利普


    是的,当/DRDY引脚较低,但有重复脉冲时,这意味着设备没有处于断电模式。 重复脉冲应以设备的数据速率进行,指示每次新转换完成的时间。

    对于/reset行,示波器可能未显示完整的画面。 根据范围的分辨率和带宽,您可能会错过/重置线路上的快速瞬态峰值。 我会尝试在/reset上添加另一个帽,以防止它下垂。

    此时,设备似乎部分响应,DOUT响应SCLK。 因为你不能写在寄存器上,我也仔细看一下DIN线。 我会确保信号从你使用的任何主机一直稳定到设备的针脚。 DIN针脚是否可能因某种ESD或过电压事件而损坏?


    吴若瑟

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

    我确实用不同的值更换了重置线路上的电容器,以查看结果的比较情况。 有改进但未解决问题,因此我怀疑DI引脚上的ESD损坏是您建议的问题。 很遗憾,我不得不等待新零件,但我会尽快上传新结果。

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

    约瑟夫

    我更换了设备并发现类似的结果。 以下是与DI行(蓝色)相比重置(红色)行的一个画面,而时钟(绿色)和/CS行(黄色)也显示一些噪音。 重置线路上的故障降至2.8V! 过滤器盖似乎无法过滤这些峰值。 如果我移除重置行并将其短至VCC,则故障只会变小而不会消失。 这表明存在接地问题,但所有必要的针脚都已正确接地。

    这真的让我很不明白,为什么数字输入应该如此敏感? 有什么想法?

    Phlip

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


    有几件事我可以想到可能会有帮助。 首先,假设您有一个单极电源,如何连接AVSS和DGND? 正如您所提到的,可能有一些接地回路导致接地DGND连接出现问题。 通常,我们建议使用单个接地平面来减少接地回路电压问题。 如果您认为需要将模拟和数字接地分开,则可以将它们分开放置并连接到设备下面。

    第二,您在供应路径中是否使用任何电感器或铁氧体? 电感器可能会尝试平滑线路中的电流,但在数字电源中,您可能会使电压峰值更差。 将为数字线路计时,如果有一定数量的峰值数字电流,L (di/dt)可能会导致电压线路发生严重中断。

    第三,如果您有一个选项,SPI线路中的串联电阻可能有助于进一步降低信号速度。 如果您看一下ADS1246EVM,您就会看到我们是如何设置电路的。 但是,除了SCLK上的单系列电阻器外,不要真正使用任何其他电阻。 数字线路通常是可靠的。 我们对输入使用施密特触发器。

    如果您有示意图和布局,如果可以,您可以将其张贴在此处。 另一个尝试是获取ADS1246EVM板或将ADS1246焊接到通用TSSOP板上,然后将其通过空气布线连接到您的控制器以进行测试。


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

    你好,Joseph

    我使用单极电源,并使用连接AVSS和DGND的接地平面。

    我根本不在板上使用感应器或铁氧体。

    我在所有数字线路中都使用串联电阻器,最初只有47欧姆,但确实增加到120欧姆,并使用连接到接地的100pF电容器。

    我确实设法清除了重置行,下面是范围捕获。

    黄色=/CS;绿色=时钟;蓝色= DI;红色=重置

    在DO而不是重置的捕获下方

    写入操作后结果保持不变,没有更改寄存器? 我认为我们现在可以取消重置选项。

    Phlip

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

    菲利普

    我在实际字节事务中没有发现任何错误。 我已经将最后一个图解展开,仔细查看:

    我不确定最后一个字节,但可能没问题(我想您之前报告过72h)。

    不过,我对时间有点担心。 如果您查看数据表中的图1和章节7.6 ,它们将显示与设备通信的时间要求。 特别是,我不确定您是否为从最后SCLK到/CS上升边缘(7 tCLK -约2 us)或/CS脉冲持续时间(5 tCLK -约1.5 us)提供了足够的时间。 我认为您的示波器画面显示为10us/div,所以我认为您在这两个方面都做得不够。

    我会回顾所有的时间安排,并确保其他一切都正常。 然后进行更改并查看它们是否有帮助。 我有理由相信,违反SCLK到/CS计时可能导致写入失败。

    吴若瑟

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


    如果未能在寄存器中获得良好的记录,请发布示意图和布局吗? 它可能有助于对其进行审查。 我认为您已经能够将SDATAC写入设备,但如果不成功,我会检查从主设备到设备的整个DIN线。


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

    你好,Joseph

    这一次,/CS线再次上升之前的延迟是我认为的主要问题。 现在它可以正常工作了。 谢谢你。

    以下捕获显示写入后第二次读取(红色波形)上的额外位,表示写入成功。

    此致。

    Phlip

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

    菲利普

    我很高兴您能正常工作。 如果您没有正确的示波器,则很难确定计时问题。 您之前的帖子中包含的信息刚刚足以提供帮助。

    继续并验证其余时间。 很难判断,但在您的上一篇帖子中,/CS持续时间看起来低于最低1.5小时。 不管怎样,祝您的项目好运,如果您有任何疑问,请告诉我。

    吴若瑟