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.

[参考译文] ADS127L01EVM:询问有关带 Delfino F2833x 板的 ADS127L01EVM 的 SPI 协议设置。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1284088/ads127l01evm-enquiry-about-the-spi-protocol-setup-of-ads127l01evm-with-delfino-f2833x-board

器件型号:ADS127L01EVM
主题中讨论的其他器件: controlSUITEADS127L01

大家好。 在这里、我面临着通过 ADS127L01EVM (从器件)与 Delfino F2833x 板(主器件)建立 SPI 通信的一些问题、这两者都是 TI 产品。

我 已经引用了"controlSUITE"中提供的 SPI_Loopback 代码、并且已经完成了从主器件向从器件发送 SPI 命令的测试、但主器件无法从从从器件接收任何信息。 我使用数字逻辑分析仪监控此 SPI 通信过程。 在这里、我附加了几个 pic 来说明 SPI 协议设置。

以下是一些原本希望能够从 TI 技术团队获得支持的问题:

1.对于通过  ADS127L01EVM 设置的 SPI 协议、需要设置一个输入引脚来监控 DRDY 状态、我是否知道下面显示的代码是监控 DRDY 引脚状态的正确方法?

2. CS 引脚会出现一些尖峰,尽管我已经在编码中将 CS 设置为低电平。 此现象是否存在任何问题、它是否会影响 SPI 通信过程? 请参阅下面随附的 pic。

3、根据问题2 pic、SPIBFF I 集为11、但测得的 SPI SCLK 波特率为3M Hz、这不是150m/(SPIBFF+1)= 12.5m Hz。 我是否知道我在 SPI 波特率的设置方面有任何错误。

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

    JH 您好、

    关于特定的 处理器设置、我需要将您的帖子转发给 Delfino 支持团队。

    1. 是的,这个代码看起来是正确的。  您需要通过软件轮询或中断监视/DRDY 线路、当/DRDY 变为低电平时、通过将/CS 拉为低电平(通常使用 GPIO 引脚)启动 SPI 帧、然后在时钟沿输出转换结果数据。

    2. 是的,这会导致通信失败。  CS 必须在整个 SPI 帧期间保持低电平。  CS 必须从高电平转换至低电平以启动 SPI 帧、并在整个帧内保持低电平。  此外、要读取转换数据、MOSI 线路应在 SPI 帧期间保持低电平。  从 ADC 读取转换数据后、/CS 线路应转换回高电平以结束帧。

    3. 这特定于 F2833x 处理器,需要由该团队解决。

    以下是对于单个 SPI 帧应测量的内容:

    此致、
    N·基思  
    精密 ADC 应用

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

    好的。 期待  Delfino 支持团队的响应、其中当前主器件(Delfino F2833x 电路板)无法读取从器件发送的任何数据。

    希望能很快收到您的回复。

    THX

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

    您好、JH:

    就您的帖子第3部分而言:在您的计算中、好像使用的是150MHz、即 F2833x 的 SYSCLK、但计算中指定波特率= LSPCLK/(BRR+1)。 只是想看看您能否通过检查来验证您的 LSPCLK 位于什么位置? 这可以不同于 SYSCLK、具体取决于 使用的分频器。

    此致、

    艾里森

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

    好的。 非常感谢您的答复。 我已经验证过、是的、我已经相应地设置了 LSPCLK、现在对于问题3可以了。

    顺便说一下、您能否为 Delfino F2833x 板 SPI 设置提供支持?

    仅供参考、请查看我在下面为主模式设置的 SPI 设置:

    目前我面临的问题是、主器件(Deflino F2833x)没有接收从器件(ADS127L01EVM)发送的数据、我已经准备好一个代码来监控 DRDY 引脚(GPIO 30)、并且主器件将在 DRDY 引脚变为低电平时读取数据、请参阅下面的代码:

    现在的问题是、 没有来自主器件的 SCLK 脉冲、并且从器件选择引脚没有变为低电平、以便在代码到达"主器件读取"代码时激活 CS。

    好的、我想知道、设置主器件从从从器件接收数据所需的其他设置/配置是否存在。

    希望您为此提供支持。

    期待您的支持。  

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

    大家好。 另一个问题与 SPI 设置有关。

     主模式设置是否需要 SPISTE 引脚? 或者、我们应该为 CS (从控制)功能设置另一个 GPIO 引脚?

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

    大家好。 根据下面所附的 pic、我是否可以知道高亮显示的陈述的含义?

    "数据在 SPISIMO 引脚上输出并从 SPISOMI 引脚锁存"?

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

    您好、我想 从从从器件(ADS127L01EVM)读取32b 数据的位置提供一些额外信息、根据回顾、SPIRXBUF 仅为16b、那么要使其正常工作是否需要进行任何设置?

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

    您好、JH:

    您用于主模式的代码看起来是正确的、但我认为"SpiaRegs.SPICRR.bit.SPISWRESET=1;"是必要的、因为我相信在您写入"SpiaRegs.SPICRR.all=0x008F;"时、此位已经设置为1。 我认为问题是、CS 引脚必须变为低电平才能在主器件和从器件之间传输数据。 如果 F2833x 在主站中、则它需要  在传输之前将该片选(CS)引脚驱动为低电平。 这是通过器件的 GPIO 模块通过将 GPIO 配置为 SPISTE 来实现的。 例如、您可以使用 GPIO 端口 B MUX 2将 GPIO19或 GPIO57配置为 SPI-A 从器件发送使能(SPISTEA)、如 表1-47所示。 GPIOA MUX  和 表1-48。 中的 GPIOB 多路复用器  器件 TRM。  

    在主模式下、您可以使用专用 SPISTE 引脚或常规 GPIO 作为片选引脚。       有关该设置的说明、请参阅 TRM 中配置 GPIO 以模拟 SPISTE 下的9.2.1 SPI 模块信号部分。

    线路数据在 SPISIMO 引脚上输出并从 SPISOMI 引脚锁存 。这些引脚是指主器件在何处发送数据(SOMI)和接收数据(MISO)的引脚位置。 主器件通过将数据输出到"从器件输入主器件输出"引脚来向从器件发送数据。 主器件通过在数据到达从器件输出主器件输入引脚时"锁存"的方式接收数据、这只是意味着主器件在从器件接收位(0或1)时捕获并存储这些位的状态。

    此致、

    艾里森

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

    您好、JH:

    默认情况下、在上电或复位之后、ADS127L01将输出32b 数据。  您可以通过读取2x 16b 传输来执行此操作、但您需要在整个传输帧中将/CS 保持为低电平。  将/CS 引脚设置为低电平、发送16个 SCLK 并采集数据 MSB 数据、然后发送另16个 SCLK 并采集 LSB 数据。  传输两个16b 后、将/CS 引脚设置为高电平以结束该帧。

    此致、
    基思

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

    尊敬的 Allison Nguyen 和 Keith Nicholas, 感谢你们的快速响应。

    顺便说一下、这里我还有另一个问题与9.4.3数据通信示例相关。 请参阅下面随附的 pic。

    Question:

    1、我是否知道"正当"是什么意思?

    2、我想知道为什么在步骤 E 中,从机读0Bh,而不是由主系统读入 ITSD SPIDAT 的058h?

    3.对于步骤 J,"在用户的软件屏蔽掉未使用的位之后"的意思是什么? 最后、在步骤 A 中、盐水接收它以内部方式发送的内容?

    希望大家都可以帮助解释这个示例。

    THX

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

    尊敬的 Allison Nguyen 和 Keith Nicholas, 感谢你们的快速响应。

    顺便说一下、这里我还有另一个问题与9.4.3数据通信示例相关。 请参阅下面随附的 pic。

    Question:

    1、我是否知道"正当"是什么意思?

    2、我想知道为什么在步骤 E 中,从机读0Bh,而不是由主系统读入 ITSD SPIDAT 的058h?

    3.对于步骤 J,"在用户的软件屏蔽掉未使用的位之后"的意思是什么? 最后、在步骤 A 中、盐水接收它以内部方式发送的内容?

    希望大家都可以帮助解释这个示例。

    THX

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

    您好、JH:

    1. "左对齐"是指首先发送最高有效位(MSB)、并且数据位与帧的左侧对齐(所有后续位均填充为零)。 "右对齐"意味着最低有效位(LSB)首先传输、并且数据位与帧的右侧对齐(前导位填充为零)。 对于此系统、一旦 SPIDAT 接收到一个完整的字符、该字符就会被传输到 SPIRXBUF、在此处可以对其进行读取。 写入 SPIDAT 寄存器的数据在写入时必须左对齐、这意味着数据 首先发送 MSB。  当发送时、MSB 被移入寄存器的 LSB 位置、这 意味着它被右对齐存储在寄存器中。 因此、从 SPIRXBUF 读取的数据因此是右对齐的。

    2.主设备写入058h 来启动传输过程。 虽然该值有些任意、但其目的是显示与从器件的正确通信格式。 从器件读取0Bh 的原因是如何写入058h (首先是 MSB)。 0Bh 是根据其格式(右对齐与左对齐)读取的解释数据。 你可以用二进制引用这些也可以得到更好的感受。

    3、屏蔽未使用的位是指设置未使用的位(通常为零)、以确保它们被视为不相关的且不会影响目标数据(所使用的位)。

    此致、

    艾里森