Search found 4 matches

by chris6347
Thu Nov 23, 2023 11:35 am
Forum: General Discussion
Topic: SPI Master fails to read MISO correctly on Mode 3
Replies: 12
Views: 14581

Re: SPI Master fails to read MISO correctly on Mode 3

Thank you for the analysis martins! After all there seems to be a major bug here! It is confirmed that the SPI MISO sampling behavior clearly differs from the description in the manuals. This makes a vast range of SPI devices unusable at the moment with the ESP32-S3 because many devices don't have t...
by chris6347
Wed Nov 15, 2023 3:18 pm
Forum: General Discussion
Topic: SPI Master fails to read MISO correctly on Mode 3
Replies: 12
Views: 14581

Re: SPI Master fails to read MISO correctly on Mode 3

Hi try it spi_device_interface_config_t .flag = SPI_DEVICE_NO_DUMMY Thank you for that hint. However, I have tried this and it made no difference. I still see that the ESP32-S3 only reads MISO line on the falling edge of the SPI clock in SPI mode 3. Here is the code i used with the proposed flag: #...
by chris6347
Mon Nov 13, 2023 12:27 pm
Forum: General Discussion
Topic: SPI Master fails to read MISO correctly on Mode 3
Replies: 12
Views: 14581

Re: SPI Master fails to read MISO correctly on Mode 3

One more info:

I have tried moving the high pulse over the falling edge, and suddenly the ESP32-S3 recognizes it, even though in it's SPI-Mode 3:
esp32s3_falling.png
esp32s3_falling.png (77.92 KiB) Viewed 9453 times
ESP IDF version is 5.1.1.
This seems to be like a major bug in either ESP IDF, or worse, the ESP32-S3 silicon, or not?
by chris6347
Fri Nov 10, 2023 9:23 am
Forum: General Discussion
Topic: SPI Master fails to read MISO correctly on Mode 3
Replies: 12
Views: 14581

Re: SPI Master fails to read MISO correctly on Mode 3

I had a look into the Esp32-S3 Reference Manual and according to that MISO Line should be sampled on the rising edge of SCLK: rm_mode3.PNG I wrote a quick program to check this: #include <stdio.h> #include <freertos/FreeRTOS.h> #include <freertos/task.h> #include <driver/spi_master.h> // Define the ...