ESP32 SPI 설정 관련 팁
ESP32의 SPI에 설정에 대한 팁입니다.
1. ESP32 는 다수의 SPI를 지원합니다.
2. ESP32 의 SPI에서 1개는 Flash용으로 사용되어야 합니다. 보통 Flash에 사용되는 SPI는 정해져 있습니다.
(ESP32 datasheet의 기본 회로도 참고)
3. 아래는 ESP32 기준입니다.
ESP32 SPI-Master
ESP32 SPI-Slave
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/spi_slave.html
ESP32는 4개의 SPI를 지원합니다.
- SPO0, SPI1은 Flash 메모리 용입니다. 즉, 일반적으로 사용하지 못한다고 보면 됩니다.
- SPI2, SPI3는 User가 사용할수 있는 SPI입니다. 이름을 HSPI, VSPI로 명칭을 합니다.
SPI핀 설정은 기본 핀 사용(IO_MUX pin)할 수 있고, 또는 유져가 다른핀으로 변경하여 지정을 할수도 있습니다.
아래 블럭을 보면, IO_MUX를 사용할 경우 GPIO Matrix를 지나지 않습니다.
핀 번호를 변경할 경우, GPIO Matrix를 지나게 되고, 이 때 제약이 발생 합니다.
아래는 기본핀 (IO_MUX) 입니다.
GPIO Matrix사용시 제약 사항
아래와 같이 GPIO Matrix를 사용하면 26.6Mhz입니다.
만약, Dummy bit을 사용하면 GPIO Matrix에서 40Mhz가 가능하나, Half duplex이고 no DMA입니다.
ESP32 SPI Master Known issue
ESP32-C3, ESP32-S2, ESP32-S3는 스펙이 다릅니다.
ESP-IDF사이트에서 이 부분을 참고 바랍니다.
ESP32-S3 SPI-Mater.
ESP32-S2 SPI-Master
ESP32-C3 SPI Master