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.

[参考译文] AFE031:SPI 通信问题

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1338667/afe031-spi-communication-problem

器件型号:AFE031

您好!

我们通过结合使用 AFE031和 Renesas MCU 来开发一个项目。 我在 SPI 通信时遇到问题。 一旦我在 AFE031中写入寄存器并再次从寄存器读取、我无法获得该预期的写入数据。 我收到的数据为255。

我在许多主题中被介绍、但我的问题没有解决。   

以便在我们的 MCU 中仅传输8位数据。 所以我将数据 拆分为两个8位数据。

SPI 配置为:

模式:1、1

波特率:9600bps

转移方向:MSB

/*---------------
SPI 写入
---------------- /*

TEST_SEND_buf[1]=0x32;   //写入值
TEST_SEND_buf[0]=AFE_WRITE | AFE_GAIN_SELECT;   // 0x00 | 0x02

/*---------------
SPI 读取
---------------- /*

TEST_SEND_buf[1]=0x00;   //读取的随机值
TEST_SEND_buf[0]=AFE_READ | AFE_GAIN_SELECT;  // 0x80 | 0x02

是否要在上面的配置中更改任何内容?

每完成16位数据传输后,是否需要将芯片选择(CS)管脚状态从高更改为低?

如果存取寄存器中提供了任何示例应用手册、请提供。

谢谢。

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

    尊敬的 Mani:

    如果有任何示例应用手册可用于访问寄存器、请提供给我们。

    我们有许多客户使用第三方 MCU 在其 PLC 控制器产品中与 AFE031进行通信。 SPI 协议可能配置不正确。   

    SPI 有两种模式、请参阅 AFE031的数据表、也请参阅以下链接。  

    请编写一个小程序、并通过 SPI 协议通过 AFE031的寄存器测试他的读取/写入代码。 我认为 SPI 协议是特定于 TI 的、我记得 SPI 代码实现可能与其他协议略有不同。    

    MCU 和 DSP 处理器在设置 SPI 配置方面存在一些差异。  在下面的链接中、有一些有关如何配置 AFE031的说明。 虽然这是 C2000 DSP 处理器所特有的、但是对于 MCU 处理器来说、整个过程应该仍然是正确的。  

    https://www.ti.com/lit/an/sprac94d/sprac94d.pdf?ts = 1705429676956

    如果您有其他问题、请告知我们。  

    此致!

    雷蒙德

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

    尊敬的 

    感谢您的答复。

    是的、我已经看到了这些细节。 我是根据数据表配置的 SPI。 但我有一个问题。

    但只有一个不同之处、这意味着数据表具有16位传输 SPI 通信、但我具有 MCU 可以传输8位 SPI。

    1).您在我的上述详细信息中是否注意到任何配置问题?

    2 ).我们需要写一个寄存器之前,我们从一个寄存器读取,这是必要还是不必要?

    3).您能否说明在读取给定255的寄存器值时有什么可能。

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

    尊敬的 Mani:  

    AFE031的寄存器仅在16位字大小中受支持 (这些寄存器仅专为16位访问而设计。)  恐怕您必须在16位中配置 SPI 通信。 您必须找到16位 MCU 才能与器件通信。   

    如果您有其他问题、请告知我们。  

    此致!

    雷蒙德

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

    尊敬的

    好的、我明白。

    您能否介绍一下 SPI 通信中支持的频率级别?

    我在数据表中只见了 Tx 和 Rx 频率水平,能不能说。 或者任何频率级别 适用于 SPI 通信啊?

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

    尊敬的 Mani:  

    您能不能告诉您 SPI 通信中支持哪些频率级别?

    如果您使用板载 DAC 功能、则 SPI 需要通信> 1.5MHz。  

    如果使用 PWM 模式将 GPIO 信号发送到 AFE031、则不需要更高速度的 SPI 数据速率。  

    如果您有其他问题、请告诉我。  

    此致!

    雷蒙德

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

    您好@Raymond Zhang1

    我有疑问

    1.是否需要为 PA_VS1和 PA_VS2引脚提供电压电源?是否要读取数据寄存器和命令寄存器?

    我在启动 SPI 以读取数据/命令寄存器之前发现了有关在 AFE031中读取寄存器的详细信息、如下所示

    1. SD 引脚->下拉
    2. DAC 引脚->下拉(仅访问命令寄存器和数据寄存器)

    3. AVDD ->+3.3V
    4. DVDD ->+3.3V

    在启动 SPI 通信以读取寄存器之前、我是否缺失或需要验证任何内容?

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

    尊敬的 Mani:

    1. 是否需要为 PA_VS1和 PA_VS2引脚提供电压?是否需要为数据寄存器和命令寄存器读取数据?

    是的、这可能是必要的。 PA_VS1/PA_VS2建立了 IC 的内部偏置电压、如下图所示。 取决于您尝试访问的内部模拟和/或数字块、应该存在内部偏置 REF1和 REF2、它们被用来偏置 IC 内部的其它块、如控制寄存器和其它内部块。 否则、它可能没有适当的偏置电压来正常工作。  

    您无需为 AFE031施加额定26V 电压。 如果  PA_VS1/PA_VS2 引脚连接到10V 到16Vdc 应该可以、我认为它应该可以工作。 例如、后续的 DAC 信号取决于 AVDD 电源轨;数字信号可能取决于 DVDD 电源轨、电源轨、但内部运算放大器和模拟电路由 REF1和 REF2偏置电压供电、并未明确指定。 因此、有必要连接至 PA_VS1/PA_VS2引脚(如果您想要与该器件通信、则无需负载)。  

    如果您有其他问题、请告诉我。  

    此致!

    雷蒙德

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

    您好@Raymond Zhang1

    感谢您的及时响应。

    此外、 还向您提供了有关通过 SPI 通信进行读取和写入的 AFE031寄存器的更多信息。

    现在、我有一个16位 SPI 通信 MCU 和 PA 电源电路的可用性问题、一旦它准备就绪、我将检查并更新反馈给您。  

    谢谢。

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

    尊敬的 Mani:

    好的、如果您有任何问题、请告诉我。 我们有许多客户正在使用他们首选的 MCU 来连接 AFE031的 SPI、寄存器读取/写入和 IC 控制。 因此、与 SPI 数字部分通信的第三方 MCU 和硬件不是问题。

    此致!

    雷蒙德  

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

    您好@Raymond Zhang1

    最后、我们使用8位传输 SPI MCU 在寄存器中成功进行了读取和写入操作。

    我认为、如果我们具有较低位传输 SPI MCU、那么与外设的更高 SPI 帧进行通信不会出现问题。

    问题的含义是什么?

    1.我们的 MCU SPI 引脚与 AFE031 SPI 引脚互换、因此为什么我收到的值为255。

    2.如果我们可以发送2个8位数据,但哪一个数据首先发送是重要的(当我先发送 MSB 端8位数据后,我是正面成功的8位数据后,我发送 LSB 端8位数据)
    3.需要提供电源 PA_SUPPLY ,一旦给 PA_SUPPLY 引脚供电,我只能成功

    我注意到了以下有关在 AFE031中成功读取和写入寄存器的详细信息

    1. SD 引脚-低电平

    2. DAC 引脚-低电平

    3.内部引脚-高电平

    4.为 DVDD、AVDD、PA_SUPPLY 引脚提供电源

    4.SPI 配置(下面的配置是我读写寄存器)

    *模式:1、1

    *频率> 1.5 MHz

    *波特率:9600bps

    *传输方向:MSB

    *单次传输/连续传输模式

    5.在读取寄存器之前、在复位寄存器中写入值0x14一次、以便第一次软复位

    6.如果我们有一个8位 SPI MCU ,首先发送 MSB 端8位数据
    例如、 如果我们需要发送数据、8900意味着按如下方式发送

    send_buf[0]= 89

    send_buf[1]= 00

    最后感谢您的支持@ Raymond Zhang1