I am having some issues with spi flash and current. Currently I have the NOR Flash, W25Q128JVPIQ, set up on spi 4 with a FATFS and USB MSD as per customer request. This is working but when idle I am seeing an extra 580uA of current in this configuration which seems odd. Included is my project config and device tree. I cant really figure out what is wrong other then there is a flaw that is keeping the interface up or not letting the chip idle. I have also tried the below QSPI config and while it gets the JDEC ID and the fs code reports a file system was created it can not mount the FS. In an ideal case I would like to move or configuration to QSPI and have it reach an appropriate idle power level. Currently we are using 1.7.1 sdk and I am using a fluke 87 multimeter for current measurement and have the nrf5340 idle current at 3.8uA and with the FS enabled it is 580uA. In the old nrf sdk I used chan fs and this spi flash and had no power issues so this seems to be zephyr config related. Any help would be appreciated.
CONFIG_SPI=y # CONFIG_SPI_4=y CONFIG_SPI_NOR=y CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096 CONFIG_SPI_NOR_IDLE_IN_DPD=y #FLASH Config ############################################## CONFIG_DISK_ACCESS=y CONFIG_FILE_SYSTEM=y CONFIG_FAT_FILESYSTEM_ELM=y CONFIG_FS_FATFS_LFN=y CONFIG_SETTINGS_FS=y CONFIG_FLASH=y CONFIG_FLASH_MAP=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_LOG_LEVEL_ERR=y CONFIG_MPU_ALLOW_FLASH_WRITE=y CONFIG_DISK_DRIVER_FLASH=y # CONFIG_FCB=y # CONFIG_SETTINGS_FCB=y CONFIG_DISK_FLASH_DEV_NAME="MX25L32" CONFIG_DISK_FLASH_START=0x0 CONFIG_DISK_VOLUME_SIZE=0x1000000 CONFIG_DISK_FLASH_MAX_RW_SIZE=4096 CONFIG_DISK_FLASH_ERASE_ALIGNMENT=0x1000 CONFIG_DISK_ERASE_BLOCK_SIZE=0x1000
&qspi { // status = "okay"; // sck-pin = <17>; // io-pins = <13>, <14>, <15>, <16>; // csn-pins = <18>; // mx25l32: mx25l3206E@0 { // compatible = "nordic,qspi-nor"; // reg = <0>; // /* MX25R64 supports only pp and pp4io */ // writeoc = "pp4io"; // /* MX25R64 supports all readoc options */ // readoc = "read4io"; // sck-frequency = <8000000>; // label = "MX25L32"; // jedec-id = [ef 40 18]; // // sfdp-bfp = [ // // e5 20 f1 ff ff ff ff 03 44 eb 08 6b 08 3b 04 bb // // ee ff ff ff ff ff 00 ff ff ff 00 ff 0c 20 0f 52 // // 10 d8 00 ff 23 72 f5 00 82 ed 04 cc 44 83 68 44 // // 30 b0 30 b0 f7 c4 d5 5c 00 be 29 ff f0 d0 ff ff // // ]; // size = <0x10000000>; // has-dpd; // t-enter-dpd = <10000>; // t-exit-dpd = <35000>; // rx-delay = <6>; // }; // }; &spi4 { compatible = "nordic,nrf-spim"; status = "okay"; sck-pin = <17>; mosi-pin = <13>; miso-pin = <14>; cs-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; mx25l32: mx25l3206E@0 { compatible = "jedec,spi-nor"; label = "MX25L32"; reg = <0>; spi-max-frequency = <32000000>; wp-gpios = <&gpio0 15 GPIO_ACTIVE_LOW>; hold-gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; size = <0x8000000>; has-dpd; t-enter-dpd = <10000>; t-exit-dpd = <35000>; jedec-id = [ef 40 18]; // has-be32k; }; }; /delete-node/ &storage_partition; &mx25l32 { partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "storage"; reg = <0x00000000 0x01000000>; }; }; };