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.

[参考译文] AM2612:自定义闪存自适应

Guru**** 2379590 points
Other Parts Discussed in Thread: LP-AM263, SYSCONFIG, AM2612, UNIFLASH
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1508411/am2612-custom-flash-adaption

器件型号:AM2612
主题中讨论的其他器件:SYSCONFIG、LP-AM263、 UNIFLASH

工具/软件:

大家好:

我目前正在使用  LP-AM2612  调试该 ospi_flash_dma 示例并遇到需要您专业知识的问题。 以下是详细信息:

  1. 原始 JSON 问题

    • 使用 ospi_flash_diag 诊断示例生成了一个器件配置 JSON。

    • 已尝试将 JSON 导入  CCS v20 、但导入进程无限期挂起(连续"旋转")。

  2. 手动配置尝试

    • 继续根据 JSON 内容手动配置 OSPI 闪存参数。

    • 不过、在调试期间、  无信号活动  在 OSPI 接口上观察(通过逻辑分析仪确认)。

请求:
请您:

  • 验证 ospi_flash_diag  JSON 生成/导入流程是否与 CCS v20兼容?

  •  在 syscfg 上为 LP-AM2612提供经过验证的 OSPI 闪存配置?

此致

ZX

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

    大家好:

    还要添加一个问题:OSPF 的输出时钟频率与 SYSCFG 配置的输入时钟频率之间的关系是什么、为什么要使用 ospi_flash_diag 例程输出 ospi_clk 2.5MHz

    期待您的答复

    ZX

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

    尊敬的 Zx:

    感谢您的查询。

    1. MCU_PLUS_SDK 支持尚未与 CCS20版本完全集成。 请使用 CCS 12.8.1和 SysConfig 1.22.0
    2. 来自 JSON 功能的加载有一个已知问题将在  5月2日的 AM261x 下一个 MCU_PLUS_SDK 10.2版本中修复。
      1. 作为权变措施、您可以修改 路径为 C:\ti\mcu_plus_sdk_am261x_10_00_01_10\source\sysconfig\board\.meta\flash 中的 flash_am261x.syscfg 文件
      2. 更改该文件中的闪存 json 路径有助于 SysConfig 更改默认闪存。
      3. 重新导入工程
    3. 可以看到、使用的闪存器件是 IS25 L X064。 此器件在3.3域中工作。 在1.8域中默认功能使用 LP-AM263。 在这种情况下、您必须将 PMIC LDO 电压从 VSYS1V8更改为 VSYS3V3。  
      1. 驱动程序路径:  C:\ti\mcu_plus_sdk_am261x_10_00_01_10\source\board\pmic\PMIC_LLD\derby\test\power_test.c
      2. PMIC_USER_reg_cfg 示例工程将在下一版本中发布
    4. 如果完成此更改、则所有当前的 VSYS1V8网络都将具有3V3电压。  
      1. 在这个 ADC 基准电压应该通过 ADC_EXT_VREF 从外部提供。

    另外、您能否告诉我们切换到3.3V 的原因? 我相信,1.8V 域名的闪存在市场上更容易买到。


    此致、
    Rijohn

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

    你好、Rijohn:

     感谢您的答复。

     1.我使用的是开发板的原始硬件,闪存没有更换。 我为 Flash 写了错误的名称。 我会根据你的建议作出修改。 此外、还有另一个与 OSPI 的输出时钟频率相关的问题、已包含在第二个问题中

      2.此外、"flash_am261x.syscfg 文件"、文件  修改是否适用于我们自己的硬件? 我们的硬件使用 S25FL128LAGBHM023、该 JSON 只能在 syscfg 中手动配置

    此致

    ZX

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

    您好 zx、

    为了使闪存的工作频率接近输入时钟频率= 133MHz、我们需要启用 PHY 模式。 (仅供参考、这将在 ospi_flash_io 示例中的10.2相关内容中启用)

    对于 ospi_flash 诊断示例、OPSI 默认处于非 PHY 运行模式。
    在非 PHY 运行模式下 OSPI 的 OUTPUT_CLOCK 频率= INPUT_CLOCK 频率/ 输入时钟分频器。

    SDR = 4的情况下潜水员的最小值
    DDR 情况下的驱动器最小值= 8

    有关 PHY 和非 PHY 运行模式的更多信息、请参阅 AM261x TRM OSPI 一章  

    此致、
    Rijohn

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

    你好 Rijohn:

     我已安装 CCS12.8。 导入工程时、CCS 会报告错误。 如何将其配置为正常工作。

    我导入的 SDK 为 mcu_plus_sdk_am261x_10_00_01_10。

    此致

    ZX

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

    您好 zx、

    您能否执行以下步骤:

    1. 安装 CCS 12.8.1和 SysConfig 1.22.0后
    2. 导航至 CCS 的 Help 选项卡中的"Check for updates"、然后查看"Sitara MCU Device"是否有任何待处理的更新  
    3. 安装更新后、在 CCS 菜单的 Windows 选项卡中导航到下面的: Preferences->Code Composite Studio->Products
      1. 点击 Refresh
      2. 然后点击"Apply and Close"
    4. 重新启动 CCS 并再次尝试导入

    此致、
    Rijohn

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

    你好、Rijohn:

     感谢您的答复。

     我配置了 ccs12.8。

     我想知道如何 将 PMIC LDO 电压从 VSYS1V8更改为 VSYS3V3。  

     我使用3.3的原因是我将闪存替换为 W25Q256JV、这需要3.3V 电源。 我们实际使用的闪存也需要3.3V 电源。 此外、我想知道如何在更改 PMIC LDO 电压后将 MCU OSPI 引脚的电压更改为3.3V

    此致

    ZX

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

    您好 z x:

    请将 CCS 12.8.1用于 AM261x。

    我想知道如何 将 PMIC LDO 电压从 VSYS1V8更改为 VSYS3V3

    在这种情况下、您必须将 PMIC LDO 电压从 VSYS1V8更改为 VSYS3V3。  

    1. 驱动程序路径:  C:\ti\mcu_plus_sdk_am261x_10_00_01_10\source\board\pmic\PMIC_LLD\derby\test\power_test.c
    2. pmic_user_reg_cfg 示例工程将作为的一部分发布 下一个版本


    此致、
    Rijohn

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

    你好、Rijohn:

    我在调整我们 针对 AM2612处理器的硬件闪存(S25FL128LAGBHM023)配置时遇到问题、非常感谢您的指导。

    问题描述:

    1. 当将 OSPI 闪存 协议配置为时  1s1s4s. 、AM2612错误地将模式设置为  1s4s4s.

      • OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG 寄存器[13:12]  OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG 寄存器 [13:12]  都设置为  0x02  (指示4S 模式)、而不是预期  0x01  (1S 模式)。

      • 临时修复 ospi_flash_dma 示例:  手动修改这些寄存器位可以解决该问题。

    2. 问题在 sbl_jtag_uniflash 示例中仍然存在:

      • 尽管手动更新 OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG  寄存器[13:12]  最终目的  0x00  、则 配置不会生效。

      • 通过 CCS"Memory"视图确认寄存器值在修改后保持不变或恢复。

    问题:

    • 为什么手动寄存器修改在 ospi_flash_dma 示例中工作、但在中失败 sbl_jtag_uniflash

    • SBL 引导加载程序流程中是否会出现配置覆盖或时序问题?

    附加上下文:

    • MCU: XAM2612AODFHMZCZQ1

    • SDK: mcu_plus_sdk_am261x_10_00_01_10

    • 寄存器地址:

      • OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG  寄存器:[地址、0x53808008]

      • OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG  寄存器:[插入地址、0x53808004]

    • 附件为 syscfg
    • 在 Board_driversOpen ()之后调用手动修改的代码
      • int32_t OSPI_lld_norFlashInit1s1s4s(OSPILLD_Handle handle)
        {
            int32_t status = OSPI_SYSTEM_SUCCESS;
            volatile uint32_t regVal = 0U;
        
            /* Check if the handle is NULL */
            if(NULL != handle)
            {
                const CSL_ospi_flash_cfgRegs *pReg = (const CSL_ospi_flash_cfgRegs *)(handle->baseAddr);
                
                /* Wait for a while */
                // uint32_t waitMicro = 500U * 1000U;
                // handle->Clock_usleep(waitMicro);
        
                /* SDR will be enabled in flash by default, set OSPI controller to 1S-1S-1S mode */
                uint32_t xferLines = 0;
        
                /* Set RD and WR Config register */
                regVal = CSL_REG32_RD(&pReg->DEV_INSTR_RD_CONFIG_REG);
                /* Configure the Device Read Instruction Configuration Register */
                regVal &= ~(CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_INSTR_TYPE_FLD_MASK              | \
                            CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_RD_OPCODE_NON_XIP_FLD_MASK       | \
                            CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_ADDR_XFER_TYPE_STD_MODE_FLD_MASK | \
                            CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DATA_XFER_TYPE_EXT_MODE_FLD_MASK | \
                            CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DDR_EN_FLD_MASK                  | \
                            CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DUMMY_RD_CLK_CYCLES_FLD_MASK);
                regVal |= (((uint32_t)0x6B) << CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_RD_OPCODE_NON_XIP_FLD_SHIFT)        | \
                        ((xferLines + 2) << CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DATA_XFER_TYPE_EXT_MODE_FLD_SHIFT) | \
                        ((xferLines) << CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_ADDR_XFER_TYPE_STD_MODE_FLD_SHIFT) | \
                        ((xferLines) << CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_INSTR_TYPE_FLD_SHIFT)          | \
                        (8U << CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DUMMY_RD_CLK_CYCLES_FLD_SHIFT);
                CSL_REG32_WR(&pReg->DEV_INSTR_RD_CONFIG_REG, regVal);
        
        
                
                xferLines = 0;
                regVal = CSL_REG32_RD(&pReg->DEV_INSTR_WR_CONFIG_REG);
        
                /* Configure the Device Write Instruction Configuration Register */
                regVal &= ~(CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_DUMMY_WR_CLK_CYCLES_FLD_MASK     | \
                            CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_WR_INSTR_RESV3_FLD_MASK          | \
                            CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_WR_OPCODE_FLD_MASK               | \
                            CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_DATA_XFER_TYPE_EXT_MODE_FLD_MASK | \
                            CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_ADDR_XFER_TYPE_STD_MODE_FLD_MASK | \
                            CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_DUMMY_WR_CLK_CYCLES_FLD_MASK);
                regVal |= (((uint32_t)0x02) << CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_WR_OPCODE_FLD_SHIFT) | \
                        (xferLines << CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_ADDR_XFER_TYPE_STD_MODE_FLD_SHIFT) | \
                        ((xferLines) << CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_DATA_XFER_TYPE_EXT_MODE_FLD_SHIFT);
        
                CSL_REG32_WR(&pReg->DEV_INSTR_WR_CONFIG_REG, regVal);
        
                /* Set read capture delay */
                // status += OSPI_lld_setRdDataCaptureDelay(handle, 0);
            }
            else
            {
                status = OSPI_SYSTEM_FAILURE;
            }
        
            return status;
        }

    如果需要更多详细信息、请告知我。 感谢您的支持!

    这个问题很紧迫,请尽快跟进

    最好的考虑

    ZX

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

    您好 zx、  

    请允许我检查一下、并尽快回复您。

    此致、

    Aswin

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

    您好 zx、  

    您是否可以附加 SysConfig OSPI 配置的屏幕截图?

    此致、

    Aswin

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

    尊敬的 Aswin:

    此致

    ZX

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

     e2e.ti.com/.../2308.main.c

    您好 zx、

    我尝试修改寄存器  OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG   OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG。

    我试图利用你提供的代码片段,但不能成功地使它工作. 我怀疑这是由于闪存器件差异以及缺少闪存复位和启用命令所致。 但是、我设法使用驱动程序中的 LLD API 来执行此操作。 请在下面找到所附的代码。

    您能尝试一下这段代码来修改中的寄存器吗 SBL_JTAG_uniflash  工程。

    int32_t OSPI_lld_norFlashInit1s1s4s(OSPILLD_Handle hOspi)
    {
        int32_t status = OSPI_SYSTEM_SUCCESS;
        uint32_t regVal = 0U;
        uint8_t cmd;
    
        /* Check if the handle is NULL */
        if (NULL != hOspi)
        {
            const CSL_ospi_flash_cfgRegs *pReg = (const CSL_ospi_flash_cfgRegs *)(hOspi->baseAddr);
    
            /* Reset the Flash */
            cmd = OSPI_NOR_CMD_RSTEN;
            OSPI_norFlashCmdWrite(hOspi, cmd, 0xFFFFFFFF, NULL, 0);
    
            cmd = OSPI_NOR_CMD_RST;
            OSPI_norFlashCmdWrite(hOspi, cmd, 0xFFFFFFFF, NULL, 0);
    
            /* Wait for a while */
            uint32_t waitMicro = 500U * 1000U;
            hOspi->Clock_usleep(waitMicro);
    
            /* Set lowest bus clock */
            CSL_REG32_FINS(&pReg->CONFIG_REG,
                           OSPI_FLASH_CFG_CONFIG_REG_MSTR_BAUD_DIV_FLD,
                           0xF);
    
            /* SDR will be enabled in flash by default, set OSPI controller to 1S-1S-4S mode */
    
            /* Note:
               For the following fields:
               - Instruction type: remains 0 for 1s.
               - Address transfer type for standard SPI modes: 0 for 1s.
               - Data transfer type for extended mode: should be set to 2 for Quad (i.e. 4s).
            */
    
            /* Set number of address bytes as 3 to support legacy flash devices as well
                (00 = 1 addr byte, 01 = 2 addr bytes, 10 = 3, 11 = 4) */
            CSL_REG32_FINS(&pReg->DEV_SIZE_CONFIG_REG,
                           OSPI_FLASH_CFG_DEV_SIZE_CONFIG_REG_NUM_ADDR_BYTES_FLD,
                           0x02);
    
            /* Configure the Device Read Instruction Configuration Register */
            regVal = CSL_REG32_RD(&pReg->DEV_INSTR_RD_CONFIG_REG);
    
            /* Clear the bits for instruction type, non-XIP opcode, address and data transfer types, DDR enable, and dummy cycles */
            regVal &= ~(CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_INSTR_TYPE_FLD_MASK              |
                        CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_RD_OPCODE_NON_XIP_FLD_MASK       |
                        CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_ADDR_XFER_TYPE_STD_MODE_FLD_MASK |
                        CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DATA_XFER_TYPE_EXT_MODE_FLD_MASK |
                        CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DDR_EN_FLD_MASK                  |
                        CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DUMMY_RD_CLK_CYCLES_FLD_MASK);
    
            /* For 1s instruction & address, use 0.
               For 4s data, use 2. */
            regVal |= ((uint32_t)gNorRdCmd << CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_RD_OPCODE_NON_XIP_FLD_SHIFT) |
                      (2U << CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DATA_XFER_TYPE_EXT_MODE_FLD_SHIFT) |
                      (0U << CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_ADDR_XFER_TYPE_STD_MODE_FLD_SHIFT) |
                      (0U << CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_INSTR_TYPE_FLD_SHIFT)          |
                      (0U << CSL_OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DUMMY_RD_CLK_CYCLES_FLD_SHIFT);
    
            CSL_REG32_WR(&pReg->DEV_INSTR_RD_CONFIG_REG, regVal);
    
            /* Configure the Device Write Instruction Configuration Register */
            regVal = CSL_REG32_RD(&pReg->DEV_INSTR_WR_CONFIG_REG);
            regVal &= ~(CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_WR_OPCODE_FLD_MASK               |
                        CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_DATA_XFER_TYPE_EXT_MODE_FLD_MASK |
                        CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_ADDR_XFER_TYPE_STD_MODE_FLD_MASK |
                        CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_DUMMY_WR_CLK_CYCLES_FLD_MASK);
    
            regVal |= ((uint32_t)gNorWrCmd << CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_WR_OPCODE_FLD_SHIFT) |
                      (0U << CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_ADDR_XFER_TYPE_STD_MODE_FLD_SHIFT) |
                      (2U << CSL_OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_DATA_XFER_TYPE_EXT_MODE_FLD_SHIFT);
            CSL_REG32_WR(&pReg->DEV_INSTR_WR_CONFIG_REG, regVal);
    
            /* Set read capture delay */
            status += OSPI_lld_setRdDataCaptureDelay(hOspi, 0);
        }
        else
        {
            status = OSPI_SYSTEM_FAILURE;
        }
    
        return status;
    }

    我还附加了相同的 HLD 版本。 该工程 SBL_JTAG_uniflash 使用 HLD 驱动程序。

    void custom_protocol_setting(void)
    {
        uint32_t cmd,data,addr;
    
        cmd = 0x00;     //<< 1s
        addr = 0x00;    //<< 1s
        data = 0x02;    //<< 4s
    
        uint32_t * ospiBaseAddress = (uint32_t *)(0x53808000U);
    
        uint32_t * readConfigAddress = ospiBaseAddress + 1U;
        uint32_t * writeConfigAddress = ospiBaseAddress + 2U;
    
        /* Transfer lines for Read */
        /* Set transfer lines for sending command */
        CSL_REG32_FINS(readConfigAddress, OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_INSTR_TYPE_FLD, cmd);
        /* Set transfer lines for sending address */
        CSL_REG32_FINS(readConfigAddress, OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_ADDR_XFER_TYPE_STD_MODE_FLD, addr);
        /* Set transfer lines for sending data */
        CSL_REG32_FINS(readConfigAddress, OSPI_FLASH_CFG_DEV_INSTR_RD_CONFIG_REG_DATA_XFER_TYPE_EXT_MODE_FLD, data);
    
        /* Transfer lines for Write */
        /* Set transfer lines for sending address */
        CSL_REG32_FINS(writeConfigAddress, OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_ADDR_XFER_TYPE_STD_MODE_FLD, addr);
        /* Set transfer lines for sending data */
        CSL_REG32_FINS(writeConfigAddress, OSPI_FLASH_CFG_DEV_INSTR_WR_CONFIG_REG_DATA_XFER_TYPE_EXT_MODE_FLD, data);
    
    }

    我还附上了 main.c 的文件 SBL_JTAG_uniflash 。 我使用两个版本的代码进行了测试、并能够修改寄存器。 您可以修改 cmd、addr、并且需要数据值。

    此致、  

    Aswin

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

    尊敬的 Zx:

    在进一步调试时、我可以看到错误设置是由于将参数传递到不正确而产生的  OSPI_NOR_PROTOCOL () 。 这是从中调用的函数  OSPI_LLD_setProtocol () 驱动程序流程中。

    目前、参数的顺序是一样的  OSPI_NOR_PROTOCOL (cmd、data、addr、dtr ) 而不是  OSPI_NOR_PROTOCOL (cmd、addr、DATA、dtr)。

    请稍后将函数参数顺序修改为并重新构建 libs。

    您可以使用以下命令执行相同操作、

    cd ${SDK_INSTALL_PATH}
    gmake -s libs PROFILE=release

    您可以在这个位置找到函数、

    文件: ospi_lld.h

    路径:  source\drivers\ospi\V0\LLD\ospi_lld.h

    您能否进行以下更改并检查相同的寄存器配置?

    此致、

    Aswin

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

    尊敬的 Aswin:

    感谢您的答复。  

     可读取并配置为 1s1s4s.  并写为 1s1s1s  syscfg 中的模式

    此致

    ZX

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

    您好 zx、

    SysConfig 不支持此功能。  需要 手动完成。

    此致、
    Aswin

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

    您好 zx、

    您能否确认在对我提到的驱动程序进行更改后是否能够正确配置协议?

    此致、

    Aswin。