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.

[参考译文] 编译器:手动和动态模式操作

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/923743/compiler-manual-and-on-the-fly-mode-operations

主题中讨论的其他器件:ADS7038

工具/软件:TI C/C++编译器

您好!

我将使用 ADS7038芯片、我想在同一帧上获取 ADC 样本。 我从 数据表中读取了第8.4节"器件功能模式"、我看到有4种工作模式。 但我看到、例如、在手动模式下、您会在获得 ADC 样本(N+2)后请求 ADC 样本和2帧。 还有另一种方法可以通过多路复用器通道获取之前的采样(N+1)。 是否可以同时发送两条消息以获取当前 ADC 样本、即使它需要48个时钟计数?  

我还将评估使用动态模式的可能性、并通过执行相同的操作来检查是否没有数据丢失或行为错误、传输两倍的同一信号以在同一帧上获取样本。

或者、这两种配置是否有任何代码示例?这可能会大有帮助。

提前感谢您的回答。

此致、

Fili。

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

    Fili、

    很 抱歉、我没有任何代码示例。

    2. 当多路复用器切换时、多路复用器稳定需要一些延迟。  此外、发出切换多路复用器的命令需要一些时间。  最后、器件需要一些时间进行采样、然后转换结果。  这就是为什么从命令切换通道到转换结果可用的延迟。  

    3.根据您的意见,我认为您不关心延迟的时间方面,而是关心跟踪通道 IC。  是这样吗?  如果是、您知道吗?您是否可以将通道 ID 与数据一起包括在内(见图25)?

    4.您是否考虑过自动序列模式?  您可以在此处预编程要扫描的一系列信道。  然后、您可以将通道 ID 包含在输出数据中。  然后、您可以使用通道 ID 来识别正在读取的通道。

    或者 、如果您始终希望显式设置信道并读回结果、则可以使用采用双读动态模式的方法。  这一点效率有点低、但否则就没有问题了。   

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

    您好 Kay、

    感谢你的答复。

    我的应用旨在在尽可能短的时间内从同一 AIN1通道读取、转换和请求电流测量的实际值、并命令数字输出开启或关闭。

    查看数据表、似乎只能从微控制器向 ADS7038芯片发送24位消息。  

    其理念是不断获取当前读取样本、并不时为数字输出发送刷新命令。

    是否有配置(手动、动态、自动定序或自主模式)使 SPI 花费尽可能短的时间?

     我希望确保以 最高效率运行该模块、并在采样和命令之间进行 SPI 通信时花费最短的时间。

    此致、

    提前感谢您的回答。

    Fili。

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

    您好 Fili、

    1. 关于您的目标" 不时为数字输出发送刷新命令"。  对于手动模式和动态模式、SDI 用于选择通道 ID。  对于自动序列模式、SDI 设置为低电平、不使用。  因此、无论选择哪种模式、都需要停止转换并对 GPO 值寄存器执行寄存器写入(24位写入)。

    2. 有两个因素决定了从 ADC 读取 ADC 转换结果的速度。  您一直关注的第一个问题是数字通信。  另一个因素是器件的内部采样机制。  从采样角度来看、您无法以1MHz (1M 采样/秒)的频率对此器件进行采样。  

    3.数字通信速度受时钟速度和数据传输所需时钟数的限制。   该器件的最大时钟频率为60MHz。  您的时钟频率是多少?

    4.为了更好地了解转换结果所需的时钟数、请阅读图25。  如果不进行平均、则数据需要12位、通道 ID 需要4位可选。   我建议您保留这些位并为转换结果读取执行16位事务。  然后、您可以使用信道 ID 来跟踪信道。  从技术上讲、您可以将帧大小限制为12位、并且不会收到有关所选通道的任何反馈。

    5. 我不认为在手动模式、动态或自动序列之间进行选择会影响您获取数据的速率。  我认为您应该根据您在软件中易于实施的模式来选择这些模式。  个人而言、我喜欢自动序列模式。  她您对多路复用器序列进行了预编程、每次获得转换结果时、您都会检查通道 ID 以确认数据与哪个通道相关联。  在手动模式下、您需要知道您正在读取的数据是两次转换之前的数据。  对于动态转换、它来自前一个转换周期。

    我希望这一总结能有所帮助。

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

    您好 Kay、

    "因此、无论您选择哪种模式、都需要停止转换并执行寄存器写入"。

    如何在手动模式下停止转换并执行寄存器读取和寄存器写入。 到目前为止、无论我发送的是读取命令还是写入命令、我都只会持续接收活动通道(MANUAL_Chid)的转换数据输出。 我已经尝试读取了预期为0xF0的寄存器(0x20)的内容、但没有成功。

    此致

    小啊

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

    要写入寄存器、请使用图31中所示的时序。

    2.要读取寄存器、请使用图32中所示的时序。

    3.要读取转换结果,请使用图34所示的时序。  查看图25以了解转换结果读取的数据格式。

    4.计时模式因您尝试完成上述任务而异。  如果您无法成功读取寄存器、我建议您向我发送测量时序的逻辑分析仪或示波器图。  我可以查看它、看看您是否使用了正确的模式、以及您是否违反了任何时序要求。

    很抱歉您遇到困难。  我希望我们能尽快解决这个问题。