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.

[参考译文] ADS7845:SPI 时钟数据的 LSB 始终为0x78或0xf8

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/762789/ads7845-lsb-of-spi-clocked-data-is-always-either-0x78-or-0xf8

器件型号:ADS7845

触摸屏:FTAS00-10.4A-5 (5线)

TI ADS7845评估套件上的 TS 控制器:ADS7845

输入电压:3.3V

VREF 为 N/C、允许使用差分(JMP1上无跳线)

三次检查从触摸屏到评估套件上接头的接线。

通常、电气配置按预期工作:触摸屏幕、获取中断、MOSI/ MISO 流量正常。

除了一个例外:对于 X 和 Y 报告的数据、LSB 始终为0x78或0xf8。 这会导致严重错误地报告触摸发生的位置。 运行 ts_calibrate 很有用、但结果仅在校准点附近是准确的。 我意识到低3位应始终为0、我至少希望 LSB 的高半字节具有更大的动态。

我正在使用逻辑分析仪来观察 MOSI/ MISO 流、因此此时(Linux)驱动程序还没有问题。

以下是触摸屏幕中心时 CPU 与7845之间的一系列事务:

MOSI / MISO

0x91 / 0x00 -启动/Y/12位/差分/断电/IRQ 被禁用

0x00 / 0xBA

0x00 / 0xf8

0xD1/0x00 -启动/X/12位/差分/断电/IRQ 被禁用

0x00 / 0xB6

0x00 / 0x78

0x91 / 0x00 -启动/Y/12位/差分/断电/IRQ 被启用

0x00 / 0xB7

0x00 / 0xf8

0x91/0x00

0x00 / 0xBB

0x00 / 0xf8

0xD1/0x00

0x00 / 0xB7

0x00 / 0xf8

0x90/0x00

0x00 / 0xB8

0x00 / 0xf8

思考为什么会发生这种情况以及如何纠正这种情况?

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

    感谢您的发帖、欢迎加入论坛!

    很抱歉、我们目前正在为该器件提供主要支持、但响应延迟。 请给我们几天时间来看看这个问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kevin、

    您能否为您的数字接口(CS、DCLK、DIN、DOUT)添加示波器波形? 我们需要验证您的计时。

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

    这是捕获。 请记住、系统和时钟的采样率不一致、因此时钟宽度变化不是问题。

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

    e2e.ti.com/.../Waveform.rtf

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

    Kevin、

    下面列出了一些有助于调试的意见和问题。  请告诉我这是否有帮助、或者您是否有其他问题。

    1. 根据您的控制位、您正在进行12位转换。 您正在执行两次8位读取(总共16位)。 因此、您读取的最后4位应该始终为零。 样本数据中看起来正确的值。

    2. 每隔8位事务应向控制位写入数据。 您在第一个事务中写入控制位、但在第三个事务中不写入控制位。 这可能是问题所在。 请参阅下图、将数据表时序图与测量值进行比较。

    3. 您的16位读取为0x88 0x90。 这对应于12位值889H。 我不确定为什么您说 LSB 始终为0x78或0xf8。 我缺少什么吗?

    4. 您是否可以将忙线添加到您的捕获中?

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

    艺术-

    感谢您的指导。 我会尽快查看它。

    请快速注意#3:LSB 中的0xf8或0x78在哪里? 嗯、我做了一些实验、将电压输入从3.3更改为5.0、然后得到了不同的答案(很明显)、但触摸屏仍然没有达到预期的运行状态。 不确定电压电平变化的重要性-您能否提供有关这一点的见解?

    谢谢、

    Kevin

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

    下面是一些更新的信息。 看起来更好、但也有一些奇怪的地方:

    1) 1) MS 位始终为"1"。 这是预期的吗?

    2) 2) LSB 已开始再次显示"F8"和"78"现象。

    2) 2)当我沿 Y 方向移动时、X 值也会变化、但不会像 Y 那样变化。与沿 X 方向移动相同、Y 值也会变化。 是的、我希望有一些抖动、但值明显增加。

    我已根据请求连接了 SPI 通信、包括忙信号。 我还连接了 LU 和刮水器、因为电压信号似乎也存在问题。 通道#2 (绿色)是雨刮器。

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

    一切顺利:

    1)触摸屏需要5.0V 而不是我提供的3.3V 电压(这解决了0xf8/0x78 LSB 问题)
    2) 2)根据数据表、MSbit 始终为1。 我读错了时序图。
    3) 3)我需要减小 SPI 时钟并连续执行几个采样、以使电压稳定。 我们有一个原型设置、它可能会向模拟线路添加过多电容、希望可以在最终产品中将其固定。

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

    感谢您与社区分享您的反馈。 我们很高兴它成功。