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.

[参考译文] AM3354:U-boot 中的 McSPI 控制

Guru**** 2606725 points
Other Parts Discussed in Thread: AM3354

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/650560/am3354-mcspi-control-in-u-boot

器件型号:AM3354

您好,

主芯片: AM3354BZCZ100  

SDK:RT 3.3  

硬件 连接:  

OLED 屏幕(ssd1106)需要在 uboot 阶段由 SPI 总线控制。

如何写入 am3354 uboot 阶段的 SPI 程序?

例如,如何在 SPI 总线上写入数据,设置 SPI 的时钟速度和 SPI 的模式?

我们能否为 AM335x uboot 阶段 ?提供一些建议或 SPI 操作例程

希望您能提供帮助,谢谢。

BR

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Andre、

    您应该在 AM335x u-boot DTS 文件中描述您的外部 SPI 器件。 然后、您可以使用 u-boot 提示符下的 SPI 命令与该外部 SPI 器件进行通信。

    默认情况下、u-boot 中有"SF"命令(请参阅下面的链接)、但这些命令似乎仅用于 SPI 闪存器件。

    processors.wiki.ti.com/.../Linux_Core_U-Boot_User's_Guide

    对于通用 SPI 器件、您可以尝试使用"SSPI"命令、有关更多信息、请参阅以下链接:

    e2e.ti.com/.../289817
    e2e.ti.com/.../573024

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

    感谢你的答复。
    我想在 uboot 阶段实现 am3354 SPI 驱动程序以控制外设(ssd1106)。

    是否有用于 am3354的 SPI 驱动程序供参考?
    或者如何将相应的 SPI 驱动程序注册到 am3354上的 U_boot_driver ()?
    或者在 uboot 阶段还有其他方法,? 希望得到您的建议。

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

    Andre、

    u-boot SPI 驱动程序位于:

    U-boot-2017.01/drivers/SPI/OMAP3_SPI.c

    您还可以参阅以下 DTS 文件:

    u-boot-2017.01/arch/arm/dts/am33xx.dtsi
    u-boot-2017.01/arch/arm/dts/AM335x-rut.dts

    u-boot-2017.01/board/ti/AM335x/mux.c

    此致、
    帕维尔

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

    您好、Pavel、

    感谢您的建议、我现在使用 SSPI 命令来控制 SPI 外设。

    主芯片:AM3354BZCZ100

    SDK:RT 3.3

    SPI1引脚配置如下:

    硬件连接:

    从原理图中可以看出,总线为1芯片选择为0。   

    在 uboot 阶段执行 SSPI 1:0.3 32 A 命令、电路板错误重启、如下所示:

    uBoot 编译为:

    将 arch=arm cross_compile=arm-linux-gnueabihf- am335x_bonebblack_defconfig 全部设置为
    使 arch=arm cross_compile=arm-linux-gnueabihf-

    未使用设备树。   我们使用 MLO 和 u-boot.img 启动 am3354板。  

    测试 SPI0总线命令、如下所示:

    我需要控制 SPI1总线上的外设。  

    如何解决 SPI1错误板重新启动问题?

    希望能得到您的帮助、谢谢。

    BR

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

    您好、Pavel、

    当我执行 SSPI 1:0.0 32 A 命令时、我将 print 添加到 SPI.c 和 OMAP3_SPI.c 中、如下图所示:

    执行到 OMAP3_SPI.c 文件时、SPI_RESET ()函数时间错误、如下图所示:

    我应该如何解决这个问题?

    如何使用 SSPI 命令控制 SPI 1总线上的外设?

    我希望你能帮助我,谢谢。

    BR

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

    确保在器件 PRCM 中启用 McSPI1 (0x481A0000)。 您可以使用 u-boot MD/MW 命令检查/修改相关寄存器:

    CM_PER_SPI1_CLKCTRL

    此致、
    帕维尔