Kconfig 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. menu "Driver configurations"
  2. menu "ADC configuration"
  3. config ADC_FORCE_XPD_FSM
  4. bool "Use the FSM to control ADC power"
  5. default n
  6. help
  7. ADC power can be controlled by the FSM instead of software. This allows the ADC to
  8. be shut off when it is not working leading to lower power consumption. However
  9. using the FSM control ADC power will increase the noise of ADC.
  10. config ADC_DISABLE_DAC
  11. bool "Disable DAC when ADC2 is used on GPIO 25 and 26"
  12. default y
  13. help
  14. If this is set, the ADC2 driver will disable the output of the DAC corresponding to the specified
  15. channel. This is the default value.
  16. For testing, disable this option so that we can measure the output of DAC by internal ADC.
  17. endmenu # ADC Configuration
  18. menu "MCPWM configuration"
  19. config MCPWM_ISR_IN_IRAM
  20. bool "Place MCPWM ISR function into IRAM"
  21. default n
  22. help
  23. If this option is not selected, the MCPWM interrupt will be deferred when the Cache
  24. is in a disabled state (e.g. Flash write/erase operation).
  25. Note that if this option is selected, all user registered ISR callbacks should never
  26. try to use cache as well. (with IRAM_ATTR)
  27. endmenu # MCPWM Configuration
  28. menu "SPI configuration"
  29. config SPI_MASTER_IN_IRAM
  30. bool "Place transmitting functions of SPI master into IRAM"
  31. default n
  32. select SPI_MASTER_ISR_IN_IRAM
  33. help
  34. Normally only the ISR of SPI master is placed in the IRAM, so that it
  35. can work without the flash when interrupt is triggered.
  36. For other functions, there's some possibility that the flash cache
  37. miss when running inside and out of SPI functions, which may increase
  38. the interval of SPI transactions.
  39. Enable this to put ``queue_trans``, ``get_trans_result`` and
  40. ``transmit`` functions into the IRAM to avoid possible cache miss.
  41. During unit test, this is enabled to measure the ideal case of api.
  42. config SPI_MASTER_ISR_IN_IRAM
  43. bool "Place SPI master ISR function into IRAM"
  44. default y
  45. help
  46. Place the SPI master ISR in to IRAM to avoid possible cache miss.
  47. Also you can forbid the ISR being disabled during flash writing
  48. access, by add ESP_INTR_FLAG_IRAM when initializing the driver.
  49. config SPI_SLAVE_IN_IRAM
  50. bool "Place transmitting functions of SPI slave into IRAM"
  51. default n
  52. select SPI_SLAVE_ISR_IN_IRAM
  53. help
  54. Normally only the ISR of SPI slave is placed in the IRAM, so that it
  55. can work without the flash when interrupt is triggered.
  56. For other functions, there's some possibility that the flash cache
  57. miss when running inside and out of SPI functions, which may increase
  58. the interval of SPI transactions.
  59. Enable this to put ``queue_trans``, ``get_trans_result`` and
  60. ``transmit`` functions into the IRAM to avoid possible cache miss.
  61. config SPI_SLAVE_ISR_IN_IRAM
  62. bool "Place SPI slave ISR function into IRAM"
  63. default y
  64. help
  65. Place the SPI slave ISR in to IRAM to avoid possible cache miss.
  66. Also you can forbid the ISR being disabled during flash writing
  67. access, by add ESP_INTR_FLAG_IRAM when initializing the driver.
  68. endmenu # SPI Configuration
  69. menu "TWAI configuration"
  70. config TWAI_ISR_IN_IRAM
  71. bool "Place TWAI ISR function into IRAM"
  72. default n
  73. help
  74. Place the TWAI ISR in to IRAM. This will allow the ISR to avoid
  75. cache misses, and also be able to run whilst the cache is disabled
  76. (such as when writing to SPI Flash).
  77. Note that if this option is enabled:
  78. - Users should also set the ESP_INTR_FLAG_IRAM in the driver
  79. configuration structure when installing the driver (see docs for
  80. specifics).
  81. - Alert logging (i.e., setting of the TWAI_ALERT_AND_LOG flag)
  82. will have no effect.
  83. config TWAI_ERRATA_FIX_BUS_OFF_REC
  84. bool "Add SW workaround for REC change during bus-off"
  85. depends on IDF_TARGET_ESP32
  86. default n
  87. help
  88. When the bus-off condition is reached, the REC should be reset to 0 and frozen (via LOM) by the
  89. driver's ISR. However on the ESP32, there is an edge case where the REC will increase before the
  90. driver's ISR can respond in time (e.g., due to the rapid occurrence of bus errors), thus causing the
  91. REC to be non-zero after bus-off. A non-zero REC can prevent bus-off recovery as the bus-off recovery
  92. condition is that both TEC and REC become 0. Enabling this option will add a workaround in the driver
  93. to forcibly reset REC to zero on reaching bus-off.
  94. config TWAI_ERRATA_FIX_TX_INTR_LOST
  95. bool "Add SW workaround for TX interrupt lost errata"
  96. depends on IDF_TARGET_ESP32
  97. default n
  98. help
  99. On the ESP32, when a transmit interrupt occurs, and interrupt register is read on the same APB clock
  100. cycle, the transmit interrupt could be lost. Enabling this option will add a workaround that checks the
  101. transmit buffer status bit to recover any lost transmit interrupt.
  102. config TWAI_ERRATA_FIX_RX_FRAME_INVALID
  103. bool "Add SW workaround for invalid RX frame errata"
  104. depends on IDF_TARGET_ESP32
  105. default n
  106. help
  107. On the ESP32, when receiving a data or remote frame, if a bus error occurs in the data or CRC field,
  108. the data of the next received frame could be invalid. Enabling this option will add a workaround that
  109. will reset the peripheral on detection of this errata condition. Note that if a frame is transmitted on
  110. the bus whilst the reset is ongoing, the message will not be receive by the peripheral sent on the bus
  111. during the reset, the message will be lost.
  112. config TWAI_ERRATA_FIX_RX_FIFO_CORRUPT
  113. bool "Add SW workaround for RX FIFO corruption errata"
  114. depends on IDF_TARGET_ESP32
  115. default n
  116. help
  117. On the ESP32, when the RX FIFO overruns and the RX message counter maxes out at 64 messages, the entire
  118. RX FIFO is no longer recoverable. Enabling this option will add a workaround that resets the peripheral
  119. on detection of this errata condition. Note that if a frame is being sent on the bus during the reset
  120. bus during the reset, the message will be lost.
  121. endmenu # TWAI Configuration
  122. menu "UART configuration"
  123. config UART_ISR_IN_IRAM
  124. bool "Place UART ISR function into IRAM"
  125. default n
  126. help
  127. If this option is not selected, UART interrupt will be disabled for a long time and
  128. may cause data lost when doing spi flash operation.
  129. endmenu # UART Configuration
  130. menu "RTCIO configuration"
  131. visible if IDF_TARGET_ESP32
  132. config RTCIO_SUPPORT_RTC_GPIO_DESC
  133. bool "Support array `rtc_gpio_desc` for ESP32"
  134. depends on IDF_TARGET_ESP32
  135. default n
  136. help
  137. The the array `rtc_gpio_desc` will don't compile by default.
  138. If this option is selected, the array `rtc_gpio_desc` can be compile.
  139. If user use this array, please enable this configuration.
  140. endmenu # RTCIO Configuration
  141. menu "GPIO Configuration"
  142. visible if IDF_TARGET_ESP32
  143. config GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL
  144. bool "Support light sleep GPIO pullup/pulldown configuration for ESP32"
  145. depends on IDF_TARGET_ESP32
  146. help
  147. This option is intended to fix the bug that ESP32 is not able to switch to configured
  148. pullup/pulldown mode in sleep.
  149. If this option is selected, chip will automatically emulate the behaviour of switching,
  150. and about 450B of source codes would be placed into IRAM.
  151. endmenu # GPIO Configuration
  152. endmenu # Driver configurations