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.

[参考译文] ADS130E08:使 READC 模式工作,以及其他方面

Guru**** 2390755 points
Other Parts Discussed in Thread: ADS130E08

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1073002/ads130e08-getting-readc-mode-working-and-other-things

部件号:ADS130E08

我对此设备有一些疑问,我必须为该设备编写一些软件。

最迫切的是:我希望使用 DMA 从 RaspberryPi RP2040 MCU (2个 Cortex M0 +)使用 READC 模式。 我对直接使用 SPI 也有点陌生。

考虑到 SPI 主单元使用最大16位值,如何表示需要读取24位状态值? 对152位数据进行编程并在以后进行整理是否足够? (我真希望它只有16位状态!)

RP2040上的 SPI 单元是 ARM 标准库部件 PL021 SSP,具有 Nat Semi Microwire 或 Motorola SPI 或 TI 同步串行的模式开关。 尽管 SPI 是 TI 制造的器件,但我认为我应该使用 SPI 吗?

我还在研究如何“要求”ADC 在正确的时间发送读取数据的 SCLK 脉冲...我唯一能想到的是监控来自 ADC 的 DRDY 信号,以触发 DMA 单元请求固定152 来自 ADC SPI 通道的位帧,这又会导致发送 SCLK 脉冲,ADC 使用该脉冲传输数据...对吗? 我的问题是因为我所看到的代码基本上都不能实际实现 READC 模式,尽管有人提到了。

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

    你好,露丝,

    感谢您的发表,欢迎参加我们的论坛!

    [引用 userid="511689" url="~/support/data-bers-group/data-bers/f/data-bers-forume/1073002/ads130e08-Getting-readc-mode-working-and-others]SPI 主单元使用最多16位值,我该如何表示需要24位读值? 对152位数据进行编程并在以后进行整理是否足够? (我真希望它只有16位状态!)

    是-您可以对 MCU 进行编程,使其在 ADC 每次完成新转换时读取152位,这由 DRDYn 的下降边缘表示。 状态字和信道数据可以单独解析。

    ~引用 userid="511689" url="ë/support/data-switchers-group/data-switchers/f/data-switchers-forume/1073002/ads130e08-gette-readc-mode-work-and -otheri""RP2040上的 SPI 单元是 ARM 标准库部件 PL021 同步 SSP,并且具有用于摩托罗拉或半导体的串行开关。 尽管 SPI 是 TI 制造的器件,但我认为我应该使用 SPI 吗?

    我不熟悉您使用的 MCU。 但是,ADS130E08使用的 SPI  不是同步接口。 相反,它是一种异步 SPI 协议,它仅在 DRDYn 脉冲触发 MCU 中的中断服务例程时与设备通信。 您可能会在 MCU 中发现 CSN 需要手动控制,以便在整个152位帧中保持接口的活动状态。

    [引用 userid="511689" url="~/support/data-bers-group/data-bers/f/data-bers-forume/1073002/ads130e08-gette-readc-mode-work-and -otheries']我也对如何“要求”ADC 发送 SCLK 脉冲以用于 DRY 设备的数据感到失落...我认为我只能在收到数字信号时从数字输入驱动器的请求时才可以从数字驱动器中触发数据 从 ADC 的 SPI 通道固定152位帧,这反过来会导致发送 SCLK 脉冲,ADC 使用它来传输数据...对吗? 我提出这一问题的原因是,我所看到的代码基本上没有一个软件实际实现了 READC 模式,尽管有些人提到了这一点。

    SCLK 脉冲是  ADC 的输入,来自 MCU。 正确的做法是,您需要监控 DRDYn 并触发中断服务例程,以便在每个 DRDYn 落边后读取数据。 SCLK 必须足够快,才能在一个数据速率时间段内完成事务。

    您能否阐明您想要使用的模式? 你是说“RDATAC”吗?

    此致,

    瑞安

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

    瑞安感谢您的回复。 很抱歉,是的,我指的是 RDATAC 模式,是的,我只是在和你一起检查同步串行。 就是 SPI!

    我在数据表中找不到任何指示总转换时间的信息,即从 ADC 采样/保持捕获信号到激活 DRDY 的时间。 我想知道它的部分原因是 CPU 正在尝试跟踪当前信号值,因此它必须考虑其输入数据已过时。

    有一个值“结清”可能是指这一期间,但在1160 Tclk,它是8kHz 捕获率期间的~5倍,因此我认为它仅适用于从“开始”到下一个数据转换,而不适用于从后续转换到下一个数据转换。 或者,它可能是通过管道传递的,所以它真的是566us 延迟,但之后每125us 就有一个新的更新值?

    [除此之外,这是否意味着不可能以超过0.9KHz 的频率使用 RDATA 命令进行读取? 如果是的话,文档中根本不存在这种情况。]

    我使用“wavedrom.com”创建了此计时图,包括系统的硬件和软件。 它看起来是不是很好?

    输出为“PWM 占空比”的整数。 请注意,SCLK 只显示每四个时钟脉冲,ADC 数据是双缓冲的,DMA 单元可以从单调脉冲触发,并可以动态重新配置自身。

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

    你好,露丝,

    ADS130E08使用 Δ-Σ ADC 架构。 采样和保持电容器电路经过一段时间内进行采样和集成。 结果是比特流输出通过数字小数位滤波器。 数据速率频率下的数字滤波器可提供高分辨率结果。 这种 ADC 体系结构不同于 SAR ADC,SAR ADC 在每次转换时都会将采样保持电压转换为数字结果。

    tSETTTLE 计时规范是指转换开始时数字滤波器的初始沉降(即 开始引脚从低到高的转换)。 但是,当通道输入电压发生步长变化时,在经过3个数据速率周期(即第四个 DRDYn 下降边缘表示完全稳定的数据)后,ADC 输出中将出现这种转换。

    RDATA 命令用于使用最新完成的按需 ADC 转换数据更新输出移位寄存器。 这适用于无法定期从设备读取数据且未监控 DRDYn 中断的应用。 在 RDATAC 模式下,如果主机控制器 无法在下一次转换准备就绪前完成数据读取,新数据将立即覆盖上一次转换,结果将被破坏。 使用 RDATA 命令,主机控制器始终可以可靠地读取最新的转换,但风险是缺少样本。

    此致,

    瑞安