Arduino IDE에서 ESP32-S2의 SPI 는 디폴트로 GPIO35 ~ 36에 할당되어 있다.
static const uint8_t SS = 34;
static const uint8_t MOSI = 35;
static const uint8_t MISO = 37;
static const uint8_t SCK = 36;
ESP32-S2의 SPI 테스트를 위해 아래 코드로 테스트 해보았다.
#include <SPI.h>
#define LED_PIN1 18
void setup() {
pinMode(LED_PIN1, OUTPUT);
Serial.begin(115200);
SPI.begin();
SPI.beginTransaction(SPISettings(80000000, MSBFIRST, SPI_MODE0));
}
unsigned char buffer1[] ={0xf0, 0xff, 0x0f};
void loop()
{
SPI.transfer(buffer1, 3);
delay(10);
}
다른 MCU에서와 다르게 SPI 전송시 지연없이 출력 되는것을 확인 할 수 있다.
여러번 전송시에의 SPI전송 지연은 4.5us로 다소 길다
unsigned char buffer1[] ={0, 0, 0};
unsigned char buffer2[] ={0xf0, 0xff, 0x0f};
void loop()
{
SPI.transfer(buffer2, 3);
SPI.transfer(buffer1, 2);
}
반응형