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.

[参考译文] Arduino atmega2560和 EK_TM4C123gxl 之间的 SSI 通信

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/586495/ssi-communication-between-arduino-atmega2560-and-ek_tm4c123gxl

主题中讨论的其他器件:TM4C123GH6PMEK-TM4C123GXL

您好、先生、

 我是嵌入式系统领域的新手、尤其是 Tiva 系列 Launchpad。 我在 tm4c123gh下午6点电路板上完成了一些基本任务。 现在、我对学习 SSI 通信感兴趣。 可以帮助我开始吗? 我已读取可用的示例代码、但我不清楚应该使用哪一个? 现在、我有两块板、Arduino atmega2560 (主板)和 EK_TM4C123gxl (从板)。  

 

期待有成效的帮助

此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    在下的 TivaWare 库中有 SSI 示例 /examples/peripherals/ssi.

    下面是有关将 TM4C 用作从站的另一篇文章。
    e2e.ti.com/.../453608
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想建议、如果您将 TM4C 用作"主器件"并连接到简单的基于 SPI 的 EEPROM 存储器、您的"学习曲线"将会大大加快/简化。 (这也将为您提供有用的数据存储和恢复方法、并提高您的理解/掌握程度。)

    奴隶的操作(总是)更加复杂-尝试(最初)攀登"最高"的山脉是不明智的...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!
    我不熟悉 SSI。请帮助我了解 MISO 和 MOSI 在哪里? 它在 Tiva Launchpad 中是否被命名为 Rx 和 Tx?

    此致、


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

    您好!

    MOSI 表示 MasterOut-SlaveIn、即主器件引脚为 TX、应连接到从器件输入 RX

    MISO 表示 MasterIn-SlaveOut、即主器件引脚为 RX、应连接到从器件输出 TX

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

    您好!
    感谢 Petrei 的回应。
    现在我有另一个问题。 我正在使用 Adis 传感器16355 AMLZ 作为主设备来获取陀螺仪和加速计数据。在 Tiva Launchpad 之前、我已经为此任务使用 Arduino。 请指导我如何从传感器(xgyro)读取数据。
    此致、

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

    您好!

    建议从更简单的工作开始、只是为了了解 SPI 的工作方式- CB1_MOBILE 也建议这么做。

    其次、在 Tiva 中有一个名为"sensorlib"的文件夹、其中包含两个类似传感器的代码- mpu6050和 mpu9150 -如果您可以恢复到保存的其中一个传感器、否则您必须为您的器件读取代码并按照/重新编写。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    感谢各位同事的帮助。 下面是我的下一个问题。 期待您的帮助。

    我被分配了处理 SSI 通信的任务。 我需要读取数据(对于陀螺仪、x、y、z;对于加速计、x、y、z)。 现在、我只需要读取原始数据。 我的传感器是 ADIS16355AMLZ、我的板 是 EK-tm4c123gxl。 在 Tiva Launchpad 之前、我已针对相同 的任务处理 Arduino。
    我尝试只读取 xgyro 数据(此处附上代码 )。 预期输出是针对单个地址的2字节数据、值 应根据传感器旋转进行更改、但输出值仅为 3.00、FF、84 (十六进制格式)中的一个。 这意味着我在 SSI 配置或数据读取中犯了一些错误。 除了这个问题之外,请帮我解答 下面提到的有关 SSI 的一些一般性问题,以便我理解(抱歉 ,因为他是个新手 J )

           我的 C 代码 设置中、SSIConfigSetExpClk 的 SSI_MODE 应该是什么? 主器件还是从器件? (根据我 的理解、传感器应该是主传感器(数据生成器)、Tiva Launchpad 板 应该是从器件(它将接收和显示数据)。如果我错了、请更正我、 因为对于 Arduino、 SPI 库只有主模式支持、我 没有进行任何显式设置、我认为这种设置差异会影响 整个代码。

    2、       SSI_FRF_MOTO 模式应是什么? (在 SSI_SLAVE 采样代码中、SSI_FRF_MOTO_MODE 为3、对于 SSI_MASTER 采样代码 为0)。 根据 ADIS 传感器文档 (此处随附)、我可以理解它应为3 (极性和相位均 设置为1)。

    3.        每次读取或单次调用都需要 SSI BUSY()指令 吗?

    4.   对于 Arduino、我们需要将 ss (从器件选择)引脚 设置为低电平以读取数据、然后将其设置为高电平以完成读取。 如何 在 Tiva Launch Pad 中实现此函数。

      

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

    您好!

    有关您的软件的几个观察结果:

    a)您不需要此应用程序使用 SPI 中断。 这将使所有事情复杂化,至少在现阶段。

    b)所有传感器都是使用逻辑电路制造的、内部没有程序、因此您的传感器应该只是从传感器、而不是主传感器。

    c)传感器仅在时钟相位和极性均设置为1的情况下工作、即工作模式为飞思卡尔3、根据数据表、数据长度应为16位(即"帧"为16位)。

    d)帧由以下内容组成:a)要操作的字节的地址和 b)要执行的命令-生成的字的 MSB 应为1表示写入、0表示读取。

    您所需要的只是仔细阅读数据表并进行更多试验-正如之前的帖子中所建议的那样、试验一个更简单的器件、如 EEPROM 将帮助您学习 SPI -没有这么做、 还有问题-必须重新阅读用户手册...

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

    您好!
    感谢您的回复 petrei。
    您是否看到了 SSI.c 文件?

    此致


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

    您好!

    是的、我看到了、这就是我建议更改为主设备、飞思卡尔模式3、16位数据长度的原因。 如果您考虑了所有这些、则需要修改 SSI.c 文件。 这意味着首先重新阅读数据表和用户手册、并更好地组织软件。

    一个简单的欺骗解决方案是查看 Arduino 源代码、但我想您想了解一些有用的内容、而不是对文件进行机械修改。

    从 Tiva 示例开始、强制性地使用示波器来查看波形、然后很少修改代码以输出 所需的内容、观看传感器响应、与数据表进行比较并再次进行修改。

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

    您好!
    感谢您的快速响应。非常感谢。
    这是为了与您分享、在开始与传感器相关的工作之前、我已经执行了代码、通过 ssi0 base 将三个字节传输到 uart0、它运行良好。我可以在终端上看到三个字母通过 SSI 通信从 Uart0发出。SSI 通信是否成功?
    基于这一点、我已经开始使用传感器、当我选择从模式时、它只显示当我将它更改为主模式时、我看到一些值...:/!。 我应该从这个结论中得出什么结论?

    此致、


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

    您好!

    经过几周的努力和群组配合的持续帮助、我已经使用两个 SSI 端口在单个电路板上成功执行了我的 SSI 代码

    出于帮助目的、我想分享几点。

    1.使用了两个 SSI 端口 ssi0和 SSI2。 一个用作主器件、另一个用作从器件。

    2.我从主端口发送数据并在从模式下接收。

    主控模式的时钟周期为1MHz、从器件的时钟周期为4Mhz。

    4、主模式和从模式都需要 SSIConfigSetExpClk 设置(这是一个重要的问题,我无法在我的配合的建议和示例代码中找到)。

    另一个重要发现是、对于 UART、直通连接可以(RX->RX、TX->TX)、但对于 SSI 通信、我们需要交叉连接(RX ->TX 和 TX -> Rx)。

    希望这些要点能帮助初学者(像我一样)学习 SSI。

    此致、