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.

[参考译文] AM2732:AM2732

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1419196/am2732-am2732

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

工具与软件:

嗨、团队:

我将通过 CCS 配置新的 闪存、并重新发布以下 AM273x MCU+ SDK:为定制闪存器件 步骤编写闪存驱动程序。 状态向量

步骤4:使用 QSPI 闪存传输示例根据更改测试新的闪存驱动程序

时、我得到如下所示的错误。 在我选择新驱动程序并运行闪存传输示例后、可能会发生此错误  

[Cortex_R5_0]错误:Board_flashOpen:98:实例0的闪存打开失败!!
[QSPI 闪存传输测试]正在启动...
[QSPI 闪存传输测试]在第一个块上执行闪存擦除...
[QSPI 闪存传输测试]执行写入读取测试……
错误:qspi_flash_diag_test_compare_buffers:127:QSPI 读取数据不匹配!!
某些测试失败!!

(1)我从 qspi_flash_diag 项目中获得当前闪存信息

[Cortex_R5_0][QSPI 闪存诊断测试]正在启动...
[QSPI 闪存诊断测试]闪存制造商 ID:0xEF
[QSPI 闪存诊断测试]闪存器件 ID:0x9020.
[QSPI 闪存诊断测试]对第一个块执行闪存擦除...
[QSPI 闪存诊断测试]已完成!!!
[QSPI 闪存诊断测试]执行写读测试……
[QSPI 闪存诊断测试]写读测试通过!
[QSPI 闪存诊断测试] SFDP 信息:
==================================
SFDP
==================================
SFDP 主要版本:0x1.
SFDP 次要版本:0x6
此表中的参数标题数:2.

此闪存中附加参数表的类型
--------------------------------------------------------
4字节寻址模式指令表

Flash_Nor 2001开发定义 gFlashNorSpiDeviceDefinites_ ={

. NOR_SPI_CMD_RSTEN = 0x66、
. NOR_SPI_CMD_RSTMEM = 0x99、
. NOR_SPI_CMD_WREN = 0x06、
. NOR_SPI_CMD_WRREG = 0x00、
. NOR_SPI_CMD_BULK_ERASE = 0xC7、
. NOR_SPI_CMD_SECTOR_ERASE_3B = 0x20、
. NOR_SPI_CMD_SECTOR_ERASE_4B = 0x21、
. NOR_SPI_CMD_BLOCK_ERASE_3B = 0xD8、
. NOR_SPI_CMD_BLOCK_ERASE_4B = 0xDC、
. NOR_SPI_CMD_PAGE_PROG_3B = 0x02、
. NOR_SPI_CMD_PAGE_PROG_4B = 0x12、
. NOR_SPI_CMD_RDSR = 0x05
. NOR_SPI_CMD_RDREG = 0x00、
. NOR_SPI_CMD_RDID = 0x9F、
. NOR_SPI_CMD_READ = 0x03、
. NOR_SPI_CMD_888_SDR_READ = 0x00、
. NOR_SPI_CMD_888_DDR_READ = 0x00、
. NOR_SPI_CMD_444_SDR_READ = 0xEB、
. NOR_SPI_CMD_444_DDR_READ = 0x00、
. NOR_SPI_CMD_114_READ = 0x6B、
. NOR_SPI_SR_WIP = 0、
. NOR_SPI_SR_WEL = 0、
. NOR_SPI_RDID_NUM_BYTES = 5、
. NOR_SPI_MANF_ID = 0xEF、
. NOR_SPI_DEVICE_ID = 0x9020、
. NOR_SPI_114_READ_MODE_CLKS = 0、
. NOR_SPI_114_READ_DUMENT_CYCLES = 8、
. NOR_SPI_444_READ_MODE_CLKS = 2、
. NOR_SPI_444_READ_dummy_cycles = 0、
. NOR_SPI_444_READ_dummy_cycles_LC = 0x00、
. NOR_SPI_QUAD_CMD_READ_DUMENT_CYCLES = 0x00、
. NOR_SPI_Octable_read_dummy_cycle = 0、
. NOR_SPI_Octable_read_dummy_cycle_LC = 0x00、
. NOR_SPI_Octable_DDR_RDSR_dummy_cycle = 0、
. NOR_SPI_Octable_DDR_RDREG_ADDR_BYTES = 0、
. NOR_SPI_Octal_DDR_WRREG_ADDR_BYTES = 0、
. NOR_SPI_Octal_DDR_RDVREG_dummy_cycle = 0、
. NOR_SPI_Octal_DDR_RDNVREG_dummy_cycle = 0、
. NOR_SPI_Octable_RDSFDP_dummy_cycle = 0、
. NOR_SPI_Octable_RDSFDP_ADDR_TYPE = 0、
. NOR_SPI_WRR_WRITE_TIMEOUT = 7040、
. NOR_SPI_BULK_ERASE_TIMEOUT = 192000000、
. NOR_SPI_PAGE_PROG_TIMEOUT = 704、
. NOR_SPI_VREG_OFFSET = 0x0、
. NOR_SPI_NVREG_OFFSET = 0x0、
. NOR_SPI_QUAD_MODE_CFG_ADDR = 0x0、
. NOR_SPI_QUAD_MODE_CFG_BIT_LOCATION = 0x0、
. NOR_SPI_DDR_Octal_MODE_CFG_ADDR = 0x0、
. NOR_SPI_DDR_Octal_MODE_CFG_BIT_LOCATION = 0x0、
. NOR_SPI_dummy_cycle_CFG_ADDR = 0x0、
. NOR_SPI_FLASH_SIZE = 67108864、
. NOR_SPI_PAGE_SIZE = 256、
. NOR_SPI_BLOCK_SIZE = 65536、
. NOR_SPI_SECTOR_SIZE = 4096、
.addrByteSupport = 1、
.dtrSupport = 1、
.qeType = 4、
.seq444Enable ={1、0、0、0、1}、
.seq444Disable ={1、0、0、1}、
.oeType = 0、
.cmdExtType = 0、
.byteOrder = 0、
};

所有测试均已通过!!

(2)这是我的新闪存 c 文件(FLASH_NOR_QSPI_DEVICE_W25H512J.c)。 我用(1)的信息修改了它。

#include

Flash_Nor spiDevDefines gFlashNorQspiDeviceDefines_W25H512J ={
. NOR_CMD_RDID = 0x9FU、//
. NOR_CMD_SINGLE_READ = 0x03U、//读取数据
. NOR_CMD_Quad_READ = 0x6CU、//
. NOR_PAGE_PROG = 0x12U、//
. NOR_CMD_RSTEN = 0x66U、//
. NOR_CMD_RST = 0x99U、//
. NOR_RDID_NUM_BYTES = 0x5U、//
. NOR_MANF_ID = 0xEFU、//
. NOR_DEVICE_ID = 0x9020U、//
. NOR_CMD_WREN = 0x06U、//写入使能
. NOR_CMD_WRSR = 0x01U、//
. NOR_CMD_RDSR1 = 0x05U、//
. NOR_CMD_RDSR2 = 0x35U、//
. NOR_CMD_SECTOR_ERASE = 0x21U、//
. NOR_CMD_BLOCK_ERASE = 0xDCU、//
. NOR_CMD_BULK_ERASE = 0xC7U、//片擦除
. NOR_Quad_Read_dummy_cycle = 0U、
. NOR_BULK_ERASE_TIMEOUT = 192000000U、
. NOR_WRR_WRITE_TIMEOUT = 7040U、
. NOR_PAGE_PROG_TIMEOUT = 704U、
. NOR_PAGE_SIZE = 256U、
. NOR_ADDR_NUM_BYTES = 4U、
};

#define FLASH_SIZE (64U * 1024U * 1024U)
#define FLASH_BLOCK_SIZE (64U * 1024U)
#define FLASH_PAGE_SIZE (256U)
#define FLASH_SECTOR_SIZE (4096U)
#define FLASH_NUM_BLOCK (FLASH_SIZE / FLASH_BLOCK_SIZE)
#define FLASH_NUM_PAGES_PER_BLOCK (FLASH_BLOCK_SIZE/FLASH_PAGE_SIZE)

Flash_Attrs gFlashNorQspiAttrs_W25H512J =

查询闪存后、.deviceId = 0、/*由 Flash_open 填充*
查询闪存后、.manufacturerId = 0、/*由 Flash_open 填充*/
.driverInstance = 0、/*由 SysConfig 填充*/
.flashSize = flash_size、
.blockCount = FLASH_NUM_BLOCKS、
.blocksize = flash_block_size、
.PageCount = FLASH_NUM_PAGES_PER_BLOCK、
.pagesize = flash_page_size、
SECTORSize = FLASH_SECTOR_SIZE、/*未使用*/
SECTORCount = 0、/*未使用*/
};

您能否帮助我检查我的新驱动程序配置是否正确? 如何解决该问题?

非常感谢  

Amy

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

    您好、Amy、

    配置闪存支持所需的相应文件后、您是否确保也在工程的 SysConfig 中更改闪存器件?

    在尝试打开闪存实例时、还应了解导致错误的原因。 项目结束时、您可以检查接收缓冲区吗? 另外、如果可能的话、尝试单步执行项目以了解驱动程序中的哪个设置步骤导致了这个错误;我通常在尝试读取闪存 ID 时看到状态闪存失败。

    您是否尝试过使用我们最新的驱动程序? 添加新闪存器件的移植过程比之前在 SDK 的版本8中更简单  

    此致!

    Daniel