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.

[参考译文] CC2538EMK:CC2538的SSI

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/590087/cc2538emk-ssi-of-cc2538

部件号:CC2538EMK
主题中讨论的其他部件:CC2538Z-stackCC3100

大家好!

我正在通过SPI将CC2538EM连接到另一个TI模块。 我发现CC2538EM中有2个SSI模块。 所以我搜索了SSI和SPI之间的区别,发现SSI在某种程度上更一般,但我有一些问题,如果有人可以帮助我。

Q1)为了将SSI模块连接到SPI模块,我是否应该做许多修改(要写入的函数)?

Q2) CC2538如何连接到SmartRF06,是通过SPI连接的?

问题3)如果问题2的答案为是,则CC2538EM上的P1和P2的此连接使用哪些引脚?

Q4)如果问题2的答案为"是",则此连接使用哪个SSI模块(SSI0或SSI1)? 它是否仅用于连接SmartRF06,或者是否可以在刷新程序后进一步使用它来连接到我的另一个从属模块?

Q5)如果另一个模块需要的连接线(NFIB - HOST_IRQ)比标准的SPI 4线(MOSI-Miso-CLK-CS)多2根,我应该使用2个GPIO,还是有更好的方法?

问题6)我在Z-stack 1.2 的“Z-stack ZNP接口规范”中读到,它使用了2根附加线连接到默认的4个SPI线,MRDY和SRDY,我认为它们与NFIB和HOST_IRQ相同,所以我对这点是否正确?

提前感谢

此致
詹姆斯

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

    1.正如您所说,SSI模块是4线通信接口的更一般的实现,根据所使用的软件,它的作用会有所不同。 如果要使用SPI,可以使用CC2538基础固件附带的SPI驱动程序,或Z-Stack中的SPI驱动程序。 此外,有关SSI模块的详细信息,请参阅1.3 .8.4 部分,网址为:
    www.ti.com/.../swru319c.pdf

    以下是CC2538基础固件和Z-Stack的链接:
    www.ti.com/.../cc2538-sw
    http://www.ti.com/tool/z-stack

    2.根据正在执行的操作,实际上可以通过SPI和UART进行通信。

    第20/21页上的表13/14将显示相关的联系:
    www.ti.com/.../swru321b.pdf

    4. SSI0用于SmartRF06上的LCD,Micro SD和加速计通信,我相信这些引脚暴露在IO管座引脚上,因此您应该能够使用它们来执行您想要的任何操作。

    5.这两个引脚可能与SPI器件的功能相关,但它们与4线通信接口不直接相关,因此需要将它们置于GPIO引脚上。

    6.我不确定您在使用什么SPI设备?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答Jason,


    Q7)关于Q1,您能否告诉我在哪里可以找到您提到的“Z-Stack中找到的SPI驱动程序”? 因为我在ZNP体系结构目录中只找到2个SPI驱动程序?

    Q8)关于第3季度,我查看了您提到的文档,发现只有EVM SPI时钟,EVM SPI MOSI,EVM SPI Miso和EVM重置信号(活动
    低),但未找到SPI CS,我是否遗漏了一些内容?

    Q9)关于Q6,我根本不使用ZNP-ZAP体系结构,而是使用CC3100。 但我在“Z-stack ZNP Interface Specification”(Z-stack ZNP接口规范)中找到了一个提到SPI连接的章节,所以我很好奇,这是否会帮助我避免实施某些功能,尽管这些功能存在。

    提前感谢

    此致
    詹姆斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    7.进一步调查后,Z-Stack似乎没有用于一般用途的显式SPI驱动程序。 但是,我建议参考ZNP_SPI.c中的SPI实现,您应该能够复制并稍微修改此功能,以便通用地使用任何SPI设备。 或者,您可以尝试在基础固件中使用SPI_MASTER示例和ssi.c/h驱动程序。

    8.芯片选择是任何(唯一) GPIO引脚。 如果您注意5.6 到该文档中的SPI/PI/GPIO,所有这些设备都使用相同的5.4 引脚,但使用不同的5.5 引脚进行芯片选择。

    9.参见(7.)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢Jason,但我浏览了您提到的ZNP_SPI.c (我使用的是Z-stack 1.2),并找到以下评论,

    "此文件包含H/W特定ZNP SPI驱动程序的接口。 请
    请注意,此驱动程序尚未完成,并且正在进行中"

    Q10)这是否意味着它真的不完整,或者这只是一个旧评论?

    Q11)我发现这里有很大一部分代码,我对ZNP体系结构一无所知,所以你可以向我说明我应该为自己的SPI查找和修改哪些函数吗?

    Q12)是否更难修改和使用SPI_MASTER中的一个,因为它在其实现中不像ZNP_SPI文件那样使用Z-stack?

    此致
    詹姆斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ZNP SPI不支持3.0 堆栈中的,我在Z-Stack ZNP接口Specification.pdf修订版中找到了该说明:

    1.1 Tm2016年11月11日 将ZNP用法和定义更新为3.0 堆栈。 删除了对SPI的支持
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    10/11. 如上所述,由于客户对该接口的需求不足以及我们没有继续积极开发它,ZNP SPI驱动程序已从Z-Stack 3.0 中删除。 在Z-Stack 1.2 .2a中,我不会说它是一个“不完整”的驱动程序,但一般来说,我们已经告诉客户,在使用此接口时要小心,不要进行适当的测试。 正如我之前所说的,这里的想法只是为了了解如何使用SPI API,而不一定是复制/粘贴此驱动程序实现。

    您以前是否在任何其他平台上使用过SPI? 我建议首先阅读有关任何通用平台上SPI的基本用法,它将帮助您了解SPI如何在我们的平台上实施。

    12.现在我同时查看两个示例,我认为使用SPI_MASTER.c作为起点可能更容易。 此文件经过了非常全面的注释,因此您应该能够自己测试并按照每个步骤更好地理解它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在Z-stack 3.0 中进行了搜索,发现其中存在znp_spi.h,并且在文件的开头找到了相同的句子“Please
    请注意,此驱动程序尚未完成且正在进行中",我是否遗漏了一些内容?

    另外,我发现Projects/ZStack/ZNp/的文件夹在Z-St.3.0 3.0 和Z-St.C.2a!中都有相同的文件。1.2

    我以前也没有使用过SPI,但我读了很多关于它如何用于CC2538的信息,您认为这已经足够了吗?

    此致
    詹姆斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉,我的意思是从Z-Stack 3.0 中删除ZNP SPI驱动程序的文档支持,尽管有人想尝试使用这些驱动程序文件,但这些驱动程序文件仍保留在堆栈中。

    我认为有关SPI如何在CC2538上工作的一般知识应该足以让您入门,以driverlib SPI示例SPI_MASTER.c作为参考。 尝试一下,如果您对此平台上的SPI使用有更多特定的问题,您可以在此处进行跟进,或者使用新的e2e (更具体) e2e线程进行跟进。