0% found this document useful (0 votes)
21 views43 pages

Ch3 Spring99

Uploaded by

nimahsn6
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views43 pages

Ch3 Spring99

Uploaded by

nimahsn6
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

‫‪4/24/2020‬‬

‫ريزپردازندهها و زبان اسمبلي‬

‫فصل سوم‬
‫ميكروكنترلرها و سيستمهاي تعبيهشده‬

‫محمدعلي شفيعيان‬
‫‪http://shafieian-education.ir‬‬

‫‪1‬‬

‫سيستم هاي تعبيه شده‬

‫• سيستم تعبيه شده ﺑه اين معﻨاسﺖ كه پروسسور‬


‫)پردازنده( و ساير امكانات در يك سيستم واحد ﮔﻨﺠانده‬
‫شده اند‪.‬‬

‫‪2‬‬

‫‪1‬‬
‫‪4/24/2020‬‬

‫روش هاي پياده سازي سخت افزار در سيستم هاي تعبيه شده‬

‫• استفاده از تراشه ‪ASIC‬‬


‫• استفاده از قطعات ﮔسسته‬
‫• استفاده از كامپيوترهاي صﻨعتي‬
‫• استفاده از تراشه هاي ﺑرنامه پذير از قبيل ‪ CPLD‬و‬
‫‪FPGA‬‬
‫• استفاده از پردازنده ها‬

‫‪3‬‬

‫روش هاي پياده سازي سخت افزار در سيستم هاي تعبيه شده‬

‫استفاده از تراشه ‪ASIC‬‬


‫• ‪ ASIC‬مﺨفﻒ ‪ Application Specific Integrated Circuit‬اسﺖ‪.‬‬
‫• در اين روش كليه نيازهاي سيستم در قاﻟﺐ يك مدار مﺠتمﻊ‪ ،‬توسﻂ تكﻨوﻟوژي‬
‫‪ VLSI‬و ﺑه صورت ﺑهيﻨه طراحي مي شود‪.‬‬

‫عيب‬

‫ﻓقﻂ در سيستم هايي ﺑا توﻟيد ﺑاﻻ مانﻨد‬ ‫• هزيﻨه اوﻟيه طراحي مهﻨدسي ﺑاﻻ‬
‫ﮔوشي هاي تلفن همراه يا كارﺑردهاي‬
‫نظامي كه كارآيي و قاﺑليﺖ اطميﻨان‬
‫• طي نمودن پروسه زمان ﺑر و پرهزيﻨه‬
‫اهميﺖ دارد‪ ،‬استفاده مي شود‪.‬‬ ‫طراحي تراشه در زمان ارتقاي سيستم‬

‫‪4‬‬

‫‪2‬‬
‫‪4/24/2020‬‬

‫روش هاي پياده سازي سخت افزار در سيستم هاي تعبيه شده‬

‫استفاده از قطعات ﮔسسته‬


‫• طراحي سيستم توسﻂ اﻟمان هايي مانﻨد ترانزيستورها و تراشه هايي مانﻨد‬
‫سري ‪ 74XX‬انﺠام مي شود‪.‬‬

‫عيب‬

‫• ﺑه دﻟيل تعداد اﻟمان هاي زياد مورد استفاده‪ ،‬اﺑعاد و صرف توان سيستم ﺑسيار‬
‫امروزه ﺑه ندرت از اين روش استفاده مي شود‬ ‫اﻓزايش مي ياﺑد‬

‫‪5‬‬

‫روش هاي پياده سازي سخت افزار در سيستم هاي تعبيه شده‬

‫استفاده از كامپيوترهاي صنعتي‬


‫• در ﺑرخي از كارﺑردها مانﻨد دستگاه هاي خودپرداز ‪ ATM‬مي توان از‬
‫كامپيوترهاي صﻨعتي ﺑه عﻨوان پردازنده استفاده كرد‪.‬‬

‫مزايا‬

‫• سﺨﺖ اﻓزار سيستم ﺑه صورت آماده ﺑوده و نيازي ﺑه طراحي ندارد‪.‬‬


‫• سيستم عامل هاي موجود از قبيل ‪ Linux‬و ‪ Windows CE‬كليه‬
‫سرويس هاي اصلي مورد نياز سيستم را تأمين مي كﻨد‪.‬‬
‫• مي توان از ﺑسته هاي نرم اﻓزاري متعددي ﺑراي نوشتن ﺑرنامه استفاده نمود‪.‬‬

‫‪6‬‬

‫‪3‬‬
‫‪4/24/2020‬‬

‫روش هاي پياده سازي سخت افزار در سيستم هاي تعبيه شده‬

‫استفاده از كامپيوترهاي صنعتي‬


‫معايب‬

‫• اﺑعاد ﺑزرگ و مصرف توان ﺑاﻻي سيستم ﺑاعﺚ مي شود كه در ﺑسياري از‬
‫سيستم هاي كم مصرف و قاﺑل حمل نتوان از اين روش استفاده كرد‪.‬‬
‫• سيستم عامل هاي معمول مانﻨد ويﻨدوز قاﺑليﺖ اطميﻨان ﺑاﻻيي ندارند و‬
‫نمي توان در كارﺑردهاي حساس از آن ها استفاده كرد‪.‬‬
‫• ﺑه صورت ﺑﻼدرنگ )‪ (Real Time‬عمل نمي كﻨﻨد كه همين امر‪ ،‬كارﺑرد آنها را‬
‫محدود مي كﻨد‪.‬‬

‫‪7‬‬

‫روش هاي پياده سازي سخت افزار در سيستم هاي تعبيه شده‬

‫استفاده از تراشه هاي برنامه پذير از قبيل ‪ CPLD‬و ‪FPGA‬‬


‫• اين ادوات در مقايسه ﺑا تراشه هاي ‪ ASIC‬هزيﻨه طراحي اوﻟيه كمتري دارند‪.‬‬
‫• كارد اصلي تراشه هاي ‪ FPGA‬در سيستم هاي پردازش اطﻼعات موازي و‬
‫پرسرعﺖ اسﺖ‪.‬‬
‫• از تراشه هاي ‪ CPLD‬ﺑيشتر ﺑه عﻨوان كﻨترل كﻨﻨده حاﻓظه استفاده مي شود‪.‬‬
‫عيب‬

‫كمتر ﺑه عﻨوان كﻨترل كﻨﻨده اصلي‬ ‫• مصرف توان تراشه هاي ‪ FPGA‬ﺑيش از‬
‫سيستم در ادوات تعبيه شده‬
‫استفاده مي شوند‪.‬‬ ‫ميكروكﻨترﻟرها اسﺖ‬

‫‪8‬‬

‫‪4‬‬
‫‪4/24/2020‬‬

‫روش هاي پياده سازي سخت افزار در سيستم هاي تعبيه شده‬

‫استفاده از پردازنده ها‬

‫ميكروپروسسورهاي عمومي )همه مﻨظوره(‬

‫پردازنده هاي ‪DSP‬‬


‫• ﺑا توجه ﺑه‬
‫نوع كارﺑرد‬
‫ميكروكﻨترﻟرها‬

‫‪9‬‬

‫ميكروپروسسورها‬
‫• نﺨستين ميكروپروسسور در سال ‪ ١٩٧٤‬توسﻂ شركﺖ ‪ Intel‬ﺑه ﺑازار عرضه‬
‫شد‪.‬‬
‫‪ ٨‬ﺑيتي‬ ‫‪ ١٦‬ﺑيتي‬ ‫‪ ٣٢‬ﺑيتي‬ ‫‪ ٣٢‬ﺑيتي‬ ‫‪ ٦٤‬ﺑيتي‬

‫‪8080‬‬ ‫‪8086‬‬ ‫‪80186‬‬ ‫‪80286‬‬ ‫‪80386‬‬ ‫‪80486‬‬ ‫‪Pentium‬‬

‫افزايش سرعت‬

‫افزايش قدرت پردازش‬

‫افزايش ظرفيت حافظه‬

‫‪10‬‬

‫‪5‬‬
‫‪4/24/2020‬‬

‫معماري ميكروپروسسورها‬

‫‪Address Bus‬‬

‫‪Program Counter‬‬

‫‪ALU‬‬ ‫‪Register‬‬

‫‪Instruction Decoder‬‬

‫‪Data Bus‬‬

‫‪11‬‬

‫معماري ميكروپروسسورها‬
‫• در حاﻟﺖ كلي‪ ،‬پردازنده ها داراي ادوات داخلي يا ادوات ورودي ـ خروجي‬
‫نمي ﺑاشﻨد و از ﮔذرﮔاه هاي داده و آدرس ﺑراي ارتباط ﺑا اجزاي جانبي‬
‫استفاده مي كﻨﻨد‪.‬‬

‫معماري ‪Von Neumann‬‬


‫• دو معماري متفاوت‬
‫ﺑراي دسترسي ﺑه حاﻓظه‬
‫معماري ‪Harvard‬‬

‫‪12‬‬

‫‪6‬‬
‫‪4/24/2020‬‬

‫معماري ‪Von Neumann‬‬


‫• ﮔذرﮔاه آدرس و داده ﺑراي دسترسي ﺑه حاﻓظه كد از قبيل ‪،ROM‬‬
‫‪ EEPROM‬و ‪ Flash‬و حاﻓظه داده )‪ (RAM‬مشترك اسﺖ‪.‬‬

‫‪Program‬‬
‫‪Data Bus‬‬ ‫‪Memory‬‬
‫‪Processor‬‬
‫‪Data‬‬
‫‪Address Bus‬‬ ‫‪Memory‬‬

‫‪13‬‬

‫معماري ‪Von Neumann‬‬


‫مزايا‬

‫• سادﮔي و اقتصادي ﺑودن‬

‫عيب‬

‫• ﺑا اجراي دستوراتي كه ﺑا حاﻓظه در ارتباط هستﻨد‪ ،‬ﻓراخواني دستور ﺑعد تا‬


‫كامل شدن نوشتن يا خواندن از حاﻓظه داده متوقﻒ مي شود و ﺑه اين ترتيﺐ‬
‫سرعﺖ اجراي دستورها كاهش مي ياﺑد‪.‬‬

‫‪14‬‬

‫‪7‬‬
4/24/2020

Von Neumann ‫تقسيم بندي فضاي حافظه در معماري‬


0x 0000 0000
Boot Memory
Flash Memory
SRAM Memory
0x 0FFF FFFF

Unused

0x F000 0000
I/O Ports
ADC
Peripherals

CAN
0x FFFF FFFF

15

Harvard ‫معماري‬
.‫ﮔذرﮔاه آدرس و داده ﺑراي دسترسي ﺑه حاﻓظه كد و حاﻓظه داده جدا اسﺖ‬

Data Bus Data Bus


Program
Data Processor Memory
Memory
Address Bus Address Bus

16

8
‫‪4/24/2020‬‬

‫معماري ‪Harvard‬‬
‫مزايا‬

‫پردازنده مي تواند همزمان ﺑا اجراي دستوراتي كه ﺑا حاﻓظه داده در ارتباط هستﻨد‬


‫ﺑه واكشي دستور ﺑعدي ﺑپردازد‬

‫اﻓزايش كارآيي و سرعﺖ پردازش سيستم‬

‫‪17‬‬

‫تقسيم بندي فضاي حافظه در معماري ‪Harvard‬‬

‫‪0x FFFF FFFF‬‬ ‫‪0x FFFF FFFF‬‬


‫‪Unused‬‬ ‫‪Stack‬‬
‫‪External Memory‬‬ ‫‪Register File‬‬
‫‪Flash Bank 1‬‬ ‫‪Unused‬‬
‫‪Flash Bank 0‬‬ ‫‪SRAM‬‬
‫‪0x 0000 0000‬‬ ‫‪0x 0000 0000‬‬

‫‪Program Memory‬‬ ‫‪Data Memory‬‬

‫‪18‬‬

‫‪9‬‬
‫‪4/24/2020‬‬

‫پردازنده هاي ‪ RISC‬و ‪CISC‬‬

‫يكي از پارامترهاي مهم در تقسيم ﺑﻨدي ميكروپروسسورها نحوه‬


‫كد كردن دستور اﻟعمل ها مي ﺑاشد‪.‬‬

‫‪CISC‬‬ ‫‪RISC‬‬
‫‪Complex Instruction Set‬‬ ‫‪Reduced Instruction Set‬‬
‫‪Computer‬‬ ‫‪Computer‬‬

‫‪19‬‬

‫ويژﮔي هاي پردازنده هاي ‪RISC‬‬


‫تعداد دستوراﻟعمل ها و پيچيدﮔي كد كردن آنها كاهش ياﻓته‪ ،‬در مقاﺑل‬ ‫•‬
‫سرعﺖ اجراي آنها اﻓزايش مي ياﺑد‪.‬‬
‫ﺑه دﻟيل سادﮔي دستورات‪ ،‬اجراي آنها در يك سيكل كﻼك انﺠام مي شود‪.‬‬ ‫•‬
‫ﺑا توجه ﺑه سادﮔي دستورات‪ ،‬اجراي آنها توسﻂ سﺨﺖ اﻓزار انﺠام مي شود‬ ‫•‬
‫)كﻨترل سﺨﺖ اﻓزاري(‬
‫ﺑﺨش قاﺑل توجهي از ﻓضاي تراشه ﺑه عﻨوان رجيسترها و حاﻓظه نهان استفاده‬ ‫•‬
‫مي شود‪.‬‬
‫نوشتن ﺑرنامه اسمبلي آن مشكل اسﺖ‪.‬‬ ‫•‬
‫استفاه ازروش ‪ Pipeline‬ﺑسيار رايج اسﺖ‪.‬‬ ‫•‬

‫‪20‬‬

‫‪10‬‬
‫‪4/24/2020‬‬

‫ويژﮔي هاي پردازنده هاي ‪CISC‬‬


‫ﺑه دﻟيل تعداد زياد دستوراﻟعمل ها و پيچيدﮔي كد كردن دستوراﻟعمل ها‪،‬‬ ‫•‬
‫سرعﺖ اجراي آنها كاهش مي ياﺑد‪.‬‬
‫ﺑه دﻟيل پيچيدﮔي دستوراﻟعمل ها اجراي آنها در چﻨدين سيكل كﻼك انﺠام‬ ‫•‬
‫مي شود‪.‬‬
‫ﺑه دﻟيل پيچيدﮔي دستورها‪ ،‬اجراي آنها توسﻂ ميكروكد انﺠام مي شود )كﻨترل‬ ‫•‬
‫ريزﺑرنامه نويسي(‪.‬‬
‫تعداد رجيسترها و نيز حاﻓظه نهان‪ ،‬محدود مي ﺑاشد‪.‬‬ ‫•‬
‫نوشتن ﺑرنامه اسمبلي آن ساده تر اسﺖ‪.‬‬ ‫•‬
‫• ﺑه ندرت از روش ‪ Pipeline‬ﺑراي آنها استفاده مي شود‪.‬‬

‫‪21‬‬

‫پردازنده هاي ‪DSP‬‬


‫• معماري پردازنده هاي ‪ DSP‬ﺑراي انﺠام پردازش هاي ديﺠيتال مانﻨد‬
‫محاسبات ‪ ،FFT‬ﻓيلترهاي ديﺠيتال و ‪ ...‬ﺑهيﻨه سازي شده اند‪.‬‬
‫• در اين نوع پردازنده ها از واحد هاي ويژه ‪Multiplier ) MAC‬‬
‫‪ (Accumulator‬ﺑراي تسريﻊ در انﺠام عمليات ضرب و جمﻊ ﺑر روي آرايه اي‬
‫از اطﻼعات نمونه ﺑرداري شده و نيز اﻓزايش سرعﺖ پردازش استفاده‬
‫مي شود‪.‬‬
‫• زمان ﻻزم ﺑراي اجراي اﻟگوريتم در تراشه ‪ TMS320C6203‬ﺑا ﻓركانس‬
‫كﻼك ﺑراﺑر ﺑا ‪ ٣٠٠ MHz‬ﺑسيار كمتر از پردازنده ‪ Pentium‬ﺑا ﻓركانس‬
‫كﻼك ﺑراﺑر ﺑا ‪ ١ GHz‬اسﺖ‪.‬‬

‫‪22‬‬

‫‪11‬‬
‫‪4/24/2020‬‬

‫پردازنده هاي ‪DSP‬‬


‫در سيستم هاي تعبيه شده از پردازنده هاي ‪ DSP‬استفاده نمي شود‬

‫معموﻻً ﻓاقد امكانات جانبي مانﻨد‬


‫‪ DAC ،ADC‬و پورت هاي ‪ USB‬و‬ ‫از‬ ‫ﺑيشتر‬ ‫قيمﺖ آنها ﺑسيار‬
‫‪ LAN‬مي ﺑاشﻨد‪.‬‬ ‫ميكروكﻨترﻟرها مي ﺑاشد‬

‫در سيستم هاي پردازش ﮔر صوت و تصوير استفاده مي شوند‬

‫‪23‬‬

‫ميكروكنترلرها‬
‫• ﺑا اﻓزودن حاﻓظه و ادوات ‪ I/O‬ﺑه ميكروپروسسورها و قرار‬
‫دادن آنها در يك تراشه‪ ،‬ميكروكﻨترﻟرها ﺑه وجود‬
‫مي آيﻨد‪.‬‬
‫• عملكرد آنها مشاﺑه ﺑا كامپيوترهاي شﺨصي و ادوات جانبي‬
‫در مقياس كوچكتر مي ﺑاشد‪.‬‬
‫• ﺑه دﻟيل ﺑرخورداري از كليه ﺑﺨش هاي مورد نياز‪ ،‬استفاده‬
‫از آنها در سيستم هاي تعبيه شده ﺑسيار رايج اسﺖ‪.‬‬

‫‪24‬‬

‫‪12‬‬
‫‪4/24/2020‬‬

‫ميكرو كنترلرها‬
‫• ﺑلوك هايي كه معموﻻً در ميكروكﻨترﻟرها مورد استفاده قرار‬
‫مي ﮔيرند‪:‬‬
‫– مبدل ‪ADC‬‬
‫– پورت سريال‬
‫تايمر )‪(Timer‬‬ ‫–‬
‫موﻟد ‪PWM‬‬ ‫–‬
‫پورت هاي موازي‬ ‫–‬
‫كﻨترل كﻨﻨده وقفه‬ ‫–‬
‫– ‪Watch dog Timer‬‬

‫‪25‬‬

‫انواع ميكروكنترلرها با توجه به حوزه كاربرد‬


‫• ميكروكﻨترﻟرهاي ‪ ٤‬ﺑيتي‬
‫– از حاﻓظه هاي چﻨد صد ﺑايتي استفاده مي كﻨﻨد‬
‫– معماري ساده اي دارند‬
‫– مصرف توان آنها كم اسﺖ‬
‫– كارﺑرد آنها در سيستم هاي از قبيل كﻨترل كﻨﻨده هاي راه دور‪،‬‬
‫سيستم هاي هشداردهﻨده‪ ،‬كﻨترﻟر صفحه كليد كامپيوتر و موارد‬
‫مشاﺑه مي ﺑاشد‪.‬‬
‫– نمونه اي از اين تراشه ها را مي توان ميكروكﻨترﻟرهاي سري‬
‫‪ MARC4‬محصول شركﺖ ‪ ATmel‬را نام ﺑرد‪.‬‬

‫‪26‬‬

‫‪13‬‬
‫‪4/24/2020‬‬

‫انواع ميكروكنترلرها با توجه به حوزه كاربرد‬


‫• ميكروكﻨترﻟرهاي ‪ ٨‬ﺑيتي‬
‫– از رايج ترين انواع پردازنده مي ﺑاشﻨد‪.‬‬
‫– حاﻓظه ﺑه كار رﻓته در آنها در حد چﻨد كيلوﺑايﺖ اسﺖ‪.‬‬
‫– ﺑرنامه نويسي اين تراشه ها توسﻂ زﺑان اسمبلي و يا زﺑان هاي‬
‫سطﺢ ﺑاﻻ از قبيل ‪ Basic‬و ‪ C‬انﺠام مي شود‪.‬‬
‫– نسل قديمي اين ميكروكﻨترﻟرها از قبيل ‪ 86HC11‬و ‪ 8051‬از‬
‫معماري ‪ CISC‬استفاده مي كردند؛ اما تراشه هاي جديد از‬
‫قبيل خانواده ‪ PIC‬و ‪ AVR‬از معماري ‪ RISC‬استفاده‬
‫مي كﻨﻨد‪.‬‬

‫‪27‬‬

‫انواع ميكروكنترلرها با توجه به حوزه كاربرد‬


‫• ميكروكﻨترﻟرهاي ‪ ١٦‬و ‪ ٣٢‬ﺑيتي‬
‫– حﺠم حاﻓظه ﺑه كار رﻓته در آنها از چﻨد ده كيلو ﺑايﺖ تا چﻨد صد‬
‫مگاﺑايﺖ مي ﺑاشد‪.‬‬
‫– ﺑه كار ﮔيري آنها در سيستم هاي تعبيه شده ﺑسيار رايج اسﺖ‪.‬‬
‫– ﺑرنامه نويسي آنها معموﻻً توسﻂ زﺑان ‪ C‬انﺠام مي شود‪.‬‬
‫– در ﺑرخي موارد‪ ،‬سيستم عامل هاي ﺑﻼدرنگ مانﻨد ‪ Linux‬و‬
‫‪ Windows CE‬ﺑه عﻨوان هسته نرم اﻓزاري جهﺖ مديريﺖ ﺑرنامه‬
‫كارﺑر در اين تراشه ها مورد استفاده قرار مي ﮔيرند‪.‬‬
‫– از معروف ترين ميكروكﻨترﻟرهاي ‪ ٣٢‬ﺑيتي مي توان ﺑه پردازنده‬
‫‪ ARM‬اشاره نمود‬

‫‪28‬‬

‫‪14‬‬
‫‪4/24/2020‬‬

‫ميكروكنترلرها در برابر ميكروپروسسورهاي همه منظوره‬


‫• مﻨظور از ميكروپروسسور‪ ،‬ميكروپروسسورهاي همه مﻨظوره مانﻨد‬
‫‪ X86‬شركﺖ ‪ (Pentium ،80486 ،80386 ،8086) Intel‬يا‬
‫خانواده ‪ PowerPC‬شركﺖ موتوروﻻ اسﺖ‪..‬‬
‫• اين ميكروپروسسورها هيچ ﮔونه ‪ RAM‬و يا ‪ ROM‬و يا پورت هاي‬
‫‪ I/O‬داخلي ﺑر روي تراشه خود ندارند؛ ﺑه همين دﻟيل معموﻻً آنها را‬
‫ميكروپروسسورهاي همه مﻨظوره مي نامﻨد‪.‬‬
‫• يك ميكروكﻨترﻟر از يك ‪) CPU‬ميكروپروسسور( ﺑه عﻼوه مقدار ﺛاﺑتي‬
‫‪ ،ROM ،RAM‬پورت هاي ‪ I/O‬و تايمر تشكيل شده اسﺖ و در نتيﺠه‪،‬‬
‫طراح نمي تواند آنها را ﺑه صورت خارجي ﺑه پروسسور اضاﻓه كﻨد‪.‬‬

‫‪29‬‬

‫ميكروكنترلرها در برابر ميكروپروسسورهاي همه منظوره‬


‫• سيستم يك ميكروپروسسور همه مﻨظوره‬

‫‪Address Bus‬‬

‫‪CPU‬‬ ‫‪Serial‬‬
‫‪General-‬‬ ‫‪I/O‬‬ ‫‪COM‬‬
‫‪RAM‬‬ ‫‪ROM‬‬ ‫‪Ports‬‬
‫‪Timer‬‬
‫‪Purpose‬‬ ‫‪Ports‬‬
‫‪Microprocessor‬‬

‫‪Data Bus‬‬

‫‪30‬‬

‫‪15‬‬
‫‪4/24/2020‬‬

‫ميكروكنترلرها در برابر ميكروپروسسورهاي همه منظوره‬


‫• سيستم يك ميكروكﻨترﻟر‬

‫‪CPU‬‬ ‫‪RAM‬‬ ‫‪ROM‬‬

‫‪I/O‬‬ ‫‪Serial‬‬
‫‪and‬‬ ‫‪Timer‬‬ ‫‪COM‬‬
‫‪ADC‬‬ ‫‪Port‬‬

‫‪31‬‬

‫ميكروكنترلر ‪AVR‬‬
‫• معماري اوﻟيه ‪ AVR‬توسﻂ دو دانشﺠوي مﺆسسه ﻓن آوري نروژ‬
‫)‪ (NHT‬ﺑه نام هاي ‪ Alf Egil Bogen‬و ‪ Vegard Wallan‬طراحي و‬
‫سپس در سال ‪ ١٩٩٦‬توسﻂ شركﺖ ايﻨتل خريداري و توﻟيد شد‪.‬‬

‫• معﻨاي كلمه ‪ AVR‬ﺑر كسي معلوم نيسﺖ‪ .‬شركﺖ ‪ Atmel‬مي ﮔويد كه‬
‫كلمه ‪ AVR‬چيزي غير از نام يك محصول نيسﺖ‪.‬‬
‫• اﻟبته ﺑرخي ﺑر اين ﺑاور هستﻨد كه كلمه ‪ AVR‬مﺨفﻒ عبارت‬
‫‪ Advanced Virtual RISC‬يا ‪ Alf, Vegard, RISC‬اسﺖ‪.‬‬

‫‪32‬‬

‫‪16‬‬
‫‪4/24/2020‬‬

‫ميكروكنترلر ‪AVR‬‬
‫• انواع مﺨتلفي از ‪ AVR‬ﺑا ويژﮔي هاي متفاوت وجود دارد‪.‬‬

‫• ﺑه جز ‪ AVR32‬كه يك ميكروكﻨترﻟر ‪ ٣٢‬ﺑيتي اسﺖ‪ ،‬ﺑقيه ‪AVR‬ها‬


‫همگي ‪ ٨‬ﺑيتي هستﻨد يعﻨي ‪ CPU‬در هر ﻟحظه ﻓقﻂ ﺑا ‪ ٨‬ﺑيﺖ داده‬
‫مي تواند كار كﻨد‪.‬‬

‫• داده هاي ﺑزرﮔتر از ‪ ٨‬ﺑيﺖ ﺑه ﺑﺨش هاي ‪ ٨‬ﺑيتي تقسيم شده و ﺑه وسيله‬
‫‪ CPU‬پردازش مي شوند‪.‬‬

‫‪33‬‬

‫مروري بر خانواده ميكروكنترلر ‪AVR‬‬

‫خانواده ‪ AVR‬كﻼسيك )‪(AT90Sxxxx‬‬

‫خانواده ‪(ATtinyxxxx) Tiny AVR‬‬


‫خانواده‬
‫ميكروكﻨترﻟر‬
‫خانواده ‪(ATmegaxxxx) Mega AVR‬‬
‫‪AVR‬‬

‫خانواده ‪AVR‬هاي تك مﻨظوره‬

‫‪34‬‬

‫‪17‬‬
‫‪4/24/2020‬‬

‫شماره توليد ميكروكنترلر ‪AVR‬‬


‫• تمام شماره هاي توﻟيد ﺑا ‪ AT‬كه دﻻﻟﺖ ﺑر ‪ Atmel‬دارند‪ ،‬شروع‬
‫مي شوند‪.‬‬
‫• اﮔر در عددهايي كه در انتهاي شماره توﻟيد قرار دارند‪ ،‬از سمﺖ‬
‫چﭗ ﺑه راسﺖ ﺑزرﮔترين عدد توان ‪ ٢‬را پيدا كﻨيم‪ ،‬اين عدد مقدار‬
‫‪ ROM‬را نشان مي دهد‪.‬‬
‫‪ =١٢٨ Kbytes‬مقدار ‪ ROM‬موجود ‪ =128‬ﺑزرﮔترين توان ‪Atmega 128  ٢‬‬
‫‪ =٤ Kbytes‬مقدار ‪ ROM‬موجود ‪ = 4‬ﺑزرﮔترين توان ‪ATtiny 44  ٢‬‬

‫‪ =١٦ Kbytes‬مقدار ‪ ROM‬موجود ‪ = 16‬ﺑزرﮔترين توان ‪AT90PWM216  ٢‬‬

‫‪35‬‬

‫ساختار پردازنده ميكروكنترلر ‪AVR‬‬

‫يك واحد مركزي در ‪AVR‬‬


‫كه تمام ﻓعاﻟيﺖ هاي آن را‬
‫اين واحد مركزي تمام‬
‫عمليات ﻻزم ﺑر روي داده ها‬ ‫مديريﺖ مي كﻨد‬
‫را انﺠام مي دهد‪.‬‬

‫‪MCU‬‬

‫‪Master Control Unit‬‬


‫اين واحد مركزي وظيفه‬
‫ارتباط ﺑا حاﻓظه و كﻨترل‬
‫تﺠهيزات جانبي را ﺑر عهده‬
‫دارد‬

‫‪36‬‬

‫‪18‬‬
‫‪4/24/2020‬‬

‫واحد ‪MCU‬‬

‫حاﻓظه ‪FLASH‬‬
‫حاﻓظه داده‬ ‫حاﻓظه داده‬
‫يا‬
‫‪SRAM‬‬ ‫‪EEPROM‬‬
‫حاﻓظه ﺑرنامه‬

‫واحد‬
‫‪Data Bus‬‬ ‫ﮔذرﮔاه داده‬
‫‪CPU‬‬

‫مقايسه كﻨﻨده‬ ‫تايمر‬


‫حاﻓظه ‪SPI‬‬ ‫واحد وقفه‬ ‫‪I/O‬‬
‫آناﻟوگ‬ ‫نگهبان‬

‫‪37‬‬

‫معماري ميكروكنترلر ‪AVR‬‬


‫• در ميكروكﻨترﻟرهاي ‪ AVR‬از معماري هاروارد استفاده شده اسﺖ‪.‬‬
‫• اين معماري در مقايسه ﺑا معماري سﻨتي ‪ Von-Neumann‬پهﻨاي‬
‫ﺑاند ﺑهتري دارد‪.‬‬
‫• ‪ AVR‬يك ميكروكﻨترﻟر تك تراشه اي ﺑا معماري ‪ ٨‬ﺑيتي ‪RISC‬‬
‫اسﺖ‪.‬‬
‫• از امكانات استاندارد اين ميكروكﻨترﻟر مي توان ‪ ROM‬ﺑرنامه )كد(‪،‬‬
‫‪ RAM‬داده‪ E2PROM ،‬داده‪ ،‬تايمرها‪ ،‬پورت هاي ‪ I/O‬داخلي را‬
‫نام ﺑرد‪.‬‬

‫‪38‬‬

‫‪19‬‬
‫‪4/24/2020‬‬

‫ثبات هاي عمومي )فايل رجيستر(‬


‫‪ CPU‬از ﺛبات هاي ﺑسياري ﺑراي ذخيره سازي موقﺖ داده استفاده‬ ‫•‬
‫مي كﻨد‪.‬‬
‫در ‪ ٣٢ ،AVR‬ﺛبات همه مﻨظوره )‪ (GPR‬وجود دارد كه ‪ R0‬تا ‪R31‬‬ ‫•‬
‫نام دارند‪.‬‬
‫اين ﺛبات ها‪ ،‬پايين ترين مكان حاﻓظه را ﺑه خود اختصاص داده اند‪.‬‬ ‫•‬
‫اين ﺛبات ها‪ ٨ ،‬ﺑيتي ﺑوده و ﺑا واحد ‪ ALU‬در ارتباط مستقيم‬ ‫•‬
‫مي ﺑاشﻨد‪.‬‬

‫‪39‬‬

‫ثبات هاي عمومي )فايل رجيستر(‬


‫• كارﺑرد ﺛبات هاي ‪ X‬و ‪ Y‬و ‪ Z‬كه ﺑه آنها اشاره ﮔر پشته ﮔفته مي شود‪ ،‬عﻼوه ﺑر‬
‫كارﺑرد عمومي ﺑراي آدرس دهي غيرمستقيم در ﻓضاي حاﻓظه داده و ﺑرنامه ﺑه‬
‫‪XH‬‬ ‫‪XL‬‬ ‫كار مي روند‪.‬‬
‫‪R27‬‬ ‫‪R26‬‬ ‫ﺛبات ‪X‬‬

‫‪YH‬‬ ‫‪YL‬‬
‫‪R29‬‬ ‫‪R28‬‬ ‫ﺛبات ‪Y‬‬

‫‪ZH‬‬ ‫‪ZL‬‬
‫‪R31‬‬ ‫‪R30‬‬ ‫ﺛبات ‪Z‬‬

‫‪40‬‬

‫‪20‬‬
‫‪4/24/2020‬‬

‫سازمان دهي حافظه در ‪AVR‬‬

‫‪ SRAM‬داده‬

‫ﻓضاي حاﻓظه داده‬


‫‪ E2PROM‬داخلي‬

‫• حاﻓظه هاي اصلي‬


‫در معماري كلي ‪AVR‬‬
‫ﻓضاي حاﻓظه ﺑرنامه‬

‫‪41‬‬

‫تقسيم بندي حافظه داده‬


‫‪ ٣٢‬ﺛبات عمومي‬

‫‪ ٦٤‬ﺛبات ‪I/O‬‬
‫• حاﻓظه داده‬
‫حاﻓظه داده داخلي ‪SRAM‬‬

‫حاﻓظه داده خارجي )ﺑراي ﺑرخي از ميكروكﻨترﻟرها‬


‫مانﻨد ‪(ATmega 128‬‬

‫‪42‬‬

‫‪21‬‬
‫‪4/24/2020‬‬

‫حافظه داده‬
‫‪R0‬‬ ‫‪0000 H‬‬
‫‪0000 H‬‬
‫‪R1‬‬ ‫‪0001 H‬‬
‫‪ ٣٢‬ﺑايﺖ‬
‫رجيستر عمومي‬

‫‪0020H‬‬ ‫‪TWBR‬‬ ‫‪001F H‬‬ ‫‪R30‬‬ ‫‪001E H‬‬


‫‪0021H‬‬ ‫‪TWSR‬‬ ‫‪ ٦٤‬ﺑايﺖ‬ ‫‪R31‬‬ ‫‪001F H‬‬
‫‪0022 H‬‬ ‫‪TWAR‬‬ ‫رجيستر ‪I/O‬‬
‫‪005F H‬‬ ‫‪0060 H‬‬ ‫‪0060 H‬‬

‫حاﻓظه داده‬ ‫‪0061 H‬‬ ‫‪0061 H‬‬


‫‪005F H‬‬ ‫‪SREG‬‬ ‫داخلي ‪SRAM‬‬ ‫‪0062 H‬‬ ‫‪0062 H‬‬

‫‪085F H‬‬

‫حاﻓظه داده خارجي‬


‫سازمان دهي حاﻓظه ﺑدون‬ ‫در ﺑرخي ‪ AVR‬ها‬ ‫‪085F H‬‬ ‫‪085F H‬‬
‫رجيسترهاي ‪ I/O‬توسعه ياﻓته‬
‫)در ﺑرخي ميكروكﻨترﻟرها(‬ ‫‪FFFF H‬‬

‫‪43‬‬

‫حافظه داده‬
‫سازمان دهي حاﻓظه ﺑدون‬
‫‪0000 H‬‬
‫رجيسترهاي ‪ I/O‬توسعه ياﻓته‬
‫‪ ٣٢‬ﺑايﺖ‬ ‫)در ﺑرخي ميكروكﻨترﻟرها(‬
‫رجيستر عمومي‬
‫‪001F H‬‬
‫‪ ٦٤‬ﺑايﺖ‬
‫رجيستر ‪I/O‬‬
‫اين قسمﺖ‪ ،‬مرﺑوط ﺑه ﺑرخي ميكروكﻨترﻟرها‬
‫‪005F H‬‬
‫‪١٦٠‬ﺑايﺖ‬ ‫نظير ‪ ATMEGA64‬و ‪ ATMEGA162‬مي ﺑاشد‬
‫رجيستر ‪I/O‬‬ ‫كه ﺑه دﻟيل نياز ﺑه ﺑيش از ‪ ٦٤‬رجيستر ‪ I/O‬ﺑه‬
‫توسعه ياﻓته‬ ‫آن اضاﻓه شده اسﺖ و اندازه كل رجيسترهاي‬
‫‪00FF H‬‬
‫‪ I/O‬ﺑه ‪ ٢٢٤‬رجيستر اﻓزايش ياﻓته اسﺖ‪.‬‬
‫حاﻓظه داده‬
‫داخلي ‪SRAM‬‬

‫حاﻓظه داده خارجي‬


‫در ﺑرخي ‪ AVR‬ها‬
‫‪FFFF H‬‬

‫‪44‬‬

‫‪22‬‬
‫‪4/24/2020‬‬

‫ثبات هاي ‪I/O‬‬


‫ﺛبات هاي ‪ I/O‬از مهم ترين ﺛبات هاي‪ CPU‬ﺑوده و ﺑراي كارﺑردهاي‬ ‫•‬
‫خاصي مانﻨد تايمرها‪ ،‬ارتباط هاي سريال‪ ،‬پورت هاي ‪ ADC ،I/O‬و ‪...‬‬
‫استفاده مي شوند‪.‬‬
‫تعداد مكان هاي حاﻓظه ﺑراي اين ﺛبات ها ﺑه تعداد پايه ها و كاركردهاي‬ ‫•‬
‫جانبي كه توسﻂ تراشه پشتيباني مي شود‪ ،‬ﺑستگي دارد‪.‬‬
‫تعداد مكان هاي حاﻓظه ﺑراي اين ﺛبات ها از تراشه اي ﺑه تراشه ديگر‬ ‫•‬
‫حتي در ﺑين اعضاي يك خانواده مي تواند تغيير كﻨد‪ ،‬اما تمام ‪ AVR‬ها‬
‫حداقل ‪ ٦٤‬ﺑايﺖ ﻓضاي حاﻓظه ‪ I/O‬دارند‪.‬‬
‫ﺑه اين ‪ ٦٤‬ﺑايﺖ‪ ،‬حاﻓظه استاندارد ‪ I/O‬ﮔفته مي شود‪.‬‬ ‫•‬

‫‪45‬‬

‫ثبات هاي ‪I/O‬‬


‫ﺑرخي از آدرس هاي حاﻓظه ﺑراي مصارف آيﻨده رزرو شده اند‪.‬‬ ‫•‬
‫در ‪ AVR‬هاي ﺑا ﺑيش از ‪ ٣٢‬پايه مانﻨد ‪ ATmega128 ،ATmega64‬و‬ ‫•‬
‫‪ ATmega256‬يك حاﻓظه ‪ I/O‬توسعه ياﻓته وجود دارد )‪ ١٦٠‬ﺑايﺖ( كه‬
‫ﺑراي كﻨترل پورت هاي اضاﻓه در وسايل جانبي اضاﻓه مي ﺑاشد مانﻨد‬
‫ﺛبات كﻨترﻟي مرﺑوط ﺑه ‪ PortG‬در ‪. ATmega128‬‬
‫در ميكروكﻨترﻟرهاي سري ‪،ATmega640 ،ATmega2561‬‬ ‫•‬
‫‪ ATmega1281 ،ATmega1280‬و ‪ ATmega2560‬اين ﺑﺨش ﺑه‬
‫‪ ٤١٦‬ﺑايﺖ اﻓزايش ياﻓته اسﺖ‪.‬‬
‫در ديگر ميكروكﻨترﻟرها‪ ،‬ﺛبات هاي ‪ I/O‬ﺛبات هاي ‪ SFR‬ناميده‬ ‫•‬
‫مي شوند زيرا هريك هر يك ﺑه كاركرد ويژه اي اختصاص ياﻓته اند‪.‬‬

‫‪46‬‬

‫‪23‬‬
‫‪4/24/2020‬‬

‫حافظه داده داخلي ‪SRAM‬‬


‫• ﻓضاي حاﻓظه داده داخلي پس از ﺛبات هاي ‪ I/O‬شروع شده و ﺑا توجه ﺑه‬
‫نوع ميكروكﻨترﻟر متفاوت اسﺖ‪.‬‬
‫• ‪ SRAM‬داخلي ﺑه طور ﮔسترده اي ﺑراي ذخيره سازي داده و پارامترها‬
‫ﺑه وسيله ﺑرنامه ‪ AVR‬و كامپايلرهاي ‪ C‬ﺑه كار ﮔرﻓته مي شود‪ .‬ﺑه همين‬
‫دﻟيل آن را حاﻓظه موقﺖ )‪ (Scratch Pad‬نيز مي نامﻨد‪.‬‬
‫• هر خانه ‪ SRAM‬ﺑه طور مستقيم از طريق آدرسش قاﺑل دسترسي اسﺖ‪.‬‬
‫• طول هر خانه اين حاﻓظه ‪ ٨‬ﺑيﺖ اسﺖ‪.‬‬
‫• اندازه ‪ SRAM‬نيز همانﻨد حاﻓظه ‪ I/O‬از تراشه اي ﺑه تراشه ديگر حتي‬
‫در ﺑين اعضاي يك خانواده مي تواند تغيير كﻨد‪.‬‬

‫‪47‬‬

‫حافظه داده خارجي‬

‫• اﮔر ﺑه توسعه حاﻓظه نياز ﺑاشد‪ ،‬اين امكان در ﺑرخي از‬


‫ميكروكﻨترﻟرهاي ‪ AVR‬وجود دارد كه عﻼوه ﺑر حاﻓظه‬
‫داخلي از ‪ ٦٤ KB‬حاﻓظه داده خارجي نيز استفاده ﮔردد‪.‬‬

‫‪48‬‬

‫‪24‬‬
‫‪4/24/2020‬‬

‫‪ SRAM‬در مقابل ‪ E2PROM‬در تراشه هاي ‪AVR‬‬

‫• از حاﻓظه ‪ E2PROM‬ﺑراي ذخيره داده استفاده مي شود و‬


‫ﺑا قطﻊ ﺑرق اطﻼعات خود را از دسﺖ نمي دهد درحاﻟي كه‬
‫‪ SRAM‬چﻨين نيسﺖ‪.‬‬
‫• ﺑه همين دﻟيل از ‪ E2PROM‬ﺑراي ذخيره داده هايي كه ﺑه‬
‫ندرت تغيير مي كﻨﻨد و نبايد اطﻼعاتشان ﺑا خاموش شدن‬
‫سيستم از ﺑين ﺑرود‪ ،‬استفاده مي شود‪ .‬مانﻨد ‪ option‬ها و‬
‫تﻨظيمات سيستم‪.‬‬

‫‪49‬‬

‫‪ SRAM‬در مقابل ‪ E2PROM‬در تراشه هاي ‪AVR‬‬

‫• از آنﺠايي كه از ‪ SRAM‬ﺑراي ذخيره دادهها و پارامترهايي‬


‫استفاده مي شود كه ﺑارها تغيير مي كﻨﻨد‪ ،‬سه ﺑﺨش تشكيل‬
‫دهﻨده حاﻓظه داده )ﺛبات هاي عمومي‪ ،‬حاﻓظه ‪SRAM ،I/O‬‬
‫داخلي داده( از ‪ SRAM‬ساخته شده اند‪.‬‬
‫• در ‪ AVR‬مﻨظور از ‪ E2PROM‬مقدار حاﻓظه ‪ E2PROM‬و‬
‫مﻨظور از ‪ ،SRAM‬مقدار حاﻓظه ‪ RAM‬داخلي داده اسﺖ‪.‬‬

‫‪50‬‬

‫‪25‬‬
‫‪4/24/2020‬‬

‫‪ SRAM‬در مقابل ‪ E2PROM‬در تراشه هاي ‪AVR‬‬


‫• واحد ‪ CPU‬ﺑه طور مستقيم ﺑه ﻓضاي حاﻓظه داده ‪E2PROM‬‬
‫دسترسي ندارد‪ ،‬ﺑلكه توسﻂ ﺛبات هاي واسﻂ )‪ R0‬تا ‪ (R31‬و ﺛبات‬
‫هاي كﻨترﻟي ﺑه آن دسترسي خواهد داشﺖ‪.‬‬
‫‪R0‬‬
‫‪R1‬‬
‫ﺛبات هاي داده و‬
‫‪ALU‬‬ ‫كﻨترل ‪E2PROM‬‬
‫‪R30‬‬
‫‪R31‬‬
‫ﺛبات هاي عمومي‬ ‫حاﻓظه داده ‪E2PROM‬‬

‫‪51‬‬

‫‪ SRAM‬در مقابل ‪ E2PROM‬در تراشه هاي ‪AVR‬‬


‫• حاﻓظه ‪ SRAM‬ﺑه طور مستقيم در اختيار ‪ CPU‬نمي ﺑاشد و ﺑراي دسترسي ﺑه‬
‫آن از يك ﺛبات واسﻂ )‪ R0‬تا ‪ (R31‬استفاده مي شود‪.‬‬
‫• استفاده از ‪ SRAM‬ﺑراي انﺠام عمليات‪ ،‬زمان ﺑيشتري نسبﺖ ﺑه حاﻟتي كه‬
‫عمليات ﻓقﻂ روي ﺛبات ها عمومي انﺠام مي شود نياز دارد‪.‬‬
‫‪R0‬‬
‫‪R1‬‬

‫‪ALU‬‬
‫‪R30‬‬
‫‪R31‬‬
‫ﺛبات هاي عمومي‬ ‫حاﻓظه داده ‪SRAM‬‬

‫‪52‬‬

‫‪26‬‬
‫‪4/24/2020‬‬

‫اندازه حافظه داده در برخي از تراشه هاي ‪AVR‬‬

‫ﺛبات هاي عمومي‬ ‫‪SRAM‬‬ ‫ﺛبات هاي ‪I/O‬‬ ‫حاﻓظه داده‬ ‫شماره قطعه‬
‫)ﺑايﺖ( ‪+‬‬ ‫)ﺑايﺖ( ‪+‬‬ ‫)ﺑايﺖ( =‬

‫‪٣٢‬‬ ‫‪١٢٨‬‬ ‫‪٦٤‬‬ ‫‪٢٢٤‬‬ ‫‪Tiny25‬‬


‫‪٣٢‬‬ ‫‪٥١٢‬‬ ‫‪٦٤‬‬ ‫‪٦٠٨‬‬ ‫‪Tiny85‬‬
‫‪٣٢‬‬ ‫‪١٠٢٤‬‬ ‫‪٦٤‬‬ ‫‪١١٢٠‬‬ ‫‪ATmega8‬‬
‫‪٣٢‬‬ ‫‪١٠٢٤‬‬ ‫‪٦٤‬‬ ‫‪١١٢٠‬‬ ‫‪ATmega16‬‬
‫‪٣٢‬‬ ‫‪٢٠٤٨‬‬ ‫‪٦٤‬‬ ‫‪٢١٤٤‬‬ ‫‪ATmega32‬‬
‫‪٣٢‬‬ ‫‪٤٠٩٦‬‬ ‫‪١٦٠+٦٤‬‬ ‫‪٤٣٥٢‬‬ ‫‪ATmega128‬‬
‫‪٣٢‬‬ ‫‪٨١٩٢‬‬ ‫‪٤١٦+٦٤‬‬ ‫‪٨٧٠٤‬‬ ‫‪ATmega2560‬‬

‫‪53‬‬

‫فضاي حافظه برنامه‬


‫• در ميكروكﻨترﻟرها از ‪ ROM‬ﺑراي ذخيره سازي ﺑرنامه‬
‫استفاده مي شود؛ ﺑه همين دﻟيل ‪ ROM‬ﺑرنامه يا كد خوانده‬
‫مي شود‪.‬‬
‫• اﮔر چه ‪ AVR‬داراي ‪ ٨ MB‬ﻓضاي ‪ ROM‬ﺑرنامه يا كد اسﺖ‬
‫وﻟي اين مقدار ‪ ROM‬روي تمام اعضاي سري ‪ AVR‬نصﺐ‬
‫نمي شود‪.‬‬
‫• اندازه ‪ ROM‬ﺑرحسﺐ نوع سري از ‪ ١ KB‬تا ‪٢٥٦ KB‬‬
‫تغيير مي كﻨد‪.‬‬

‫‪54‬‬

‫‪27‬‬
‫‪4/24/2020‬‬

‫فضاي حافظه برنامه‬


‫• ميكروكﻨترﻟر ‪ AVR‬يكي از اوﻟين خانواده ميكروكﻨترﻟرها‬
‫اسﺖ كه از حاﻓظه سريﻊ و آني )‪ (Flash‬ﺑراي ذخيره سازي‬
‫ﺑرنامه استفاده مي كﻨد‪.‬‬

‫• اين حاﻓظه آني ﺑراي توﻟيد سريﻊ محصوﻻت مﻨاسﺐ اسﺖ‬


‫زيرا در طي چﻨد ﺛانيه پاك مي شود‪.‬‬

‫‪55‬‬

‫فضاي حافظه برنامه‬


‫• از آنﺠايي كه تمام دستورات ‪ ١٦ ،AVR‬يا ‪ ٣٢‬ﺑيﺖ عرض دارند‪،‬‬
‫حاﻓظه ﺑرنامه ﺑه صورت زير سازمان دهي مي شود‪:‬‬
‫‪0000 H‬‬ ‫‪16 bits‬‬ ‫‪0000 H‬‬ ‫‪16 bits‬‬ ‫‪0000 H‬‬ ‫‪16 bits‬‬

‫‪3FFF H‬‬ ‫‪7FFF H‬‬ ‫‪FFFFH‬‬

‫‪16K x 16‬‬ ‫‪32K x 16‬‬ ‫‪64K x 16‬‬


‫حاﻓظه ﺑرنامه يك ميكروكﻨترﻟر ‪٣٢ KB‬‬ ‫حاﻓظه ﺑرنامه يك ميكروكﻨترﻟر ‪64 KB‬‬ ‫حاﻓظه ﺑرنامه يك ميكروكﻨترﻟر ‪128 KB‬‬

‫)‪(ATmega32‬‬ ‫)‪(ATmega64‬‬ ‫)‪(ATmega128‬‬

‫‪56‬‬

‫‪28‬‬
‫‪4/24/2020‬‬

‫تقسيم بندي فضاي حافظه برنامه‬

‫ﺑﺨش ﺑرنامه كارﺑردي‬

‫• ﻓضاي حاﻓظه ﺑرنامه ‪flash‬‬


‫ﺑﺨش ‪BOOT‬‬

‫‪57‬‬

‫تقسيم بندي فضاي حافظه برنامه‬

‫• ﻓضاي داخلي حاﻓظه ‪ flash‬در ‪ATmega32‬‬

‫‪0000 H‬‬

‫حاﻓظه ﺑرنامه‬
‫ﺑا استفاده از ﻓيوز ﺑيﺖ هاي‬
‫كارﺑردي‬
‫‪ BOOTSZ1‬و ‪BOOTSZ2‬‬
‫مي توان اندازه حاﻓظه ‪BOOT‬‬
‫‪3BFF H‬‬
‫را مشﺨص نمود‪.‬‬
‫حاﻓظه ﺑرنامه‬
‫‪BOOT‬‬
‫‪3FFF H‬‬

‫‪58‬‬

‫‪29‬‬
‫‪4/24/2020‬‬

‫فضاي حافظه برنامه‬


‫حاﻓظه ﺑرنامه ‪ flash‬قاﺑليﺖ تا ‪ ١٠٠٠٠‬مرتبه نوشتن )پاك كردن(‬ ‫•‬
‫را دارد‪.‬‬
‫در خانواده ‪ ،AVR‬همه اعضا هﻨگام روشن شدن‪ ،‬ﺑدون توجه ﺑه‬ ‫•‬
‫دسته ﺑﻨدي ها و مدل هاي مﺨتلﻒ از خانه ‪ $0000‬شروع ﺑه كار مي‬
‫كﻨﻨد‪.‬‬
‫يعﻨي انتظار مي رود كه اوﻟين كد عمل )‪ (Opcode‬در آدرس‬ ‫•‬
‫‪ 0000H‬حاﻓظه ‪ ROM‬ذخيره شده ﺑاشد‪.‬‬
‫ﺑراي قرار دادن اوﻟين كد عمل در خانه ‪ 0000H‬حاﻓظه ‪ ROM‬از‬ ‫•‬
‫دستوراﻟعمل ‪ ORG‬استفاده مي شود‪.‬‬

‫‪59‬‬

‫ثبات وضعيت‬
‫• ﺛبات وضعيﺖ )‪ (SREG‬يك ﺛبات ‪ ٨‬ﺑيتي اسﺖ كه ﺑه ﺛبات پرچم‬
‫نيز معروف اسﺖ‪.‬‬
‫• ﺑيﺖ هاي اين ﺛبات تحﺖ تأﺛير ﺑرخي عمليات ‪) CPU‬رياضي و‬
‫مﻨطقي( ﻓعال مي شوند ﺑدين معﻨا كه ﺑرخي از شرايطي كه پس از‬
‫اجراي يك دستور ﺑه وجود مي آيﻨد را نشان مي دهﻨد‪.‬‬
‫‪Bit‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪I‬‬ ‫‪T‬‬ ‫‪H‬‬ ‫‪S‬‬ ‫‪V‬‬ ‫‪N‬‬ ‫‪Z‬‬ ‫‪C‬‬ ‫‪SREG‬‬

‫‪Read/Write‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬


‫‪3‬‬
‫‪Initial Value‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫‪60‬‬

‫‪30‬‬
‫‪4/24/2020‬‬

‫ثبات وضعيت‬
‫‪I‬‬ ‫‪T‬‬ ‫‪H‬‬ ‫‪S‬‬ ‫‪V‬‬ ‫‪N‬‬ ‫‪Z‬‬ ‫‪C‬‬ ‫‪SREG‬‬

‫• پرچم نقلي )‪ :(C‬اين پرچم هﻨگام خارج شدن رقم نقلي از ﺑيﺖ هفتم‪،‬‬
‫يك مي شود‪ .‬اين پرچم ﺑين انﺠام عمل محاسباتي و مﻨطقي تأﺛير‬
‫مي پذيرد‪.‬‬
‫• پرچم صفر )‪ :(Z‬اين پرچم‪ ،‬هﻨگام صفر شدن عمليات محاسباتي يا‬
‫مﻨطقي‪ ،‬يك خواهد شد‪.‬‬
‫• پرچم مﻨفي )‪ :(N‬اين پرچم‪ ،‬هﻨگام مﻨفي شدن عمليات محاسباتي يا‬
‫مﻨطقي‪ ،‬يك خواهد شد‪.‬‬
‫• پرچم سرريز )‪ :(V‬اين پرچم هﻨگامي كه نتيﺠه عمليات عﻼمﺖ دار‪،‬‬
‫ﺑزرﮔتر از ‪ ٨‬ﺑاشد‪ ،‬يك مي شود‪ .‬يك شدن اين ﺑيﺖ ﺑيانگر اين اسﺖ كه‬
‫نتيﺠه محاسباتي صحيﺢ نيسﺖ‪.‬‬

‫‪61‬‬

‫ثبات وضعيت‬
‫‪I‬‬ ‫‪T‬‬ ‫‪H‬‬ ‫‪S‬‬ ‫‪V‬‬ ‫‪N‬‬ ‫‪Z‬‬ ‫‪C‬‬ ‫‪SREG‬‬

‫• پرچم عﻼمﺖ )‪ :(S‬اين پرچم همواره نتيﺠه ‪ XOR‬ﺑين پرچم هاي ‪ V‬و ‪N‬‬
‫مي ﺑاشد‪.‬‬
‫• پرچم نيم نقلي )نقلي كمكي( )‪ :(H‬اﮔر هﻨگام عمليات جمﻊ‪ ،‬يك انتقال از ﺑيﺖ‬
‫‪ ٣‬ﺑه ‪ ٤‬در يكي از ﺛبات هاي عمومي يا نتيﺠه نيم ﺑايﺖ پايين )ﺑيﺖ هاي ‪ ٠‬تا‬
‫‪ (٣‬ﺑزرﮔتر از ‪ ٩‬ﺑاشد‪ ،‬پرچم ‪ H‬يك خواهد شد و ﺑراي محاسبه ﺑه صورت‬
‫‪ BCD‬مفيد اسﺖ‪.‬‬
‫• پرچم موقﺖ )‪ :(T‬هﻨگام استفاده از دستورهاي اسمبلي كپي كردن ﺑيﺖ ها‪ ،‬از‬
‫اين ﺑيﺖ ﺑه عﻨوان مبدأ يا مقصد استفاده مي شود‪.‬‬
‫• پرچم ﻓعال ساز وقفه سراسري )‪ :(I‬در صورت يك كردن اين ﺑيﺖ‪ ،‬وقفه‬
‫سراسري ﻓعال مي شود‪ .‬اﮔر اين ﺑيﺖ صفر ﺑاشد‪ ،‬هيچ وقفه اي رخ نمي دهد‪.‬‬

‫‪62‬‬

‫‪31‬‬
‫‪4/24/2020‬‬

‫پورت ‪I/O‬‬
‫• پورت ها امكان دسترسي ميكروكﻨترﻟر ﺑا دنياي خارج را ﻓراهم مي كﻨﻨد‪.‬‬
‫• يك ميكروكﻨترﻟر ﺑه كمك پورت هاي ‪ I/O‬مي تواند داده هاي مﺨتلفي را از‬
‫دنياي خارج درياﻓﺖ يا ﺑه دنياي خارج ارسال نمايد‪.‬‬
‫• در ميكروكﻨترﻟرهاي ‪ AVR‬ﺑا توجه ﺑه نوع ميكروكﻨترﻟر‪ ،‬تعداد پورت ها‬
‫متفاوت مي ﺑاشد‪.‬‬

‫‪ATmega256‬‬ ‫‪ATmega128‬‬ ‫‪ATTiny‬‬ ‫نوع ميكرو‬


‫‪٨٦‬‬ ‫‪٥٣‬‬ ‫‪٦‬‬ ‫تعداد پورت ‪I/O‬‬

‫• در ‪ AVR‬ها پورت ها ﺑه صورت ‪ PORTC ،PORTB ،PORTA‬و ‪ ...‬نام ﮔذاري‬


‫مي شوند كه هر كدام ﺑه صورت ‪ ٨‬ﺑيتي عمل مي كﻨﻨد‪.‬‬

‫‪63‬‬

‫ساختار پورت ‪I/O‬‬

‫مقاومﺖ ‪Pull up‬‬

‫‪64‬‬

‫‪32‬‬
‫‪4/24/2020‬‬

‫ساختار پورت ‪I/O‬‬


‫• پورت ها عﻼوه ﺑر كارﺑرد‬
‫عمومي ﺑه عﻨوان ‪ I/O‬معموﻻً‬
‫داراي وظايﻒ خاصي نيز‬
‫هستﻨد كه ﺑا توجه ﺑه ‪AVR‬‬
‫مورد نظر متفاوت اسﺖ‪.‬‬

‫‪65‬‬

‫ساختار پورت ‪I/O‬‬


‫‪Atmega32‬‬

‫‪66‬‬

‫‪33‬‬
‫‪4/24/2020‬‬

‫ساختار پورت ‪I/O‬‬


‫• رجيستر داده پورت )‪(PORTx‬‬
‫‪Bit‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪PORTx7‬‬ ‫‪PORTx6‬‬ ‫‪PORTx5‬‬ ‫‪PORTx4‬‬ ‫‪PORTx3‬‬ ‫‪PORTx2‬‬ ‫‪PORTx1‬‬ ‫‪PORTx0‬‬

‫• رجيستر جهﺖ داده پورت )‪(DDRx‬‬


‫‪Bit‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪DDRx7‬‬ ‫‪DDRx6‬‬ ‫‪DDRx5‬‬ ‫‪DDRx4‬‬ ‫‪DDRx3‬‬ ‫‪DDRx2‬‬ ‫‪DDRx1‬‬ ‫‪DDRx0‬‬

‫• رجيستر پايه هاي داده پورت )‪(PINx‬‬


‫‪Bit‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪PINx7‬‬ ‫‪PINx6‬‬ ‫‪PINx5‬‬ ‫‪PINx4‬‬ ‫‪PINx3‬‬ ‫‪PINx2‬‬ ‫‪PINx1‬‬ ‫‪PINx0‬‬

‫‪67‬‬

‫ساختار پورت ‪I/O‬‬


‫نكته‬

‫در عبارت هاي ‪ DDRx.y ،PORTx.y‬و ‪ PINx.y‬متغير ‪ x‬ﺑسته ﺑه‬


‫نوع ميكرو مي تواند نام يكي از پورت هاي ‪F ،E ،D ،C ،B ،A‬‬
‫و ‪ G‬ﺑاشد و ‪ y‬شماره يكي از پايه هاي صفر تا ‪ ٧‬مي ﺑاشد‪.‬‬

‫‪68‬‬

‫‪34‬‬
‫‪4/24/2020‬‬

‫ساختار پورت ‪I/O‬‬


‫• تعيين جهﺖ پايه ها ﺑه صورت ورودي و خروجي‬
‫– ﺑراي اين كار از رجيستر ‪ DDRx‬استفاده مي شود‪.‬‬
‫– اﮔر در ﺑيﺖ مورد نظر از اين رجيستر صفر مﻨطقي نوشته‬
‫شودآن پايه ﺑه صورت ورودي تعريﻒ مي شود‪.‬‬
‫– اﮔر در ﺑيﺖ مورد نظر از اين رجيستر يك مﻨطقي نوشته شودآن‬
‫پايه ﺑه صورت خروجي تعريﻒ مي شود‪.‬‬

‫‪69‬‬

‫ساختار پورت ‪I/O‬‬


‫• تعيين جهﺖ پايه ها ﺑه صورت ورودي و خروجي‬
‫• مثال ‪:‬‬
‫‪DDRA = 47 H‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫در اين مثال‪ ،‬پايه هاي ‪ ٠‬و ‪ ١‬و ‪ ٢‬و ‪ ٦‬از پورت ‪ A‬ﺑه صورت خروجي و پايه هاي ‪٣‬‬
‫و ‪ ٤‬و ‪ ٥‬و ‪ ٧‬ﺑه صورت ورودي تعريﻒ مي شود‪.‬‬

‫‪70‬‬

‫‪35‬‬
‫‪4/24/2020‬‬

‫ساختار پورت ‪I/O‬‬


‫• مقاومﺖ ﺑاﻻكش )‪(Pull-Up‬‬
‫• در مدار داخلي يك پين از ميكروكﻨترﻟر‪ ،‬هر يك از پين هاي ‪ I/O‬داراي دو‬
‫ديود محاﻓﻆ ﺑراي محاﻓظﺖ از وﻟتاژ ورودي مﻨفي يا ﺑزرﮔتر از ‪ VCC‬اسﺖ و‬
‫همچﻨين داراي يك مقاومﺖ ﺑاﻻكش داخلي مي ﺑاشد‪ .‬مقاومﺖ هاي ﺑاﻻكش را‬
‫مي توان ﺑه دﻟﺨواه ﻓعال يا غير ﻓعال كرد‪.‬‬

‫• هﻨگامي كه پايه اي ﺑه صورت ورودي تعريﻒ مي شود )‪ ،(DDRx.n =0‬اﮔر‬


‫در ﺑيﺖ ‪ PORTx.n‬مقدار يك مﻨطقي و ﺑيﺖ ‪ PUD‬در رجيستر ‪ SFIOR‬نيز‬
‫صفر مﻨطقي نوشته شود‪ ،‬مقاومﺖ ﺑاﻻكش داخلي ﻓعال خواهد ﺑود‪.‬‬

‫‪71‬‬

‫ساختار پورت ‪) I/O‬مقاومت باﻻكش(‬

‫• رجيستر ‪SFIOR‬‬
‫‪Bit‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪ADTS2‬‬ ‫‪ADTS1‬‬ ‫‪ADTS0‬‬ ‫‪-‬‬ ‫‪ACME‬‬ ‫‪PUD‬‬ ‫‪PSR2‬‬ ‫‪PSR10‬‬ ‫‪SFIOR‬‬

‫‪Read/Write‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬ ‫‪R‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬ ‫‪R/W‬‬


‫‪3‬‬
‫‪Initial Value‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫• هﻨگامي كه ﺑيﺖ ‪ PUD‬ﺑراﺑر يك مي ﮔردد‪ ،‬مقاومﺖ ﺑاﻻكش درون‬


‫پورت هاي ‪ I/O‬غيرﻓعال مي شود‪ ،‬حتي اﮔر ‪ DDRx.n = 1‬و‬
‫‪ PORTx.n = 1‬شده ﺑاشد‪.‬‬

‫‪72‬‬

‫‪36‬‬
4/24/2020

(‫ )مقاومت باﻻكش‬I/O ‫ساختار پورت‬


AVR ‫• وضعيﺖ مﺨتلﻒ يك پايه در ميكروكﻨترﻟر‬

0 1

DDRx.n
PORTx.n
0 ‫ورودي و امپدانس ﺑاﻻ‬ ‫خروجي ﺑا مقدار صفر‬
1 ‫ورودي ﺑا ﻓعال ﺑودن‬ ١ ‫خروجي ﺑا مقدار‬
‫مقاومﺖ ﺑاﻻكش‬

73

(‫ )مقاومت باﻻكش‬I/O ‫ساختار پورت‬


AVR ‫• وضعيﺖ مﺨتلﻒ يك پايه در ميكروكﻨترﻟر‬

DDRx.n PORTx.n PUD I/O Pull-up Comment


(in SFIOR)
0 0 x Input No Tri-state (Hi-Z)
0 1 0 Input Yes Px.n will source current if ext.
pulled low
0 1 1 Input No Tri-state (Hi-Z)
1 0 x Output No Output Low (Sink)
1 1 x Output No Output High (Source)

74

37
‫‪4/24/2020‬‬

‫ساختار پورت ‪I/O‬‬


‫نكته‬

‫• هﻨگامي كه پايه ﺑه صورت ورودي تعريﻒ مي شود‪ ،‬در صورتي كه‬


‫مقاومﺖ ﺑاﻻكش داخلي يا خارجي ﻓعال نباشد‪ ،‬پايه ‪ I/O‬ﺑه حاﻟﺖ‬
‫‪ Hi-Z‬رﻓته و مقدار خوانده شده از ورودي پايه قاﺑل اطميﻨان‬
‫نمي ﺑاشد‪ .‬ﺑﻨاﺑراين توصيه مي شود هﻨگام ورودي كردن پايه‪،‬‬
‫مقاومﺖ ﺑاﻻكش داخلي يا خارجي ﺑراي آن در نظر ﮔرﻓته شود‪.‬‬
‫• هﻨگامي كه پايه ﺑه صورت خروجي تعريﻒ شده ﺑاشد‪ ،‬مقاومﺖ‬
‫ﺑاﻻكش غيرﻓعال خواهد شد‪.‬‬

‫‪75‬‬

‫ساختار پورت ‪) I/O‬مقاومت باﻻكش(‬


‫• مثال‬
‫‪DDRB = 47 H‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫‪PORTB = C9 H‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬

‫در اين مثال‪ ،‬پايه هاي ‪ ٠‬و ‪ ١‬و ‪ ٢‬و ‪ ٦‬از پورت ‪ B‬ﺑه صورت خروجي و ﺑقيه پايه مطاﺑق جدول‬ ‫•‬
‫زير ﺑه صورت ورودي تعريﻒ مي شود ‪:‬‬

‫‪PB7‬‬ ‫‪PB6‬‬ ‫‪PB5‬‬ ‫‪PB4‬‬ ‫‪PB3‬‬ ‫‪PB2‬‬ ‫‪PB1‬‬ ‫‪PB0‬‬


‫ورودي ﺑا‬ ‫خروجي ﺑا‬ ‫ورودي ﺑا‬ ‫ورودي ﺑا‬ ‫ورودي ﺑا‬ ‫خروجي ﺑا‬ ‫خروجي ﺑا‬ ‫خروجي ﺑا‬
‫ﻓعال ﺑودن‬ ‫مقدار ‪١‬‬ ‫غيرﻓعال‬ ‫غيرﻓعال‬ ‫ﻓعال ﺑودن‬ ‫مقدار صفر‬ ‫مقدار صفر‬ ‫مقدار ‪١‬‬
‫‪Pull-up‬‬ ‫ﺑودن‬ ‫ﺑودن‬ ‫‪Pull-up‬‬
‫‪Pull-up‬‬ ‫‪Pull-up‬‬

‫‪76‬‬

‫‪38‬‬
‫‪4/24/2020‬‬

‫ساختار پورت ‪I/O‬‬


‫• نوشتن در پايه ها‬
‫– اﺑتدا جهﺖ پايه مورد نظر را ﺑه صورت خروجي تعريﻒ مي كﻨيم‬
‫)‪(DDRx.n=1‬‬
‫– ﺑا نوشتن در ﺑيﺖ ‪ PORTx.n‬مقدار دﻟﺨواه را ﺑر روي پايه موردنظر‬
‫مي نويسيم‪.‬‬
‫‪DDRx.n=1‬‬

‫‪PORTx.n‬‬

‫داخل تراشه‬
‫ميكرو‬ ‫دنياي خارج از‬
‫ميكرو‬

‫‪77‬‬

‫ساختار پورت ‪I/O‬‬


‫• خواندن از پورت‬
‫– ﺑراي اين كار مي توان ﺑه كمك ‪ PINx‬اطﻼعات را از روي پايه‬
‫درياﻓﺖ نمود‪.‬‬

‫‪DDRx.n=0‬‬

‫‪PINx.y‬‬ ‫‪Data‬‬

‫داخل تراشه‬
‫ميكرو‬ ‫دنياي خارج از‬
‫ميكرو‬

‫‪78‬‬

‫‪39‬‬
‫‪4/24/2020‬‬

‫سيستم توزيع پالس ساعت در ‪AVR‬‬


‫پاﻟس ساعﺖ داخلي از مﻨاﺑﻊ مﺨتلفي ايﺠاد مي شود‪.‬‬ ‫•‬
‫اين مﻨاﺑﻊ مي تواند نوسان ساز كريستاﻟي‪ ،‬نوسان ساز ‪ RC‬خارجي‪،‬‬ ‫•‬
‫نوسان ساز كريستاﻟي ﻓركانس پايين‪ ،‬نوسان ساز ‪ RC‬داخلي و‬
‫پاﻟس ساعﺖ خارجي را نام ﺑرد‪.‬‬
‫پاﻟس هاي ساعﺖ توﻟيد شده از مﻨاﺑﻊ‪ ،‬توسﻂ يك ‪Clock‬‬ ‫•‬
‫‪ Multiplexer‬انتﺨاب مي شود‪.‬‬
‫پاﻟس ساعﺖ مﻨبﻊ انتﺨاب شده ﺑه قسمﺖ ‪AVR Clock Control‬‬ ‫•‬
‫‪ Unit‬وارد مي شود‪ .‬اين قسمﺖ‪ ،‬وظيفه پﺨش پاﻟس ساعﺖ ﺑه‬
‫قسمﺖ هاي مﺨتلﻒ ‪ AVR‬را ﺑر عهده دارد‪.‬‬

‫‪79‬‬

‫سيستم توزيع پالس ساعت در ‪AVR‬‬


‫• دسته ﺑﻨدي پاﻟس هاي ساعﺖ ايﺠاد شده توسﻂ واحد ‪: Clock Control‬‬
‫پاﻟس ساعﺖ ‪ : (CLKCPU) CPU‬اين پاﻟس ساعﺖ ﺑه ﺑﺨش هاي اصلي ‪ AVR‬مانﻨد ‪،CPU‬‬ ‫–‬
‫رجيسترهاي عمومي‪ ،‬رجيستر وضعيﺖ ‪ SREG‬و حاﻓظه داده ‪ SRAM‬اعمال مي شود‪.‬‬
‫پاﻟس ساعﺖ ‪ : (CLK I/O) I/O‬اين پاﻟس ساعﺖ ﺑراي ﺑﺨش هايي چون ﻓضاي حاﻓظه ‪ I/O‬كه‬ ‫–‬
‫ﺑراي كﻨترل قسمﺖ هايي نظير ‪ ،SPI ،USART‬تايمر شمارنده و وقفه هاي خارجي ﺑه كار مي‬
‫رود‪.‬‬
‫پاﻟس ساعﺖ آسﻨكرون )‪ : (CLKASY‬اين پاﻟس ساعﺖ ﺑراي راه اندازي آسﻨكرون‬ ‫–‬
‫تايمر‪/‬شمارنده )‪ (٢‬توسﻂ كريستال ساعﺖ ‪ ٣٢/٧٦٨ KHz‬ﺑه كار مي رود‪.‬‬
‫پاﻟس ساعﺖ حاﻓظه ‪ : (CLKFLASH) FLASH‬اين پاﻟس ساعﺖ ﺑراي كﻨترل ارتباط ﺑاحاﻓظه‬ ‫–‬
‫‪ FLASH‬ﺑه كار مي رود و معموﻻً همراه ﺑا ‪ CLKCPU‬ﻓعال مي شود‪.‬‬
‫پاﻟس ساعﺖ ‪ : (CLKADC) ADC‬اين پاﻟس ساعﺖ ﺑراي مبدل آناﻟوگ ﺑه ديﺠيتال ﺑوده و ﺑه‬ ‫–‬
‫صورت جداﮔانه تأمين مي شود و امكان توقﻒ پاﻟس ساعﺖ ‪ CPU‬و ‪ I/O‬را ﺑه مﻨظور كاهش‬
‫تأﺛير نويز مدارات ديﺠيتال روي ‪ ADC‬و در نتيﺠه اﻓزايش دقﺖ آن ﻓراهم مي كﻨد‪.‬‬

‫‪80‬‬

‫‪40‬‬
‫‪4/24/2020‬‬

‫سيستم توزيع پالس ساعت در ‪AVR‬‬

‫‪81‬‬

‫دياﮔرام بلوكي‬
‫‪AVR‬‬

‫‪Atmega32‬‬

‫‪82‬‬

‫‪41‬‬
‫‪4/24/2020‬‬

‫دياﮔرام بلوكي واحد ‪MCU‬‬

‫‪Atmega32‬‬

‫‪83‬‬

‫پايان فصل سوم‬

‫‪84‬‬

‫‪42‬‬
‫‪4/24/2020‬‬

‫ﺑراي كسﺐ اطﻼعات ﺑيشتر در مورد اين درس ميتوانيد ﺑه‬


‫وب سايﺖ آموزشي در ﻟيﻨك زير مراجعه نماييد‬

‫‪http://shafieian-education.ir‬‬

‫‪85‬‬

‫‪43‬‬

You might also like