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.

[参考译文] TLA2518:附加时缺少通道数据

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1393051/tla2518-lack-of-channel-data-when-appended

器件型号:TLA2518
主题中讨论的其他器件: TLA2528

工具与软件:

尊敬的 TI 团队:  

在上一篇关于 TLA2518无响应的帖子发布后、我已成功更正了该问题。

现在我收到了数据、但尽管正确设置了自动序列和通道附加寄存器、但我没有收到正确的通道更新。

TLA2528通道附加功能非常好、但我无法使其在 TLA2518上正常工作。

这是设置器件的输出。  您可以看到这些寄存器设置有什么问题吗?

**监视器输出**

TLA2518 ADC2已启动

所有引脚均设置为输入
通道附加已添加至结果
OSR 寄存器=:11
采样速度设置为160SPS、振荡器设置为低功耗
已将所有引脚添加至自动序列
自动序列已启动
系统状态 ADC2=:11000001
ADC2配置完成

ADC2配置=:
--- TLA2518 ----
系统状态= 11000001
常规配置= 0
数据配置= 10000
OSR 配置= 11
OP Mode = 11111
引脚配置= 0
GPIO 配置= 0
GPO 驱动器配置= 0
GPO 值= 0
GPI 值= 0
Sequence Config = 10001
手动通道选择= 0
自动序列通道选择= 11111111
--- TLA2518 ----

电池电压=:10011000110
通道=:101                   **应为 AIN0**
电池电压=:11111000110
通道=:101                   **应为 AIN1**
电池电压=:1111110001000
通道=:101                   **应为 AIN2**
蓄电池电压=:11011100000
通道=:101                   **应为 AIN3**

除了通道 ID 错误外、上面的读数也是错误的、因为我预计 AIN0的电压为1.1VDC (DVDD & AVDD = 5VDC)时、应提供14,418或0011100001010010的读数(16位、因为 OSR 正在打开)。  我还期望4位通道 ID 占用位16-19。  我正在将值读取到一个长度为3 x 8位元素的数组中、因此数组元素0和1将具有数据、元素2将具有通道 ID。  通道 ID 需要向右移动4位才能正确。  代码非常简单。  我是否有可能首先将数据作为 LSB 输出到 MSB?  我对芯片手册和 ESP32 SPI 实施的理解是应该首先提供 MSB?

我是否应该在尝试读取数据之前等待设置 SYSTEM_STATUS OSR_DONE 位?  我不需要对 TLA 2528执行此操作、因此尚未实施。

产生该问题的主要原因是、由于我能够设置和读取寄存器好、我对 SPI 通信的理解似乎合理。

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

    尊敬的 Jason:

    我很高兴您 能够解决您以前的问题。  数据表中的图25为索引1。 此后、16位平均数据占据位1-16、通道 ID 占据位17-20。 如果您的数组是索引0、则说明您是正确的。 TLA2518的数据就像你所预期的那样、从 MSB 开始。 目前、我们对 OSR_DONE 位将启用的理解不清楚、因此、我不建议在代码中实现该设置。  

    为了将此问题与您的代码中发生的任何情况隔离开来、您是否能够发送针对您所获得的20位数据传输的逻辑捕获或示波器捕获? 您是否也能 在取回数据之前、从 CHANNEL_SEL 寄存器中读取以了解当前设置的通道值?

    此致、
    Joel

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

    您好、Joel:  

    感谢您的响应。  很高兴知道我的基本理解是正确的。  我准备了一份 pdf、其中显示了设备的前4个截图(4个屏幕截图)、但我看不到如何将其附加到帖子中?  附加文件的最佳方式是什么?

    尽管如此、我可以确认:

    -将0b00000000写入 PIN_CFG_ADDRESS、将所有引脚设置为模拟输入、然后

    -将0b00010000写入 DATA_CFG_ADDRESS、打开通道附加

    -将0b11111111写入 AUTO_SEQ_CH_SEL_ADDRESS、并将所有引脚添加到自动序列中

    -写入0b00010001到 SEQUENCE_CFG_ADDRESS、开始自动序列处理。

    、通道追加无法正常工作、仅返回通道2。  此外、返回的第一个样本不是 AIN0、而是 AIN3。

    以下是芯片的完整设置顺序:

    所有引脚均设置为输入
    通道附加已添加至结果
    OSR 寄存器设置为 OSR 128
    采样速度设置为160SPS、振荡器设置为低功耗
    已将所有引脚添加至自动序列
    自动序列已启动
    系统状态 ADC2=:11000001
    ADC2配置完成

    输入以下示例屏幕截图。  ESP32 SPI.h 仅允许8位、16位和32位事务、因此我无法用32位来读取所需的20位。 (因此有32个 SCK 时钟。  向右移动12个位置可以很容易地消除后置0。

    首次采样:

    第二个样本:

    第三个 样本:

    第四个样本:

    如果您有任何其他需要、请告诉我。

    此致

    Jason

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

    补充一点、我只是 冷重启了电路板(而不是热重启)、发现通道输出已更改。  目前芯片正在输出通道5。  再次重启、我得到了通道8。  模拟值完全没有变化、只有通道编号发生变化。  热重启为所有模拟读取保持通道8。

    谢谢!

    Jason

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

    尊敬的 Jason:

    如果在批注框下单击"插入">"图像/视频/文件"、则可以附加所需的任何文件。 如果不受支持、您也可以随附.zip 文件。

    对反应延迟深表歉意。 您是否能在冷重启的条件下展开? 您是指完全从 ESP32和 TLA2518上移除电源? 而热重启是指在软件中重新启动器件? 请告诉我是否正确。  

    此外、您是否能够捕获所有标记为 SPI 的4个引脚? 如果您有一个可以导出交互式文件(例如 Saleae)的逻辑分析仪、则情况更好。 我只是想更清楚地了解 ESP32发出的数据。 如果您在这期间有任何突破、请告诉我。

    此致、
    Joel

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

    G'Day Joel,  

    是的、冷重启已移除芯片和 ESP32的电源并重新启动它、完成对所有设置寄存器的复位。  热重启只是复位 ESP32、因此芯片为软件复位然后重新设置。

    冷重启会导致通道编号发生变化。  热重启会使通道编号保持不变。

    我已经返回并检查了电路板布局布线、并且发现引脚17 (接地平面)与 GND (引脚9)断开连接、这是一个突破。

    下面是更新后的布局、非常接近于数据表中的布局。  尽管如此、很难让每个输入都不交叉、但我也不会进行高速采样。

    我将制造一个新的电路板、看看我如何运行。

    谢谢

    Jason

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

    尊敬的 Jason:

    这是 不幸的,但它是伟大的,你能够找到问题! 我确信新电路板应该能解决您发现的问题。 如果您有任何其他问题、请随时打开此主题或启动新主题。

    此致、
    Joel

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

    您好、Joel:  

    我很高兴地宣布、新的董事会已解决该问题。  感谢您的所有帮助