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:无法使用 stm32f072读取 ADS7953、因为它在理论上应该可以正常工作

Guru**** 2439710 points
Other Parts Discussed in Thread: ADS7953, ISO7741

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1208520/ads7953-unable-to-read-out-an-ads7953-with-a-stm32f072-altough-it-should-work-in-theory

器件型号:ADS7953
主题中讨论的其他器件: ISO7741

你好

我正在开发一个电路板来测量学生项目的许多电压。 该板上是 ADS7953、ISO7741和 STM32F072。 现在、我的资源已经讲完了。 我无法从广告中读取任何有用的内容。 BTW 我使用的是 ADS7953评估板、以防情况发生不同。 IM 在时间压力下、因此快速输入也很受欢迎。

我的设置:

我已将用于 SPI 的 GPIO 引脚设置为高速模式。

我将在下面添加我的代码、但简要概述一下它的功能:

1.将 x8000写入编程模式1
2.为模式1写入 xFFFF 以便读取所有通道
3.写入 x2800以进入模式1
4.输入 while 循环,写全0 ,因为我不需要改变任何关于这.  

下面你可以看到蓝色的时钟和黄色的 MOSI 与 x2800写入。 根据数据表、MOSI 被锁存在上升沿、所以这应该是正确的吗?



我明天还可以添加 cs 行和 MISO 行的屏幕截图。  

在 STM 32 cube IDE 中针对前3个传输接收使用的 HAL 函数如下所示;

(写入将 CS 线路设置为低电平和高电平)

之后、代码进入微控制器的 while 环路。  

我不知道为什么它不起作用。

我继续将 ADS EVAL 板连接到它的主板以检查我是否损坏了 ADC、但它工作正常、所以错误发生在其他地方...
提前感谢

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

    尊敬的 Luca:

    欢迎来到我们的 e2e 论坛、很遗憾听到您的 ADS7953有问题!  包括/CS 和 SDO 将会有所帮助。  您的命令序列听起来是正确的、在上述 SDI 写入(HAL_SPI_TRANSMIT)中会收到哪些警告?  我们无法帮助您调试您的 STM 代码、但如果需要更多有关写入和读取示波器/探头屏幕快照的详细信息、我们可能能够帮助您查明问题。  您是否已将您的波形与使用我们的 EVM 及其主板时提供的波形进行了比较?  您是否发现任何差异?

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

    我实际上设法使其正确读取通道15。 但问题是、它无法正常读取通道15。 即使理论上、我也会使其在微控制器的 while 环路之前进入自动模式1。 此外、我还可将自动模式1编程为读取所有通道。 请参阅下面的代码。 这是一个已知现象吗? 我发现有一个启动序列、在此期间、我应该发送什么来测量所有通道?

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

    您是否将我们的 EVM 的波形与您的设置进行了比较?

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

    是的、我复制了以下启动序列。 它是这样工作的,但我不明白它在做什么。 您能向我解释一下顺序吗?

    (自动模式1激活 Kanäle)

    0x2810

    0x0000

    0x2810

    0x0000

    0x8000

    0xFFFF (欧斯所有通道)

    0x0000

    0x0000

    0x0000

    0x2C10

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

    尊敬的 Luca:

    让我们来看看:

    A1的模式控制寄存器- 0x2810 ,设置位13、11 (提供对位 DI10-00的访问)、位4 (4个 MSB 提供 CHx 详细信息)

    在所选模式下继续运行- 0x0000

    A1的模式控制寄存器-  0x2810 ,与上述相同,不需要这样做,因为没有任何变化

    在所选模式下继续运行-  0x0000

    帧1、A1模式的编程寄存器设置- 0x8000

    帧2、A1模式的编程寄存器设置-  0xFFFF ,已选择所有通道

    在所选模式下继续运行-  0x0000

    在所选模式下继续运行-  0x0000

    在所选模式下继续运行-  0x0000

    A1的模式控制寄存器-  0x2C10 , 设置位13、11 (提供对位 DI10-00的访问)、位10 (复位 CH 计数)和位4 (4个 MSB 提供 CHx 详细信息)

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

    非常感谢。 它最终与 ISO7741配合使用。 我必须在 MISO 线路上实施上拉电阻、在 MOSI 线路上实施下拉电阻。 我能够使用芯片对微控制器一侧进行配置、并在 ADS 和 ISO 之间手动放置两个电阻。 这是一件常见的事情、还是应该在没有此功能的情况下工作?

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

    尊敬的 Luca:

    我想不出需要上拉/下拉电阻的任何原因、但在开关节点上插入串联电阻并不少见。  我很高兴听到你有它工作!