قسمت بیست و سوم : رابط کاربری سریال (SPI)

قسمت بیست و سوم : رابط کاربری سریال (SPI)

قسمت بیست و سوم : رابط کاربری سریال (SPI)
قسمت بیست و سوم : رابط کاربری سریال (SPI)

سیسوگ در قسمت بیستم و دوم آموزش میکروکنترلر STM8  به بررسی رابط سریال (UART) پرداخت. در این از قسمت آموزش میکروکنترلر STM8  رابط کاربری سریال (SPI) را مورد بررسی قرار می‌دهد. با سیسوگ همراه باشید.

ارتباط SPI :

ارتباط SPI یک روش ارتباط سنکرون درون خطی است و توسط تعدادی از دستگاه‌ها از جمله سنسورها، نمایشگرهای TFT، توسعه دهنده GPIO، کنترل کننده PWM، تراشه‌های حافظه، دستگاه های پشتیبانی افزونه و غیره استفاده می‌شود.

همیشه یک مستر در باس ارتباطی SPI وجود دارد که کلاک را تولید می‌کند و slave ها را انتخاب می‌کند. مستر دستورات را به slave ها می‌فرستد و slaveها به دستورات ارسالی از طرف مستر پاسخ می‌دهند. تعداد slave ها در باس SPI نامحدود است. به جز پین انتخاب تراشه، تمامی دستگاه‌های SPI در یک باس می‌توانند کلاک و پین‌های اطلاعاتی مشابه را به اشتراک بگذارند.

 

باس SPI دوبلکس به چهار پین ورودی / خروجی نیاز دارد:

  • (Master-Out-Slave-In (MOSI متصل به (Slave-Data-In (SDI.
  • (Master-In-Slave-Out (MIS0 متصل به (Slave-Data-Out (SD0.
  •  سریال کلاک (SCLK) متصل به (Clock Slave (SCK.
  • (Slave Select (SS متصل به (Chip Select (CS.

 

اتصالات باس SPI

 

اگر تمایل دارید اطلاعات بیشتری درباره باس SPI بدست آورید لینک‌های زیر مناسب هستند:

SPI_Bus

serial-peripheral-interface-spi

spi.pdf

tutorial-arduino-and-the-spi-bus

serial-peripheral-interface-spi

basics-of-the-spi-communication-protocol

 

سخت‌افزار SPI موجود در میکروکنترلر STM8 نسبت به دیگر میکروکنترلرها، ویژگی‌های بیشتری دارد. یکی دیگر از ویژگی‎های این رابط سریال موجود در میکروکنترلر STM8، سخت‌افزار CRC است. این ویژگی از ارسال اطلاعات درست بین دستگاه‌ها اطمینان حاصل می‌کند.

 

اتصالات سخت‌افزاری:

اتصالات سخت‌افزاری SPI

 

نمونه کد :

main.c:

 

MAX72xx.h:

 

MAX72xx.c:

 

توضیحات:

این بار نیز CPU و کلاک داخلی روی بیشترین مقدار تنظیم می شوند.

 

ورودی/خروجی‌ها را نیز تعریف می‌کنیم:

 

GPIO ها باید به عنوان ورودی/خروجی‌های سریع پیکربندی شوند، زیرا ارتباط SPI سریع‌تر از عملیات GPIO ساده است.

برای قسمت پیکربندی SPI، در اینجا از MAX7219 استفاده می‌کنیم و پورت آن را به گونه‌ای تنظیم می‌کنیم که MSB سریع ارسال کند. هم‌چنین از کلاک داخلی سریع استفاده می‌کنیم. SPI را روی مد Half-Duplex-Master تنظیم می‌کنیم.

 

نمودار زمان بندی MAX7219 نشان می‌دهد، در زمان دریافت MAX7219  باید CS مقدار Low را داشته باشد.

 

نمودار زمان بندی MAX7219

 

همان‌طور که نشان می‌دهد، انتقال داده با هر لبه بالارونده انجام می‌شود. همه این موارد برای تنظیم سخت‌افزار SPI مورد نیاز است.

 

 

قبل از ارسال داده به MAX7219، باید بررسی کنیم آیا سخت‌افزارSPI به دلایلی مشغول هست یا خیر. با تنظیمات پایه (PA3) که پایه انتخاب Slave هست CS را Low قرار می‌دهیم. هر بار که چیزی را ارسال می‌کنیم، باید منتظر بمانیم تا به طور کامل ارسال شود. در نهایت، CS راروی high تنظیم می‌کنیم تا اطلاعات ارسال شده را قفل کنیم. این فانکشن و هم‎‌چنین آپدیت نمایش‌ها دلیل استفاده از MAX7219 است.

 

MAX7219

 

در قسمت بیست و چهارم آموزش میکروکنترلر STM8 به رابط I2C می‌پردازیم. با سیسوگ همراه باشید.

منبع

لینک‌های دانلود

مطالب مرتبط

 

 

حمایت از electronic girl

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

electronic girl
electronic girl

دوستدار الکترونیک

دیدگاه ها

5 دیدگاه

  • محمد شوقی
    ۱۳ مرداد ۱۳۹۸

    نخیر، کاملا درسته
    من اشتباه متوجه شدم !!!
    عذر میخوام.

    • Nasim Hematian
      electronic girl
      ۱۳ مرداد ۱۳۹۸

      سلام دوست عزیز
      ممنون از پیام اصلاحیتون

  • محمد شوقی
    ۱۳ مرداد ۱۳۹۸

    سلام
    توی شکل گرافیکی بالای مقاله، جهت فلش های MISO و MOSI احتمالا اشتباه و به جای هم کشیده شده.
    خواستم یادآوری کنم.
    ممنونم از شما.

  • reza
    ۱۶ دی ۱۳۹۷

    (Master-In-Slave-Out (MIS0 متصل به (Slave-Data-Out (SDO.
    0 رو به جای O نوشتید.
    ممنون از آموزش های خوبتون.

    • Nasim Hematian
      electronic girl
      ۱۶ دی ۱۳۹۷

      سلام
      ممنون از توجه شما… این اشتباه تایپی اصلاح شد.

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 11 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک