سلام امیدوارم حالتون خوب باشه. در این مقاله قصد داریم شما را با جزئیات مربوط به تراشه میکروکنترلر PIC18F4520 آشنا کنیم. این تراشه یک میکروکنترلر 8 بیتی PIC است که توسط Microchip معرفی شده است و عمدتاً در اتوماسیون و کاربردهای امبدد استفاده می شود. این دستگاه دارای یک پردازنده فلاش پیشرفته و فناوری نانو وات است که به آن کمک می کند تا حداقل انرژی را با توانایی انجام تعدادی عملکرد روی یک تراشه کوچک مصرف کند. یک ماژول ADC ده(10) بیتی به تراشه اضافه شده است که آن را با دستگاه های دیگر سازگار می کند و سیگنال آنالوگ را به عنوان ورودی می پذیرد و آن را به دیجیتال تبدیل می کند. این ماژول میکروکنترلر در مقایسه با سایر کنترلرهای موجود در جامعه PIC فضای حافظه کمی کمتری دارد و با طرح 40 پین (PDIP) عرضه می شود. PDIP بیشتر برای توسعه پروژههای دانشجویی استفاده میشود. در این آموزش، همه چیز مربوط به PIC18F4520، پایه بندی، ویژگیها، بلوک دیاگرام داخلی آن و برنامههای کاربردی آن را پوشش میدهیم.
مقدمه ای بر PIC18F4520
PIC18F4520 یک میکروکنترلر PIC هشت (8) بیتی است که با پردازنده فلاش پیشرفته و فناوری نانو وات عرضه می شود. این تراشه در سه بسته بندی مختلف به نامهای PDIP، QFN و،TQFP موجود است. PDIP با طرح 40 پایه (بیشتر استفاده می شود) در حالی که دو مورد دیگر در بسته بندی 44 پین عرضه می شوند.
حجم حافظه برنامه 32 کیلوبایت است که برای ذخیره تعداد دستورات روی یک تراشه استفاده می شود. در حالی که RAM 1536 بایت است و EEPROM با فضای حافظه در حدود 256 بایت عرضه می شود.
13 کانالADC ده(10) بیتی روی برد تعبیه شده است که عمدتاً برای تبدیل سیگنال آنالوگ به دیجیتال استفاده می شود. و این مبدل 10 بیتی نقش حیاتی برای حسگرهای رابط ایفا می کند، بطوریکه مقادیر سیگنال آنها را به شکل آنالوگ دریافت می کند و آنها را به دیجیتال تبدیل می کند. همچنین دارای 2 مقایسه کننده است و حافظه EEPROM را می توان در حدود 1,000,000 و حافظه برنامه را 100,000 پاک کرد و مجدد کد را نوشت.
این تراشه از ارتباط EUSART، ارتباط سه سیمه SPI و ارتباط دوسیمه I2C پشتیبانی می کند و دارای حجم حافظه بیشتری است و از توابعی همچون تایمر سگ نگهبان، مد خواب، مد ریست در هنگام روشن شدن و ریست در هنگام کاهش ولتاژ از حد آستانه پشتیبانی می کند.
نوسان ساز کریستالی تا حداکثر مقدار 40 مگاهرتز را می توان برای تولید پالس های ساعت برای همگام سازی عملیات داخلی استفاده کرد.
- توصیف پایه های PIC18F4520
پایه بندی هر قطعه برای ایجاد قالب بندی آن بسیار مفید است، در حالی که توضیحات پایه یک نمای کلی از آنچه که هر پین قادر به انجام آن است به شما میدهد.
پایه بندی
شکل زیر پایه بندی PIC18F4520 را نشان می دهد.
توضیحات پایه ها
جدول زیر شرح هر پایه و عملکرد اصلی مربوط به هر پایه را نشان می دهد.
Pin# | Pin Name | Pin Description |
2 | RA0/AN0 RA0 AN0 | Digital I/O Pin Analog Input 0 Pin |
3 | RA1/AN1 RA1 AN1 | Digital I/O Pin Analog Input 1 Pin |
4 | RA2/AN/VREF- RA2 AN2 VREF- | Digital I/O Pin Analog Input 2 Pin ADC Reference Input Voltage (low) |
5 | RA3/AN/VREF+ RA3 AN3 VREF+ | Digital I/O Pin Analog Input 3 Pin ADC Reference Input Voltage (high) |
6 | RA4/T0CKI/C1OUT RA4 T0CKI C1OUT | Digital I/O Pin External clock input for Timer0 Output Comparator 1 |
7 | RA5/AN4/SS/HLVDIN/C2OUT RA5 AN4 SS HLVDIN C2OUT | Digital I/O Pin Analog Input 4 Pin Slave Select input for SPI (High, Low) Detect Input for Low Voltage Output Comparator 2 |
33 | RB0/INT0/FLT0/AN12 RB0 INT0 FLT0 AN12 | PORTB can be programmed with software Digital I/O Pin External Interrupt 0 Fault Input for Enhanced CCP1 Analog Input |
34 | RB1/INT1/AN10 RB1 INT1 AN10 | Digital I/O Pin External Interrupt 1 Analog input 10 |
35 | RB2/INT2/AN8 RB2 INT2 AN8 | Digital I/O Pin External Interrupt 2 Analog input 8 |
36 | RB3/CCP2 RB3 AN9 CCP2 | Digital I/O Pin Analog input 9 Output for Compare2 and PWM2, and Input for Capture2 |
37 | RB4/KBI0/AN11 RB4 KBI0 AN11 | Digital I/O Pin Interrupt-on-change pin Analog input 11 |
38 | RB5/KBI1/PGM RB5 KBI1 PGM | Digital I/O Pin Interrupt-on-change pin ICSP programming enable pin for low voltage |
39 | RB6/KBI2/PGC RB6 KBI2 PGC | Digital I/O Pin Interrupt-on-change pin ICSP programming clock and In-Circuit Debugger pin |
40 | RB7/KBI3/PGD RB7 KBI3 PGD | Digital I/O Pin Interrupt-on-change pin ICSP programming data and In-Circuit Debugger pin |
15 | RC0/T1OSO/T13CKI RC0 T1OSO T13CKI | Digital I/O Pin Oscillator output for Timer1 External clock input for Timer1/Timer3 |
16 | RC1/T1OSI/CCP2 RC1 T1OSI CCP2 | Digital I/O Pin Oscillator input for Timer1 Output for Compare2 and PWM2, Input for Capture2 |
17 | RC2/CCP1/P1A RC2 CCP1 P1A | Digital I/O Pin Output for Compare1 and PWM1, Input for Capture1 Enhanced CCP1 Output |
18 | RC3/SCK/SCL RC3 SCK SCL | Digital I/O Pin SPI Module Synchronous serial clock input/output I2C Module Synchronous serial clock input/output |
23 | RC4/SDI/SDA RC4 SDI SDA | Digital I/O Pin SPI Data-In Pin I2C Data I/O Pin |
24 | RC5/SDO RC5 SDO | Digital I/O Pin SPI Data-Out Pin |
25 | RC6/TX/CK RC6 TX CK | Digital I/O Pin Asynchronous Transmit (USART) Synchronous Clock (USART) |
26 | RC7/RX/DT RC7 RX DT | Digital I/O Pin Asynchronous Receive (USART) Synchronous Data (USART) |
19 | RD0/PSP0 | Digital I/O Pin Parallel Slave Port (PSP) for D0 with TTL input buffers |
20 | RD1/PSP1 | Digital I/O Pin Parallel Slave Port for D1 with TTL input buffers |
21 | RD2/PSP2 | Digital I/O Pin Parallel Slave Port for D2 with TTL input buffers |
22 | RD3/PSP3 | Digital I/O Pin Parallel Slave Port for D3 with TTL input buffers |
27 | RD4/PSP4 | Digital I/O Pin Parallel Slave Port for D4 with TTL input buffers |
28 | RD5/PSP5 | Digital I/O Pin Parallel Slave Port for D5 with TTL input buffers |
29 | RD6/PSP6 | Digital I/O Pin Parallel Slave Port for D6 with TTL input buffers |
30 | RD7/PSP7 | Digital I/O Pin Parallel Slave Port for D7 with TTL input buffers |
8 | RE0/RD/AN5 RE0 RD AN5 | Digital I/O Pin PSP Read Control Analog input 5 Pin |
9 | RE1/WR/AN6 RE1 WR AN6 | Digital I/O Pin PSP Write Control Analog input 6 Pin |
10 | RE2/CS/AN7 RE2 CS AN7 | Digital I/O Pin PSP Chip Select Control Analog input 7 Pin |
1 | MCLR/VPP MCLR VPP | ICSP Programming Enable Pin Master Clear Active Low Reset Pin |
13 | OSC1/CLKI OSC1 CLKI | Crystal Oscillator Input Pin |
14 | OSC2/CLKO/RA6 OSC2 CLKO RA6 | Crystal Oscillator Output Pin |
12,31 | VSS | Ground pin |
11,32 | VDD | Voltage pin |
2. ویژگی های PIC18F4520
ویژگیهای هر تراشه نقش مهمی ایفا میکند تا بتوانید مرتبط ترین ماژول PIC را برای پروژه خود انتخاب کنید. این ویژگی ها برای ماژول های مختلف موجود در بازار متفاوت است. قبل از شروع کار بر روی پروژه، مطمئن شوید که ویژگی های قطعه با نیازهای پروژه شما و ماهیت خروجی نهایی سازگار است و مطابقت دارد. جدول زیر ویژگی کامل PIC18F4520 را نشان می دهد.
PIC18F4520 Features | |
No. of Pins | 40 |
CPU | 8 بیت PIC |
Operating Voltage | 2 تا 5.5 ولت |
Program Memory | 32K |
Program Memory (Instructions) | 16384 |
RAM | 1536 Bytes |
EEPROM | 256 Bytes |
ADC Number of Channels | 10 تا 13 بیت |
I/O Ports (5) I/O Pins | A,B,C,D,E 36 |
Packages | 40-pin PDIP 44-pin QFN 44-pin TQFP |
External Oscillator | حداکثر 40 مگاهرتز |
Timer (4) | 3 تا 16 بیتی و 1 8 بیتی |
USART Protocol | 1 |
I2C Protocol | بلی |
SPI Protocol | بلی |
Brown-out Reset | بلی |
Watchdog Timer | بلی |
Comparators | 2 |
Master Synchronous Serial Port (MSSP) module | 1 |
Capture/Compare/PWM | 16bit/16bit/10bit |
Power Saving Sleep Mode | بلی |
Selectable Oscillator Option | بلی |
Operating High-current sink/source Each pin | 25mA |
Programmable High/Low-Voltage Detect | بلی |
Oscillator Start-up Timer | بلی |
3. واحد های مختلف PIC18F4520
تعدادی واحد مرتبط با این ماژول PIC وجود دارد. در زیر واحدهای اصلی PIC18F4520 آورده شده است.
تایمر
PIC18F4520 با 3 تایمر 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 به ریست های داخلی وابسته نیست.
تایمر سگ نگهبان
تراشه دارای یک تایمر نگهبان داخلی است که در صورت گیرکردن برنامه در حلقه بی نهایت به ماژول در بازنشانی مجدد کمک می کند. این تایمر باید پس از هر 3 دستورالعمل به مقدار اولیه بازنشانی شود تا از صفر شدن آن جلوگیری شود. تایمر نگهبان عمدتاً یک تایمر شمارش معکوس است که از 1000 شروع می شود و در نهایت به صفر می رسد.
USART
این کنترل کننده دارای ماژول USART است که مخفف گیرنده و فرستنده همزمان و ناهمزمان جهانی است و عمدتاً برای تنظیم ارتباط سریال با دستگاه های خارجی استفاده می شود. دو بخش از این تراشه به نامهای TX و RX وجود دارد که Tx به عنوان عنصر ارسال کننده شناخته میشود که برای انتقال دادههای سریال استفاده میشود و Rx به عنوان مؤلفه گیرنده شناخته میشود که برای دریافت دادههای سریال در دستگاههای متصل استفاده میشود.
4. کامپایلر PIC
کامپایلر MPLAB C18. یک کامپایلر استاندارد است که برای کامپایل کردن کد در کنترلر استفاده می شود. شما می توانید این کامپایلر را به صورت آنلاین از سایت رسمی میکروچیپ دریافت کنید.
این 3 کامپایلر برتر PIC C گزینههای زیادی برای انتخاب در اختیار شما قرار میدهند، اما MikroC Pro For PIC عمدتاً برای این منظور استفاده میشود، هنوز هم بستگی به نیازها و نیازهای شما دارد.
کدی که در کامپایلر می نویسیم یک فایل هگز تولید می کند که سپس به میکروکنترلر منتقل می شود تا دستورات مورد نظر را فراخوانی و اجرا کند.
Burner و Compiler دو چیز متفاوت هستند که Burner برای رایت برنامه مورد نیاز در کنترلر و کامپایلر برای نوشتن برنامه برای کنترلر استفاده می شود. PICKit3یک برنر استاندارد است که برای کنترلر PIC استفاده می شود.
برنرهای دیگری نیز در بازار موجود است اما PICKit3 بیشتر مورد استفاده قرار می گیرد و از نظر کارایی از برنهای دیگر جلوتر است.
5. چیدمان و کار حافظه PIC18F4520
تا اینجا در خصوص پایه بندی ، توضیحات پایه ها، ویژگیها و کامپایلر مورد استفاده برای کنترلر را توصیف کردیم. در این بخش به چیدمان حافظه می پردازیم که نقش حیاتی در اجرای کد دارد. حافظه تراشه تعدادی دستورالعمل را ذخیره می کند که می توان آنها را به سه نوع اصلی تقسیم کرد: حافظه برنامه (ROM) حافظه RAM (حافظه داده) حافظه EEPROM (حافظه داده) اکنون هر حافظه را یکی یکی بحث می کنیم و ویژگی های اصلی را توصیف می کنیم.
حافظه برنامه
حافظه برنامه همچنین به عنوان ROM کنترلر شناخته می شود که اطلاعات را به طور دائم ذخیره می کند و دارای فضای حافظه در حدود 32K بایت است.
این حافظه به منبع تغذیه بستگی ندارد و با قابلیت حفظ اطلاعات در صورت عدم وجود منبع تغذیه همراه است.
حافظه EEPROM
EEPROM بخشی از حافظه داده است و برنامه های در حال اجرا را با یک استثنا به طور دائم ذخیره می کند، یعنی این حافظه به طور غیرمستقیم برنامه ریزی می شود، برخلاف حافظه برنامه که مستقیماً برنامه ریزی می شود. EEPROM حاوی فضای حافظه در حدود 256 بایت است و می تواند توسط چندین رجیستر کنترل قابل دسترسی و آدرس دهی باشد.
حافظه داده RAM
حافظه رم که به عنوان حافظه فرار نیز شناخته می شود، برنامه را به طور موقت ذخیره می کند و پس از قطع منبع تغذیه، برنامه ذخیره شده را حذف می کند. این حافظه به دو بخش اصلی به نامهای رجیسترهای همه منظوره (GPR) رجیسترهای عملکرد ویژه (SFR) طبقهبندی میشود. این حافظه ماهیت فرار دارد زیرا برنامه را به طور موقت ذخیره میکند و وابسته به برق است، یعنی پس از خاموش شدن منبع تغذیه دستورالعملهای ذخیره شده در رم حذف خواهد شد رجیسترهای حافظه RAM مکانهای نگهداری دادهها هستند که میتوانند دستورالعملها، آدرسهای ذخیرهسازی و هر نوع دادهای از یک کاراکتر جداگانه تا دنباله بیت را در خود نگه دارند. حافظه داده را می توان به عنوان RAM استاتیک استفاده کرد که در آن هر ثبات دارای یک آدرس 12 بیتی است. این حافظه در مجموع از 16 بانک تشکیل شده است و هر بانک دارای فضای حافظه حدود 256 بایت است. رجیسترهای SRF عمدتاً برای مدیریت و کنترل ماژول های لوازم جانبی استفاده می شوند.
در زیر رجیسترهای اصلی موجود در حافظه رم آورده شده است.
رجیستر STATUS . این رجیستر عمدتاً برای سوئیچ بین بانک های ذکر شده استفاده می شود. تنظیم بیت پنجم این ثبات عملکرد بانک 1 را نشان می دهد در حالی که تنظیم مجدد آن بانک 0 را آدرس می دهد.
رجیستر TRISA. این ثبات برای پیکربندی PORTA به عنوان ورودی یا خروجی استفاده می شود. مقدار 0 آن را به عنوان ورودی توصیف می کند و مقدار 1 خروجی را نشان می دهد.
رجیستر TRISB. این ثبات مشابه TRISA است و برای پیکربندی پین ها به عنوان ورودی یا خروجی برای PORTB استفاده می شود.
رجیستر W. این رجیستر با هیچ رجیستری در بانک های گفته شده مرتبط نیست و فقط با برنامه آدرس دهی می شود. این رجیستر یک رجیستر در ناحیه GPR است در حالی که همه رجیسترهای دیگر که در بالا توضیح داده شد SFR هستند. توجه به این نکته ضروری است که مقادیر مورد نیاز در رجیستر W نوشته شده و قبل از نوشتن در PORTA یا PORTB به رجیستر هدف منتقل می شوند.
.
6. بلوک دیاگرام PIC18F4520
بلوک دیاگرام معماری داخلی به شما کمک می کند تا عملکردهای اصلی کنترلر و نحوه کار، ارتباط و اتصال آنها در داخل بدنه کنترلر را درک کنید. شکل زیر بلوک دیاگرام PIC18F4520 را نشان می دهد.
PIC18F4520 دارای پنج پورت است که هر پورت دارای 8 پین است به جز پورت E که دارای 4 پین است که شامل MCLR نیز می شود.
این تراشه را می توان با استفاده از 10 حالت مختلف نوسان ساز پیکربندی کرد که در آن مقادیر خازن متفاوتی برای تولید عملکرد نوسانگر قابل قبول مورد نیاز است. کاربر باید عملکرد نوسانگر را با VDD و محدوده دمایی مناسب برای پروژه مورد نیاز آزمایش کند.
7. پروژه ها و کاربردهای PIC18F4520
پروژه های دانشجویی برای کنترل سنسور و موتور
GPS و سیستم های امنیتی
مورد استفاده در اتوماسیون خانگی و صنعتی
نمونه سازی مدارهای سفارشی
ارتباط سریال
پروژه های گرمایش مرکزی
تجهیزات پزشکی
دیتالاگر دما
8. چرا از میکروکنترلرهای PIC استفاده کنید؟
کنترلکنندههای PIC با هدف ارائه آسان ماژول و پیکربندی آسان رابط معرفی شدند.
این کنترلرها دارای لوازم جانبی داخلی با تعدادی عملکرد مرتبط با هر پین هستند که شما را از خرید قطعات اضافی رها می کند و کل پروژه را از نظر هزینه ارزان می کند که فضای کمتری را پوشش می دهد و به نظر می رسد وزن کمی هم داشته باشد.
نیازی به اضافه کردن ماژول ADC اضافی برای تبدیل مقادیر آنالوگ به مقادیر دیجیتال نیست، زیرا ماژول ADC داخلی که در تراشه کوچک گنجانده شده است بهترین کار را برای اتصال سنسورهای مختلف روی برد دارد.
کامپایلر و پروگرامر برای کنترلرها به راحتی در بازار موجود است. انجمن های زیادی در سایت میکروچیپ در دسترس است که در آن به سوالات شما پاسخ داده می شود.
دیدگاه خود را بنویسید