spi_flash_optional_feature.rst 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. Optional features for flash
  2. ===========================
  3. Some features are not supported on all ESP chips and Flash chips. You can check the list below for more information.
  4. - `Auto Suspend & Resume <#auto-suspend-&-resume>`__
  5. - `Flash unique ID <#flash-unique-id>`__
  6. - `High performance mode <#high-performance-mode>`__
  7. - `OPI flash support <#opi-flash-support>`__
  8. - `32-bit Address Flash Chips <#32-bit-address-flash-chips>`__
  9. .. note::
  10. - The features listed above needs to be supported by both esp chips and flash chips.
  11. - If you are using an official Espressif modules/SiP. Some of the modules/SiPs always support the feature, in this case you can see these features listed in the datasheet. Otherwise please contact `Espressif's business team <https://www.espressif.com/en/contact-us/sales-questions>`_ to know if we can supply such products for you.
  12. - If you are making your own modules with your own bought flash chips, and you need features listed above. Please contact your vendor if they support the those features, and make sure that the chips can be supplied continuously.
  13. .. attention::
  14. This document only shows that IDF code has supported the features of those flash chips. It's not a list of stable flash chips certified by Espressif. If you build your own hardware from flash chips with your own brought flash chips (even with flash listed in this page), you need to validate the reliability of flash chips yourself.
  15. .. _auto-suspend-intro:
  16. Auto Suspend & Resume
  17. ---------------------
  18. The support list is as follows.
  19. ESP Chips List:
  20. 1. ESP32C3
  21. 2. ESP32C2
  22. 3. ESP32S3
  23. Flash Chips List:
  24. 1. XM25QxxC series.
  25. 2. GD25QxxE series.
  26. .. only:: esp32c3 or esp32c2 or esp32s3
  27. .. attention::
  28. There are multiple limitations about the auto-suspend feature, please do read :ref:`auto-suspend` for more information before you enable this feature.
  29. Flash unique ID
  30. ---------------
  31. Unique ID is not flash id, which means flash has 64-Bit unique ID for each device. The instruction to read the unique ID (4Bh) accesses a factory-set read-only 64-bit number that is unique to each flash device. This ID number helps you to recognize each single device. Not all flash vendors support this feature. If you try to read the unique ID on a chip which does not have this feature, the behavior is not determined. The support list is as follows.
  32. ESP Chips Lists:
  33. ALL
  34. Flash Chips List:
  35. 1. ISSI
  36. 2. GD
  37. 3. TH
  38. 4. FM
  39. 5. Winbond
  40. 6. XMC
  41. 7. BOYA
  42. .. _hpm-doc:
  43. High performance mode
  44. ---------------------
  45. .. note::
  46. This section is provided for Dual mode (DOUT/DIO) and Quad mode (QIO/QOUT) flash chips. Octal flash used on ESP-chips support High performance mode by default so far, you can refer to the octal flash support list below.
  47. High performance mode (HPM) means that the SPI1 and flash chip works under high frequency. Usually, when the operating frequency of the flash is greater than 80MHz, it is considered that the flash works under HPM. As far as we acknowledged, flash chips have more than two different coping strategies when flash work under HPM. For some flash chips, HPM is controlled by high performance flag (HPF) in status register and for some flash chips, HPM is controlled by dummy cycle bit.
  48. For following conditions, IDF start code deals with HPM internally.
  49. ESP Chips List:
  50. 1. ESP32S3
  51. Flash Chips (name & ID) List:
  52. 1. GD25Q64C (ID: 0xC84017)
  53. 2. GD25Q32C (ID: 0xC84016)
  54. .. attention::
  55. It is hard to create several strategies to cover all situations, so all flash chips using HPM need to be supported explicitly. Therefore, if you try to use a flash not listed as supported under high performance mode, it might cause some error. So, when you try to use the flash chip beyond supported list, please test properly.
  56. .. _oct-flash-doc:
  57. OPI flash support
  58. -----------------
  59. OPI flash means that the flash chip supports octal peripheral interface, which has octal I/O pins. Different octal flash has different configurations and different commands. Hence, it is necessary to carefully check the support list.
  60. .. only:: esp32s3
  61. .. note::
  62. To know how to configure menuconfig for a board with different Flash and PSRAM, please refer to the :ref:`SPI Flash and External SPI RAM Configuration <flash-psram-configuration>`
  63. ESP Chips List:
  64. 1. ESP32S3
  65. Flash Chips List:
  66. 1. MX25UM25645G
  67. .. _32-bit-flash-doc:
  68. 32-bit Address Flash Chips
  69. --------------------------
  70. Most NOR flash chips used by Espressif chips use 24-bits address, which can cover 16 MBytes memory. However, for larger memory (usually equal to or larger than 16 MBytes), flash uses a 32-bits address to address larger memory. Regretfully, 32-bits address chips have vendor-specific commands, so we need to support the chips one by one.
  71. ESP Chips List:
  72. ALL ESP Chips support this.
  73. Flash Chips List:
  74. 1. W25Q256
  75. 2. GD25Q256
  76. .. important::
  77. Over 16 MBytes space on flash mentioned above can be only used for `data saving`, like file system. If your data / instructions over 16 MBytes spaces need to be mapped to MMU (so as to be accessed by the CPU), please enable the config `IDF_EXPERIMENTAL_FEATURES` and `CONFIG_SPI_FLASH_32BIT_ADDRESS` and read the limitations following:
  78. 1. This option only valid for 4-line flash. Octal flash doesn't need this.
  79. 2. Only MMU on ESP chip that supports mapping to a range over 16MB memory supports this config. (Only ESP32S3 supports this up to now)
  80. 3. This option is experimental, which means it can't use on all flash chips stable, for more information, please contact Espressif Business support.