SPI slave driver behavior on ESP32-WROVER
Posted: Wed Jan 23, 2019 1:19 pm
Hi,
I'm using a ESP32-WROVER as slave for SPI communication. The first transfers I made were using a SPI master clocked @16MHz. Now, I understand that this is beyond the recommended specifications (SPI_SLAVE_FREQ is 10MHz max with dedicated HSPI pins) and that strange behavior is possible/expected, but what I saw was that with the slave setup in mode 0 (CPOL=0, CPHA=0), I needed the master to send data with a CPHA=1 setup to have correct interpretation.
Reducing the master's clock to 8.33 MHz needed to switch back to CPHA=0 and works perfectly fine.
Is there a logical explanation for this? Or is it really unpredictable behavior that I should totally ignore and don't care about?
I'm using a ESP32-WROVER as slave for SPI communication. The first transfers I made were using a SPI master clocked @16MHz. Now, I understand that this is beyond the recommended specifications (SPI_SLAVE_FREQ is 10MHz max with dedicated HSPI pins) and that strange behavior is possible/expected, but what I saw was that with the slave setup in mode 0 (CPOL=0, CPHA=0), I needed the master to send data with a CPHA=1 setup to have correct interpretation.
Reducing the master's clock to 8.33 MHz needed to switch back to CPHA=0 and works perfectly fine.
Is there a logical explanation for this? Or is it really unpredictable behavior that I should totally ignore and don't care about?