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:ADS7953SBR

Guru**** 2442090 points


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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1219426/ads7953-ads7953sbr

器件型号:ADS7953

您好、TI 论坛、

我们正在使用 STM32H753与 ADC7953通信、并且不确定正确的 SDI 序列。
我曾尝试在此论坛中搜索、但未找到确切匹配项、但尝试实现以下序列:

0x4200 -初始复位所有寄存器
0x4000 -设置 GPIO 模式(所有输入)
0x1X10 -在手动模式下运行、将下一个通道设置为采样(编号中的 X)、并将 GPIO 0-3映射到 DO12-15
0x0000 -无变化。 通过使用 SPI_TransmitReceive 读取 SDO 中的数据发送
0x0000 -无变化。 通过使用  SPI_TransmitReceive 读取 SDO 中的数据发送

每次迭代中、我们需要读取不同的通道/IO (以上完整序列)。

每次结果为0时、即使在切换从 STM 连接到 ADS 的 GPIO 时也是如此。
此外、在这一点上-当我们要读取 GPIO 时、应该在 DI10-07中发送什么地址?

谢谢。
RAZ。

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

    部分更新:

    我已经在0x4200、0x4000之后添加了0x0000 Frane
    我已经将最后两个0x0000更改为与最后一个0x1X10相同(再次发送相同的手动模式帧、地址帧等)
    我已将 SPI 频率增加到~1.1MHz
    我已经在每个 SPI_TRANSMIT 函数之后、在将/CS 设置回"1"之前添加了一个延迟(10ms)
    我已更改手动模式帧(所谓的0x1X10帧)、以发送 DI11=1 (启用位编程)和 DI3..0=1111、因此不会忽略 GPIO 输入数据

    仍然根本不起作用。

    我缺少什么?

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

    您好,Raz!

    欢迎来到我们的 e2e 论坛!  您是否可以通过逻辑分析仪或 O'Scope"屏幕捕获来发送、其中显示 SDI、SDC、CS 和 SCLK 详细信息?  步骤看起来没有问题。  您将位 DO15-DO12 (将 DIO4设置为1)编程为 GPIO 状态、而不是 Chid、您无需读取任何特定地址、它们都应显示 GPIO 状态。

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

    嘿、Tom、

    感谢您的答复。 不幸的是、我检查我正在处理的电路板上的 SPI 波形会有问题、是的、我知道这不好。

    我将看到我可以对此做些什么。

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

    太棒了!  让我们知道您何时可以共享一些波形。

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

    很抱歉响应延迟。

    因此、我们遇到了用于 ADC 转换的生成 Vref 因子的组件问题、该问题现已修复。

    我仍然无法为 SPI 生成波形、因为我无法很好地访问硬件、会试图弄清它。
    与此同时、我想向大家保证、我做的一切都正确。

    哪种顺序正确/最佳?

    1.
    FR 1:0x4200 -复位寄存器
    FR 2: 0x4000 -设置 GPIO 模式、所有输入
    FR 3: 0x1X10 -手动模式、启用编程位 DI6-0、Vref、正常运行、GPIO3-0映射到 DO15-12
    FR 4: 0x0000
    FR 5: 0x0000

    也许帧3应该是0x1X11、而不是0x1X10???

    2.
    0x4200
    0x4000
    0x1X10
    0x0000 +(按位或)地址
    0x0000 +(按位 或)地址

    3.
    0x4200
    0x4000
    0x1X10
    0x1X10
    0x1X10

    4.
    0x4200
    0x0000

    0x4000
    0x0000

    0x1X10
    0x0000 (或者也许是0x1X10、或者只是通道地址?)
    0x0000 (或者也许是0x1X10、或者只是通道地址?)

    此外、我是否应该将 HAL_SPI_TransmitReceive 用于最后的两个帧(读取 SDO)?

    是否应该在将 CS 升回1 (以满足请求的时间窗口需求)之前添加 HAL_DELAY?

    没有任何工作

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

    您好、Raz、

    访问硬件并查看波形是解决该问题的关键。  目前、我们将重点介绍 ADC 转换。  你说你一直在读取0x0000 -是这样吗?  使用手动模式时、您没有获得任何转换结果?  可能是因为 ADC 基准不良。  最初写入0x4200是可以的、但您不需要执行此操作。  存在2周期延迟、但如果您写入0x1000、0x1080、0x1100、0x1180...、您应该会在低12位中看到一些表示转换结果的内容。

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

    您好!

    我在任何时候都不写入0x1000。

    我尝试从外部按"1"来切换 GPIO IO1 (使用 STM32 GPIO 输出)并使用 GPIO 映射到 DO15-12来读取它、但我什么也没得到。

    下面是我尝试发送0x4200时的波形记录

    Y:CS、B:CLK、P:MOSI

    无论我尝试传输什么数据、传输结果都是这样。

    SPI 配置:
    8位(16位和4位看起来相同)
    CPOL 低
    第1相边沿
    速度:~0.5MHz (也尝试1MHz、150kHz)
    MSB 优先

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

    好的、更新:

    因此、客户似乎犯了一个设计错误(他们的设计、而不是我们的设计)、同一 SPI 总线上的另一个 MISO 与 ADS MISO 约定、因此它被忽略。

    我已断开另一个 MISO 连接、现在正在从 ADS 接收数据、并且可以取得进展。

    会让您持续关注。

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

    嘿、Tom、

    我很高兴告诉您、我已成功使器件正常工作。
    问题在于 Vref 输入不良(直流/直流电源供应商不工作)。

    现在我想我发现了一个错误,或者我不知道什么:
    我意识到我需要处理范围2 (2xVref)、该范围在反向转换 ADC 的原始数据后可以很好地获得正确的结果。
    我发现的问题是、某些迭代返回错误的地址-我请求读取 CHX 并从 CHy 收到结果。
    我将在单独的会话中读取每个通道(使用 Auto1/2连续读取所有通道)与我们的应用和客户请求无关。

    为什么地址会像这样混乱?
    在范围1 (1xVref)中工作正常(但范围太低)

    当然、我对两种配置使用相同的命令序列、仅更改了位6的范围。

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

    您好、Raz、

    很高兴听到您正在取得进步!  在 RANGE1和2之间进行寻址时、不应存在差异。  您能获得 SPI 控制线的屏幕截图吗?

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

    最终我选择了 Auto1模式而不是手动模式、一次发送一个通道地址、并且运行正常。  

    不知道手动模式为什么不起作用、但看到了结果。

    感谢您的支持! (: