File tree Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -85,14 +85,18 @@ void hspi_slave_begin(uint8_t status_len, void * arg)
8585 pinMode (MISO , SPECIAL );
8686 pinMode (MOSI , SPECIAL );
8787
88- SPI1S = SPISE | SPISBE | 0x3E0 ;
89- SPI1U = SPIUMISOH | SPIUCOMMAND | SPIUSSE ;
88+ SPI1S = SPISE | SPISBE | 0x3E0 ; // SPI_SLAVE_REG
89+ SPI1U = SPIUMISOH | SPIUCOMMAND | SPIUSSE ; // SPI_USER_REG
9090 SPI1CLK = 0 ;
91- SPI1U2 = (7 << SPILCOMMAND );
92- SPI1S1 = (((status_len * 8 ) - 1 ) << SPIS1LSTA ) | (0xff << SPIS1LBUF ) | (7 << SPIS1LWBA ) | (7 << SPIS1LRBA ) | SPIS1RSTA ;
91+ SPI1U2 = (7 << SPILCOMMAND ); // SPI_USER2_REG
92+ SPI1S1 = (((status_len * 8 ) - 1 ) << SPIS1LSTA ) | (0xff << SPIS1LBUF ) | (7 << SPIS1LWBA ) | (7 << SPIS1LRBA ) | SPIS1RSTA ; // SPI_SLAVE1_REG
9393 SPI1P = (1 << 19 );
9494 SPI1CMD = SPIBUSY ;
9595
96+ // Setting SPIC2MISODM_S makes slave to change MISO value on falling edge on CLK signal as is required for SPIMode 1
97+ // Setting SPIC2MOSIDN_S is probably not critical, all tests run fine with this setting
98+ SPI1C2 = (0x2 << SPIC2MOSIDN_S ) | (0x1 << SPIC2MISODM_S );
99+
96100 ETS_SPI_INTR_ATTACH (_hspi_slave_isr_handler ,arg );
97101 ETS_SPI_INTR_ENABLE ();
98102}
@@ -114,7 +118,7 @@ void hspi_slave_end()
114118 SPI1P = B110 ;
115119}
116120
117- void hspi_slave_setStatus (uint32_t status )
121+ void ICACHE_RAM_ATTR hspi_slave_setStatus (uint32_t status )
118122{
119123 SPI1WS = status ;
120124}
You can’t perform that action at this time.
0 commit comments