متوسط⏱ 13 دقیقه مطالعه

SPI یک پروتکل ارتباطی سریع‌تر از I2C است که از ۴ سیم استفاده می‌کند: MOSI (خروجی داده مستر)، MISO (ورودی داده مستر)، SCK (ساعت) و CS/SS (انتخاب چیپ). به‌دلیل سرعت بالا، برای نمایشگرهای TFT، کارت‌های SD و برخی حسگرهای دقیق استفاده می‌شود.

مقایسهٔ سریع I2C و SPI

  • I2C: دو سیم، آدرس‌دهی نرم‌افزاری، کندتر، مناسب چند قطعهٔ کم‌سرعت
  • SPI: حداقل چهار سیم، انتخاب سخت‌افزاری با CS، سریع‌تر، مناسب نمایشگر و حافظه
CPP
#include <SPI.h>

const int CS_PIN = 5;

void setup() {
  Serial.begin(115200);
  pinMode(CS_PIN, OUTPUT);
  digitalWrite(CS_PIN, HIGH);

  // SCK=18, MISO=19, MOSI=23 (پایه‌های پیش‌فرض SPI روی اغلب بردهای ESP32)
  SPI.begin(18, 19, 23, CS_PIN);
  SPI.beginTransaction(SPISettings(10000000, MSBFIRST, SPI_MODE0));

  digitalWrite(CS_PIN, LOW);    // فعال‌سازی دستگاه
  SPI.transfer(0x01);
  SPI.transfer(0x02);
  SPI.transfer(0x03);
  digitalWrite(CS_PIN, HIGH);   // غیرفعال کردن دستگاه

  SPI.endTransaction();
  Serial.println("داده از طریق SPI ارسال شد");
}

void loop() {}
ℹ️ اطلاعات

هر دستگاه SPI روی گذرگاه معمولاً یک پایهٔ CS اختصاصی دارد؛ برای افزودن چند دستگاه، هر کدام باید CS جداگانه داشته باشند.

شبیه‌سازی زندهٔ SPI با ماژول تشخیص کارت RFID (MFRC522) — دقیقاً همان پایه‌های SCK=18, MISO=19, MOSI=23 که در این درس دیدید باز کردن در Wokwi ↗
در حال بارگذاری شبیه‌ساز… (ممکن است چند ثانیه طول بکشد)

این یک شبیه‌سازی واقعی و قابل اجراست؛ روی دکمه پخش (▶) در Wokwi بزنید تا کد روی برد مجازی ESP32 اجرا شود. اگر جعبهٔ بالا بیش از حد سیاه/خالی ماند، صفحه را رفرش کنید یا از دکمهٔ «باز کردن در Wokwi» بالا استفاده کنید.

🛠️ کارگاه عملی

کارگاه عملی: مستندات یک نمایشگر TFT مبتنی بر SPI (مثل ST7735، با کتابخانهٔ Adafruit_ST7735) را بررسی کنید و پایه‌های آن را با نقشهٔ بالا مقایسه کنید.

❓ کدام سیم در SPI مسئول انتخاب دستگاه موردنظر روی گذرگاه است؟
طراحی و توسعه: امین شیخ نجدیglcd.ir | نسخهٔ افزونه: 1.21.0