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.

[参考译文] AM623:闪存器件 IO 测试错误

Guru**** 2484615 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1442727/am623-flash-device-io-test-error

器件型号:AM623
主题中讨论的其他器件:SysConfig

工具与软件:

连接至定制电路板的 FlashROM 的测试未通过。
现在会在 SD 引导模式下引导安装了 AM62的自定义电路板。

修改了 OSPI_FLASH_IO 的示例工程。
1S-1S-1S 测试通过、但4S-4S-4S 协议无法通过。
我认为 SysConfig 上的设置存在问题、但我不知道是什么问题。

【器件信息】
・CPU:AM6234ATCGHAALW
・FlashROM:MT25QL256ABA8ESF
-256Mbit
-四路 SPI

我已经问过这个问题、但我想再问一次。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1422248/am623-flash-device-recognition-error/5522375#5522375

SysConfig 的"ti_board_oepn_close.c"中的闪存设置如下所示。

/*
 * FLASH
 */
/* FLASH Object - initialized during Flash_open() */
Flash_NorOspiObject gFlashObject_MT25QL256ABA8ESF =
{
    .rdDummyValPhyMode = FLASH_NOR_UPDATE_RD_DUMMY_VALUE,
};

/* FLASH Attrs */
Flash_Attrs gFlashAttrs_MT25QL256ABA8ESF =
{
    .flashType = CONFIG_FLASH_TYPE_SERIAL,
    .flashName = "MT25QL256ABA8ESF",
    .deviceId = 0xBA19,
    .manufacturerId = 0x20,
    .flashSize = 33554432,
    .blockCount = 1024,
    .blockSize = 32768,
    .pageCount = 128,
    .pageSize = 256,
    .sectorCount = 8192,
    .sectorSize = 4096,
};

/* FLASH DevConfig */
Flash_DevConfig gFlashDevCfg_MT25QL256ABA8ESF =
{
    .cmdExtType = OSPI_CMD_EXT_TYPE_REPEAT,
    .enable4BAddr = FALSE,
    .addrByteSupport = 1,
    .fourByteAddrEnSeq = 0xA0,
    .cmdWren = 0x06,
    .cmdRdsr = 0x05,
    .cmdWrsr = 0x00,
    .srWip = (1 << 0),
    .srWel = (1 << 1),
    .xspiWipRdCmd = 0x85,
    .xspiWipReg = 0x00800000,
    .xspiWipBit = (1 << 0),
    .resetType = 0x10,
    .eraseCfg = {
        .blockSize = 32768,
        .sectorSize = 4096,
        .cmdBlockErase3B = 0x52,
        .cmdBlockErase4B = 0x52,
        .cmdSectorErase3B = 0x20,
        .cmdSectorErase4B = 0x20,
        .cmdChipErase = 0xC7,
    },
    .idCfg = {
        .cmd = 0x9F, /* Constant */
        .numBytes = 3,
        .dummy4 = 0,
        .dummy8 = 0,
    },
    .protocolCfg = {
        .protocol = FLASH_CFG_PROTO_4S_4S_4S,
        .isDtr = FALSE,
        .cmdRd = 0x6B,
        .cmdWr = 0x02,
        .modeClksCmd = 0,
        .modeClksRd = 0,
        .dummyClksCmd = 10,
        .dummyClksRd = 10,
        .enableType = 0,
        .enableSeq = 0x00,
        .protoCfg = {
            .isAddrReg = FALSE,
            .cmdRegRd = 0x6B,
            .cmdRegWr = 0x02,
            .cfgReg = 0x00,
            .shift = 0,
            .mask = 0x00,
            .cfgRegBitP = 0,
        },
        .strDtrCfg = {
            .isAddrReg = TRUE,
            .cmdRegRd = 0x85,
            .cmdRegWr = 0xB1,
            .cfgReg = 0x00800006,
            .shift = 1,
            .mask = 0x02,
            .cfgRegBitP = 1,
        },
        .dummyCfg = {
            .isAddrReg = FALSE,
            .cmdRegRd = 0x85,
            .cmdRegWr = 0xB1,
            .cfgReg = 0x00,
            .shift = 0,
            .mask = 0x00,
            .cfgRegBitP = 0,
        },
    },
    .flashWriteTimeout = 512,
    .flashBusyTimeout = 256000000,
};

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

    您好、Masaki、

    我已经检查过这个、发现您使用的闪存器件是 NOR 闪存器件。

    所以、您可以运行 OSPI 闪存诊断来获取正确的闪存参数值吗?

    以下是此应用的说明: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/EXAMPLES_DRIVERS_OSPI_FLASH_DIAG.html

    如何运行: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/CUSTOM_FLASH_SUPPORT_GUIDE.html

    显然、您需要将应用移植到 AM62x 上、但这样只需要很小的工作量。

    运行应用程序后、您可以非常轻松地进行开发。

    此致、

    Vaibhav

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

    在开始转移 AM64x 示例项目之前、我想与您分享一些信息。
    我使用1S-1S-4S 协议运行 OSPI_FLASH_IO 示例项目、并通过。

    另外、我使用协议分析器检查了操作、它成功读取了器件 ID。
    我想 SysConfig 的设置不同、请给我一些建议。
    此致、

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

    很抱歉重复道歉。
    我了解运行 OSPI 闪存诊断程序很可能会解决这个问题。
    将 AM64x 示例工程移植到 AM62x 的最佳过程是什么?
    我是一名硬件工程师、对 CCS、SysConfig 等方面的专家不太多

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

    您好、Masaki、

    在这里、我可以帮助您进行移植。

    请允许我稍后再谈这个问题。

    此致、

    Vaibhav

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

    您可以访问: https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/examples/drivers/ospi/ospi_flash_diag/ospi_flash_diag.c

    此示例将合并到 AM62 MCU 和 SDK 的下一个版本中、但到目前为止、您可以从 Github 存储库中选择此最新更改。

    请继续并将突出显示的文件夹复制到目录中:mcu_plus_sdk_install_path/examples/drivers/ospi/ospi_flash_diag/

    此外、还将名为 ospi_flash_diag.c 的文件复制到目录中: mcu_plus_sdk_install_path/examples/drivers/ospi/ospi_flash_diag/

    完成后、您应该可以继续、并且应该能够运行诊断程序并获取日志。

    如果您遇到任何其他问题、请告诉我。

    此致、

    Vaibhav