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.

[参考译文] AM2634-Q1:闪存写入失败 (W25Q64JV)

Guru**** 2752415 points

Other Parts Discussed in Thread: SYSCONFIG, AM2634

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1573973/am2634-q1-flash-memory-write-failure-w25q64jv

器件型号:AM2634-Q1
主题中讨论的其他器件:SysConfigAM2634

工具/软件:

团队、

我的客户尝试对列为兼容闪存的 Winbond W25Q64JV 进行编程、但遇到写入故障。
客户参考了 本文档 、并通过填充 QSPI 闪存诊断并获取以下日志确认 W25Q64JV 与 SFDP 兼容。
e2e.ti.com/.../Flash-Diag.txt
然后、客户将 JSON 器件保存在此文件中、并尝试加载、但无法加载。 在保存 SysConfig 时、不会更新参数、并且会出现错误。

看一下 SDK 文档、只有 Infineon 的闪存。 Winbond 的 W25Q 是否在 AM2634 上?

此致、
Wasa 信彦

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

    您好、

    然后客户将 JSON 部分保存在此文件中、并尝试加载它、但它不起作用。

    您能告诉我在上传 json 文件时遇到了什么问题吗?

    您是否还可以分享客户使用的 SysConfig。

    此致、

    Aswin

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

    尊敬的 Aswin:

    现在、客户可以通过参考以下 e2e 主题来写入 Winbond 的 W25Q64JV;
    AM2434:QSPI 闪存驱动程序
    但是、上述线程中的 SysConfig 图片与通过闪存诊断日志获得的客户之间存在一些差异。 您能否澄清以下几点?

    1.擦除配置:SysConfig 图片显示闪存块大小为 32768、但客户  在诊断日志中得到 65536。 WQ25Q64JV 数据表表示其为 64KB。 为什么上面的 SysConfig 显示不同的值?

    2. Protocol Enable Configuration:SysConfig 图片显示“Write/Page Program Command“(写入/页面编程命令)为 0x32、即 Quad Input Page Program(四路输入页面编程)。 客户希望确保这是正确的选择。 在这种情况下、适合四路使能类型的选项是什么? SysConfig 图片显示 6、但客户根据 SysConfig 指令认为这应该是 4。  

    3.高级闪存配置:设置比诊断日志更长的值“闪存忙超时“更好吗? 将比诊断日志更短的值设置为“闪存页面程序超时“是否更好?

    这是客户的 Flash Diag 日志。

    {
    
            "flashSize": "8388608",
            "flashPageSize": "256",
            "flashManfId": "0xEF",
            "flashDeviceId": "0x7017",
            "flashBlockSize": "65536",
            "flashSectorSize": "4096",
            "cmdBlockErase3B": "0xD8",
            "cmdBlockErase4B": "0xD8",
            "cmdSectorErase3B": "0x20",
            "cmdSectorErase4B": "0x20",
            "protos": {
                    "p111": {
                            "isDtr": false,
                            "cmdRd": "0x03",
                            "cmdWr": "0x02",
                            "modeClksCmd": 0,
                            "modeClksRd": 0,
                            "dummyClksCmd": 0,
                            "dummyClksRd": 0,
                            "enableType": "0",
                            "enableSeq": "0x00",
                            "dummyCfg": null,
                            "protoCfg": null,
                            "strDtrCfg": null,
                    },
                    "p112": {
                            "isDtr": false,
                            "cmdRd": "0x3B",
                            "cmdWr": "0x02",
                            "modeClksCmd": 0,
                            "modeClksRd": 0,
                            "dummyClksCmd": 0,
                            "dummyClksRd": 8,
                            "enableType": "0",
                            "enableSeq": "0x00",
                            "dummyCfg": null,
                            "protoCfg": null,
                            "strDtrCfg": null,
                    },
                    "p114": {
                            "isDtr": false,
                            "cmdRd": "0x6B",
                            "cmdWr": "0x02",
                            "modeClksCmd": 0,
                            "modeClksRd": 0,
                            "dummyClksCmd": 0,
                            "dummyClksRd": 8,
                            "enableType": "4",
                            "enableSeq": "0x00",
                            "dummyCfg": null,
                            "protoCfg": null,
                            "strDtrCfg": null,
                    },
                    "p118": null,
                    "p444s": null,
                    "p444d": null,
                    "p888s": null,
                    "p888d": null,
                    "pCustom": null
            },
            "addrByteSupport": "0",
            "fourByteAddrEnSeq": "0x80",
            "resetType": "0x30",
            "cmdWren": "0x06",
            "cmdRdsr": "0x05",
            "srWip": 0,
            "srWel": 1,
            "cmdChipErase": "0xC7",
            "flashDeviceBusyTimeout": 20000000,
            "flashPageProgTimeout": 704
    }
    


    此致、
    Wasa 信彦

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

    您好、

    我想这是客户使用的数据表。 我将其作为下一个答复的一部分。

    [quote userid=“185568" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1573973/am2634-q1-flash-memory-write-failure-w25q64jv/6071940 擦除配置:SysConfig 图片显示闪存块大小为 32768、但客户  在诊断日志中得到 65536。 WQ25Q64JV 数据表表示其为 64KB。 为什么上面的 SysConfig 显示不同的值?

    检查数据表是否有 32KB 和 64KB 块擦除配置。 不同之处在于、这些操作的命令不同。 因此、64KB 块擦除大小也有效。 此外、该擦除的选项是 (xD8)、它也与闪存数据表保持一致。 它仅显示 64KB 的原因是设备之间 SFDP 解析逻辑的不同之处。

    [quote userid=“185568" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1573973/am2634-q1-flash-memory-write-failure-w25q64jv/6071940 协议启用配置:SysConfig 图片中显示“Write/Page Program Command“(写入/页面编程命令)为 0x32、即 Quad Input Page Program(四路输入页面编程)。 客户希望确保这是正确的选择。 在这种情况下、适合四路使能类型的选项是什么? SysConfig 图片显示 6、但客户根据 SysConfig 指令认为这应该是 4。  [/报价]

    ...

    数据表显示 QE 是状态寄存器 2 的位 1、因此它是 6。

    [quote userid=“185568" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1573973/am2634-q1-flash-memory-write-failure-w25q64jv/6071940 高级闪存配置:将比诊断日志更长的值设置为“Flash Busy Timeout“更好吗? 是否最好将比诊断日志更短的值设置为“闪存页面程序超时“?

    如果闪存操作需要 如此长的 时间 来处理命令、则表示出现了问题。  所以我看不出增加超时值是否符合指定值的加号。

    此致、

    Aswin

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

    这是我提到的数据表

    e2e.ti.com/.../W25Q64JV-RevM-12242024-Plus.pdf