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.

[参考译文] AM2611:支持定制闪存器件 — QSPI

Guru**** 2895600 points

Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1640416/am2611-support-for-a-custom-flash-device---qspi

器件型号: AM2611
Thread 中讨论的其他器件: UNIFLASH

尊敬的团队:

从 MCU SDK: AM263x MCU+ SDK:QSPI Flash Diag 参考此链接开始测试。

在此链接中、显示支持的组合是

示例文件夹 示例/drivers/QSPI/QSPI_FLASH_diag

但从 SDK 中我们看不到路径中的示例、只有我们可以看到 C:\ti\mcu_plus_sdk_am261x_11_01_00_19\examples\drivers\ospi\ospi_flash_diag  

我们必须使用此示例吗?

 

请提供支持、  

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

    您好、

    您要参考的链接适用于不同器件 (AM263x)。 根据问题标签、我相信您对使用 AM261x 感兴趣。 这两款器件都是 TI 用于实时控制和通信的 ARM R5F MCU 产品系列、但在存储器子系统、外设和一些更多细节方面都有所不同。

    对于 AM261x、请参阅此 SDK: https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/latest/exports/docs/api_guide_am261x/GETTING_STARTED.html

    闪存诊断示例适用于具有 OSPI 接口的 AM261x(因为 AM261x 评估套件具有通过 OSPI 连接的闪存): https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/latest/exports/docs/api_guide_am261x/EXAMPLES_DRIVERS_OSPI_FLASH_DIAG.html

    此致、
    Shaunak

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

    您好、

    您访问的页面不存在或已被删除提示信息

    因此、我必须使用 OSPI 闪存 DIAG 示例从 linkAM261xMCU+ SDK 生成自定义闪存(QSPI 器件)支持:添加对定制闪存器件的支持

    因此、现在能够为闪存模块 S25FL064LA 生成 JSON 文件  

    随附以供参考  

    现在、我已将 JSON 文件上传到我的示例代码中、而不是构建 mcelf 二进制文件

    使用 UART_uniflash 进行刷写时会停止、如下所示

    {
    
     
    
        "flashSize": 8388608,
    
        "flashPageSize": 256,
    
        "flashManfId": "0x01",
    
        "flashDeviceId": "0x6017",
    
        "flashBlockSize": 65536,
    
        "flashSectorSize": 4096,
    
        "cmdBlockErase3B": "0xD8",
    
        "cmdBlockErase4B": "0xDC",
    
        "cmdSectorErase3B": "0x20",
    
        "cmdSectorErase4B": "0x21",
    
        "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": "0x6C",
    
                        "cmdWr": "0x34",
    
                        "modeClksCmd": 0,
    
                        "modeClksRd": 0,
    
                        "dummyClksCmd": 0,
    
                        "dummyClksRd": 8,
    
                        "enableType": "5",
    
                        "enableSeq": "0x00",
    
                        "dummyCfg": null,
    
                        "protoCfg": null,
    
                        "strDtrCfg": null
    
                },
    
                "p118": {
    
                        "isDtr": false,
    
                        "cmdRd": "0x7C",
    
                        "cmdWr": "0x84",
    
                        "modeClksCmd": 0,
    
                        "modeClksRd": 0,
    
                        "dummyClksCmd": 0,
    
                        "dummyClksRd": 0,
    
                        "enableType": "255",
    
                        "enableSeq": "0x00",
    
                        "dummyCfg": null,
    
                        "protoCfg": null,
    
                        "strDtrCfg": null
    
                },
    
                "p444s": {
    
                        "isDtr": false,
    
                        "cmdRd": "0xEB",
    
                        "cmdWr": "0x02",
    
                        "modeClksCmd": 0,
    
                        "modeClksRd": 2,
    
                        "dummyClksCmd": 0,
    
                        "dummyClksRd": 8,
    
                        "enableType": "5",
    
                        "enableSeq": "0x02",
    
                        "dummyCfg": {
    
                                "isAddrReg": false,
    
                                "cmdRegRd":"0x00",
    
                                "cmdRegWr":"0x00",
    
                                "cfgReg":"0x00000000",
    
                                "shift":0,
    
                                "mask":"0x00",
    
                                "bitP":0
    
                        },
    
                        "protoCfg": {
    
                                "isAddrReg": false,
    
                                "cmdRegRd": "0x00",
    
                                "cmdRegWr": "0x00",
    
                                "cfgReg": "0x00000000",
    
                                "shift": 0,
    
                                "mask": "0x00",
    
                                "bitP": 0
    
                        },
    
                        "strDtrCfg": {
    
                                "isAddrReg": false,
    
                                "cmdRegRd": "0x00",
    
                                "cmdRegWr": "0x00",
    
                                "cfgReg": "0x00000000",
    
                                "shift": 0,
    
                                "mask": "0x00",
    
                                "bitP": 0
    
                        }
    
                },
    
                "p444d": {
    
                        "isDtr": false,
    
                        "cmdRd": "0xEB",
    
                        "cmdWr": "0x02",
    
                        "modeClksCmd": 0,
    
                        "modeClksRd": 2,
    
                        "dummyClksCmd": 0,
    
                        "dummyClksRd": 8,
    
                        "enableType": "5",
    
                        "enableSeq": "0x02",
    
                        "dummyCfg": {
    
                                "isAddrReg": false,
    
                                "cmdRegRd":"0x00",
    
                                "cmdRegWr":"0x00",
    
                                "cfgReg":"0x00000000",
    
                                "shift":0,
    
                                "mask":"0x00",
    
                                "bitP":0
    
                        },
    
                        "protoCfg": {
    
                                "isAddrReg": false,
    
                                "cmdRegRd": "0x00",
    
                                "cmdRegWr": "0x00",
    
                                "cfgReg": "0x00000000",
    
                                "shift": 0,
    
                                "mask": "0x00",
    
                                "bitP": 0
    
                        },
    
                        "strDtrCfg": {
    
                                "isAddrReg": false,
    
                                "cmdRegRd": "0x00",
    
                                "cmdRegWr": "0x00",
    
                                "cfgReg": "0x00000000",
    
                                "shift": 0,
    
                                "mask": "0x00",
    
                                "bitP": 0
    
                        }
    
                },
    
                "p888s": null,
    
                "p888d": null,
    
                "pCustom": { 
    
                        "fxn": null
    
                }
    
        },
    
        "addrByteSupport": "1",
    
        "fourByteAddrEnSeq": "0xA1",
    
        "cmdExtType": "NONE",
    
        "resetType": "0x10",
    
        "deviceBusyType": "1",
    
        "cmdWren": "0x06",
    
        "cmdRdsr": "0x05",
    
        "srWip":  0,
    
        "srWel":  1,
    
        "cmdChipErase": "0xC7",
    
        "rdIdSettings": {
    
                "cmd": "0x9F",
    
                "numBytes": 5,
    
                "dummy4": 0,
    
                "dummy8": 0
    
        },
    
        "xspiWipRdCmd": "0x00",
    
        "xspiWipReg": "0x00000000",
    
        "xspiWipBit": 0,
    
        "flashDeviceBusyTimeout": 56000000,
    
        "flashPageProgTimeout": 448
    
     }
    

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

    尊敬的 Shaunak:

    在 syscfg 文件的闪存驱动程序中使用更新的 JSON 文件重新构建以下预编译源后

    1. uart uniflash: sbl_uart_uniflash_am261x-lp_r5fss0-0_nortos_ti-arm-clang.ticimage

    2. OSPI MCELF :sbl_ospi_multiple_elf_am261x-lp_r5fss0-0_nortos_ti-arm-clang  

    3.使用如上所示的新映像更新 cfg 文件。

    现在能够通过 UART 进行刷写、并且 MCU 从 QSPI 引导。

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

    感谢您的确认。

    此致、
    Shaunak