آموزش PIC قسمت ششم: پیکره‌بندی میکروکنترلر PIC16F877A

آموزش PIC قسمت ششم: پیکره‌بندی میکروکنترلر PIC16F877A

آموزش PIC قسمت ششم: پیکره‌بندی میکروکنترلر PIC16F877A
آموزش PIC قسمت ششم: پیکره‌بندی میکروکنترلر PIC16F877A

در قسمت پنجم آموزش های PIC درباره سازماندهی حافظه در میکروکنترلرهای PIC صحبت کردیم و در این قسمت قصد داریم تنظیم بیت های پیکره‌بندی میکروکنترلر PIC16F877A را به شما عزیزان جویای علم آموزش دهیم پس با سیسوگ همراه باشید.

بیت‌ های پیکره‌بندی

برخی بیت‌های خاص که فقط در زمان برنامه‌نویسی قابل اصلاح هستند بیت‌های پیکره‌بندی نامیده می‌شوند. بیت های پیکره‌بندی برخی از حالت‌های عملکرد میکروکنترلر را مشخص می‌کنند. این بیت‌ها در هنگام ریست “خوانده می‌شوند” و ویژگی‌های سخت‌افزاری میکروکنترلر را فعال یا غیرفعال می‌کنند.

 

تنظیم بیت های پیکره‌بندی PIC16F877A

کاربران MikroC می‌توانند با ویرایش تنظیمات پروژه، این بیت‌ های پیکره‌بندی را ویرایش کنند:

Project >> Edit Project

کاربران MPLAB می‌توانند با استفاده از ابزار Configuration Bits این بیت‌ های پیکره‌بندی را ویرایش کنند.

Windows>> PIC Memory Views>> Configuration Bits

 

configuration-bits

 

اکنون تنظیمات باز خواهند شد:

نام MCU را به P16F877A تغییر دهید.

 

بیت های پیکره‌بندی

 

فرکانس ساعت MCU تا 8.00 مگاهرتز

ویژگی های کنترل شده توسط بیت های پیکره‌بندی عبارتند از:

  1. Clock Source
  2. Watchdog Timer
  3. Power-up Timer
  4. Brown-out Reset
  5. Low-Voltage (Single-Supply)
  6. Data EEPROM Memory Code Protection
  7. Flash Program Memory Write
  8. In-Circuit Debugger Mode
  9. Flash Memory Code Protection

 

اسیلاتور

یک شکل موج تناوبی ونوسانی (موج سینوسی یا موج مربعی) ایجاد می‌کند. اسیلاتورها به‌طور عمده DC را از منبع تغذیه به سیگنال AC تبدیل می‌کنند. اسیلاتور با فرکانس مشخصی کار می‌کند که معمولاً توسط کریستال کوارتز تعیین می‌شود. وقتی یک جریان مستقیم به کریستال اعمال می‌شود، با فرکانسی که به ضخامت آن بستگی دارد و به روش برش آن از سنگ معدنی اصلی، ارتعاش می‌کند.

برای PIC16F877A، اسیلاتورها دارای 4 حالت مختلف هستند:

 

بیت های پیکره‌بندی

 

حالت‌های کلاک LP،XT و HS برای اتصال به میکروکنترلر نیاز به کریستال خارجی یا رزوناتور دارند. حالت کلاک RC برای تنظیم فرکانس اسیلاتور به یک مقاومت و خازن خارجی نیاز دارد. هر حالت برای یک دامنه فرکانس متفاوت بهینه‌شده است. اینکه کدام حالت انتخاب شود، همه به بیت های پیکره‌بندی خروجی دلخواه بستگی دارد.

 

LP:

  • کمترین میزان بهره را برای تقویت‌کننده داخلی اینورتر انتخاب می‌کند.
  • کمترین میزان مصرف جریان از سه حالت.
  • برای درایو با کریستال 32.768 کیلوهرتز طراحی‌شده است.

 

XT:

  • بهره متوسط را برای تقویت‌کننده داخلی اینورتر انتخاب می‌کند.
  • معمولاً برای کریستال‌ها در محدوده 4 مگاهرتز یا کمتر انتخاب می‌شود.

 

HS:

  • بیشترین تنظیمات افزایش را برای تقویت‌کننده داخلی اینورتر انتخاب می‌کند.
  • بالاترین حالت جریان
  • به‌طورمعمول با کریستال‌های بالاتر از محدوده 4 مگاهرتز استفاده می‌شود.

 

عملکرد:

اگر فرکانس موردنظر را به‌عنوان‌مثال 8MHz انتخاب کنیم، اسیلاتور باید HS باشد. کریستال به پایه‌های میکروکنترلر OSC1 و OSC2 متصل است. همچنین به خازن‌هایی در هر پایه در بازه 15pf-30pf نیاز دارد.

 

تایمر WATCHDOG

می‌توانیم با شرایطی روبرو شویم که میکروکنترلر به‌درستی کار نمی‌کند. در این حالت، ما بیشتر میکروکنترلر را با دکمه ریست، ریست می‌کنیم. اما هر بار استفاده از دکمه ریست برای حل آن خوب نیست. برای غلبه بر این وضعیت، ما از یک تایمر Watchdog استفاده می‌کنیم. تایمر Watchdog یک تایمر الکترونیکی است که در میکروکنترلرها جاسازی‌شده است و برای شناسایی و بازیابی مشکلات فوق استفاده می‌شود. این‌یک شمارنده ساده است که برای راه‌اندازی مجدد واحد میکروکنترلر پالس می‌دهد. خروجی تایمر Watchdog مستقیماً به سیگنال ریست میکروکنترلر داده می‌شود. درواقع یک شمارنده فری رانی است که برنامه ما در هر بار اجرای صحیح باید درون شمارنده صفر بنویسد. اگر برنامه گیر کند، صفر نوشته نمی‌شود و شمارنده با دستیابی به حداکثر مقدار، میکروکنترلر را ریست می‌کند.

 

عملکرد:

تایمر Watchdog (WDT)، در صورت فعال بودن، پردازشگر به‌طور خودکار بازنشانی می‌شود.

1 = WDT فعال 
0 = WDT غیرفعال 

 

تایمر POWER-UP

هنگام ریست، راه‌اندازی سریع مجدد میکروکنترلر می‌تواند مشکلاتی ایجاد کند. برای جلوگیری از چنین شرایطی، تأخیر راه‌اندازی ثابت 72 میلی‌ثانیه توسط این تایمر فراهم‌شده است. این تایمر میکروکنترلر PIC را به تأخیر می‌اندازد تا ولتاژ کار VDD به مقدار کامل برسد. بنابراین، این روند تضمین می‌کند که ولتاژ منبع تغذیه قبل از شروع کلاک پایدار است.

 

عملکرد:

تایمر Power-up (PWT)، در صورت فعال بودن، تأخیر را زمانی که دستگاه در حالت ریست قرار دارد ایجاد می‌کند.

1 = PWT غیرفعال
0 = PWT فعال

 

BROWN-OUT RESET (BOR)

با افت ولتاژ یا ولتاژ کمتر از ولتاژ آستانه، ممکن است حافظه RAM خراب شود و دستگاه به‌درستی کار نکند، این حالت Brown out نامیده می‌شود.

 

عملکرد:

زمانی که Brown-out Reset فعال است، اگر ولتاژ تغذیه VDD برای زمان طولانی بیشتر از TBOR به زیر VBOR برسد، دستگاه ریست می‌شود. تا زمانی که VDD از VBOR بالاتر نرود، دستگاه در تنظیم مجدد Brown-out باقی می‌ماند.

VBOR حدود 4 ولت
TBOR حدود 100 میکروثانیه
1= فعال BOR
0= غیرفعال BOR

 

LOW-VOLTAGE (SINGLE-SUPPLY)

این میکروکنترلرها می‌توانند به‌صورت سریال برنامه‌ریزی شوند. این به مشتریان امکان می‌دهد میکروکنترلر را قبل از ارسال محصول برنامه‌ریزی کنند. هنگام استفاده از ICSP (برنامه‌ریزی سریال در مدار)، باید با ولتاژ 4.5 ولت تا 5.5 ولت تأمین شود. (معمولاً ولتاژهای بالاتر = 8 ولت)

بیت پیکره‌بندی LVP (برنامه‌ریزی ولتاژ پایین)، برنامه‌نویسی ICSP با ولتاژ پایین را امکان‌پذیر می‌کند. این به میکروکنترلر اجازه می‌دهد تا با استفاده از منبع VDD در محدوده ولتاژ کار، ICSP را برنامه‌ریزی کند. بنابراین به‌طور خلاصه می‌توان گفت که VDD نیازی به ولتاژ بالا ندارد.

عملکرد:

در این حالت، پین RB3 / PGM به عملکرد برنامه‌نویسی اختصاص‌یافته است. در حین برنامه‌نویسی، VDD روی پین MCLR اعمال می‌شود. برای ورود به حالت برنامه‌نویسی، VDD باید روی RB3 / PGM اعمال شود به‌شرط تنظیم بیت LVP. به‌طور پیش‌فرض از کارخانه بیت LVP روی 1 تنظیم‌شده است. اگر از حالت برنامه‌نویسی ولتاژ پایین استفاده نشود، بیت LVP می‌تواند با ‘0’ برنامه‌ریزی شود.

1 = LVP فعال 
0 = LVP غیرفعال

 

DATA EEPROM MEMORY CODE PROTECTION BIT (CPD)

PIC 16F877A دارای داده EEPROM داخلی است. دو بیت، CPD و WRTD، از کل داده‌های EEPROM محافظت می‌کنند. خواندن و نوشتن اطلاعات خارجی توسط EEPROM توسط CPD کنترل می‌شود. CPD Configuration Bit از این منطقه از حافظه در برابر خواندن و ضبط‌های خارجی محافظت می‌کند.

عمل:

1 = محافظت از داده EEPROM خاموش (غیرفعال)
0 = داده EEPROM با کد محافظت‌شده (فعال)

 

FLASH PROGRAM MEMORY WRITE

این بیت‌ها با استفاده از EECON امکان نوشتن در حافظه فلش را فراهم می‌کنند. ما می‌توانیم توسط سیستم‌عامل دستگاه مستقیماً داده‌ها را در حافظه Flash بنویسیم. به‌سادگی، می‌توان گفت که بخش‌های موردنظر ما می‌توانند برای ضبط داده‌ها یا برای برنامه‌نویسی سریال در مدار انتخاب شوند.

 

IN-CIRCUIT DEBUGGER MODE

روند اشکال‌زدایی امکان اجرا و پیگیری کد را فراهم می‌کند، این فرآیند گام‌به‌گام متغیرها و اجرا را می‌خواند. از پین‌های RB6 و RB7 می‌توان به‌عنوان پایه‌های رفع اشکال در مدار استفاده کرد.

عملکرد:

1 = اشکال‌زدایی در مدار غیرفعال است
0 = اشکال‌زدایی در مدار فعال است (RB6 و RB7 به دیباگر اختصاص داده‌شده است)

وقتی فعال است >> فرایند اشکال‌زدایی
وقتی غیرفعال است >> اجازه می‌دهد تا به‌عنوان ورودی و خروجی دیجیتال استفاده شود

 

FLASH MEMORY CODE PROTECTION

اگر برنامه در حافظه فلش ذخیره‌شده باشد، این بیت وظیفه فعال کردن محافظت از کد را بر عهده دارد.

عملکرد:

پس از فعال شدن، حافظه Flash (حافظه برنامه) کپی و محافظت می‌شود. پس نمی‌توان آن را خواند.

1 = کد محافظت خاموش (CP غیرفعال)
0 = همه کد حافظه برنامه محافظت‌شده است (CP فعال است)

منبع

0 نفر

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

توجه

Sisoog Os
Sisoog Os

کارآفرین, تولید کننده, طراح الکترونیک و ....

دیدگاه ها

0 دیدگاه

پر بحث ترین ها

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

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

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

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

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

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

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

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

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

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

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

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

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

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

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

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

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

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

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

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

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

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

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

Zeus ‌ Zeus ‌
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

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

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

Mahdi.h   Mahdi.h  
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

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

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

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

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