牛卧堂MCU技术交流

标题: Numaker-PFM-M487开发板W25Q32读写异常 [打印本页]

作者: 匿名    时间: 2022-7-1 17:22
标题: Numaker-PFM-M487开发板W25Q32读写异常
Numaker-PFM-M487开发板下载官方M480_BSP_CMSIS_V3.05.003内的SPIM测试case后,日志上均显示fail。
写开发板上的W25Q32数据时,也异常,使用的步骤是:

(1)erase,代码是:SPIM_EraseBlock(u32Addr, 0, OPCODE_SE_4K, 1, 1);

(2)enable Write,代码是  spim_set_write_enable(1, 1UL);

(3)send data,,先发02命令,再发24位地址,之后发送数据,代码如下:(测试时写入地址设置为0,发送数据为1~256,一共256个字节)

        SPIM_SET_SS_EN(1);

        cmdBuf[0]=OPCODE_PP;//02命令 Page program

        SwitchNBitOutput(1);

        spim_write(cmdBuf, 1);



        addBuf[0]=(uint8_t)(u32Addr >>16);

        addBuf[1]=(uint8_t)(u32Addr >>8);

        addBuf[2]=(uint8_t)(u32Addr >>0);

        SwitchNBitOutput(1);

        spim_write(addBuf, 3);



        SwitchNBitOutput(1);

        spim_write(pu8TxBuf, sizeof(pu8TxBuf));

        SPIM_SET_SS_EN(0);

(4)wait done,代码是:spim_wait_write_done(1UL);



除此之外还采用了库函数中的写函数,但是结果也是error,哪位能帮忙解答一下,不甚感激。



作者: admin    时间: 2022-7-4 11:35
我这边测试了下 两个uart可以正常通讯,请确认引脚配置是否正确
作者: admin    时间: 2022-7-4 11:36
可以在debug的时候 通过pinview看看引脚配置是否正确
作者: 匿名    时间: 2022-7-4 13:58
admin 发表于 2022-7-4 11:35
我这边测试了下 两个uart可以正常通讯,请确认引脚配置是否正确

引脚配置没问题吧:

/* Init SPIM multi-function pins, MOSI(PC.0), MISO(PC.1), CLK(PC.2), SS(PC.3), D3(PC.4), and D2(PC.5) */
  SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC0MFP_Msk | SYS_GPC_MFPL_PC1MFP_Msk |
                                    SYS_GPC_MFPL_PC2MFP_Msk | SYS_GPC_MFPL_PC3MFP_Msk |
                                    SYS_GPC_MFPL_PC4MFP_Msk | SYS_GPC_MFPL_PC5MFP_Msk);

    SYS->GPC_MFPL |= SYS_GPC_MFPL_PC0MFP_SPIM_MOSI | SYS_GPC_MFPL_PC1MFP_SPIM_MISO |
                     SYS_GPC_MFPL_PC2MFP_SPIM_CLK | SYS_GPC_MFPL_PC3MFP_SPIM_SS |
                     SYS_GPC_MFPL_PC4MFP_SPIM_D3 | SYS_GPC_MFPL_PC5MFP_SPIM_D2;
    PC->SMTEN |= GPIO_SMTEN_SMTEN2_Msk;
作者: 匿名    时间: 2022-7-4 14:01
admin 发表于 2022-7-4 11:36
可以在debug的时候 通过pinview看看引脚配置是否正确

如果引脚配置有问题的话,读W25Q32 ID的值应该就有问题,我现在读出来ID为0xEF15,JEDEC ID为0xEF4016
,跟手册是一致的。而且我能对寄存器1、2、3进行读写操作,但是写page就出错了,读出来的page值都是FF
作者: admin    时间: 2022-7-4 14:43
SPIM_CIPHER例程是针对4字节地址的SPI flash芯片的。我们开发板上的spi flash是2字节地址的。需要disable四字节地址。参考下面文件里BYTE_4_ADDR
宏定义的相关地方。
作者: admin    时间: 2022-7-4 14:44
main 3字节地址模式.c (11.04 KB, 下载次数: 386)

作者: 匿名    时间: 2022-7-4 15:53
admin 发表于 2022-7-4 14:44

SPIM_CIPHER例程中更换main 3字节地址后的log显示如下所示:
[1] 3-bytes address mode, fast read...Erase SPI flash block 0x10000...done.
Verify SPI flash block 0x10000 be erased...FAILED!
Flash address 0x10000, read 0xa5dea5de!
FAILED!!




欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/) Powered by Discuz! X3.2