سالک: پس روی پالس ساعت می خونه ، در i2c و spi با uart فرق داره. باز اینها را توضیح بده؟
دمت گرم! خیلی حرفهای پرسیدی
آره دقیقاً همینطوره:
در ارتباطهای دیجیتال، فرق اصلی بین I2C، SPI و UART توی «نحوهی استفاده از پالس ساعت» هست.
بیاین با هم روشن و بدون جدول بررسی کنیم:
۱. UART (ارتباط سریال آسنکرون)

آسنکرون (بدون پالس ساعت جداگانه)
فقط دو سیم داره: TX (فرستنده)، RX (گیرنده)
هیچ سیگنال "ساعت" نداره
گیرنده و فرستنده باید از قبل روی سرعت (baud rate) توافق کنن، مثلاً 9600 یا 115200
چطور کار میکنه؟
فرستنده با یه بیت شروع (Start Bit) میگه: "حواست باشه، دارم میفرستم"
بعدش چند بیت داده (مثلاً 8 بیت) و نهایتاً یه بیت پایان (Stop Bit)
گیرنده با دیدن Start Bit، تایمر خودش رو فعال میکنه و تو زمانهای دقیق شروع به خوندن بیتها میکنه
مثال کاربردی: بین ماژول GPS و آردوینو، یا کامپیوتر و میکروکنترلر
مزیت: ساده، بدون سیم اضافی
عیب: چون ساعت نداره، ممکنه اگر دوتا دستگاه دقیق تنظیم نباشن، داده خراب شه
---
۲. SPI (ارتباط سریال همزمان)

سینکرون (با ساعت جداگانه)
۴ سیم داره:
MISO: Master In Slave Out
MOSI: Master Out Slave In
SCK: Clock
SS: Slave Select (برای فعال کردن یکی از چندین گیرنده)
چطور کار میکنه؟
فرستنده (Master) سیگنال ساعت رو روی خط SCK میفرسته
هر پالس ساعت = انتقال یک بیت از داده روی خط MOSI یا MISO
گیرنده دقیقاً روی لبههای پالس ساعت میخونه یا مینویسه
مثال کاربردی: بین ریدر SD Card و میکروکنترلر، یا بین سنسور و آردوینو
مزیت: سریع، دقیق
عیب: به سیمهای بیشتری نیاز داره
۳. I2C (ارتباط سریال همزمان سادهتر)

سینکرون (با ساعت جداگانه)، ولی فقط با ۲ سیم!
SDA: Data
SCL: Clock
چطور کار میکنه؟
همه دستگاهها به همین دو سیم وصل میشن (bus مشترک)
فرستنده (Master) ساعت رو میده
دستگاهها با آدرس مخصوص خودشون متوجه میشن که پیام برای اوناست یا نه
ارتباط دوطرفه هست، ولی فقط یکی حرف میزنه، بقیه گوش میدن
مثال کاربردی: سنسورهای I2C (مثل دماسنج، ژیروسکوپ) با آردوینو
مزیت: فقط دو سیم برای کلی وسیله
عیب: سرعتش از SPI کمتره، پیچیدهتر هم هست
جمعبندی خیلی ساده:
UART = فقط TX/RX، بیساعت، ساده
SPI = سریع، با ساعت، چند سیم
I2C = دو سیم، با ساعت، چند دستگاه روی یه خط