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.

[参考译文] TM4C123BH6PZ:SSInFss 时序

Guru**** 2398695 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/657859/tm4c123bh6pz-ssinfss-timing

器件型号:TM4C123BH6PZ

在为 TM4C 开发时、我使用的是具有以下设置的 SSI 外设:SPO = 0和 SPH = 0的 Freescale SPI。 通过这些设置、SSInFSS 在连续传输的每个信息字之间切换。 在查看 TI 有关该微控制器的资源时、我发现在连续传输中传输的每个字之间 SSInFSS 脉冲为高电平的最短时序。 我想、这个时序在某种程度上是可变的、具体取决于系统时钟或串行时钟频率。 虽然对于给定的器件、它可能是凭经验确定的、但我想器件之间也可能存在一些差异。 那么、对于特定修订版本的所有制造零件、是否至少有一些最小时序或此参数的某些规格?

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

    是否特定需要在字间为连续传输而将 SS 线路脉冲为高电平? 在 SPI 通信的所有经验中、我从未配置过它、因此当发送的数据流恒定时、SS 在每个字之间变为高电平。 相反、在传输所有字节之前、SS 线路保持低电平。

    考虑到这一点、由于这是 SPI 的典型用法、我认为我们从未规范过 SS 线路在字间实现高电平脉冲的最小时序。

    您能否详细说明需要将 SS 线路脉冲高电平以进行连续传输的用例?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ralph、

    FSS 引脚上的高电平脉冲在数据表中描述如下。 但是、在数据表中、未指定连续传输期间 FSS 的最小高电平宽度。 我会倾向于认为最小值非常小、可能只有一个 SPICLK。 由于这些信息没有特征化、因此需要从经验试验中获得数据。

    在单个字传输的情况下、在数据字的所有位都已传输后
    在最后一位之后的一个 SSInClk 周期内、SSInFss 线返回到其空闲的高电平状态
    捕获。
    但是、在连续背靠背传输的情况下、SSInFss 信号必须是脉冲信号
    因为从器件选择引脚会冻结其串行数据、所以每个数据字传输之间的数据为高电平
    外设寄存器、如果 SPH 位清零、则不允许对其进行更改。 因此、主器件
    器件必须在每次数据传输之间将从器件的 SSInFss 引脚拉高、以启用
    串行外设数据写入。 连续传输完成后、返回 SSInFss 管脚
    在最后一位被捕获后的一个 SSInClk 周期内进入空闲状态
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、

    谢谢大家分享。 我想知道这是否仅适用于当时使用 SSInFss 的情况? 回顾我熟悉的 TM4C SPI 示例、另一个 GPIO 用作 SS、因此该 SPI 基址的 SSInFss 引脚未使用。 在该应用中、连续字节传输在所有字节输出中保持 SS 低电平、然后在连续传输结束时将其提升为高电平。

    我想如果 SSInFss 管脚未配置/使用、那么外设寄存器只允许写入下一个数据而无需 SS 脉冲?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ralph、
    我修改了 TivaWare SSI 示例并简单地连续创建了几个 SSIDataPut()。 我可以看到 FSS 引脚在每个字之后变为高电平。 如果没有配置 FSS 引脚、我仍然会看到 SPI 在字之间变为空闲状态、因为 SPICLK 将在空闲期间处于非活动状态。 FSS 在整个过程中都很低。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正在使用的应用是该处理器和 FPGA 之间的通信。 概念是接受一个信息字,通过已传输的内容进行解析。 在这种情况下、要传输的以下字将基于接收到的前一个字。 但是,为了做到这一点,两次传输之间需要足够的时间。 对于连续传输、SPO=0和 SPH=0上的传输之间的 SSInFSS 变为高电平可能提供了这个时间周期。

    尽管在一段最短时间内无法保证信息、但我怀疑器件之间可能存在一些差异、除非数据表中指定、否则最好不要假设这些差异。 但是、我可以考虑我的特定应用的一些替代策略、例如一次只执行一次一个传输。 将上述方法与 SSInFSS 引脚结合使用可以简化某些操作。

    感谢 Charles 和 Ralph 的帮助。