1264|3

1532

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【N32WB031_STB开发板测评】+W25Q16模块的读写 [复制链接]

在N32WB031的例程中提供了基于W25Q128的读写测试程序,但对于W25Q系列的不同存储芯片,其芯片识别ID是不同的。

为了测试手头的W25Q16模块,需多例程进行相应的修改。

例如对于W25Q128的定义为:

#define sFLASH_W25Q128_ID 0x00EF4014

而对于W25Q16来说需进行如下的修改:

#define sFLASH_M25Q16_ID  0xEF4015

#define sFLASH_ID sFLASH_M25Q16_ID

W25Q16模块与开发板的连接关系为:

CS---PA0

CLK---PA1

DO---PA3

DI---PA2

为便于以LED来指示测试的结果,对LED的定义为:

#define LED1_PORT GPIOB

#define LED1_PIN  GPIO_PIN_0

 

#define LED2_PORT GPIOA

#define LED2_PIN  GPIO_PIN_6

对W25Q16模块进行读写的测试主程序为:

int main(void)
{
    LedInit(LED1_PORT, LED1_PIN);
    LedInit(LED2_PORT, LED2_PIN);
    LedOff(LED1_PORT, LED1_PIN);
    LedOff(LED2_PORT, LED2_PIN);
    sFLASH_Init();
    FlashID = sFLASH_ReadID();
    if (FlashID == sFLASH_ID)
    {
        sFLASH_EraseSector(FLASH_SectorToErase);
        sFLASH_WriteBuffer(Tx_Buffer, FLASH_WriteAddress, BufferSize);
        sFLASH_ReadBuffer(Rx_Buffer, FLASH_ReadAddress, BufferSize);
        TransferStatus1 = Buffercmp(Tx_Buffer, Rx_Buffer, BufferSize);
        sFLASH_EraseSector(FLASH_SectorToErase);
        sFLASH_ReadBuffer(Rx_Buffer, FLASH_ReadAddress, BufferSize);
        for (Index = 0; Index < BufferSize; Index++)
        {
            if (Rx_Buffer[Index] != 0xFF)
            {
                TransferStatus2 = FAILED;
            }
        }
        
        if((TransferStatus1 == SUCCESS) && (TransferStatus2 == SUCCESS))
        {
            /* OK: Turn on LED1 */
            LedOn(LED1_PORT, LED1_PIN);
        }
        else
        {
            /* Error: Turn on LED2 */
            LedOn(LED2_PORT, LED2_PIN);
        }
        /* TransferStatus2 = PASSED, if the specified sector part is erased */
        /* TransferStatus2 = FAILED, if the specified sector part is not well erased */ 
    }
    else
    {
            /* Error: Turn on LED2 */
            LedOn(LED2_PORT, LED2_PIN);
    }
    while (1)
    {
    }
}

在编译下载程序后,其测试效果如图所示,由于LED1被点亮说明测试成功;反之若去掉W25Q16模块的电源,则LED2被点亮说明测试失败。

有了W25Q16模块这样的外挂存储器,可以有效地对存储空间进行扩展。

图1 读写状态

 

图2 未连接状态 

 

 

 

此帖出自无线连接论坛

最新回复

66666  详情 回复 发表于 2023-5-20 08:26
点赞 关注
 

回复
举报

7244

帖子

2

TA的资源

版主

沙发
 

W25Q128和W25Q16寄存器应该是一样的吧?就是存储大小不一样?

此帖出自无线连接论坛

点评

是,此外还应注意其识别ID的不同。  详情 回复 发表于 2023-5-18 14:51
 
 

回复

1532

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
wangerxian 发表于 2023-5-18 13:59 W25Q128和W25Q16寄存器应该是一样的吧?就是存储大小不一样?

是,此外还应注意其识别ID的不同。

此帖出自无线连接论坛
 
 
 

回复

7042

帖子

11

TA的资源

版主

4
 
66666
此帖出自无线连接论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表