سلام امیدوارم حالتون خوب باشه. در این مقاله قصد داریم شما را با جزئیات مربوط به تراشه میکروکنترلر PIC12F675 آشنا کنیم. این تراشه یک میکروکنترلر 8 بیتی PIC است که توسط Microchip معرفی شده است و عمدتاً در اتوماسیون و کاربردهای امبدد استفاده می شود. این دستگاه دارای یک پردازنده فلاش پیشرفته و فناوری نانو وات است که به آن کمک می کند تا حداقل انرژی را با توانایی انجام تعدادی عملکرد روی یک تراشه کوچک مصرف کند. یک ماژول ADC ده(10) بیتی به تراشه اضافه شده است که آن را با دستگاه های دیگر سازگار می کند و سیگنال آنالوگ را به عنوان ورودی می پذیرد و آن را به دیجیتال تبدیل می کند. این ماژول میکروکنترلر در مقایسه با سایر کنترلرهای موجود در جامعه PIC فضای حافظه کمی کمتری دارد و با طرح 8 پین (PDIP) عرضه می شود. اگرچه تراشه های دیگری با تعداد پایه های بیشتر مثل 20 و یا 40 پایه با حافظه و تعداد دستورالعمل بیشتر نیز موجود است (به مقالات PIC16F887 و PIC16F676 مراجعه کنید)، PDIP بیشتر برای توسعه پروژههای دانشجویی استفاده میشود. در این آموزش، همه چیز مربوط به PIC12F675، پایه بندی، ویژگیها، بلوک دیاگرام داخلی آن و برنامههای کاربردی آن را پوشش میدهیم.
مقدمه ای بر PIC12F675
PIC12F675 یک میکروکنترلر PIC 8بیتی است که با پردازنده فلاش پیشرفته و فناوری نانو وات عرضه می شود. این تراشه در بسته بندی PDIP موجود است. PDIP با طرح 8 پایه (بیشتر استفاده می شود) عرضه می شود.
حجم حافظه برنامه 1.7 کیلوبایت است که برای ذخیره تعداد دستورات روی یک تراشه استفاده می شود. در حالی که RAM 64 بایت است و EEPROM با فضای حافظه در حدود 128 بایت عرضه می شود.
4 کانالADC ده (10) بیتی روی برد تعبیه شده است که عمدتاً برای تبدیل سیگنال آنالوگ به دیجیتال استفاده می شود. و این مبدل 10 بیتی نقش حیاتی برای حسگرهای رابط ایفا می کند، بطوریکه مقادیر سیگنال آنها را به شکل آنالوگ دریافت می کند و آنها را به دیجیتال تبدیل می کند.
این تراشه از ارتباط USART، SPI و I2C پشتیبانی نمی کند و دارای حجم حافظه کمتری است اما همچنان از توابعی همچون تایمر سگ نگهبان، مد خواب، مد ریست در هنگام روشن شدن و ریست در هنگام کاهش ولتاژ از حد آستانه پشتیبانی می کند.
نوسان ساز کریستالی تا حداکثر مقدار 20 مگاهرتز را می توان برای تولید پالس های ساعت برای همگام سازی عملیات داخلی استفاده کرد.
- توصیف پایه های PIC12F675
پایه بندی هر قطعه برای ایجاد قالب بندی آن بسیار مفید است، در حالی که توضیحات پایه یک نمای کلی از آنچه که هر پین قادر به انجام آن است به شما میدهد.
پایه بندی
شکل زیر پایه بندی PIC12F675 را نشان می دهد.
VDD و VSS به ترتیب پایه های تغذیه ولتاژ و پایه زمین هستند. پین 4 یک پین اصلی ریست است که برای تنظیم مجدد کنترلر استفاده می شود.
در حالی که پایه های 2 و 3 به یک نوسان ساز کریستالی متصل می شوند که کلاک پالس ها را برای کنترل کننده ایجاد می کند.
توضیحات پایه ها
جدول زیر شرح هر پایه و عملکرد اصلی مربوط به هر پایه را نشان می دهد.
Pin# | Pin Name | Pin Description |
7 | GP0 AN0 CIN+ ICSPDAT | I/O Bidirectional pin Analog pin channel 0 Comparator In-Circuit Serial Programming |
6 | GP1 AN1 CIN- VREF ICSPCLK | I/O Bidirectional pin Analog pin channel 1 Comparator External Voltage Reference In-Circuit Serial Programming Clock |
5 | GP2 AN2 T0CKI INT COUT | I/O Bidirectional pin Analog pin channel 2 Timer Interrupt Comparator |
4 | GP3 MCLR VPP | I/O Bidirectional pin Master Clear Reset Programming Voltage Input |
3 | GP4 AN3 T1G OSC2 CLKOUT | I/O Bidirectional pin Analog pin channel 3 Timer Oscillator Output Comparator |
2 | GP5 T1CKI OSC1 CLKIN | I/O Bidirectional pin Timer Oscillator Input RC oscillator connection |
1 | VDD | Voltage Supply Pin |
8 | VSS | Ground Pin |
2. ویژگی های PIC12F675
ویژگیهای هر تراشه نقش مهمی ایفا میکند تا بتوانید مرتبط ترین ماژول PIC را برای پروژه خود انتخاب کنید. این ویژگی ها برای ماژول های مختلف موجود در بازار متفاوت است. قبل از شروع کار بر روی پروژه، مطمئن شوید که ویژگی های قطعه با نیازهای پروژه شما و ماهیت خروجی نهایی سازگار است و مطابقت دارد. جدول زیر ویژگی کامل PIC12F675 را نشان می دهد.
PIC12F675 Features | |
No. of Pins | 8 |
CPU | RISC 8-Bit PIC |
Operating Voltage | 2 تا 5.5 ولت |
Program Memory | 1.7K |
Program Memory Type | Flash |
RAM | 64 Bytes |
EEPROM | 128 Bytes |
ADC Number of ADC Channels | 4 تا 10 بیت |
Comparator | 1 |
In-circuit serial programming | بلی |
Oscillator | حداکثر 20 مگاهرتز |
Timer (2) | 1 تایمر 8 بیتی و 1 تایمر 16 بیتی |
Oscillator Start-up Timer | بلی |
Power Up Timer | بلی |
I/O Pins | 6 |
Manufacturer | Microchip |
SPI | خیر |
I2C | خیر |
Watchdog Timer | بلی |
Brown out detect (BOD) | بلی |
Master Clear Reset | بلی |
Interrupt-on-pin Change | بلی |
Minimum Operating Temperature | 40- سانتیگراد |
Maximum Operating Temperature | 125+ سانتیگراد |
3. واحد های مختلف PIC12F675
تعدادی واحد مرتبط با این ماژول PIC وجود دارد. در زیر واحدهای اصلی PIC12F675 آورده شده است.
تایمر
PIC12F675 با یک تایمر 16 بیتی و یک تایمر 8 بیتی ارائه می شود که می توانند به دو صورت استفاده شوند، یعنی به عنوان تایمر و همچنین شمارنده. این تایمرها دارای قابلیت انتخاب کلاک پالس داخلی و خارجی هستند. توجه به این نکته مهم است که حالت تایمر در افزایش چرخه دستورالعمل نقش دارد در حالی که حالت شمارنده لبه پایین و بالا رونده هر پایه را افزایش می دهد.
تایمرهای تاخیر در راه اندازی نوسان ساز
تایمر تاخیر در راه اندازی پاور
تایمر راه اندازی نوسان ساز یک ویژگی بسیار ارزشمند است که ماژول را تا زمانی که نوسانگر کریستالی پایدار شود در حالت تنظیم مجدد نگه می دارد. به طور مشابه، یک تایمر روشن/خاموش اضافه شده است که با روشن کردن دستگاه تاخیر 72 میلیثانیه ایجاد میکند که زمان مناسبی را به منبع تغذیه میدهد تا تثبیت شود و سیگنالهای برق را به صورت مداوم ارائه دهد.
تشخیص کاهش سطح ولتاژ (BOD)
BOD که با نام BOR (Brown Out Reset) نیز شناخته می شود، یک تابع بسیار مفید است در زمانی که Vdd (تغذیه ولتاژ) به زیر ولتاژ آستانه کاهش یابد، ماژول را بازنشانی می کند.
گاهی اوقات در صورت بروز نقص در کنترلر، تنظیم مجدد دستی کنترلر بسیار دشوار است، اینجاست که BOD وارد عمل می شود.
در این حالت، محدوده های ولتاژ متعددی برای محافظت از ماژول پس از افت برق در خط تغذیه ولتاژ ارائه می شود.
مهم است که توجه داشته باشید، تایمر Power Up باید فعال باشد تا تاخیر در برگشت تراشه از عملکرد BOD ایجاد شود. BOD دارای چهار حالت عملیاتی است که با تنظیم یا پاک کردن بیت های BOREN قابل برنامه ریزی هستند. چهار حالت شامل:
BOD همیشه روشن باشد
BOD توسط نرم افزار کنترل شود
در حالت خواب، BOD خاموش باشد
BOD همیشه خاموش باشد
برنامه نویسی سریال درون مدار
برنامه نویسی سریال در مدار (ICSP) که برنامه نویسی درون سیستم (ISP) نیز نامیده می شود، یک عملکرد مفید است که در کنترلر گنجانده شده است که به شما کمک می کند تا در دستگاه نصب و چسبانده شده قابل برنامه ریزی باشد.
Master Clear Reset (MCLR)
MCLR، پایه 4 در بسته بندی PDIP، بازنشانی خارجی تراشه را فراخوانی می کند. تنظیم مجدد با پایین نگه داشتن این پایه انجام می شود. فیلتر نویز در مسیر MCLR گنجانده شده است که اجازه حذف و شناسایی پالس های باریک را می دهد در حالی که بیت پیکربندی MCLRE ورودی MCLR را غیرفعال می کند. لازم به ذکر است که این پین MCLR به ریست های داخلی وابسته نیست.
تایمر سگ نگهبان
PIC16F88 دارای یک تایمر نگهبان داخلی است که در صورت گیرکردن برنامه در حلقه بی نهایت به ماژول در بازنشانی مجدد کمک می کند. این تایمر باید پس از هر 3 دستورالعمل به مقدار اولیه بازنشانی شود تا از صفر شدن آن جلوگیری شود. تایمر نگهبان عمدتاً یک تایمر شمارش معکوس است که از 1000 شروع می شود و در نهایت به صفر می رسد.
4. کامپایلر PIC
کامپایلر MPLAB C18. یک کامپایلر استاندارد است که برای کامپایل کردن کد در کنترلر استفاده می شود. شما می توانید این کامپایلر را به صورت آنلاین از سایت رسمی میکروچیپ دریافت کنید.
این 3 کامپایلر برتر PIC C گزینههای زیادی برای انتخاب در اختیار شما قرار میدهند، اما MikroC Pro For PIC عمدتاً برای این منظور استفاده میشود، هنوز هم بستگی به نیازها و نیازهای شما دارد.
کدی که در کامپایلر می نویسیم یک فایل هگز تولید می کند که سپس به میکروکنترلر منتقل می شود تا دستورات مورد نظر را فراخوانی و اجرا کند.
Burner و Compiler دو چیز متفاوت هستند که Burner برای رایت برنامه مورد نیاز در کنترلر و کامپایلر برای نوشتن برنامه برای کنترلر استفاده می شود. PICKit3یک برنر استاندارد است که برای کنترلر PIC استفاده می شود.
برنرهای دیگری نیز در بازار موجود است اما PICKit3 بیشتر مورد استفاده قرار می گیرد و از نظر کارایی از برنهای دیگر جلوتر است.
5. چیدمان و کار حافظه PIC12F675
تا اینجا در خصوص پایه بندی ، توضیحات پایه ها، ویژگیها و کامپایلر مورد استفاده برای کنترلر را توصیف کردیم. در این بخش به چیدمان حافظه می پردازیم که نقش حیاتی در اجرای کد دارد. حافظه تراشه تعدادی دستورالعمل را ذخیره می کند که می توان آنها را به سه نوع اصلی تقسیم کرد: حافظه برنامه (ROM) حافظه RAM (حافظه داده) حافظه EEPROM (حافظه داده) اکنون هر حافظه را یکی یکی بحث می کنیم و ویژگی های اصلی را توصیف می کنیم.
حافظه برنامه
حافظه برنامه همچنین به عنوان ROM کنترلر شناخته می شود که اطلاعات را به طور دائم ذخیره می کند و دارای فضای حافظه در حدود 1.7K بایت است.
این حافظه به منبع تغذیه بستگی ندارد و با قابلیت حفظ اطلاعات در صورت عدم وجود منبع تغذیه همراه است.
این شامل یک شمارنده برنامه 13 بیتی است که می تواند فضای برنامه 8kx14 را نشان دهد که در آن بردار وقفه در 0004H قرار دارد در حالی که بردار تنظیم مجدد در 000H باقی می ماند و توسط کنترل کننده بارگذاری می شود.
اولین فضای حافظه 1k x 14 (0000h-03FFh) به صورت فیزیکی پیاده سازی شده است.
حافظه EEPROM
EEPROM بخشی از حافظه داده است و برنامه های در حال اجرا را با یک استثنا به طور دائم ذخیره می کند، یعنی این حافظه به طور غیرمستقیم برنامه ریزی می شود، برخلاف حافظه برنامه که مستقیماً برنامه ریزی می شود. EEPROM حاوی فضای حافظه در حدود 128 بایت است و می تواند توسط چندین رجیستر کنترل قابل دسترسی و آدرس دهی باشد.
حافظه داده RAM
حافظه RAMدر این میکروکنترلر 64 بایت است و داده ها را به طور موقت ذخیره می کند و پس از خاموش شدن منبع تغذیه داده ها را حذف می کند. این حافظه همچنین به عنوان حافظه فرار شناخته می شود و به دو بخش اصلی به نام های ثبت های عمومی (GPR) رجیسترهای عملکرد ویژه (SFR) طبقه بندی می شود. از داده هایی که شامل کاراکتر یا دنباله بیت فردی هستند. حافظه داده را می توان به عنوان RAM استاتیک استفاده کرد و به چندین بانک تقسیم می شود.
32 مکان اول هر بانک برای ثبت عملکردهای ویژه ای که می توانند عملکردهای جانبی را مدیریت و کنترل کنند اختصاص داده شده است و به عنوان "هسته و جانبی" طبقه بندی می شوند. در حالی که رجیسترهای همه منظوره به عنوان RAMاستاتیک پیاده سازی می شوند و در 20h-5Fh قرار دارند و در هر دو بانک نگاشت می شوند.
رجیسترهای SRF عمدتاً برای مدیریت و کنترل ماژول های لوازم جانبی استفاده می شوند. در زیر رجیسترهای اصلی موجود در حافظه رم آورده شده است. رجیستر STATUS . این رجیستر عمدتاً برای سوئیچ بین بانک های ذکر شده استفاده می شود. تنظیم بیت پنجم این ثبات عملکرد بانک 1 را نشان می دهد در حالی که تنظیم مجدد آن بانک 0 را آدرس می دهد. رجیستر TRISA. این ثبات برای پیکربندی PORTA به عنوان ورودی یا خروجی استفاده می شود. مقدار 0 آن را به عنوان ورودی توصیف می کند و مقدار 1 خروجی را نشان می دهد. رجیستر TRISB. این ثبات مشابه TRISA است و برای پیکربندی پین ها به عنوان ورودی یا خروجی برای PORTB استفاده می شود. رجیستر W. این رجیستر با هیچ رجیستری در بانک های گفته شده مرتبط نیست و فقط با برنامه آدرس دهی می شود. این رجیستر یک رجیستر در ناحیه GPR است در حالی که همه رجیسترهای دیگر که در بالا توضیح داده شد SFR هستند. توجه به این نکته ضروری است که مقادیر مورد نیاز در رجیستر W نوشته شده و قبل از نوشتن در PORTA یا PORTB به رجیستر هدف منتقل می شوند.
6. بلوک دیاگرام PIC12F675
بلوک دیاگرام معماری داخلی به شما کمک می کند تا عملکردهای اصلی کنترلر و نحوه کار، ارتباط و اتصال آنها در داخل بدنه کنترلر را درک کنید. شکل زیر بلوک دیاگرام PIC12F675 را نشان می دهد.
این ماژول PIC دارای دو پورت A و B است و هر پورت شامل 8 پین است که بیت های مرتبه بالاتر به رجیستر STATUS تعلق دارند.
در حالی که CCP1 به بیت CCPMX موجود در رجیستر Configuration Word 1 وابسته است.
7. پروژه ها و کاربردهای PIC12F675
پروژه های دانشجویی برای کنترل سنسور و موتور
سیستم های امنیتی
مورد استفاده در اتوماسیون خانگی و صنعتی
نمونه سازی مدارهای سفارشی
ارتباط سریال
پروژه های گرمایش مرکزی
تجهیزات پزشکی
8. چرا از میکروکنترلرهای PIC استفاده کنید؟
کنترلکنندههای PIC با هدف ارائه آسان ماژول و پیکربندی آسان رابط معرفی شدند.
این کنترلرها دارای لوازم جانبی داخلی با تعدادی عملکرد مرتبط با هر پین هستند که شما را از خرید قطعات اضافی رها می کند و کل پروژه را از نظر هزینه ارزان می کند که فضای کمتری را پوشش می دهد و به نظر می رسد وزن کمی هم داشته باشد.
نیازی به اضافه کردن ماژول ADC اضافی برای تبدیل مقادیر آنالوگ به مقادیر دیجیتال نیست، زیرا ماژول ADC داخلی که در تراشه کوچک گنجانده شده است بهترین کار را برای اتصال سنسورهای مختلف روی برد دارد.
کامپایلر و پروگرامر برای کنترلرها به راحتی در بازار موجود است. انجمن های زیادی در سایت میکروچیپ در دسترس است که در آن به سوالات شما پاسخ داده می شود.
دیدگاه خود را بنویسید