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.

[参考译文] CCS/AM1705:错误:擦除 SPI 失败

Guru**** 2559900 points
Other Parts Discussed in Thread: AM1705, OMAP-L137

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/594186/ccs-am1705-error-erasing-spi-failed

器件型号:AM1705
主题中讨论的其他器件: OMAP-L137

工具/软件:Code Composer Studio

您好!

我们制作了一个具有 IC 器件型号 AM1705DPTPA3 的定制 AM1705电路板、并使用 SPI 闪存进行引导。 闪存 IC 器件型号为 Macronix MX25L25635E。

我们使用 Code Composer Studio v4 XDS100v2 TI 14引脚 JTAG 仿真器部件号 TMDSEMU100V2U-14T 来写入 SPI 闪存  

在 AM1705 IC 的 ROM 引导加载程序版本检查中、存储器视图显示文本 d800k005

 我下载 了 OMAP-L137_FlashAndBootUtils_2_40.tar.gz 并加载了从上述 CCSv4项目创建的 spidwrite.out 文件、然后运行代码。  

然后、spidwrite 应用程序要求提供 ARM UBL 文件、然后当我加载  OMAP-L137_FlashAndBootUtils_2_40.tar.gz 提供的 ARM UBL 时 、它为我提供了"  Error:Erasing SPI failed "、如下面的 PIC 所示

在定制 AM1705电路板上写入 SPI 闪存时,应使用哪个 SPI 写入器或需要进行任何修改?

请帮助我解决上述问题。

谢谢、此致、

Sandesh

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

    我已通知 RTOS 团队。 他们的反馈将在此处发布。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    串行闪存和引导实用程序中的 SPI 闪存写入器由 TI 评估平台上提供的 W25X32VSFIG (32M 位闪存器件)创建和测试。 您需要将 MAcronix 闪存命令集与 Winbond 闪存命令集进行比较、并相应地修改代码

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

    感谢您的回复。

    您能否告诉我们、如果我对 Macronix 闪存进行更改、应在哪个 OMAP-L137_FlashAndBootUtils_2_40.tar.GZI 文件中进行更改、以及应该在文件中更改哪些参数

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

    将 SPI Writer 项目导入 CCS、您将能够看到链接到该项目的所有文件。 在该项目中、找到文件 spi_mem.h、其中包含 SPI_MEM_TYPE 和 SPI 闪存命令表、请将其与闪存数据表中提供的表进行比较。

    由于擦除失败、我怀疑闪存上使用的命令不同。 另外要检查的是、您的 SPI 是否以4引脚模式连接?
    如果是、发送擦除命令时、您是否看到时钟和 SPI 芯片选择变为低电平?

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

    您好、Rahul、

    根据您的建议、我们已将 spi_mem.h 文件与闪存数据表进行了比较、并发现命令相同。

    我们板上的闪存 MX25L25635E 以4引脚模式与 AM1705的 SPI0端口相连、即 SPI_CS、SPI_CLK、SPI_MOSI、SPI_MISO。 AM1705的 HOLD、Write_Protect、RESET 引脚上拉至3.3V。

    根据 AM17XX 引导加载程序应用手册中的说明、通过分别将引导引脚0、1、2、3、7保持为0、1、0、0、1、AM1705 IC 配置为 JTAG 模式

    在 CCSv4工具中、我们使用 OMAP137启动和闪存实用程序文件构建项目、并将我们的定制 AM1705板与 PC 相连

    在执行上述操作时、我们使用示波器监控并尝试捕获来自电路板上 AM1705 IC 的 SPI_CS 和 SPI_CLK 信号、但我们未看到 SPI_CS 信号变为低电平。

    实际上,我们有采用 AM1705BPTP3的自定义旧版本电路板(部件现在已停产),该电路板具有与原理图和电路相同的闪存,如果我们尝试写入 SPI,则会成功写入该闪存, 但是、在新电路板中、我们有最新的 AM1705DPTPA3 IC、我们将收到该错误

    请建议一些解决方案

    谢谢、此致、

    Sandesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您澄清 Sandesh。 n`t 相同的代码适用于您早期版本的平台、这对我来说似乎是一个软件问题。 闪存需要使用 SPI_CS 来识别传输的数据/命令是否用于闪存。

    让我们尝试找出旧电路板和新电路板之间的差异、以找出导致此问题的根本原因。 我在我的硬件同事中进行了循环、以便也提供他的意见。 从软件角度来看、以下问题可能会有所不同。 除器件版本之外、是否存在任何硬件差异。

    *您是否使用 GEL 文件初始化系统时钟和 PSC。 可以通过 GEL 文件为 SPI 电源域加电。
    * SPI_CS 引脚是否可能被多路复用为 GPIO 或其他一些设置?
    * CS 上是否有一些上拉设置导致引脚保持高电平?
    *您是否能够在多个电路板上复制此内容? 这将消除焊接或电路板特定问题。

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

    正如 Rahul 在他的帖子中提到的、我们想知道旧设计和新设计之间的区别。 另外、请回答 Rahul 帖子中的问题、以确定芯片选择信号未降低的原因。

    此致、
    SENTHIL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rahul、SENTHIL、
    感谢您的回复
    从硬件的角度来看
    1. 新电路板中的 SPI0_CS 引脚上有一个上拉电阻、与旧版本电路板中的相同。 上拉电阻器值为22k Ω
    2. 我们有 2个较新版本的电路板、两个电路板上都出现相同的错误
    3. AM1705上的 SPI0端口仅专用于 SPI 闪存、不会复用到任何其他 SPI 外设或 GPIO
    新电路板的原理图
    电路板的原理图
    在固件方面、我们尝试使用 Code Composer Studio 分步调试和运行代码、
    下面是我们遇到的问题
    具有新版本的电路板
    和电路板
    请回复
    此致、
    Sandesh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sandesh、

    是否可以尝试移除 CS 线路上的22K 上拉电阻并检查 SPI 操作?

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

    您好、SENTHIL、Rahul、

    我从 SPI_CS 引脚上移除了上拉电阻、并尝试对 SPI 闪存进行编程、  

    这一次也没有对其进行编程。

    由于 AM1705甚至未显示  "Erasing SPI failed"消息、因此在编程期间似乎会挂起

    我们在 SPI 擦除函数前后的代码中添加了调试器来调试该问题、但代码在擦除操作之前卡住、并且继续执行。 (擦除之前的文件读取操作用于获得 成功、即"文件读取完成")

    我尝试对较新版本的电路板进行多次编程、但每次 AM1705处理器在擦除操作之前使用挂起、CCSv4软件在我们终止操作之前使用长时间保持运行模式

    但是、我们可以在具有 AM1705B 的较旧版本电路板中看到相同的调试、  

    我们使用 XDS100v2 JTAG -14引脚调试器来写入 SPI 闪存

    我们是否需要采用较新的版本? 如果是、请告知我们

    或者、我们是否需要对代码中更新的 AM1705D IC 进行任何固件更改?

    请回复

    谢谢、此致

    Sandesh

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

    Sandesh、

    您配置 SPI 的频率是多少? 是否可以尝试使用较低的频率并发现问题仍然存在?

    我们会检查软件并更新您。


    此致、
    SENTHIL

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

    您好、SENTHIL、Rahul、

    我们已将 SPI 的频率配置为1MHz、

    我们甚至将频率更改为较低的值、但问题仍然存在

    我们有一篇与我们的问题类似的文章、但它涉及 OMAP-L138E 处理器、我们也面临着与 AM1705相同的问题

    e2e.ti.com/.../535249

    在本例  中、AM1705会在" else if (hSPIMemInfo->hMemParams->memType = SPI_MEM_TYPE_FLASH)"和中挂起  

     CCS 无法在特定地址读取。 因此问题是、它不会进入擦除和编程部分、因为它始终位于:

    否则(hSPIMemInfo->hMemParams->memType =SPI_MEM_TYPE_FLASH)

    请回复  

    谢谢、此致、

    Sandesh

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

    我不确定在访问 SPI 时器件为何会挂起。 此外、新修订版器件不需要软件更改。 您能否尝试使用 SFH 实用程序将映像写入 SPI 闪存并查看是否成功。 这将有助于我们隔离该问题。

    processors.wiki.ti.com/.../Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L137

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

    您好、SENTHIL、

    根据您的建议、我尝试使用 SFH 实用程序将映像写入闪存

    下面是几张图片

    上述操作在"正在等待 OMAP-L137上的 SFT。。。"

    在所有上述3个操作的结束行、我都说 Boot Completed Successfully  (引导已成功完成)、仅为了在执行上述操作时进行配置、我尝试使用示波器、特别是 SPI0_CLK 信号、来监测连接闪存的 AM1705D IC 的 SPI0信号、 但我没有看到 AM1705D IC 发出的任何波形或时钟信号、

    因此、我很困惑闪存是否真的被串行闪存写入器擦除和写入?

    请回复

     

    谢谢、此致

    Sandesh

    您好、Rahul、SENTHIL、

    请帮助我们解决此问题、因为我们的项目已经延迟  

    此致、

    Sandesh