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

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

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

  • I2C: دو سیم، آدرس‌دهی نرم‌افزاری، کندتر، مناسب چند قطعهٔ کم‌سرعت
  • SPI: حداقل چهار سیم، انتخاب سخت‌افزاری با CS، سریع‌تر، مناسب نمایشگر و حافظه
PYTHON
from machine import Pin, SPI

spi = SPI(1, baudrate=10_000_000, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
cs = Pin(5, Pin.OUT)

cs.value(0)               # فعال‌سازی دستگاه
spi.write(bytes([0x01, 0x02, 0x03]))
cs.value(1)               # غیرفعال کردن دستگاه

print("داده از طریق SPI ارسال شد")
ℹ️ اطلاعات

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

🧩

برای این موضوع، پروژهٔ آماده‌ای که دقیقاً متناظر باشد در Wokwi پیدا نکردیم؛ به‌جای یک شبیه‌سازی نامرتبط، خودتان می‌توانید یک پروژهٔ خالی میکروپایتون برای ESP32 بسازید و قطعات لازم را از کتابخانهٔ Wokwi اضافه کنید.

ساخت پروژهٔ خالی میکروپایتون در Wokwi ↗
🛠️ کارگاه عملی

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

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