خانه / دانش و مهارت / الکترونیک / آموزش استفاده از پروتکل ISP برای میکروکنترلر AVR

آموزش استفاده از پروتکل ISP برای میکروکنترلر AVR

برای ارتباط بین دو دستگاه الکترونیکی، پروتکل‌های مختلفی وجود دارد. اگر بخواهید یکی از این پروتکل‌ها را برای ارتباط با میکروکنترلر انتخاب کنید، بیش از هر چیز باید به نرخ انتقال دیتا توجه کنید. پروتکل SPI بیشترین سرعت انتقال دیتا دارد و به همین خاطر برای برقراری ارتباط با انواع میکروکنترلر از جمله AVR بسیار مناسب است. میکروکنترلر AVR رابط کاربری پروتکل ISP  آن-برد دارد و همین استفاده از پروتکل ISP را ساده تر می‌کند.

در این ساختنی به شما یاد می‌دهیم چطور از این پروتکل برای میکروکنترلر AVR استفاده کنید. ما در این پست دو میکروکنترلر ATmega32 و Atmega16 را با پروتکل ISP بهم متصل می‌کنیم. برد ATmega32 را به عنوان دستگاه MASTER و برد Atmega16 را به عنوان دستگاه SLAVE در نظر بگیرید. با توضیحاتی که در ادامه می‌خوانید، می‌توانید از این پروتکل برای برقراری ارتباط بین سایر میکروکنترلرها هم استفاده کنید.

استفاده از پروتکل ISP برای ارتباط با میکروکنترلر
استفاده از پروتکل ISP برای ارتباط با میکروکنترلر

ارتباط جانبی سریال یا همان پروتکل ISP یک پروتکل همگام و دو رشته ای است. SPI به عنوان پروتکل رابط سه سیم هم شناخته می‌شود چون به سه لاین ارتباطی با نام‌های MISO، MOSI و SCK نیاز دارد. این پروتکل برای ارتباط به دو دستگاه نیاز دارد که یکی از آنها به عنوان MASTER و دیگری به عنوان SLAVE استفاده می‌شود. میکروکنترلر AVR هر دو رابط کاربری MASTER و SLAVE را روی تراشه دارد و در نتیجه می‌توانید از یک میکروکنترلر به عنوان دو دستگاه استفاده کنید.

رابط کاربری SPI

سیستم ISP بجز پین‌های MISO، MOSI و SCK شامل پین SS هم می‌شود. این پین برای انتخاب دستگاه SLAVE استفاده می‌شود. هر کدام از پین‌های سیستم ISP کارکرد متفاوتی دارند:

  • SS : انتخاب دستگاه SLAVE
  • MOSI : خروجی MASTER ، ورودی SLAVE
  • MISO : خروجی SLAVE ، ورودی MASTER
  • SCK : ساعت SPI

پروتکل ISP چطور کار می‌کند؟

SPI یک پروتکل انتقال دیتای همگام است؛ بنابراین برای همگام سازی دستگاه‌های MASTER و به SLAVE پالس ساعت نیاز دارد. پالس ساعت توسط دستگاه MASTER تولید می‌شود و به وسیله پین SCK به دستگاه SLAVE فرستاده می‌شود.

برای تبدیل هر دستگاهی به دستگاه MASTER باید پین SS را روی high تنظیم کنید. اگر این پین را به عنوان پین خروجی پیکربندی کنید، با استفاده از نرم افزار خروجی high می‌سازد. اگر SS را به عنوان پین ورودی در نظر بگیرید، سیستم باید high را به صورت خارجی ایجاد کند. در حالت SLAVE، پین SS همیشه پین ورودی است و باید به زمین وصل بشود.

MOSI مخفف عبارت master output slave input است که یعنی MOSI به عنوان پین خروجی MASTER دستگاه و پین ورودی دستگاه SLAVE عمل می‌کند. هر دو دستگاه MASTER و SLAVE یک بافر رجیستر دارند که SPDR نام دارد. دستگاه MASTER در هر چرخه ساعت، یک بیت از SPDR خودش را به دستگاه SLAVE ارسال می‌کند. این یعنی برای ارسال یک بیت دیتا، به ۸ پالس ساعت نیاز داریم.

رجیسترهای سیستم ISP

سیستم SPI شامل سه رجیستر است که در ادامه آنها را توضیح می‌دهیم.

SPCR (رجیستر کنترل ISP)

  • SPIE : برای فعال کردن وقفه SPI، این بیت را روی high تنظیم می‌کنیم.
  • SPE : وقتی این بیت تنظیم بشود، سیستم SPI فعال می‌شود.
  • DORD : وقتی مقدار این بیت یک باشد، ابتدا LSB منتقل می‌شود. وقتی مقدار صفر باشد، ابتدا MSB منتقل می‌شود.
  • MSTR : مقدار یک این بیت، دستگاه را به عنوان MASTER و مقدار صفر آن دستگاه را به عنوان SLAVE ثبت می‌کند.
  • [SPR [1:0 : این بیت و بیت SPI2X فرکانس‌های تصمیم گیری SCK را ثبت می‌کنند. ترکیب این سه پین برای انتخاب فرکانس‌های تصمیم گیری در جدول زیر نشان داده شده اند:

SPSR (رجیستر وضعیت SPI)

  • SPIF : این بیت بعد از تکمیل انتقال سریال، به صورت خودکار تنظیم می‌شود.
  • WCOL : اگر SPDR در حین انتقال سریال نوشته بشود، این بیت نوشته می‌شود.
  • SPI2X : با تنظیم این بیت روی یک، فرکانس SCK دوبل م شود.

SPDR (رجیستر دیتای SPI)

این رجیستر دیتای ۸ بیتی برای ذخیره داده‌های دریافتی و ارسالی استفاده می‌شود.

گام اول: میکروکنترلرها را بهم وصل کنید

دیاگرام اتصال میکروکنترلرها
دیاگرام اتصال میکروکنترلرها

نحوه اتصال دو میکروکنترلر به یکدیگر در دیاگرام بالا مشخص است. پین‌های MOSI (پین ۶) و SCK (پین۸) هر دو دستگاه متصل هستند و پین SS به زمین وصل شده است.

گام دوم: میکروکنترلر را برنامه ریزی کنید

برای حالت MASTER به روش زیر عمل کنید:

  1. پین‌های SS، MOSI و SCK را به عنوان پین‌های خروجی تنظیم کنید.
  2. بیت MSTR فعال کنید تا دستگاه MASTER بشود.
  3. بیت‌های SPR [1:0] را برای انتخاب فرکانس SCK برنامه ریزی کنید.
  4. بیت SPE را برای فعال سازی ISP تنظیم کنید.
  5. دیتا را در رجیستر SPDR کپی کنید تا ارسال بشود.
  6. صبر کنید تا SPIF تنظیم بشود.

برای حالت SLAVEبه روش زیر عمل کنید:

  1. پین MOSI را به عنوان پین خروجی و پین‌های ریست را به عنوان پین ورودی تنظیم کنید.
  2. SPE را برای فعالسازی SPI تنظیم کنید.
  3. صبر کنید تا SPIF تنظیم بشود.
  4. دیتا را از رجیستر SPDR دریافت کنید.
منبع

خلاصه مطلب
آموزش استفاده از پروتکل ISP برای میکروکنترلر AVR
عنوان مطلب
آموزش استفاده از پروتکل ISP برای میکروکنترلر AVR
توضیح کوتاه
ارتباط بین دستگاه‌های الکترونیکی را با پروتکل ISP فراهم کنید.
نویسنده
ساختنی

بیشتر بخوانید:

میکرو کنترلر (Microcontroller) چیست و کاربرد آن در کجاست ؟... میکرو کنترلر (Microcontoller) ، ریز پردازنده یا ریز کنترل کننده یک سیستم خودگردان و دارای ابزار های داخلی (مانند حافظه و پردازنده ، مبدل آنالوگ به دیج...

درباره عاطفه اسدزاده

عاطفه اسدزاده
عاطفه اسدزاده،یکی از نویسندگان وبسایت ساختنی است.

پیشنهاد می کنیم

آموزش ساخت پروگرامر ISP برای میکروکنترلرهای ATmega32

میکروکنترلرهای ATmega32 از سه روش برنامه ریزی پشتیبانی می‌کنند: برنامه ریزی موازی ،برنامه ریزی در …

پاسخ دهید