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.

[参考译文] AFE5809EVM:如何通过 STM32F4微控制器使用 SPI 来配置 AFE5809EVM、而不是使用 AFE5809EVM 提供的上部计算机 GUI 软件。 我在论坛上根据有关建议尝试了很多方法,但没有尝试过

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1216761/afe5809evm-how-to-use-spi-to-configure-afe5809evm-through-the-stm32f4-microcontroller-instead-of-using-the-upper-computer-gui-software-provided-by-afe5809evm-i-have-tried-many-methods-based-on-the-relevant-suggestions-in-the-

器件型号:AFE5809EVM
主题中讨论的其他器件: AFE5809

大家好、根据 TI 论坛上的建议、我将尝试使用 STM32F4微控制器通过 SPI 控制 AFE5809EVM。 我观察我是否通过两种方式使用 STM32F4微控制器成功配置了 AFE5809EVM。 一种方法是首先配置寄存器位 ,分别启用和关闭 ADC,并观察+5V 时的电流变化。 发现当前没有变化、表示我的配置不成功(因为我可以通过上部计算机 GUI 直接访问寄存器并发送相同的命令来观察当前变化)。 另一种方法是启用寄存器的该位 ,然后向某个寄存器写入任意值,然后读取该寄存器的值,但读取的值都是0xFFFF,这也表明我没有成功配置(因为如果配置成功,读取的值不应该是0xFFFF)。

但当我通过上部计算机 GUI 软件配置 AFE5809EVM 时、我同时通过示波器观察了 AFE5809EVM P14上 SEN、SCLK 和 SDATA 信号线发送的信号、这些信号与我通过 STM32F4微控制器发送的信号完全相同。 因此、我不知道问题发生在哪里、也无法通过 STM32F4微控制器控制 AFE5809EVM。 如果您能向我提供帮助、我将不胜感激。 我的电子邮件是:1005561902@qq.com 谢谢。

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

    尊敬的 Xiaofeng:

    感谢您与我们取得联系、对于响应延迟深表歉意。

    SPI 不能与 STM32F4微控制器配合使用似乎很奇怪。 理想情况下、如果 SPI 周期正确、并且显示如下所示的时序图且所需的电压电平正确、则该方法应该起作用。

      

    您能否检查以下各项:

    1.确保微控制器接地和 EVM 接地端短接

    您的 SPI 速度是多少? 器件可支持的最大速度为20MHz

    3、SCLK、SDATA、SEN 各自信号的电压电平是多少。 确保满足 VIH 和 VIL 电压。 IVIH 最小值应为2V

    3.可以在一个窗口中共享 SCLK、SDATA 和 SEN 信号的波形吗?

    谢谢。此致、

    Abhishek

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

    Abhishek,ć

    感谢您的答复、我现在可以确定的是:

    1、STM32F4微控制器的接地端(P14的引脚9)和 EVM 已经短接在一起。

    2、我当前正在使用 STM32F4微控制器的硬件 SPI。 我第一次配置时、把 SPI 的时钟频率配置成了625KHz、但是当时配置不成功、我觉得可能是因为时钟速率太快。 后来、当我尝试使用上部 GUI 来配置 EVM 时、通过观察 EVM 上 P14上 SCLK 引脚上的信号、我发现这个 SCLK 信号的频率是10kHz。 因此在后续的测试过程中、我还将 STM32F4微控制器 SPI 的 SCLK 信号频率设置为7.812kHz、但仍然无法正确配置 AFE5809。

    3、对于通过 STM32F4 MCU 配置 AFE5809、SEN、SCLK 和 SDTA 信号的电平处于数据表中 VIH 和 VIL 范围内、我还测试了由 EVM 的 GUI 配置的 SEN、SCLK 和 SDTA 信号的电平、 它们几乎是相同的。

    我当前的配置流程基于此论坛帖子(e2e.ti.com/.../afe5809evm-spi- configuration-for-afe5809)、我需要从 AFE5809EVM 上移除 FB17、并在 FB17的两个焊盘上各焊接两根导线、以便于序列后连接和断开。 第一种方法是将从 FB17引出的电线短接在一起、然后未为 STM32F4 MCU 供电、然后使用 USB 通过 GUI 配置 AFE5809 (以完成 AFE5809的初始化)、然后断开 FB17前面的电线、而无需将 AFE5809EVM 断电。 同时为 STM32F4 MCU 上电、从而通过微控制器将 AFE5809上电至 AFE5809EVM 上 P14上的 SPI_DIG_EN 引脚的高电平(因为根据 AFE5809数据表中的图82、如果您向 ADC 写入、 您只需将 SEN 芯片选择信号拉至低电平并将 SPI_DIG_EN 芯片选择引脚拉至高电平)、然后分别将 STM32F4微控制器上的 SPI 和接地引脚连接到 EVM。 P14连接到相应的引脚、以便配置 AFE5809。

            如果使用 STM32F4微控制器来配置 AFE5809EVM、我需要您的帮助确认以下3个点、以便确保 STM32F4微控制器与 EVM 之间的硬件连接正确、并且寄存器设置正确。

    、Ω AFE5809EVM 上是否有除 FB17以外的任何其他需要移除或更改的器件?

    在、配置过程中、将 AFE5809EVM 上 P14的 SPI_DIG_EN 引脚设置为高电平是否正确?

    3、如果要通过向寄存器写入值然后读取寄存器值来验证是否成功配置了 AFE5809、则需要单独配置 AFE5809的那些寄存器位、 也就是说、什么是寄存器地址以及应按顺序发送的相应寄存器数据、我需要您告诉我。

    下图显示了 STM32F4微控制器配置的波形、发送的数据为地址= 0x01、数据= 0x0001、即更改寄存器中的< ADC_COMPLETE_PDN >位。

    下图显示了通过 GUI 配置的波形、其中的地址和数据与上面发送的完全相同。

    根据这两个图表的比较、可以看出、两个波形之间似乎有一些差异、但实际上、根据数据表中的 SPI 时序图、 可以得出结论、SDATA 信号是在 SCLK 的上升沿收集的、因此在这两个图中、根据相应 SCLK 信号的上升沿收集 SDAT 信号后获得的实际数据为:第1个字节: 第二个字节0x00和第三个字节0x01。

    从图中可以看出、两种配置方法之间存在三种差异:

    1、STM32F4 MCU 配置情况、当 SEN 芯片选择在 SDATA 信号期间为高电平时;GUI 配置情况、当 SEN 芯片选择在 SDATA 信号期间为高电平时。

    2 μ s 后、、发送数据后是否仍有时钟信号、此时 SEN 芯片选择被拉至高电平。 在 STM32F4 MCU 配置中、当发送数据时、在 SEN 芯片选择上拉至高电平后、没有时钟信号; 对于 GUI 配置、发送数据时、在 SEN 芯片选择拉高后、会出现一个时钟信号。

    3、数据是否以1字节为单位发送、STM32F4微控制器配置案例都是以1字节为单位发送数据、因为 STM32F4微控制器 SPI 使用硬件 SPI; GUI 配置情况、不是以1字节为单位发送数据、是随机的、因为我认为 GUI 是通过软件 SPI 发送的。

            但我认为这三个差异不应该是配置失败的主要原因、因为根据 SDATA 信号是在 SCLK 的上升沿收集的、最终获得的实际数据是相同的。 因此、我希望您可以帮助我、再次确保上述问题可能会导致配置失败、或者还有其他我忽视的问题、请指导我。 我很感激你的指导和帮助从我的心脏底部。

    此致、

    李晓峰

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

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

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

    尊敬的 Xiaofeng:

    感谢您分享数据、但很抱歉耽误您的时间。

    下面你可以找到我的回应:

    、Ω AFE5809EVM 上是否有除 FB17以外的任何其他需要移除或更改的器件? - 否、要使 SPI 正常工作、您无需移除任何其他器件。 我怀疑 ISO 器件是否保持 SPI 线路不变、但因为您的波形看起来很好。 我认为这不是原因。

    我们在器件引脚上探测您共享的波形、这只是为了确认这一点、对吗?

    在、配置过程中、将 AFE5809EVM 上 P14的 SPI_DIG_EN 引脚设置为高电平是否正确? - 写入 ADC 寄存器时、SPI_DIG_EN 引脚应处于高电平。 仅在写入解调器寄存器时该值应为低电平。 我们认为、由于 SPI_DIG_EN 引脚、不会发生正确的情况。 您是否还可以探测 SPI_DIG_EN 引脚并确保其为高电平。

    3、如果要通过向寄存器写入值然后读取寄存器值来验证是否成功配置了 AFE5809、则需要单独配置 AFE5809的那些寄存器位、 也就是说、什么是寄存器地址以及应按顺序发送的相应寄存器数据、我需要您告诉我。

    对于读数、数据表第8.5.1.2节对其进行了很好的解释、并且还具有时序图。

    1) 1)首先、位(reg0[1])需要设置为1。

    2)然后、用户应启动一个串行接口周期、指定必须读取其内容的寄存器(A7到 A0)的地址。

    3) 3)数据位无关。 器件会在 SDOUT 引脚上输出所选寄存器的内容(D15至 D0)。

    从您共享的任何数据来看、SPI 波形看起来都是正确的。 您能否进行以下实验并告诉我您的结果。

    exp:从器件 GUI 关闭器件电源。 通过观察电流来确认 SPI 是否正常工作。 接下来、使用 STM 微控制器执行软件复位并共享波形。 在此过程中、我们只需要进行1个数据位切换。 让我知道你的观察。

    谢谢。此致、

    Abhishek