ارتباط سریال SPI در زبان بیسیک BASIC

ارتباط سریال SPI

ارتباط SPI ارتباطی که مانند Uart در دو حالت سخت افزاری یا نرم افزاری قابل دسترسی است. ارتباط با پروتکل سریال – پرسرعت – سه سیمه که برای عملیات هایی همچون پروگرام و برنامه ریزی کردن حافظه های Flash و Eeprom و یا ارتباط با یک میکرو کنترلر دیگر به صورت Master – Slave مورد استفاده قرار می گیرد. پین های مورد استفاده برای این ارتباط به صورت زیر است:

پین های مورد استفاده برای ارتباط سریال SPI

Master در حقیقت سیم اصلی بئده و slave سیستم پیرو در صورتی که از چند سیستم پیرو استفاده شود. با استفاده از پایه ss سیستم مورد نظر را انتخاب می کنند.

ارتباط میکروکنترلرهای AVR با سایر دستگاه ها از طریق ارتباط سریال SPI

پیکربندی spi سخت افزاری در زبان بیسیک BASIC

این ارتباط سخت افزاری بوده و پایه های نام برده مورد نیاز هستند.

Interrupt : همانطور که از نامش پیداست برای استفاده از وقفه SPI فعال می شود.

Data order : برای فرستادن یک دیتا, شما می توانید انتخاب کنید که اول LSB فرستاده شود یا MSB.

Master : نوع میکرو را انتخاب می کند. Yes برای Master و گزینه No برای Slave .

Polarity : در زمان استفاده از مد Sleep مانند Idle , می توان پایه کلاک ( Sck ) را یک یا صفر در نظر گرفت.

Phase : گزینه صفر زمان استفاده دیتا در فاز مثبت و صحیح و گزینه 1 فاز ارسال را معکوس می کند.

Clockrate : فرکانس کلاک Spi را مشخص می کند و گزینه ها در حقیقت ضریب فرکانس کار میکرو می باشد.

Noss : تعیین کننده پایه SS بوده و در صورت استفاده از یک سیستم Slave دیگر نیازی به این پایه نیست و می توان پایه SS سیستم Slave را صفر کرد.

نکته : در حالت پیش فرض دیتا به صورت MSB فرستاده شده و کلاک در مد Idle یک است و سیستم Master و با فاز مثبت و فرکانس کار میکرو تقسیم بر 4 شده و کلاک SPI تعیید می شود. پس این سیستم را می توان به صورت زیر نوشت:

پیکربندی spi نرم افزاری در زبان بیسیک BASIC

در این نوع پیکربندی در هنگام برنامه نویسی تنها پایه های ارتباط تعیین می شود. تنها گزینه پایه SS را می توان در دو حالت تعیین پایه و یا غیر فعال (None) انتخاب کرد.

نکته : در صورت غیر فعال کردن پایه SS در سیستم Slave باید پایه SS را زمین کنید.

دریافت دیتا از پورت سریال SPI در زبان بیسیک BASIC

با این دستور شما می توانید از پورت سریال به تعداد n بایت داده دریافت و در متغیر var قرار دهید.

ارسال دیتا به پورت سریال SPI در زبان بیسیک BASIC

با این دستور شما می توانید به پورت سریال به تعداد n بایت داده قرار گرفته در var را ارسال کنید.

ارسال و دریافت همزمان دیتا در پورت سریال spi

با این دستور شما می توانید به طور همزمان به پورت سریال متغیر var2 را فرستاده و داده گرفته شده را در متغیر var1 قرار داد.

 اطلاعات پروژه

 رمز فایل : www.electronics98.com (این مطلب فاقد فایل جهت دانلود است)

 نویسنده : فرهاد اکبری

 تاریخ انتشار : 11 اکتبر 2014

3 دیدگاه

  1. سلام دوستان من برای اولین بار از مد SPI دارم کار می کنم . همه چی رو هم خوندم
    ارتباط رو هم برقرار کردم . مشکل من اینجاست که master عدد یک رو به slave
    میفرسته و اون بعد از دریافت اگه شرط برابر یک بود کاری رو انجام بده .
    ولی کار نکرد . بعد اون متغییری رو که master داره میفرسته رو روی lcd
    نمایش دادم دیدم عدد 128 رو میفرسته !!!
    الان خواستم بدونم که چرا عدد 128 فرستاده میشه به جای یک؟؟؟؟

  2. سلام دوست عزیز، لطفا برنامه ای که استفاده می کنید را در انجمن سایت درج کنید و مشکل خودتان رو هم در اونجا مطرح کنید تا به کمک هم به جواب برسیم.

  3. سلام وقت بخیر
    من اولین بار هست که میخوام از spi استفاده کنم ممنون میشم راهنماییم کنید چطور برنامه master و slave رو در بسکام بنویسم

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

 لطفاً بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

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

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