mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-30 20:51:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| SPI Features
 | |
| ============
 | |
| 
 | |
| .. _spi_master_features:
 | |
| 
 | |
| SPI Master
 | |
| ----------
 | |
| 
 | |
| .. _spi_bus_lock:
 | |
| 
 | |
| SPI Bus Lock
 | |
| ^^^^^^^^^^^^
 | |
| 
 | |
| To realize the multiplexing of different devices from different drivers (SPI Master, SPI Flash,
 | |
| etc.), an SPI bus lock is applied on each SPI bus. Drivers can attach their devices onto the bus
 | |
| with the arbitration of the lock.
 | |
| 
 | |
| Each bus lock are initialized with a BG (background) service registered, all devices request to
 | |
| do transactions on the bus should wait until the BG to be successfully disabled.
 | |
| 
 | |
| - For SPI1 bus, the BG is the cache, the bus lock will help to disable the cache before device
 | |
|   operations starts, and enable it again after device releasing the lock. No devices on SPI1 is
 | |
|   allowed using ISR (it's meaningless for the task to yield to other tasks when the cache is
 | |
|   disabled).
 | |
| 
 | |
|   .. only:: esp32
 | |
| 
 | |
|       There are quite a few limitations when using SPI Master driver on the SPI1 bus, see
 | |
|       :ref:`spi_master_on_spi1_bus`.
 | |
| 
 | |
|   .. only:: esp32s2
 | |
| 
 | |
|       The SPI Master driver hasn't supported SPI1 bus. Only SPI Flash driver can attach to the bus.
 | |
| 
 | |
| - For other buses, the driver may register its ISR as the BG. The bus lock will block a device
 | |
|   task when it requests for exclusive use of the bus, try to disable the ISR, and unblock the
 | |
|   device task allowed to exclusively use the bus when the ISR is successfully disabled. When the
 | |
|   task releases the lock, the lock will also try to resume the ISR if there are pending
 | |
|   transactions to be done in the ISR.
 | 
