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.

[参考译文] TMS320F2808:SPI计时信息

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/631927/tms320f2808-spi-timing-information

部件号:TMS320F2808
主题中讨论的其他部件:ADS8319

你好
以下是有关帖子的问题:-

根据SPRUG72的1.3 部分。2.2 :

“/SPISTE引脚用作从动选择引脚。 /SPISTE引脚上的有源-低信号允许从SPI向串行数据线路传输数据;无源-高信号导致从SPI串行移位寄存器停止,其串行输出引脚进入高阻抗状态。 这允许在网络上将许多从属设备绑定在一起,尽管一次只选择一个从属设备。”

 

似乎在/SPISTE转换后,SOMI被高/低定时驱动,而不是在/SPISTE变为活动或非活动状态后等待任何时钟边缘。

 

对于一个TMS320从属设备禁用SOMI和另一个TMS320开始驱动SOMI的时间,我无法找到任何计时信息,例如,如果我们在选择另一个器件的同时取消了对一个器件的/SPISTE, 如同从响应ABC输入更改的多路复用器驱动,同时永久启用多路解复用输出。

 

我可能还想知道/SPISTE上的活动脉冲有多短才能排除导致进一步的TMS320暂时触发其SOMI的可能性。

 

在我们的设计中,来自每个TMS320的SOMI信号在连接到一起之前通过47欧姆电阻器传输,因此在最坏的情况下,两个驱动到不同逻辑电平的电阻都将被传输到94欧姆负载。

 

一旦我们知道SOMI输出关闭和打开时间,我们就可以调整相对于/SPISTE的SPI CLK。

此致

Bob Bacon

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

    Bob,您好!

    正如您所发现的,我们没有记录这一时间安排。 我需要做一些挖掘才能看到这一点。 您的SPI是主SPI还是驱动SPISTE的主SPI?  

    谢谢!

    标记

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Mark
    这与 e2e.ti.com/.../58.8531万有关
    F2808是连接到ADS8319的主中继器。
    此致
    Bob
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mark,您好!

    对于我感兴趣的SPI接口,我们在 同一SPI总线上有四个TMS320从属设备(以及其他从属设备)。    

    (非TMS) SPI Master只有一个SPI总线,但有四条Master_SPI_CS线,每次使用不同的Master_SPI_CS时,都要重新配置SPI总线。  仅其中一个Master_SPI_CS信号SPI_CS0用于访问四个TMS320从属设备集。

    主SPI_CS0 支持2-4线路多路复用器的输出,该复用器对   来自SPI主控制的低速接入端口的一对信号进行解码,以生成单独的TMS320从属SPI_CS信号。   除非 采取措施来管理这种情况, 否则在主SPI_CS0已激活 之前,多路复用器输入信号对不会稳定,导致单个从属SPI_CS连续处于活动状态,因为多路复用器在启用后响应输入更改。

    我们能够将SPI时钟延迟到一切都稳定时,因此数据传输没有问题,但在此之前,  单个从SPI_CS可能不稳定,每个SOMI信号的交互作用是我想要更好地了解的, 根据我的收集,单个TMS320 SPI_CS处于活动状态或处于非活动状态,启动和停止每个器件上的SOMI为活动输出。  因此,在我提出一项SW变更之前,我希望了解时机和任何其他后果,如果不对情况进行彻底分析,可能会有一些阻力。

    另一个我欢迎确认的方面是,据我所能判断,不附带任何SPI_CLK的SPI_CS不会在从属设备上造成任何处理负担,如任何 中断处理。   

    谢谢!

    Andy Jones

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

    我没有现成的时间安排。 如果您阅读Bob的第一条消息中的第一句话,SOMI引脚将进入高阻抗状态。这意味着引脚将处于非驱动状态。 SPISOMI引脚上是否启用了上拉?

    我需要联系我们的设计团队,以了解SPISTE的最小时间,并了解故障可能会发生什么情况。

    如果可能,您是否可以共享完整SPI网络的原理图或图表的片段,包括多路复用/解复用和控制信号。
    此外,您能否显示一些时间图或范围捕获以说明您所看到的问题。 我想我可以理解你们分享的内容,但图表会很清楚。 如有必要,请对图片进行注释。

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

    Mark,您好!

    在通过标记认识的同事运行此信息之后, 我排除了 所有公司原理图和技术 信息,以避免任何商业敏感数据从公共 领域广泛提供的TI数据中提升标记。 相反,我在  Paint中整理了一个非常简单的计时图,仅来自TI数据,如果 您想象一个典型的TI器件正在执行多路复用,但在ABC输入之前启用了输出,则会保持稳定, 然后,对TMS320 SOMI信号的影响是对单个nSPISTE变化的响应。

    此致

    Andy Jones

    封装:

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

    你好Andy。

    感谢您提供图表。 如果您可以定义您在图表上标记的计时,那将是非常好的。 它将帮助我更好地消化它。 您所要求的时间安排是否符合您的要求? 什么是多路复用器G2A/B_N信号? 主SPI是否驱动多路复用器A/B信号?  

    您说过在mux的重新配置过程中,其他芯片选择信号可能会出现不稳定的时间段,看起来可能会导致意外的SOMI活动。 这段时间有多长? 所使用的Demux芯片是什么? 在重新配置期间,是否可以使用附加信号来禁用输出?  

    我已请求我们的设计团队更新您所请求的时间安排。 如果我听到任何消息,我明天会跟你跟进。

    [引用user="Andrew Jones94]另一个方面,我欢迎大家确认,据我所能判断,不附带任何SPI_CLK的SPI_CS不会在从属设备上造成任何处理负担,如任何 中断处理。   [/引述]

    否,存在可能由假SPISTE脉冲和无时钟触发的中断处理。  

    此致,

    标记

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

    Mark,您好!

    至Demux 的A和B输入(典型SN74LVC138)确实来自生成Demux G2A_N,G2B_N, 但是,通过一个分离式闩锁进行配置,该闩锁悬挂在非常慢的总线上,与SPI功能无关,因此在触发SPI功能后可能会发生变化,尽管执行SW先设置端口,然后命令SPI传输。

    希望您能提供时间来替换问号(其中一些可能有相同的答案)。  这一切都是基于现有设计,我们正在从原型HW到生产主板,因此我们正在尝试对其进行特征分析,并希望了解这是否会产生一个应通过以下方式解决的问题:

    • 允许 TMS320 SPISTE输入出现故障/不稳定的设计,并推迟SPI CLK,直到其全部稳定下来(即我们现在所做的)(不是特别整齐,但如果没有明显的后果,则很受欢迎)
    • SW约束延迟SPI_CS,直到我们知道A和B输入稳定(=不常用)
    • 硬件修改(=非常不受欢迎)
    • 额外的硬件控制和软件控制(=普遍不受欢迎)
    • 以上未涵盖的任何选项。

    谢谢!

    Andy

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

    从SPISTE激活到SPISOMI被驱动的最小延迟时间为1.5tc (SYSCLK)。 这是一个设计模拟编号,所以我会在上面添加一些填充。 它不是我们在PVT中所描述的值。

    此外,SPISTE上的任何故障都可能被捕获为有效的SPISTE。 这里没有保护。

    听起来,您最好的选择是延迟任何SPICLK转换,以便有足够的时间让SPISTE网络稳定-这是列表中的第一个选项。 只要在芯片选择稳定期间没有时钟转换,C2000 SPI就不会锁定数据。 这里的问题是,如果多个从属设备同时驱动不同的值,并且其SPISTE信号同时处于活动状态,您可能会暂时收到一个有趣的SOMI信号。

    作为工程师,我的建议是修复硬件,以防止出现故障。

    但是,我可以推荐两种合理的解决方法:
    1.我们确实有GPIO输入鉴定,您可以在SPISTE上设置。 假设短时脉冲波形干扰不会持续很长时间,您可以设置限制条件,使脉冲波不会锁定到SPI中。 这可能有点夸张,但您可以设置限制条件,以便信号需要保持25个SYSCLK周期才能被识别。 您将需要确保SPICLK在SPISTE驱动后至少在该时间内不会切换。

    2.另一个选项是将SPISTE与SPI分离,直到您识别SPISTE是稳定的。 因此,首先从GPIO mux中删除SPISTE,然后在GPIO上设置下降边缘中断。 在此处添加输入限定条件以过滤出浮点。 获得GPIO中断后,将GPIO重新配置为SPISTE,然后SPI将处于活动状态。在SPISTE的边缘上,您可以再次重新配置GPIO mux,然后重复。

    在这两种解决方法中,您都需要花费一些时间进行鉴定,并将SPICLK的驱动延迟至少与最小故障+ GPIO鉴定+ SPISTE设置时间相同。

    这两种方法是否合理?

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

    Mark,您好!

     

    很有趣  从SPRUG72 Figure 1-2中,重点关注芯片的SPI相关部分,看起来SPISTE可能会对启用三态缓冲区产生直接影响,但 有必要 考虑SYSCLK的一个元素。  感谢您确定SPISTE到SPISOMI的活动时间,接受通过模拟完成。  

     

    是否也可以确定停用的最长可能时间?

     

    感谢您确认,建议将SPICLK转换延迟到SPISTE稳定之后,我们也是这样做的。  我认为这将是我们将保留的办法。

     

    我同意设计可以改进,但正如您所展示的,我们习惯了必须接受至少提供 一 个可行妥协的东西。

     

    我喜欢您的其他两个变通办法。  我是否正确地认为SPISTE输入限定可有效地延迟SPISOMI的激活,最后是停用?  除了用作GPIO的GPIO引脚外,我没有考虑使用该功能。

    在SPISTE上具有更长的输入限定,直到其处于活动状态,然后在SPISTE处于活动状态时关闭该输入的限定条件,而不影响正在进行的SPI,这是否可行?

     

    我可以看到第二种方法也很有效。  知道还有其他解决方案要采用总是很好的,但我希望在这种情况下,我们将保持TMS320代码不变,并尝试改进我们对TMS320s的信号管理。

     

    谢谢!

     

    Andy

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

    Andy,

     SPRUG72的图1-2是一个非常详细的图表,就高级图表而言。 它不是精确的实现图,因此不存在同步器和信号缓冲器等内容。  我还需要查看从SPISTE非活动到SPISOMI HIZ的延迟时间。

    在SPISTE上具有输入限定将有效延迟SPISOMI活动状态的开始和结束。 SPISTE的优点是不能以高频驱动,所以在主动传输过程中不需要更改输入限定,只会延迟活动。 如果您选择在传输过程中更改输入限定条件,GPIO上不会出现任何小问题,但需要额外的SW进行管理。 如果您需要在系统中恢复一些时间,并且可以利用一些设备时钟周期来主动管理鉴定,我对此没有任何问题。

    标记