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.

[参考译文] AFE4300:SPI 通信问题

Guru**** 2513185 points
Other Parts Discussed in Thread: AFE4300

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1020808/afe4300-problem-with-spi-communication

器件型号:AFE4300

您好!

我尝试使用评估模块的 SPI 接口将 AFE4300EVM 连接到 nRF5284-DK。 通过从 AFE4300EVM 上拆下 MMB3板并将 J103的引脚连接到 nRF52840开发套件的正确 GPIO、我可以将两个板连接在一起。 我能够写入 AFE4300的寄存器、该寄存器在启用体重秤链后通过检查 VLDO 的电压进行了测试。 但是、当尝试从任何寄存器读取数据时、我会遇到一个问题、包括 ADC_DATA_register。 RDY 信号以高电平状态开始、当每个寄存器被写入时脉冲为低电平8微秒、最后保持高电平/在写入寄存器后不会中断。

我的问题是:

1) 1)为何 RDY 信号开始为高电平、而数据表的图10和11指示 RDY 应开始为低电平?

2) 2)我应该在写入寄存器时还是仅在读取时监视 RDY 信号?

3) 3)如果 RDY 的短暂低电平脉冲表示转换结束、那么我应该准备好在最后一次寄存器写入后立即读取数据、还是可以防止立即发生中断/数据转换?  

4) 4)如果 AFE4300是串行总线上的唯一从设备、STE 是否有任何用途?

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

    Yamen 您好!

    请确认、加电后、您是否将寄存器的某些保留位编程为数据表中的建议值。

    除了检查 VLDO 电压外、您还可以通过检查 VREF 电压来验证 SPI 写入是否正常。要验证 VREF 电压(假设器件未复位)、您只需在加电和复位后写入 DEVICE_CONTROL1寄存器地址(0x09)值0x6006。  在这种情况下、您应该在 AFE4300 EVM 上的 TP4上测量1.72V 电压。

    如果 SPI 写入工作正常、则可以检查 SPI 读取。

    检查 SPI 时序图、并查看时序沿是否符合数据表说明。 例如、该器件在 SCLK 的下降沿锁存 SDIN 上的数据。 在读取期间、数据在 SCLK 的上升沿的 SDOUT 引脚上移出。 另请注意、每次读取寄存器时、除非读取数据输出寄存器、否则必须重写寄存器。

    对于其他寄存器访问、您无需监控 RDY 信号。

    关于 STE、 我们建议仅在1个 SPI 事务中保持 STE 为低电平。 请勿将 STE 拉低。

    不建议在 STE 拉低时执行多个 SPI 事务。 这与数据表建议的情况相反。 我们将尝试在下一版数据表中解决此问题。

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

    您好!

    我能够使 SPI 通信正常工作、但在从 ADC_DATA_RESULT 寄存器持续读取数据时遇到一些问题。  正如您在下面的屏幕截图中看到的、 当没有负载时、读取的数据非常不一致。 然后、在从寄存器读取大约30秒后、数据变为零、就像 AFE4300超时一样。 我 不会监控代码中的 RDY 信号。

    以下是复位后我写入寄存器的值:

    write_reg(ADC_CONTROL_REGISTER1, 0x4140);
    write_reg(MISC_REGISTER1, 0x0000);
    write_reg(MISC_REGISTER2, 0xFFFF);
    write_reg(DEVICE_CONTROL1, 0x6005);
    write_reg(ISW_MUX, 0x0000);
    write_reg(VSENSE_MUX, 0x0000);
    write_reg(IQ_MODE_ENABLE, 0x0000);
    write_reg(WEIGHT_SCALE_CONTROL, 0x0000);
    write_reg(BCM_DAC_FREQ, 0x0000);
    write_reg(DEVICE_CONTROL2, 0x0000);
    write_reg(ADC_CONTROL_REGISTER2, 0x0000);
    write_reg(MISC_REGISTER3, 0x0030);

    是否有解决不一致和超时问题的建议? 谢谢你。

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

    Yamen 您好!

    寄存器控制看起来不错。 我在 AFE4300 EVM 上进行了验证、能够以128sps 的速度接收连续数据。 您能否探测 RDY 信号以获得~128Hz 的连续脉冲?

    此外、为了检查连续数据、您还可以将器件置于电池监控模式、并检查是否以 ADC 数据的形式接收 AVDD/3。

    这是将器件置于电池监控模式的寄存器设置。

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

    您好!

     当 ADC 转换速率配置为128SPS 时、RDY 信号以~256Hz 的频率脉冲。     在测试其它采样率时也会出现同样的趋势-- --脉冲频率 大约是采样率的两倍。

    我将器件置于电池监控模式并获得更一致的结果、如下所示。

    有什么想法吗?

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

    您好!

    编程的数据速率基于1MHz 的输入时钟频率。 请检查 AFE 输入时钟频率。

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

    您好!

    下面是我 使用示波器探测 CLK_MCU 信号时获得的结果。 您可以看到、输入时钟频率为1MHz。

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

    亚门

    对于128SPS DR、您是否也可以附加 RDY 信号波形?

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

    您好!

    下面随附的是采样率配置为128SPS 时的 RDY 信号波形。

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

    RDY 信号仅显示1个脉冲。 您能否缩小并显示多个脉冲?

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

    您好!

    下面随附 的是具有多个脉冲的 RDY 信号的视频。 您能观看吗?

    e2e.ti.com/.../rdy-pulses.MOV

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

    您好!

    我无法从 Google Chrome 浏览器查看视频。

    如前所示、您可以插入多个脉冲波形的图像。

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

    您好 Praveen、

    下面是上述视频的一些屏幕截图。

    第一幅图像显示了 RDY 信号的两个后续脉冲。

    第二幅图像显示了每 5个左右脉冲发生一次的事件。