79

my project

Embed Size (px)

Citation preview

Page 1: my project
Page 2: my project
Page 3: my project

دانشگاه شهید باهنر کرمان

دانشکده فنی و مهندسی

پروژه کارشناسی رشته مهندسی کامپیوتر

افزارسخت گرایش:

عنوان:

LPC1768 باعکس برداری ساخت دوربین

استادراهنما:

دکترامیدعابدی

دانشجو:

سهیالدوستی

3131شهریور

Page 4: my project

.شکر و سپاس خدا را که بزرگترین امید و یاور در لحظه لحظه زندگیست

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

پروردگارا!

نمی توانم معنایی باالتر از تقدیر و تشکر بر زبانم جاری سازم و سپاس خود را در وصف استادان خویش

.آشکار نمایم، که هر چه گویم و سرایم ، کم گفته ام

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

پروردگارا:

نه میتوانم موهایشان را که در راه عزت من سفید شد، سیاه کنم و نه برای دستهای پینه بسته شان که

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

عمرم را در عصای دست بودنشان بگذرانم.

حمد امین امجدی که بدون کمک های بی دریغ ایشان انجام این پروژه و با تشکر فراوان از جناب آقای م

ممکن نمی نمود.

Page 5: my project

تقدیم به :

قدیم به مهربان فرشتگانی که:ت

لحظات ناب بودن، لذت و غرور دانستن، جسارت خواستن، عظمت رسیدن و تمام تجربه های یکتا و زیبای

آنهاستزندگیم، مدیون حضور سبز

تقدیم به خانواده عزیزم.

Page 6: my project

چکیده

میکرو کنترلرها قطعات الکترونیکی بسیار پر مصرفی هستند وو در واقع تحولی)هر چند کوچک( در صنعت

میکرو کنترلر یک کامپیوتر کوچک با ظرفیت و توانایی های کمتر و کامپیوتر به شمار میروند.الکترونیک و

البته قابل گسترش تا سطح محدودی می باشد که می توان از آن در مصارف صنعتی و غیرصنعتی استفاده

کرد.

هر خانواده از میکرو کنترلر ها در مواردی قوی تر و در مواردی ضعیفتر از سایرین هستند.و نوع میکرو

مشخص میشود. کنترلر بر اساس نیاز فرد و ویژگی های خاص هر خانواده ازمیکرو کنترلرها

استفاده شده است،که یک میکروکنترلر با ARM cortex m3 lpc 1768در این پروژه از میکروکنترلر

اربرد صنعتی بسیار باالمی باشد .ک

lcdبوسیله این میکروکنترلر راه اندازی شد و پس از نمایش عکس روی OV7670در این پروژه دوربین

ذخیره می شود.که مراحل آن به SDروی کارت .bmpبا فرمت میباشد،عکس LCD N96 گرافیکی که

تفصیل بیان خواهد شد.

SD، کارت ARM cortex m3 lpc 1768، OV7670، LCD N96 کلمات کلیدی:

Page 7: my project

أ

و ارتباط با پروژه SDو کارت LCDتوضیحاتی پیرامون : لصل اوق

2 ........................................................................................................................ مقدمه 1.1

LCD .................................................................................... 2 صفحات یتکنولوژ به ینگاه 1.2

LCD 1.3 3 ............................................................................................................. ست؟یچ

SD ................................................................................................................... 3 حافظه1.4

DRAM ................................................................................3حافظه یمقدمات اصول 1.4.1

4 ............................................................................................................ نامه انیپا ساختار1.5

5 ........................................................................................................................ خالصه1.6

یکروکنترلر: م ومدصل ف

7 ........................................................................................................................ مقدمه2.1

7 ...................................................................................................... ست؟یچ کنترلر کرویم2.2

01 ................................................................................................... کروکنترلرهایم خچهیتار2.3

LPC1768 ....................................................................................................... 02 یعرفم2.4

03 ........................................................................................................ انداز راه مدار2.4.1

03 .................................................................................................... مدار با کار نحوه2.4.2

01 ...................................................................................................................... صهخال2.5

Page 8: my project

ب

Keilنرم افزار موزش آ: ومسصل ف

01 ...................................................................................................................... مقدمه3.1

01 ................................................................................................ آن با کار و keil افزار نرم3.2

Keil ......................................................................................................... 01 نصب3.2.1

Keil .......................................................................................... 21 نمودن کرک نحوه3.2.2

KEIL ..................................................................................... 20 لریکامپا با کار شروع3.2.3

MDK Keil uVision ..................................................... 22 توسط ینریبا کد جادیا نحوه3.2.4

KEIL ................................................................................. 23 طیمح در یسینو برنامه3.2.5

24 ............................................................................. برنامه در ریتاخ جادیا3.2.5.1

25 ........................................................................................ ها ربرنامهیز3.2.5.2

25 ............................................................................ تست برنامه نمونه کی3.2.5.3

25 ................................................................................................کرویم کردن پروگرام نحوه3.3

flash magic ........................................ 21 برنامه و mini lpc programmer از استفاده3.3.1

USB ............................................ 22 لودر بوت از استفاده با کنترلر کرویم کردن پروگرم نحوه3.3.2

30 ...................................................................................................................... خالصه3.4

LPC 1768: رمچهاصل ف

33 ...................................................................................................................... مقدمه4.1

LPC1768 .................................................................................. 33 ترلرکن کرویم مشخصات4.2

LPC17xx(Cortex-M3) .............................................................. 34 یسر اتیخصوص4.2.1

LPC1768 ............................................................................................... 35 اگرامید بالک4.3

Page 9: my project

ج

31 ........................................................................................... کنترلر کرویم یداخل یواحدها4.4

31 .............................................................................................. یمرکز پردازش واحد4.4.1

31 ............................................................................................................... حافظه4.4.2

37 .............................................................................................. یوجخر/یورود واحد4.4.3

37 ............................................................................................................. التوریاس4.4.4

37 ...................................................................................................... شمارنده/مریتا4.4.5

A/D ................................................................................ 32 تالیجید به آنالوگ مبدل4.4.6

PWM ............................................................................................. 41 واحد عمکرد4.4.7

SPI ......................................................................................................... 40احد و 4.4.8

SPI .......................................................................................................... 40 واحد4.4.8

LPC1768 ................................................................................................ 40 یسترهایرج4.5

42 ................................................................................................. ستیر منبع نییتع4.5.1

43 ................................................................................................. کالک منبع نییتع4.5.2

43 ............................................................................... ستمیس کنترل و تیوضع ستریرج4.5.3

PLL0 .......................................................................... 44 بلوک به مربوط یها ستریرج4.5.4

PLL0 ............................................................................................ 44کنترل ستریرج4.5.5

PLL0 ........................................................................................ 44ماتیتنظ ستریرج4.5.6

PLL0 ........................................................................................ 45 تیوضع ستریرج4.5.7

PLL0FEED .............................................................................................. 45 ستریرج4.5.8

45 ................................................. یجانب ادوات و CPUکالک میتنظ به مربوط یها ستریرج4.5.9

USB CLK : 4.5.10 ................................................................................................. 41

Page 10: my project

د

Pclk 4.5.11 ............................................................................................................ 47

41 . یجانب یها بلوک فرکانس نییتع جهت PCLKSEL1 و PCLKSEL0 یها ستریرج ساختار4.5.12

PLL0 ........................................................................................... 42 میتنظ مراحل4.5.13

51 ...................................................................................................................... خالصه4.6

وال قطعات جانبی به میکرتصا: نجمپصل ف

52 ...................................................................................................................... مقدمه5.1

52 ............................................................................................ کترلر کرویم به LED اتصال5.2

53 .................................................................................................... یکیگراف LCD اتصال5.3

55 .................................................................................... کرویم به OV7670 نیدورب اتصال5.4

SD...................................................................................................... 57 کارت یانداز راه5.5

mmc ............................................................................................... 57 یسترهایرج5.5.1

52 ..................................................................... افزاری سخت دید از کارت مموری یبررس5.5.2

10 ...................................................................................................................... خالصه5.6

10 ................................................................................................................ یریگ جهینت5.7

13..........................................................................................................................................................منابع ............

Abstarct.............................................................................................................................................................14

Page 11: my project

ه

7 ....................................................................................... بلوک دیاگرام ساده از یک کامپیوتر2-0شکل

8 ................................................................. اجزاء تشکیل دهنده یک سیستم میکروپروسسوری 2-2شکل

LPC1768 ...................................................................................... 31مدار راه انداز میکرو 2-3شکل

31 ............................................................ کامپیوتر و تغذیه مدار COMنقشه اتصال میکرو به 2-4شکل

LPC1768................................................................................ 31شماره پین های خروجی 2-5شکل

LPC1768 ............................................................................................ 31نقشه پین های 2-1شکل

keil ....................................................................................................... 02نصب نرم افزار 3-0شکل

01 ............................................................................. جهت تولید فایل باینری keilتنظیمات 3-2شکل

mini lpc programmer ................................................................................. 02شماتیک 3-3شکل

LPC1768 ........................................... 08جهت پروگرمینگ FlashMagicتنظیمات نرم افزار 3-4شکل

LPC1768 .................................................................. 12جهت پروگرم کردن keilتنظیمات 3-5شکل

LPC1768 .............................................................................................. 12بالک دیاگرام 4-0شکل

OV7670 ............................................................................................ 12شماتیک دوربین 2-5شکل

Page 12: my project

و

SD ....................................................................................................... 15شماتیک کارت 3-5شکل

LPC1768 ................................................................................... 23به SDاتصاالت کارت 4-5شکل

31 ................................................................................................... 0711پایه های میکرو 2-0جدول

minilpc programmer ................................................................. 02نحوه اتصال پایه های 3-0جدول

LPC1768 ................................................................................... 11مشخات میکرو کنترلر 4-0جدول

LCD ............................................................................................................ 11متدهای 5-0جدول

OV7670 .................................................................................. 17جدول متد های دوربین 2-5جدول

SD ............................................................................................... 22مودهای کاری کارت 5-5جدول

Page 13: my project

ز

Page 14: my project

فصل اول

و ارتباط با پروژه SDو کارت LCDتوضیحاتی پیرامون

Page 15: my project

2

مقدمه 1.1 4میکرو با ظرقیت کمتر از SDو کارت با مشخصات زیر N96گرافیکی LCDدر این پروژه از ماژول

استفاده میشود:گیگ

اینچی 3ابعاد

241*321تعداد پیکسل

هزار رنگ 212قابلیت تفکیک

بیتی 01و 1دارای دو مد دیتا باس

بدون(توان مصرفی بسیار پائینback light و کار کردن در محدوده )ولت 3.3

دارای یک تاچ اسکرین تعبیه شده در روی ماژول

البته در ابتدا در فصل اول در رابطه با تکنولوژی های بکار رفته در این دو ماژول توضیحاتی ارایه میدهیم و در

پروژه خواهیم پرداخت. فصل های بعدی به نوع کاربردشان در

LCDنگاهی به تکنولوژی صفحات 1.2آموخته ایم که ماده سه حالت جامد ، مایع و گاز دارد که به تازگی هم دو حالت دیگر به آن اضافه شده

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

سو حرکت کنند . ولی مولکول های مایعات چنین قیدی نسبت به هم ندارندو در کل حجم آن آزادانه به هر

در حرکت اند . کریستالهای مایع موادی هستند که ظاهر مایع دارند، اما مولکولهای آنها آرایش خاصی نسبت

دلیل کریستالبه یکدیگر دارند ، درست مانند جامدات که در شکل هم به راحتی دیده می شود. به همین

مایع خصوصیاتی شبیه به مایع و جامد داشته و به همین دلیل با چنین اسم متناقضی خوانده می شوند . این

مواد به شدت به دما حساس اند و اندکی حرارت الزم است تا آنها را به مایع واقعی درآورد و یا اندکی سرما

ها در مقابل تغییرات دما عکس العمل نشان داده LCDتا به معمولی تبدیل شود. به همین دلیل است که

و به عنوان دماسنج طبی استفاده می شوند . جالب این است که به دلیل همین حساسیت نمی توان از

کامپیوترهای کیفی یا نظایر آن در هوای بسیار سر و یا مثالً در آفتاب داغ ساحل دریا استفاده کرد . در این

. س العمل های عجیب و غریبی از خود نشان می دهندها عک LCDوضعیت معموالً

انواع مختلفی از مواد شناخته شده اند که در دمای معمولی چنین خصوصیاتی دارند. اما دسته ای از

آنهاهستند که به جریان الکتریسیته هم حساس هستند و مولکولهای آن متناسب با جریان برق ورودی می

ز درون یک کریستال چرخند و تغییر زاویه می دهند . این خصوصیت عجیب اثر جالبی هم دارد. وقتی نور ا

مایع این چنین عبور کند، پالریزاسیون یا قطبش آن هم جهت با مولکولهای کریستال می شود . از همین

. ها استفاده شد LCDخاصیت برای

و ارتباط با پروژه SDو کارت LCDوضیحاتی پیرامون ت 3فصل

Page 16: my project

3

LCD 1.3 چیست؟

LCD کلمهمخففLiquid Crystal Display های است. کریستال« صفحه کریستال مایع»به معنای

کشف شد. وی با تحقیقات 0شناس اتریشی به نام فردریک رینیتزرتوسط یک گیاه 0111مایع اولین بار در سال

شود در ابتدا یک مایع تیره تشکیل شده و ذوب می2ثبات کرد زمانی که ماده کلستریل و آزمایشات خود ا

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

شود. از آن زمان بود که ایده استفاده از کریستال مایع برای ساخت از تبلور نهایی به رنگ آبی تبدیل می

انشمندان و متخصصین افتاد. ساخت اولین صفحات نمایش کریستال مایع به سال صفحات نمایش به ذهن د

های ماهرانه و جالبی از این وسیله را به لحاظ گونه LCDگردد. از آن هنگام سازندگانمیباز 0211

ییی رساندند و روند رو به رشد تکنولوژها را از لحاظ تکنیکی به سطح باال LCDتکنولوژیکی توسعه دادند و

ساخت این وسیله همچنان رو به فزونی است.

SDحافظه 1.4

از سالها قبل در دسترس بوده است،اما هنوز درباره سرعت و امتیازات عملکرد SDRAMاگر چه حافظه

آن اطالعات درستی در بازار ارائه نمی شود. حتی بسیاری از تولیدکنندگانی که این محصول را به فروش می

سایتهایی که ادعا دارند ابهام موجود درباره این اصطالح را برطرف خواهند کرد، به درستی این رسانند و وب

فناوری را درک نکرده و به پیچیده تر شدن این مشکل کمک می کنند. در نتیجه، کاربران نمیدانند که کدام

PC 011ینکهکدامیک را انتخاب کنند و یا ا CAS 3و CAS 2سازگار است یا بین PC 011ماجول با

SDRAM قدیمیکار خواهد کرد یا خیر 3روی یک مادر برد.

DRAMاصول مقدماتی حافظه 1.4.1

، ارائه تاریخچه و توصیف مختصری درباره فناوری SDRAMبرای درک تفاوتهای موجود بین حافظه های

DRAM حافظهRAM پویا، ضروری است. حافظه هایی از نوع(FPM)Fast Page Mode DRAM ،

Extended Data Out DRAM (EDO) وSynchronous DRAM (SDRAM) همگی دارای ،

به معنی حافظه پویا با دستیابی تصادفی است و وجه DRAMهستند .اصطالح DRAMهسته اصلی

تسمیه آن به این دلیل است که سلولهای حاوی دادهها باید هر چند مدت یکبار نوسازی شوند، در حالی که

تا زمانی که برق در کامپیوتر جریان دارد، دادهها را حفظ می کند. تراشه (SRAM)ایستا RAMحافظه

. از شبکه ای از خازنها و یک ردیف ترانزیستور در باالی این شبکه تشکیل شدهاند DRAMهای

1 Friedrinch Rreinitzer اسید بنزوئیک کلستریل 23 Mother Board

و ارتباط با پروژه SDو کارت LCDوضیحاتی پیرامون ت 3فصل

Page 17: my project

4

خازنها سلولهای حافظه هستند که دادهها را ذخیره می کنند و ترانزیستورها تقویت کننده های حسی

، به گذرگاه حافظه ارسال می کنند. خازنها CPUهستند که داده ها را خوانده، تقویت کرده و برای انتقال به

استفاده قرار می گیرند، از طرفی کندتر از ترانزیستورها به دلیل اینکه از ترانزیستورها ارزانتر هستند مورد

. هستند و به عالوه باید هرازگاهی شارژ شوند

از یک عملیات دسترسی پایهای یکسان خواندن یا نوشتن استفاده می کنند DRAMتمام تراشه های

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

نگاه می دارند که از طریق ارائه آدرس یک سطر و ستون در دسترس قرار می گیرند .برای خواندن دادهها،

با یک خط "RAS"که به صورت اختصار "Row Address Strobe"یا ردیف اول با استفاده از فرمان

. نشان داده میشود در دسترس قرار میگیرد "RAS/" روی آن یا

در نتیجه، تمام دادههای موجود در یک ردیف به تقویت کننده های حسی منتقل می شوند .در مرحله

که به اختصار به صورت نشان داده می شود ارسال شده و سلول خاصی در یا بعدی، یک سیگنال به خط

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

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

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

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

باشد .این مشخصات نشاندهنده آن هستند که 1*1یا 4*4یک تراشه نگاه کنید، ممکن است پیکربندی آن

میلیون 1بیت یا 4مگابیتی با پهنای 01بیت فضا دارند تراشه 4میلیون سلول وجود دارد که هر یک 4

. بیت 1مگابیتی با پهنای 14هستند تراشه بیت فضا 1سلول وجود دارد که هر یک دارای

باید تعداد تراشهها در هر ماجول کافی باشد این فرآیند، ساخت یک بانک حافظه 0برای پر کردن گذرگاه

14بیتی استفاده میکنند، بنابراین در هر زمان، 142نام دارد .کامپیوترهای شخصی مدرن از گذرگاه داده

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

تراشه نیازمند خواهید بود. البته در عمل 1بیت باشد، به حداقل 1تراشه نیاز دارید و اگر پهنای تراشه 01

بیتی عرضه می شوند 14DIMMبیتی یا تراشه 32SIMMمدرن یا به صورت DRAMتراشه های

بیتی 14استفاده می کنید، باید یک جفت از آنها را تهیه کنید تا همیشه حافظه SIMM.اگر از تراشههای

. را در اختیار داشته باشید

ساختار پایان نامه1.5به معرفی توضیح خواهیم داد.و در ادامه و تاریخچه آنها در فصل بعد در رابطه با میکرو کنترلرها

LPC1768 .می پردازیم

را توضیح keilو نحوه برنامه نویسی در محیط خواهیم پرداخت. keilو در فصل سوم به آموزش نرم افزار

خواهیم داد و در نهایت در رابطه با روش های پروگرمینگ هدر برد حبت خواهیم کرد.

1 bus 2 data bus

و ارتباط با پروژه SDو کارت LCDوضیحاتی پیرامون ت 3فصل

Page 18: my project

5

را به صورت کامال جزیی مورد بررسی قرار خواهیم داد. LPC1768نیز میکروکنترلر چهاردر فصل

به بیان و توضیح واحد های داخلی آن خواهیم پرداخت.بالک دیاگرام مربوطه را میکشیم و در رابطه با

بیت های مختلف رجیسترهای متفاوت صحبت خواهیم کرد.رجیسترهای آن و مقدار دهی به

در فصل آخر نیز در رابطه با اتصال قطعات مختلف به میکرو کنترلر و ساخت دوربین توضیح خواهیم داد.

خالصه 1.6

LCDمخفف کلمهLiquid Crystal Display است.« صفحه کریستال مایع»به معنای

داریم: LCDدو نوع روی نمایشگر های موجوداز دیدگاه تامین شارژ پیکسل

ماتریس غیرفعال و ماتریس فعال.

: SD کارت

&، خط (tRCD)، سطر و بانک حافظه را فعال میکند .پس از مدتی RAS/از طریق خط CPUابتدا

/CAS فعال میشود .وقتی زمان الزم برای دسترسی ستونی(tCAC) سپری شد، دادهها روی خط خروجی

ظاهر میشوند و میتوانند درسیکل ساعت بعدی انتقال یابند .مدت زمان سپری شده برای در دسترس قرار

نانوثانیه است .انتقالهای بعدی از طریق حالت انتقال با سرعت باال هر 51گرفتن اولین قطعه داده، حدود

نیاز دارد و دوره تاخیر tCACر زمان مشخص شده توسطکه به مقدا CAS/سیکل ساعت یا تکمیل دوره

CAS نیز نامیده میشود، انجام میگیرند.

نانوثانیه باشد تا سیگنال بتواند به ثبات 1باید (tAC)برای عملیات انتقال با سرعت باال، زمان دسترسی

نانوثانیه یا کمتر 2قال داده نانوثانیه پس از آخرین عملیات آغاز شود .انت 1برسد و عملیات خروجی بتواند

نانو ثانیه یکبار در یک انتقال با سرعت باال در دسترس هستند که درست 01طول میکشد، یعنی دادهها هر

. مگاهرتز است 011به موقع برای سیگنال ساعت بعدی با سرعت

در فصل های آتی مراحل کار به تفصیل بیان خواهد شد.

و ارتباط با پروژه SDو کارت LCDوضیحاتی پیرامون ت 3فصل

Page 19: my project

فصل دوم

میکرو کنترلر

Page 20: my project

7

مقدمه2.1

میکرو کنترلردر حقیقت یک کامپیوتر تک تراشه نسبتا ارزان قیمت است. تک تراشه بدین معناست که

اجزای کامپیوتر از جمله حافظه.درگاه های ورودی/خروجی.واحد پردازشگر مرکزی و سایر ملزومات تمامی

آن تماما درون یک تراشه جای گرفته اند. ایده ی اصلی فشرده سازی کاهش حجم و هزینه و همچنین

سهولت قرار گرفتن در مدارات پیچیده تر و بزرگتر است.

تمام وسایل زندگی از قبیل موبایل.تلویزیون.اجاق مایکروویو.چرخ در دنیای امروز میکرو کنترلرها در

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

سیتم های سویچینگ.ذوب فلزات.تجهیزات پزشکی.ربات ها.ماشین های .سیستم های حفاظتی.وسایل

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

کنترلرفقط یک برنامه خاص را برای وسایل مذکور اجرا می کند.

ترلر چیست؟نمیکرو ک2.2

برای درک بهتر مفهوم میکرو کنترلر میتوانیم ابتدا روندی که منجر به تولید این قطعات گردیده است

کامپیوتر ها امروزه نقش غیر قابل انکاری را در زندگی بشر دارند. گسترش کاربرد کامپیوتر در بررسی شود.

چند دهه اخیر به حدی زیاد بوده که امروزه تصور زندگی بدون آن ها بسیار سخت است. کامپیوتر ها با تمام

دارند. پیچیدگی هایشان ، همگی بلوک دیاگرام ساده ای مانند شکل

بلوک دیاگرام ساده از یک کامپیوتر2-3شکل

می 2خروجی حافظه و ادوات ورودی0سه بلوک اصلی نشان داده شده در این شکل ، واحد مرکزی پردازش

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

،واحد کنترل ، رجیستر ودکودر دستورالعمل و مدارات تولید پالس داخلی تشکیل ALUهای متفاوتی مثل

ل های جداگانه طراحی به صورت ماژو CPUشده است. در آغاز روند تولید کامپیوترها واحد های مختلف

تشکیل می شود. در اوایل دهه CPUمی شد و از کنار هم قرار گرفتن آنها و ارتباط واحد ها با یکدیگر

این فکر در طراحان سیستم های کامپیوتری تقویت می شود که آیا می توان نمامی واحد های مورد 0271

1 CPU 2 I/O

C

PU

ح

ا

ف

ظ

ه

I

/O

میکروکنترلر 2فصل

Page 21: my project

8

نتیجه داد 0270را در داخل یک تراشه قرارداد؟ تالش های محققان در سال CPUنیاز برای تشکیل یک

کامل بود که تماما CPUشامل یک ICتولید کند. این intel4004با نام CPUو شرکت اینتل موفق شد

شده بود. این واحد مرکزی پردازش جدید را میکروپروسسور یا ریزپردازنده بر روی یک تراشه قرار داده

نامگذاری کردند.

معرفی که میکروپروسسور ها بوجود آوردند کمتر از تحولی که ساختن کامپیوتر ها ایجاد نمودند، نبود.

طراحی و معرفی آنها استقبال فراوان به عمل آمده از میکروپروسسورها ، کارخانه های بسیاری را نیز در گیر

خروجی با یکدیگر -نمود که هر یک در نحوه ساخت، ساختمان داخلی و نحوه ارتباط با حافطه و ورودی

تولید گردی می توان به ریزپردازنده قدرتمند 0271تفاوت هایی داشتند. از ریز پردازنده هایی که در دهه

Z80 پروسسور ها ، سیستم های کامپیوتری کامال ساخت شرکت زایلوگ اشاره کرد. حال با تولید میکرو

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

مبتنی بر میکروپروسسورها بخش های مختلفی وجود دارند که هریک وظیفه خاصی را در داخل سیستم بر

ین سیستمی را نشان می دهد.اجزاء نشان داده شده در این شکل ، چن 0-2عهده دارند.بلوک دیاگرام شکل

اجزاء معمول تشکیل دهنده یک سیستم میکروپروسسوری می باشند.

تشکیل دهنده یک سیستم میکروپروسسوریاجزاء 2-2شکل

توضیح مختصری درباره واحد های مختلف یک سیستم میکرو پروسسوری می تواند اهمیت این واحد ها

که RAMو حافظه های ROMاز دو مجموعه تشکیل می گردد. حافظه های نمایان سازد. حافظه اصلیرا

همانطور که از نامش ROMهریک در سیستم میکروپروسسوری وظیفه خاصی را برعهده دارند.حافظه

العات اط پیداست حافظه ای تنها خواندنی ست. علت استفاده از این نوع حافظه در سیستم ها، غیر فرار بودن

آن است. به این ترتیب داده ای که در یک چنین حافظه ای قرار گرفته باشد ، حتی پس از قطع تغذیه

سیستم نیز دست نخورده باقی می ماند. بنابراین اینگونه حافظه ها کاندیدای مناسبی برای ذخیره سازی

ه یستم توسط برنامه ای کاطالهات دائمی در سیستم هستند. در یک سیستم میکروپروسسوری عملکرد س

شود، تعیین می خوانده و اجرا می CPUدر سیستم ذخیره شده و به ترتیب از خانه های حافظه توسط

قرار می گیرد.در هر ROMگردد.تمامی یا بخشی از این برنامه در هر سیستم میکروپروسسوریدر داخل

میکروکنترلر 2فصل

Page 22: my project

9

سیستم میکروپروسسوری در ضمن اجرای برنامه نبا به دالیل مختلف نیاز به ذخیره سازی داده ها به صورت

یداده ها ویا حتی برنامه های موقت می باشد، لذا استفاده قابل نوشتن از سیستم میکروپروسسوری ضرور

ROMو RAMاستفاده می گردد. برای ساخت حافظه های RAMاست.برای این منظور از حافظه های

از تکنولوژی های مختلف با مزایا و معایب خاص خود استفاده می گردد که از جمله آنها می توان به

PROM،EPROM ،EEPROM برای ساخت ،ROM و تکنولوژی استاتیکی و دینامیکی برای ساخت

RAM .اشاره کرد

هر سیستم میکروپروسسوری محلی برای ذخیره دائمی اطالعات نرم افزار سیستم احتیاج دارد. این واحد

حافظ عالوه بر اینکه باید توانایی ذخیره اطالعات داشته باشد، باید قابلیت بازنویسی و تغییر اطالعات و نرم

ه جانبی استفاده می گردد. در سیستم های افزار سیستم را نیز داشته باشد.برای این منظور از حافظ

میکروپروسسوری برای ساخت حافظه های جانبی از ادوات نیمه هادی استفاده نمی شد و بجای آنها از وسائل

دارای قسمت های مکانیکی استفاده می گردید که سبب بروز مشکالتی مانند سرعت پایین، حجم ذخیره

یشرفت تکنولوژی ساخت ادوات نیمه هادی از تراشه های نیمه هادی سازی کم و ... می گردید. امروزه با پ

برای حافظه جانبی استفاده می گردد. در اینجا اشاره به این نکته نیز الزم است که به علت سرعت باالی

میکروپروسسور و سرعت پایین حافظه ها، ارتباط بین حافظه جانبی وحافظه اصلی با سایر قسمت ها در

روسسوری از طریق یک مدار واسط انجام می گیرد.سیستم میکروپ

خروجی قسمت دیگری از یک سیستم میکروپروسسوری هستند. هر سیستم -دستگاههای ورودی

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

خروجی دریافت کرده و پس از پردازش اطالعات و -میکروپروسسورها اطالعات را توسط دستگاه های ورودی

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

را به عنون دستگاه های ورودی می توان به کار گرفت مانند صفحه کلید ، انواع سنسور ها ، مبدل آنالوگ به

دیجیتال.

از مهم ترین دستگاه های خروجی هم میتوان به نمایشگر انواع موتور ها وچاپگرها اشاره کرد. در مورد

خروجی دو نکته قابل توجه است: نکته اول آن است که اغلب دستگاه های ورودی داده -دستگاه های ورودی

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

ابتدا به فرمت دیجیتال تبدیل گردد. اغلب سنسو رهایی که در سیستم های میکرو پروسسوری به کار برده

می شوند از این دست دستگاه های ورودی هستند.این مورد در رابطه با دستگاه های خروجی نیز صدق

میکنند.

نرخ انتقال داده نسبتا پایینی دارند و ارتباط مستقیم خورجی -دستگاه های ورودی نکته دوم آن است که

این دستگاه ها با میکروپروسسور تقریبا غیر ممکن است. به همین دلیل برای وصل کردن دستگاه های

.دار های واسطه می باشدخروجی به میکروپروسسور نیاز به م -ورودی

آورده شده 2-2بلوک دیاگرام شکل یک سیستم میکروپروسسوری عالوه بر قسمت های متفاوتی که در

است، نیاز به قسمت های دیگری نیز دارد: گذرگاه آدرس و گذرگاه داده جزو قسمت های مهم هر سیستم

میکروکنترلر 2فصل

Page 23: my project

01

مدارات جداگانه ای توسط این تراشه ها ایجاد پروسسوری هستند و هنگام طراحی سیستم باید برای آنها

ات ترتیبی هستند، برای تولیدشان نیاز به مدارات تولید پالس کرد.از انجا که میکروپروسسور ها دارای مدار

ساعت دارند که این مدارات هم به صورت جداگانه ای توسط قطهات آنالوگی مانند خازن و کریستال باید

کته توجه کرد که قسمت های نام برده شده در حقیقت کمترین تجهیزاتی ست که ایجاد شود. باید به این ن

هر سیستم میکرو پروسسوری باید داشته باشد و در صورت نیاز وابسته به طراحی سیستم مورد نظر، تجهیزات

نظر ردیگری مانند شمارندها ،مبدل های آنالوگ به دیجیتال و... نیز میتوان برای سیستم میکروپروسسوری د

گرفت.

با پیشرفت روزافزون علوم مرتبط با میکروپروسسور ها و سیستم های مبتنی بر آنها ، این سیستم ها وارد

عرصه های مختلف زندگی بشر گردیده اند و کنترل بسیاری از امور بر عهده سیستم های میکرو پروسسوری

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

اتصال هر یک از این بخش ها به یکدیگرسبب گردید تا حجم سیستم های میکرو پروسسوری زیاد شده و

بعضا برای کاربرد های خاصی که نیاز به یک سیستم کنترلی کوچک می بود، استفاده از این سیستم های

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

های میکرو پروسسوری بیاندیشند واین نکته که آیا میتوان یک سیستم کامل میکروپروسسوری را داخل یک

تراشه طراحی کرد؟

اولین تراشه که حاوی یک سیستم کامل میکرو پروسسوری در داخل خود بود تولید شد 0271در سال

، یک CPUترانزیستوردر یک مدار مجتمع بود و دارای یک 07111شامل intel8748این تراشه با نام

و یک تایمر هشت بیتی بود. چنین تراشه ای یک I/Oپایه RAM ،27بایت EPROM ،14کیلو بایت

سیستم کامل میکروپروسسوری را به همراه کلیه اجزاء آن در داخل خود داشته باشند ، میکرو کنترلر نامیده

. می شود

تاریخچه میکروکنترلرها2.3

ترانزیستور در آزمایشگاه های بل بوسیله سه فیزیکدان اختراع شدو صنایع الکترونیک رو 0247در اواخر

( توسط IC( با اختراع مدار مجتمع )0251سال بعد )سپتامبر 01به شدت تحت تاثیر خودش قرار داد. حدود

Texas Instruments انقالبی مجدد در صنعت الکترونیک به وقوع پیوست و دریچه هایی تازه به روی این

تاسیس شد و سه سال بعد یعنی در Robert Noyceتوسط Inteشرکت ا 0211دانش باز شد. در سال

بیتی شامل 4معرفی کرد. این میکروپروسسور 4114این شرکت اولین میکروپروسسور را به نام 0270نوامبر

به 1111بیتی 1میکروپروسسور 0274ترانزیستور بود و در ماشین حساب ها استفاده شد. در سال 2311

وارد بازار شد. در همین 1111عنوان نسل دوم ریزپردازنده ها توسط اینتل معرفی شد و به دنبال آن سریعا

بیتی 1کروپروسسوری می 1111منتشر کرد. 1111اولین میکروپروسسور خود را به نام Motorolaزمان

کامال متفاوت بود و این روند متفاوت در 1111با 1111بود، اگرچه معماری 1111با قدرتی تقریبا برابر با

0271را معرفی کرد و پس از آن در 1115به نام 1111آینده نیز حفظ شد. در ادامه اینتل نسخه ای شبیه

در اولین کامپیوتر شخصی 1111پردازنده ها متولد شد. نسل سوم 1111بیتی 01با تولید میکروپروسسور

IBM بیت دیتا باس مالتی پلکس 1)دارای 1111را به نام 1111استفاده شد. سپس اینتل ورژن ارزانتر

میکروکنترلر 2فصل

Page 24: my project

00

هنوز هم ادامه دارد و هدف آن کنار زدن 0بل توجه است که این سیاست اینتل شده( به بازار عرضه کرد. قا

و 311SXبا ارائه ی 411DXو 311DXرقیبان بوده و هست به طوری که این مسئله بعدها در مورد

411SX 11011خط گذرگاه اطالعات است( 01بیتی )منظور 01تکرار شد. در ادامه اینتل پردازنده های

ظهور کرد و پردازنده ی قدرتمند و 11311بیتی با ارائه ی 32معرفی کرد. نسل پردازنده های را 11211و

بیتی اینتل 14اولین ریزپردازنده ی 11411بیتی اینتل بود. پس از 32آخرین پردازنده ی 11411بیتی 32

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

و ... حرکت کرد 1121، 1100، 1111، 1115همین زمان موتوروال پا به پای اینتل با ارائه ی پردازنده های

به طوری که این میکروپروسسورها اغلب در کامپیوترهای اپل استفاده می شدند و آخرین آن ها که در

اینتل 4گیگاهرتزی پنتیوم 3نست در آزمایش ها پردازنده اپل در سال گذشته معرفی شد توا G5کامپیوتر

به ارائه Cyrixو Advanced Micro Devicesرا پشت سر بگذارد. همزمان با اینتل شرکت هایی نظیر

ی پردازنده های خود پرداخته اند و اگرچه در بسیاری موارد این ریزپردازنده ها قابل رقابت با پردازنده های

د اما همواره اینتل سهم عمده ی بازار را اختیار داشته است. شاید دلیل این موفقیت اینتل اینتل بوده ان

و دیگران. AMDبوده است و شاید هم بدشانسی IBMداشتن مشتری بزرگی همچون

مدتی است که پا یه دنیای الکترونیک گذاشته اند. این معماری باعث ARMخانواده میکروکنترلرهای

میکروکنترلرهای بسیار زیادی شده که از جمله شرکتهای محبوب و معروف در ایران میتوان بهایجاد

atmel وphilips اشاره کرد.ARM ها از نظر هستهCPU به چند دسته تقسیم میشوند که معروفترین

. میباشد KEILو IARاست. کامپایلرهای معروف این سری میکروکنترلرها arm9و arm7آنها

ارائه یک نسخه ی ارزانتر پس از یک پردازنده پرقدرت0

میکروکنترلر 2فصل

Page 25: my project

02

LPC1768معرفی 2.4

کیلوبایت حافظه 502حداکثر 011MHzبا حداکثر سرعت کالک cortex-m3 بیتی 32پردازنده ی

.isp برنامه ی داخلی با قابلیت برنامه ریزی داخل سیستمی

برای دسترسی به باس محلی sram کیلوبایت حافظه ی32

.برای رابط اترنت sram کیلوبایت 16

.usb با قابلیت دسترسی توسط dma برای sram کیلوبایت 8

.cpu بهsram,flash برای دسترسی حافظه ahb بایس جداگانه

. دو باست محلی برای دسترسی اترنت و یو اس بی به دی ام ای

بردار وقفه32ا قابلیت پپپشتیبانی ب nvic کنترل کننده ی بردار وقفه

dma مگابایت و کنترل کننده 011/01با سرعت mac اترنت

درون تراشه ای phy با usb2,0رابط

irda برای هر واتحد . از مدوالسیون مادون قرمز fifo با باود مستقل و حافظه uart واحد سریال 4

.پشتیبانی می کند

can2.0 دو کانال کنترل کننده ی

spi ک واحد کنترل کننده یی

ssp دو واحد کنترل کننده ی

i2c سه رابط

برای کنترل صدای دیجیتال i2s رابط

پین ورودی /خروجی با مقاومت های باال/پایین کش قابل تنظیم 70

0msps 4.5 بیتی با سرعت adc 12پین 8

.ده بیتی dac یک واحد

خروجی کپچر 01و ورودی کپچر 1بیتی با 32واحد تایمر کانتر 4

.خروجی 2فاز و 3با قابلیت کنترل موتور pwm یک واحد

باتغذیه ی جداگانه rtc یک واحد

استفاد همیکند اجازه میدهد که اطالعات حتی در صوورت rtc که از تغذیه واحد sram بایت 20

.خاموشی تراشه هم از بین نرود

تایمر واچ داگ

حالت کاهش توان مصرف 4

فه خروجیواحد وق 4

خروجی پردازنده از حالت پاور دون با رخ دادن وقفه اتفاق می افتد

میلیون نمونه در ثانیه0

میکروکنترلر 2فصل

Page 26: my project

03

دارای یک مقسم کالک برای هر واحد

.آشکار ساز پایین آمدن سطح ولتاژ تغذیه

PLL ،GPIO ،Ethernetمیکرو از جمله به واحد های داخلی بوده ، که 0پایه 011این میکروکنترلر

،CAN ،SPI ،UART ،USB ،i2c ،i2s ،ADC ،DAC ،PWM ،SSP اختصاص داده شده

. اند

مدار راه انداز2.4.1

قابل مشاهده است : LPC1768قسمت اصلی مدار راه انداز میکرو صفحه بعد در شکل

LPC1768مدار راه انداز میکرو 2-1شکل

نحوه کار با مدار2.4.2 وصل نمود . GNDمیکرو را باید به 07نمودن میکرو پایه Resetبرای .0

1 pin

میکروکنترلر 2فصل

Page 27: my project

04

وصل نمود و سپس آنرا روشن نمود و در GNDمیکرو را به 53برای پروگرام نمودن میکرو باید پایه .2

نمود . Resetصورتی که میکرو روشن باشد ، باید آنرا

Mini Lpc Programmer)مانند TTL To USBمبدل Rxباید به 21برای پروگرام نمودن پایه .3

( و MAX232)مانند TTL To RS232( یا مبدل ecaسایت CP2102موجود در سایت کویر یا ماژول

آن وصل شود . Txباید به 22همچنین پایه

استفاده می شود :TTL To RS232 0کامپیوتر ، از مبدل COMبرای اتصال میکرو به .4

کامپیوتر و تغذیه مدار COMنقشه اتصال میکرو به 2-4شکل

نیز باید از رگوالتور استفاده نمود،به صورتی که در شکل مشخص 3.3Vبرای تغذیه مدار و تامین ولتاژ

میباشد.

3671پایه های میکروکنترلر

MAX232معموال آی سی 0

میکروکنترلر 2فصل

Page 28: my project

05

LPC1768شماره پین های خروجی 2-5شکل

LPC1768نقشه پین های 2-7شکل

3671پایه های میکرو 2-3جدول

میکروکنترلر 2فصل

Page 29: my project

01

خالصه2.5میکرو کنترلر ها عموما در مواقعی مورد استفاده قرار میگیرند که توانایی پردازش باالیی نباشد و در عوض

گرفته باشد.قابلیت انجام عملیات ریاضی و منطقی به میکرو حجم کوچکی و مصرف انرژی کم مد نظر قرار

کنترلر امکان میدهد تا رفتار مداراهای الکترونیکی و سیستم های منطقی را تقلید کند.شکل ساختار درونی

یک میکرو کنترلر نوعی را نشان میدهد تمام اجزا توسط یک گذرگاه داخلی با یکدیگر ارتباط دارند و بر روی

شه جای گرفته اند.یک ترا

ما در این فصل سعی کردیم تا در ابتدا خواننده را با میکرو کنترلر ها آشنا کنیم و ویزگی های آنها را بیان

پرداختیم. LPC1768کنیم.و در ادامه به بررسی تخصصی

میکروکنترلر 2فصل

Page 30: my project

فصل سوم

keilآموزش نرم افزار

Page 31: my project

08

مقدمه3.1 برای برنامه نویسی و ساخت فایل خروجی قابل برنامه ریزی روی میکرو استفاده می شود Keilاز نرم افزار

می توان برای برنامه نویسی استفاده نمود . Assemblyو ++c ،c، که از زبان های

: هکامپایلرهای دیگری نیز وجود دارند که میتوان برای برنامه نویسی میکرو کنترلر از آنها استفاده نمود ازجمل

IAR, ADS ،Cross Work ،Win Arm وFlow Code . جهت پروگرام کردن میکرو میپردازیم. KEILدر این فصل به آموزش نرم افزار

و کار با آن keilنرم افزار 3.2

Keilصب ن3.2.1

اجرای فایل نصب : .0

2.

keilآموزش نرم افزار 1فصل

Page 32: my project

09

تا اتمام مراحل نصب صبر نمائید :

keilآموزش نرم افزار 1فصل

Page 33: my project

21

keilنصب نرم افزار 1-3شکل

Keilنحوه کرک نمودن 3.2.2

را انتخاب راست کلیک نمائید و سپس گزینه روی آیکون .0

نمائید .

keilآموزش نرم افزار 1فصل

Page 34: my project

20

( ویندوز ، که بصورت پیش فرض در User Account Control) UACن در صورت فعال بود

فعال است ، پنجره ای جهت اجازه دادن به Win 8.1(Blue)و Vista ،Seven ،Win 8ویندوزهای

را انتخاب نمائید Yesاجرا شود باز می شود ، و گزینه administatorبرنامه که در حالت

را انتخاب نمائید . گزینه از منوی .2

قابل رویت است ، آنرا کپی نمائید . CIDدر سمت راست پنجره باز شده ، .3

نمائید . Pasteکپی شده را CID ،CIDو در قسمت را اجرا نمائید ، Crackفایل .4

را انتخاب نمائید : ARM، گزینه Targetدر قسمت .5

را انتخاب نمائید . گزینه .1

کد ایجاد شده را کپی نمائید : .7

نمائید : Paste و قسمت Keilکد را در .1

را انتخاب نمائید . گزینه .2

KEILشروع کار با کامپایلر 3.2.3 را انتخاب new uVision Projectگزینه PROJECTرا باز کنید و از منوی Keilابتدا نرم افزار

کنید.

کلیک کنید.سپس پنجره جدیدی saveدر پنجره باز شده نامی برای پروژه خود انتخاب کنید و روی دکمه

باز خواهد شد.شما از این پنجره می توانید پردازنده مورد نظر خود را انتخاب کنید.از پردازنده های شرکت

NXP یک از پردازنده های سریLPC0700 مثالLPC0711 .را انتخاب کنید

به پروژه اضافه شود یا Startupبعد از انتخاب این قطعه از شما پرسیده خواهد شد که ایا مایلید فایل

کلیک کنید. yesخیر.روی

keilآموزش نرم افزار 1فصل

Page 35: my project

22

اضافه شده است با کلیک رو عالمت + می توانید Target1حال به پنجره چپ نگاه کنید یک پوشه به نام

در ان قرار دارد. Startupمحتویات انرا مشاهده کنید.که تنها فایل

کلیک کنید.یک پنجره بازخواهد شد که می توانید کد مورد نظر خود را Newروی Fileحال از منوی

در ان قرار دهید.

test.c به شکل مثال c.در نوار ابزار فایل را با پسوند save پس از وارد کردن کد با کلیک روی ایکون

و انتخاب از پنجره سمت راست source Group ذخیره کنید. اکنون فایل برنامه را با راست کلیک روی

Add File to Group به پروژه اضافه کنید.حاال با راست کلیک روی عبارت Target1 در پنجره سمت

به قسمت تنظیمات پروژه وارد می شوید.در option for target و کلیک روی گزینه اول یعنی چپ

و طور پیش فرض ر میتوانید فرکانس کالک خارجی متصل به قطعه را انتخاب کنید که به target سربرگ

02MHz می باشد در سربرگ سوم یعنی output گزینه create HEX File را انتخاب کنید تا نرم افزار

البته از آنجایی که در .کلیک کنید ok الزم برای پروگرام کردن میکرو را تولید کند. سپس روی HEX فایل

ام کردن هدر بورد از طریق بوت لودر عمل ،و برای پروگراستفاده میشود LPC1768این پروژه از هدر بورد

میشود با انجام تنظیمات زیر فایل باینری پروژه نیز تولید میشود.

MDK Keil uVisionنحوه ایجاد کد باینری توسط 3.2.4 ایجاد کند. به USBنمی تواند کد باینری سازگار با بوت لودر Keil u Visionبه صورت پیش فرض

منظور ایجاد کد باینری سازگار با بوت لودر از یک خط دستور خارجی استفاده می کنیم. که به صورت زیر

عمل می کنیم :

را انتخاب کنید. ”User“تب ”Target Options“پنجره .0

“تیک مربوط به ”Run User Programm After Build/Rebuild“در این پنجره در قسمت .2

Run #1 ” .را قرار دهید

وارد کنید. ”Run #1“را به صورت زیر در کادر fromelfدستور .3

Fromelf –bin" .\test.axf" –output ".\test.bin"

keilآموزش نرم افزار 1فصل

Page 36: my project

23

جهت تولید فایل باینری keilتنظیمات 1-2شکل

مربوط به نام پروژه test عبارت test.axf" –output ".\test.bin" Fromelf –bin\. " در دستور

می باشد و برای استفاده از این دستور و برای استفاده از این دستور در هر پروژه ، نام آن پروژه به جای این

که در قسمت محصوالت سایت lcd 3.2عبارت قرار می گیرد. به طور مثال این دستور برای برنامه نمونه

می باشد. test برنامه نام پروژه قرار داده شده به کار برده شده است که در آن

در فصل های آینده با نحوه پروگرام کردن هدر بورد بیشتر آشنا میشویم.

پنجره مربوط به ان را باز کنید.این فایل شامل اطالعات الزم برای startup حاال با دابل کلیک روی فایل

محتوی اطالعات پیش فرض الزم می و غیره می باشد که PLL تنظیم پارامترهای قطعه مانند حافظه پشته

.باشد که شما می توانید بنابر نیاز خود انهارا تغییر بدهید

Build و با انتخاب گزینه Project از منوی تغییرات را ذخیره کنید.حاال زمان کامپایل برنامه است.

Target کنید .خطا ها و اخطار های یا با استفاده از دکمه قرار داده شده در نوار ابزار پروژه را کامپایل

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

KEILبرنامه نویسی در محیط 3.2.5 باشد. cبرنامه ای که می نویسیم ، باید به زبان

:انجام می شود به این صورت include# فراخوانی کتابخانه ها با دستور

ای را که مورد استفاده قرار میدهیم باید فایلش در پوشه پروژه کپی شود. هر کتابخانه

میدهد. warningدر انتهای هر برنامه باید یک خط خالی وجود داشته باشد در غیر اینصورت

:اعداد و متغیر ها

انواع متغیرها:

keilآموزش نرم افزار 1فصل

Page 37: my project

24

char 1byte

short 2 byte

int 4byte

long 4byte

longlong 8

float 4

double 8 طریقه ی ثبت متغییر نیز به این صورت است:

تعریف متغیر به صورت می دهد. errorصورت غیر اینتمامی متغیر ها باید قبل از بالک تعریف شوند،در

های زیر امکان پذیر است:

.مقدار دهی دهدهی:0

. مقدار دهی به صورت شیفت:2

.مقدار دهی به صورت هگز:3

مینویسیم تا در بازه های زمانی منظم تکرار شوند. whileبدنه اصلی برنامه را درون یک حلقه

میکرو cpuبدون پایان بنویسیم ، تا whileتوصیه می شود در برنامه ای که برای میکرو می نویسیم ، یک حلقه

، همیشه دستوری برای اجرا داشته باشد .

ایجاد تاخیر در برنامه3.2.5.1 ا مشغول یکرو ربرای ایجاد تاخیر در برنامه در میکروکنترلر ما دستور خاص نداریم و برای این کارمیتوانیم م

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

طول میکشد . پس اگر کالک cpuسیکل کالک پالس 5توجه داشته باشید که هر یک بار اجرای حلقه خالی

.بار اجرا شود 04411111=72111111/5باشد برای تاخیر یک ثانیه بایستی حلقه برابر 72MHzما

مثال:

keilآموزش نرم افزار 1فصل

Page 38: my project

25

زیربرنامه ها 3.2.5.2 زیربرنامه ها را زمانی می نویسیم که بخواهیم کدی را چندین بار استفاده کنیم و برای جلوگیری از زیاده

.نویسی از انها استفاده می کنیم و هر جا که نیاز داشتیم آنها را فراخوانی میکنیم

نحوه ی تعریف آنها نیز به این صورت است:

هایی که میخواهیم از ان خروجی بگیریم را می نویسیم و درنوع متغییر tipe_out در این حالت به جای

type_in نوع متغییر های ورودی که می خواهیم به آنها بدهیم را . و نام را هم وسط می نویسیم. اگر هم

.می گذاریم void متغییر ورودی و یا خروجی نداشتیم به جای آن

: رای مثالحال برای فراخوانی ان کافیست نام آن را بنویسیم . ب

میباشند. cقوانین برنامه نویسی keilسایر قوانین برنامه نویسی در محیط کامپایلر

برنامه نوشت ،اما باید دقت کرد که keilنیز میتوان در محیط ++Cالبته با زبان های دیگر برنامه نویسی مانند

پشتیبانی شود. keilتوسط

یک نمونه برنامه تست3.2.5.3 و برنامه نویسی برای LCDنمایش داده میشود.)در ادامه نحوه اتصال LCDدر این برنامه ابتدا یک متن روی

آن توضیح داده خواهد شد.(سپس یک دایره کشیده میشود.

دن میکرونحوه پروگرام کر3.3 به چند روش میتوان عمل کرد: LPC1768برای پروگرام کردن هدر بورد

keilآموزش نرم افزار 1فصل

Page 39: my project

21

flash magic و برنامه mini lpc programmerاستفاده از 3.3.1

باید طبق جدول زیر باشند : mini lpc programmerبرای پروگرام نمون میکرو ، وضعیت پایه های

minilpc programmerنحوه اتصال پایه های 1-3جدول

که پایه ها در این شکل مشخص شده اند.

mini lpc programmerشماتیک 1-1شکل

متصل باشد. GNDمیکرو باید به 53و پایه

توجه نمائید که را به کامپیوتر وصل نمایید و mini lpc programmerپس از برقراری اتصاالت باال

Driver آن را بر روی سیستم خود نصب نموده باشید ، پس از اتصالMini Lpc Programmer به

را به خاطر بسپارید. COMساخته می شود ، شماره پورت COMکامپیوتر ، یک پورت

ویندوز مراجعه نمائید . Device Managerبه COMبرای مشاهده شماره پورت

به راحتی نصب میشود. Flash Magicنرم افزار

را اجرا نمائید و تنظیمات زیر را انجام دهید : Flash Magicبرنامه

را انتخاب نمائید : Selectگزینه .0

را انتخاب نمائید . ، زیر شاخه

keilآموزش نرم افزار 1فصل

Page 40: my project

27

را انتخاب نمائید : Mini Lpc Programmer، مربوط به COMشماره پورت .2

( را انتخاب نمائید :Baud Rateنرخ انتقال بیت ) .3

: مقدار کریستال متصل به میکرو را وارد نمائید .4

جهت اینکه بعد از پروگرام شدن میکرو ، بررسی شود که آیا میکرو به درستی پروگرام شده است یا نه تیک .5

را فعال نمائید .

Flashرا فعال نمائید ، تا قبل از پروگرام شدن میکرو ، حافظه تیک .1

پاک شود .

keilآموزش نرم افزار 1فصل

Page 41: my project

28

LPC1768جهت پروگرمینگ FlashMagicتنظیمات نرم افزار 1-4 شکل

گزینه ، از منوی .که آیا میکروشناخته میشود حال چک میکنیم

را انتخاب نمائید :

قابل مشاهده Bootloader Verو Device IDاگر میکرو شناخته شود ، در پنجره ای همانند شکل زیر

است :

keilآموزش نرم افزار 1فصل

Page 42: my project

29

به درستی انجام نشده باشد و یا میکرو خراب باشد و یا Flash Magicدر صورتی که تنظیمات برنامه

بدرستی برقرار نباشد ، با خطایی همانند شکل زیر Mini Lpc Programmerاتصال پایه های میکرو و

مواجه می شویم :

حال می خواهیم برنامه خود را روی میکرو بریزیم :

را انتخاب نمائید . ”h.“کلیک نمائید ، به محل ذخیره پروژه خود بروید و فایل بر روی .0

کلیک نمائید . بر روی .2

USBنحوه پروگرم کردن میکرو کنترلر با استفاده از بوت لودر 3.3.2 در حافظه میکروکنترلر قرار USBبرای پرو کردن میکرو باید بوت لودر USBبرای استفاده از بوت لودر

از حافظه فلش میکرو کنترلر قرار 0x00001FFFتا 0x00000000گرفته باشد. این بوت لودردر آدرس

بر روی USBگرفته است. در صورتی که برای اولین بار میخواهیم از هدر برد استفاده کنیم، بوت لودر

پروگرم شده JLinkیکرو کنترلر توسط نرم افزارحافظه میکروکنترلر قرار داده شده است ولی اگر قبال م

باشد ، بوت لودر از روی حافظه پاک شده است و باید برای استفاده از آن دوباره کد مربوط به بوت لودر توسط

در حافظه میکروکنترلر پروگرم شود. JTAGپروگرمر

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

شروع 0x00002000پاک نشود باید آدرس کد برنامه کاربربعد از آدرس قرار گیری بوت لودر یعنی از آدرس

مطابق شکل زیر ”Target“و تب ”Target Options“شود. برای تنظیم شروع کد برنامه کاربر از پنجره

تنظیمات رااعمال می کنیم.

keilآموزش نرم افزار 1فصل

Page 43: my project

31

NO_CRPعبارت Defineمقابل کادر ”Asm“ ودر تب ”Target Options“همچنین در پنجره

را وارد می کنیم.

LPC1768جهت پروگرم کردن keilتنظیمات 1-5شکل

کامپایل شد،برای پروگرم کردن میکروکنترلر از errorبعد از اینکه تنظیمات فوق انجام شد و برنامه بدون

USBفعال شود. برای این منظور ابتدا دیپ سوئیچ های USBباید مد بوت لودر USBطریق

میکروکنترلر USBپورت USBقرار می دهیم وبا کابل ONقرار گرفته روی هدربرد را در حالت USBOTو

می کنیم. با این کار، هدر برد onکامپیوتر وصل می کنیم و سپس تغذیه میکروکنترلر را USBرا به پورت

ظاهر می شود. My computerبه صورت یک درایو در

اگر درایو شناخته نشد دو دلیل میتواند داشته باشد :

keilآموزش نرم افزار 1فصل

Page 44: my project

30

دوباره باید پروگرم شود..کد بوت لودر از حافظه میکروکنترلر پاک شده و 0

کامپیوتر خراب است. USB.کابل یا پورت 2

را از داخل آن حذف می کنیم و فایل باینری firmware.binسپس درایو شناخته شده را باز کرده و فایل

که در باالتوضیح داده شدرا به جای آن قرار می دهیم. Keil تولیدی توسط کامپایلر

دیپ سوئیچ ها را به حالت اول برمی گردانیم و سپس با ریست میکرو کنترلر اکنون پنجره ها را بسته و

برنامه به اجرا در می آید. الزم به ذکر است در صورتی مراحل باال رابه درستی انجام ندهید، برنامه شما به

درستی کار نخواهد کرد.

است.صیه میشود چون بسیار ساده تر وبرای استفاده از هدر بورد روش دوم ت

از روی میکرو پاک شده باشند.و برای boot loaderاز روش اول هنگامی میتوان استفاده کرد که فایل های

روگرام کردن مجدد هدر بورد از روش اول میتوان استفاده نمود.

خالصه3.4 را مورد keilو پس از آن برنامه نویسی در محیط پرداختیم keilدر این فصل ابتدا به نحوه ی نصب نرم افزار

بررسی قرار دادیم.

پس از آن روش های پروگرام کردن هدر بورد را توضیح دادیم که عبارتند از:

flash magic و برنامه mini lpc programmerاستفاده از .0

یکی از برنامه های پرقدرت پروگرامر فیلیپس بوده که قابلیت آنرا دارد که از طریق Flash magicبرنامه

oader bootlموجود درROM میکروکنترلر )بصورت کارخانه ای روی میکرو کنترلر قرار دارد( میکروکنترلر را

شده به حالت lockبوده و تنها راه بیرون آوردن میکروکنترلر UARTپروگرام کند. از مزایای این برنامه ارتباط

.عادی این برنامه میباشد

bootloaderپروگرام کردن هدر بورد از طریق .2

keilآموزش نرم افزار 1فصل

Page 45: my project

فصل چهارم

LPC1768

Page 46: my project

33

مقدمه4.1 میکروکنترلر ها از بخشهای زیر تشکیل شده اند

Cpu واحد پردازش

Alu واحد محاسبات

I /O ورودی ها و خروجی ها

Ram حافظه اصلی میکرو

Rom برنامه روی آن ذخیره می گردد حافظه ای که

Timer برای کنترل زمان ها

و . . .

بسته به مدل دارای تعداد زیادی ورودی ،خروجی همه منظوره می باشد که معموال ARMمیکروهای

کنترل می شوند .در هنگام ریست IOCLRو IOPIN,IOSET,IODIRبیتی 32توسط چهار رجیستر

ا هباید در ابتدای برنامه نوع پین د در نتیجه مانند سایر قطعات ها به ورودی تبدیل می شون IOقطعه همه

م.و جهت صحیح انها را تعریف کنی

LPC1768مشخصات میکرو کنترلر 4.2

LPC1768مشخات میکرو کنترلر 4-3جدول

LPC1768 4فصل

Page 47: my project

34

ی نسل های مختلف ارایه شده ازجمله دارای هسته های مختلفی هست که در ARM میکروکنترلرهای

این هسته ها

ARM7 - ARM9 - ARM11...

ARM7 - ARM9 - ARM11...و Cortex هستند که هر کدام دارای زیر مجموعه هایی هستند.

LPC17xx(Cortex-M3) خصوصیات سری4.2.1 1LPC176 مگاهرتز برای 021مگاهرتز و 011با حداکثر سرعت Cortex-M3 پردازنده

Harvard معماری

:حافظه ی برنامه

.داخلی و قابلیت برنامه ریزی داخل سیستمکیلو بایت حافظه ی برنامه 502حداکثر

SRAM کیلو بایت حافظه ی 32حداکثر

:واحد های جانبی

AHB باس پر سرعت

CPU و SRAM,FLASH برای دسترسی به حافظه AHB باس جداگانه ی

برای دسترسی به واحد (AHB) دو باس محلی پیشرفته با کارایی باال

بدون نیاز به تبادل FLASHرنامه ها از حافظه یو اجرای ب DMA به USB و ETHERNET های

.داده بین این دو قسمت

:رابط های سریال

مگا بیت بر ثانیه 011/01اترنت یا سرعت

پر سرعت USB ارتباط

UART رابط 4

CAN دو کانال کنترل کننده ی

SPI یک واحد کنترل کننده ی

SSP دو واحد کنترل کننده ی

I2C سه رابط

:دیگر ادوات جانبی

پین ورودی و خروجی 011

.میلیون نمونه بر ثانیه میباشد 4.5با سرعت که بیتی ADC 12 یک واحد

.(DAC) بیتی 01یک مبدل دیجیتال به انالوگ

.خروجی 01ورودی و 1تایمر کانتر همه منظوزه با 4

.با قابلیت کنترل موتور سه فاز PWM یک واحد

LPC1768 4فصل

Page 48: my project

35

.با تغذیه ی جداگانه RTC یک واحد ساعت

. WDT تایمر

.ارتباط استاندارد تست و خطا یابی برای ایجاد تطبیق با ابزار های موجود

.دیابی شبیه ساز یا پشتیبانی از دریابی زمان وقعیواحد ر

ریست داخلی

:ولتاژ عملیاتی

( 3.1تا 2.4ولت ) 3.3تغذیه

:فرکانس های کاری

مگا هرتز 25مگا هرتر تا 0نوسان ساز خارجی با رنج کاری

مگا هرتز 4نوسان ساز داخلی

LPC1768بالک دیاگرام 4.3 به همراه ورودی و خروجی های آن : Lpc 2368واحدهای داخلی

LPC1768 4فصل

Page 49: my project

31

LPC1768بالک دیاگرام 4-3شکل

واحدهای داخلی میکرو کنترلر4.4

مرکزی واحد پردازش4.4.1 واحد پردازشگر مرکزی قلب میکرو کنترلر است و نقش پردازش دستورالعمل ها را بر عهده دارد.واحد

پردازش مرکزی شامل واحد محاسبه و منطق واحد کنترل و تعدادی ثبات است.

حافظه4.4.2 و ثباتها میشود.حافظه Flash,RAM,EEPRomانواع حافظه های موجود در میکرو کنترلر شامل

Flash که در واقع حافظه برنامه است برای ذخیره سازی برنامه اجرایی میکرو کنترلر)کد(مورد استفاده قرار

LPC1768 4فصل

Page 50: my project

37

قابلیت هزاران بار پاک شدن و مجددا برنامه ریزی شدن را دارند.این بدان Flashهایحافظه میگیرد.

معناست که شما میتوانید بار ها و بار ها برنامه اجرایی میکرو کنترلر خود را تغییر دهید.

RAM حافظه داده است.متغیرهایی که در طول برنامه تعریف میشوند در حافظهRAM جای میگیرند.به

قابلیت دسترسی تصادفی این حافظه از سرعت خواندن و نوشت باالیی برخوردار است.برخالف سایر علت

حافظه های موجود در میکرو کنترلر حافظه ای فرار است و با قطع شدن برق تمامی اطالعات درون آن پاک

میشود.

ید پس از قطع برق برای ذخیره برخی از پارامترهای برنامه ومقادیر گوناگونی که با EEPRomحافظه

را حین اجرای برنامه EEPRomهمچنان باقی بمانند به کار میرود.میکرو کنترلر میتواند محتویات حافظه

تغییردهد.

ثباتها حافظه های کوچکی هستند که درون خودپردازنده پیاده سازی شده اند.ثباتها برای ذخیره ی موقتی

رد استفاده قرار میگیرند.همچنین برخی از داده های کنترلی مربوط مقادیری که پردازنده با آنها کار میکند مو

به پیکربندی اجزا میکرو منترلر درون ثباتها جای میگیرند.

واحد ورودی/خروجی4.4.3 واحد ورودی/خروجی واسط ارتباط میکرو کنترلر با محیط اطراف است.تعداد پایه های ورودی/خروجی از

خانواده و نوع میکرو کنترلر تغییر میکند.با برنامه ریزی ثباتهای کنترلی خاصی پایه بر اساس 21تا بیش از 3

از میکرو کنترلر میتوان هر یک از پایه ها را به صورت ورودی یا خروجی تعریف نمود.عالوه بر ثبات کنترلی

یط خارج( در هر درگاه برای خود ثبات دیگری دارد که مقادیر ارسال شده به درگاه )از میکرو کنترلریا مح

آن ذخیره میشوند و تا رسیدن مقدار بعدی باقی می مانند.

عالوه بر این برخی از میکرو کنترلرها دارای ورودی آنالوگ هستند که برا ی اندازه گیری مقادیر آنالوگ

حاصل از حسگرها و سایر عوامل محیطی مورد استفاده قرار میگیرند.یک مبدل آنالوگ به دیجیتال درونی

دیر انالوگ خوانده شده را به اعداد دیجیتال تبدیل میکند تا میکرو کنترلر بتواند آن مقادیر را درک کند.مقا

اسیالتور4.4.4اصوال هر پردازنده ای برای فعالیت و همزمانی میان اجزای خود به یک عامل هماهنگ کننده احتیاج

هماهنگ کننده یک سیگنال مربعی است که پالس ساعت دارد.در میکرو کنترلرها وریز پردازنده ها این عامل

نامیده میشودو نقش هماهنگی میان تمامی اجزا و همچنین تعیین سرعت پردازشی را ربر عهده دارد.هر

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

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

اغب میکرو کنترلر های امروزی یک اسیالتور درونی برای تولید پالس ساعت دارند همچنینی تمامی میکرو

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

نانو ثانیه 51مگا هرتز قابل افزایش است. با این فرکانس هر سیکل ماشین 21ر در برخی موارد تا اسیالتو

طول میکشد.

تایمر/شمارنده4.4.5 بشمارند.نرخ 15535و 255بیتی هستند که به ترتیب می توانند تا 01و 1میکرو کنترلرها دارای تایمر های

یکرو کنترلر باشد.این تایمرها حسی از زمان برایمان فراهم شمارش میتواند کسری از سرعت پالس ساعت م

LPC1768 4فصل

Page 51: my project

38

برخوردار است . عالوه بر این تایمر های مذکور سیستم های کنترل دیجیتال از اهمیت فراوانی میکنند که در

میتواند به صورت شمارنده پیکربندی شوند و برای شمارش دفعات وقوع یک پدیده ی خاص )وقایع

بیرونی(مورد استفاده قرار گیرند.هر تایمر برای خود یک ثبات کنترلی دارد که پیکر بندی تایمر / شمارنده و

نرخ شمارش را تعیین میکند.

یستر های مربوط به تایمر ها به صورت زیر می باشند:رج

-IR- می باشد. 1و 0این رجیستر مربوط به کنترل وقفه های تایمر

-TCR- .رجیستر کنترل تایمر که عملکرد ان را کنترل می کند

-TC- بیتی می باشد وبه ازای هر 32شمارنده تایمر که یک شمارندهPR+1 سیکلPclk یک واحد

افزایش می یابد.

-PR- .رجیسترمقسم کالک

-PC- بیتی هنگامیکه مقدار ان با مقدار داخل رجیستر 32شمارنده مقسم،این شمارندهPR برابر شود

اضافه می شود. TCیک واحد به

-MCR- رجیستر کنترل حالت تطابق. با استفاده از این رجیستر می توان تعیین کرد که هنگام وقوع یک

ریست شود . TCابق چه اتفاقی بیافتد.یک وقفه ایجاد شود یا رجیستر تط

-MR0..3- هنگامیکه مقدار این رجیستر ها باTC برابر شود بسته به تنظیماتMCR رجیسترTC

متوقف یا ریست می شود و یا یک وقفه ایجاد خواهد شد.

-CCR- رجیستر کنترل واحدCapture ن .این رجیستر نحوه تحریک شدن پیCapture را تعیین می

کند و همچنین مشخص می کند که در هنگام تحریک وقفه اتفاق بیافتد یا خیر.

-CR0..3- این رجیستر در هنگام تحریکCapture با مقدارTC .پر می شود

-EMR- این رجیستر عملکرد پینهای وابسته به رجیسترMAT .را کنترل می کند

عملکرد تایمر:

در هرلبه PC تعیین می شود.شمارنده PR تایمر به وسیله مقدار ذخیره شده در رجیسترکالک شمارنده

Pclk افزایش می یابد تا زمانیکه به مقدار ذخیره شده در رجیستر PR برسد هنگامیکه مقدار این دو رجیستر

وع می ریست می شود و عملیات شمارش مجددا شر PC یک واحد افزایش می یابد و TC برابر شد رجیستر

شود.

: Captureعملکرد تایمر در مد

را TCمقدار Captureبه شما این امکان را می دهد که در هر تغییر وضعیت پین Captureواحد

بخوانید.

ان را به عنوان PINSEL0..1یک پین متناظر دارد که می توان بوسیله رجیستر Captureهرکانال

می توان این پین را نسب به لبه باال رونده،پایین CCRاستفاده از رجیستر فعال کرد.با Captureورودی

توسط هر یک از این حالتها Captureرونده یا هر دو حالت حساس کرد که در صورت تحریک شده واحد

بار می شود و اگر قبال تنظیم شده باشد وقفه Capture (CR)مقدار موجود در شمارنده به داخل رجیستر

تولید خواهد شد. ای نیز

LPC1768 4فصل

Page 52: my project

39

A/D مبدل آنالوگ به دیجیتال4.4.6

و با زمان تبدیل S.A نوعبیتی از 01یک مبدل LPC2000 موجود روی بعضی انواع A/D مبدل

401Ksps می باشد.مبدل A/D ورودی مولتی پلکس شده بسته به نوع قطعه می باشد 1یا 4دارای.

می کند.قدم اول در تنظیمات مبدل تنظیمات مبدل و نحوه شروع تبدیل را تنظیم A/D رجیستر کنترل

بر مقدار Pclk از تقسیم A/D می باشد.همانند سایر واحد های جانبی دیگر کالک A/D تنظیم کالک

باشد. این حداکثر 4.5MHzباید بر مقداری تقسیم شود که حاصل برابر Pclk مقسم بدست می آید.مقدار

دار مقسم با این عدد برابر شود نزدیکترین مقدار کمتر نتواند با تقسیم بر مق Pclk مقدار ممکن است و اگر

.که می تواند بدست آید انتخاب می شود 4.5MHzاز

Pclk بر مقدار ذخیره شده در رجیستر تقسیم CLKDIV به اضافه یک تقسیم می شود بنابراین معادله

:به صورت زیر است A/D محاسبه کالک

تعیین CLKS ن(نتیجه به وسیله برنامه ریزی میدانقبل از انجام یک تبدیل تفکیک)رزولوش

بیت تنظیم 3بیت می باشد کهمی توان در هر رزولوشنی تا حد 01حداکثر دارای رزولوشن A/D.میشود

01شود.رزولوشن تبدیل برابر است با تعداد سیکل ساعت در هر تبدیل منهای یک.بنا براین برای یک تبدیل

بیتی نیاز دارد.هنگامیکه شما 3سیکل کالک برای یک تبدیل 4و ADCLK سیکل 00به A/D بیتی

دارای دو مد تبدیل می باشد سخت افزاری و A/D.رزولوشن را تنظیم می کنید یک تبدیل تولید می شود

شروع به کار A/D نرم افزاری.در مد سخت افزاری شما می توانید که تعدادی از کانالها را انتخاب و سپس

د یک تبدیل برای هر کانال انجام می شود تا اینکه تبدیل متوقف شود.در پایان نتیجه در داخل کند.در این م

.قرار می گیرد A/D رجیستر داده

ست می شود و ممکن است یک وقفه نیز تولید شود.نتیجه تبدیل در DONE در پایان یک تبدیل بیت

ر ولتاژ منبع تغذیه آنالوگ تنظیم می شود.نعداد به عنوان نرخ ولتاژ انالوگ روی کانال تقسیم ب V/Vdda فیلد

ذخیره می CHN کانالهای تبدیل های انجام شده نیز در کنار نتیجه ذخیره می شود.این مقدار در میدان

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

.می شود Overun جدید و ست شدن بیت

A/D دارای مد دوم تبدیل به صورت نرم افزاری نیز می باشد.در این مد یک کانال برای شروع انتخاب می

تحت کنترل نرم افزار START در میدان 1X01تبدیل به وسیله نوشتن SEL شود و با استفاده از بیت

ADDR نتیجه در رجیستریک تک تبدیل را انجام و A/D شروع می شود. این کار باعث می شود که

در DONE همانند حالت سخت افزاری ذخیره شود. انتها تبدیل به وسیله یک وقفه یا صفر شدن بیت

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

دیده شود که می تواند P0.22 یا P0.16 تایمر صفر یا تایمر یک یا هنگامیکه یک لبه انتخاب شده روی

که قابل کنترل است ADCR در رجیستر EDGE باال رونده یا پایین رونده باشد و با استفاده از بیت

.شروع شود

LPC1768 4فصل

Page 53: my project

41

PWM عمکرد واحد4.4.7

ممکن است پیچیده تر از تایمر های عمومی بنظر اید اما در اصل این PWM در نگاه اول به مدوالتور

می تواند PWM بیشتر به اضافه تعدادی سخت افزار دیگر می باشد.مدوالتور واحد نیز یک تایمر عمومی

.کنترل شده یا سه کانال با دولبه کنترل شده تولید نماییدبا یک لبه PWM شش کانال

در تایمر های عمومی هنگامیکه یک مقدار جدید در رجیستر مقایسه نوشته می شد سریعا روی عملکرد

باید مراقب باشید که این اتفاق در برنامه شما نیافتد چون باعث می PWM تاثیر می گذاشت اما در حالت

هم بریزد..اگر شما چندین کانال را با مقادیر جدید بروز کنید مقدار جدید مدوالتوربه PWM شود که چرخه

PWM در نقاط مختلف در چرخه PWM تاثیر می گذارند و باعث می شوند که نتیجه اشتباه شود.مدوالتور

PWM می دهد که مقادیر دارای مکانیزم لچ سایه می باشد که به شما این امکان را PWM صورت به

.نی وارد شوند اما مقادیر جدید در هنگان شروع چرخه جدید اعمال می شوندآ

مقادیر داخل رجیستر مقایسه در هر زمان می تواند بروز شوند اما تا زمانی که بیت متناظر کانال مقایسه

ست شد مقادیر LER ست نشود مقادیر اعمال نمی شوند.هنگامیکه (LER) در رجیستر فعال سازی لچ

اخل رجیستر مقایسه در شروع چرخه بعدی به رجیستر سایه انتقال داده خواهند شد.با صرف نظر از لچ د

.همانند رجیستر های مقایسه تایمر عمل می کنند PWM سایه مدوالتور

نسبت به تایمر معمولی درقسمت پین های خروجی PWM دومین سخت افزار اضافه شده به مدوالتور

جی های کانال مقایسه مستقیما به وسیله پین های خروجی کنترل شوند دارای وکه خرقرار دارد.به جای این

.می باشند SR یک سری فیلیپ فالپ

هر فلیپ فالپ و کانال های S را به ورودی 1در حالت کنترل یک لبه مولتی پلکسر رجیستر مقایسه

PWM برای تولید دوره تناوب 1متصل می کند. با این روش رجیستر مقایسه R باقیمانده را به ورودی

ست می شود که این باعث ست 1استفاده می شود. در انتهای هر سیکل شمارنده ریست و رجیستر مقایسه

باال می رود و همه خروجی هارا یک می Q شدن فلیپ فالپها در ابتدای هر چرخه می شود. خرجی

یک PWM سه انجام می شود. هر کانالبه وسیله باقی رجیسترهای مقای PWM کند..مدوالسیون سیگنال

تطابق رخ می دهد فلیپ فلیپ فالپ متصل است .هنگامیکه یک R وابسته دارد که به ورودی کانال مقایسه

ست می شود. شما می توانید با تغییر مقدار LOW به حالت PWM فالپ ریست می شود و پین

.له کنیدرو به دلخواه مدو PWM رجیسترهای مقایسه مرتبط سیگنال

می توان به صورت کنترل هر دولبه در بیاید.در این PWM با برنامه ریزی مجدد مولتی پلکسرها خروجی

PWM به هیچ خروجی متصل نیست و تنها برای ریست تایمر در انتهای دوره 1روش رجیستر مقایسه

مقایسه متصل است.در هر فیلیپ فالپ به یک رجیستر R و S استفاده می شود. در این حالت ورودیهای

است لبه باال رونده هر پالس به وسیله رجیستر مقایسه متصل به LOW خروجی PWM شروع چرخه

مثال زیر استفاده از . S کنترل می شود و لبه پایین رونده نیز به وسیله رجیستر مقایسه متصل به S ورودی

.را در حالت کنترل هر دولبه نشان می دهد PWM واحد

LPC1768 4فصل

Page 54: my project

40

SPIواحد 4.4.8 SPI نیز یک هسته واسط جانبی ساده که می تواند داده را روی باس SPI واسط I2C همانند واسط

باشد اما به اندازه کافی برای مدیریت باس هوشمند نمی باشد. این واحد به وسیله کاربر بنویسد یا بخواند می

مقدار دهی اولیه می شود و انتقال توسط باس را مدیریت می کند

چهار پین خارجی دارد:یک پین کالک خارجی،پین انتخاب اسلیو و دو پین داده ورودی SPI واحد

دی اسلیو.پین کالک سریال یک منبع کالک تا فرکانس مستر/خروجی اسلیو و خروجی مستر/ورو

411Kbit/s را هنگامیکه در حالت مستر می باشدارسال و هنگامیکه در حالت اسلیو می باشد دریافت می

دارای الگوی ادرس I2C یک ارتباط داده سریال کامل برایانتقال پرسرعت داده و برعکس SPI کند.باس

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

.انتخاب می شود

Pclk دارای پنج رجیستر می باشد.رجیستر شمارنده کالک که نرخ سرعت را تعیین می کند SPI احد

SPI به سادگی به وسیله رجیستر موجود در شمارنده کالک تقسیم می شود.برای بدست آوردن نرخ بیت

استفاده می SPI باشد.رجیستر کنترل برای تنظیم عملیات باس 1این رجیستر باید دارای حداقل مقدار

و SPI ،کالک SPI و رنج گسترده واحدهای جانبی خارجی SPI شود.به خاطر طبیعت ساده انتقال داده

ند د تعیین شوخطود داده می توانند در چندین حالت مختلف تنظیم شوند.ابتدا قطبیت و فاز کالک بای

قطبیت می تواند فعال در حالت باال یا پایین باشد.همانطور که در شکل زیر نشان داده شده و فاز کالک می

.تواند به صورت تنظیم در وسط یا لبه باشد

سرانجام جهت ارسال داده می توان به صورت انتقال بیت پرارزش در ابتدا یا انتقال بیت کم ارزش در ابتدا

.عمل کرد

هر یک از این تنظیمات بیت مخصوص به خود را در رجیستر کنترل دارد و شما باید این بیتها را برای

دارید تنظیم کنید. SPI انطباق با وسیله ای که شما سعی در ارتباط با آن از طریق

LPC1768رجیسترهای 4.5

می پردازیم .درابتدا کل LPC17xxسری System Controlابتدا به بررسی رجیستر های قسمت

یان میکنیم و سپس به بررسی جزیی آنها میپردازیم.برجیستر های این بخش بصورت فهرست وار

RSIDتعیین منبع ریست :

CLKSRCSEL :تعیین منبع کالک

SCSرجیستر وضعیت و کنترل سیستم :

.هست PLL0مربوط به قسمت System controlاین قسمت از رجیستر ها در بخش

PLL0 :PLL0CONرجیستر کنترل

PLL0 :PLL0STATرجیستر وضعیت

LPC1768 4فصل

Page 55: my project

42

PLL0FEED : رجیستر تایید مقدار ها

.و ادوات جانبی هست CPUاین قسمت از رجیستر ها مربوط به تنظیم کردن کالک

CPU :CCLKCFGرجیستر تنظیم کالک

USB :USBCLKCFGرجیستر تنظیم کالک

PCLKSEL0 & PCLKSEL1...(:ADC,Timer,DACرجیستر سایر ادوات جانبی )

این قسمت مربوط به رجیستر های کنترل توان هست:

PCON :کنترل توان اصلیرجیستر

PCONP: رجیستر کنترل توان ادوات جانبی

SCRرجیستر کنترل حالت کم مصرف )هم نیاز رجیتسر های باال ( :

AIRCR( : Self Resetرجیستر خود راه انداز مجدد )

CLKOUTCFGرجیستر جهت اننقال کالک داخلی به خارج از تراشه :

ستند.بیتی ه 32رجیستر ها به صورت

در برنامه به شکل زیر هستند. System Controlحالت کلی نوشتن رجیستر ها در قسمت

=1xXXXXXXXX;رجیستر-> LPC_SC

بیت هست . 4نماد Xهر

1x .به معنی نوشتن اعـداد در مبنای هگز هست

تعیین منبع ریست4.5.1 نوع نوشتن در برنامه:

LPC_SC->RSID=0xXXXXXXXX;

توصیف بیت های رجیستر تعیین کننده ی منبع ریست :

Bit 0 قطع و وصل شدن ولتاژ تغذیه به ریست شدن تراشه منجر می شود.تراشه تا زمانی که ولتاژ تغذیه

و اسیالتور پایدار نشود،در این وضعیت باقی بماند.

BIT1 ه و رها شدن آن، تراشه تا پایدار این پایه دارای ورودی اشمیت تریگر می باشد. با فعال شدن این پای

شدن تغذیه و اسیلالتو همچنان در حالت ریست باقی میماند و پس از شمارش تعداد مشخصی پالس های

کالک، از این وضعیت خارج می شود.

Bit 2 در صورتی که تایمرWatchdog فعال شده باشد،با شمارش تعداد پالس مشخصی، میکرو ریست

می شود.

Bit 3 اگر تغییرات ولتاژ تغذیه از حد خاصی بیشتر شود، میکرو ریست خواهد شد،)حالتی که توسط

مبتدیان اتفاق می افتد، به کار بردن قطعاتی مانند رله و مونور و استفاده از منبع تغذیه و روش راه اندازی نا

ن میکرو می شود(.مناسب میباشد ؛ که با روشن شدن رله،ولتاژ تغذیه افت کرده و باعث ریست شد

Bit 4 این بیت ها به صورت رزور شده هستند و استفاده نمیشوند. 30تا

LPC1768 4فصل

Page 56: my project

43

تعیین منبع کالک4.5.2 نوشتن در برنامه: نوع

LPC_SC->CLKSRCSEL=0xXXXXXXXX;

PLL0انتخاب منبع کالک برای

توصیف بیت ها:

می باشد. پس از ریست شدن سیستم، 4Mhzنوسان ساز داخلی ( پیش فرض(: فرکانس این منبع 11

میکرو از این منبع استفاده می نماید. به این ترتیب این امکان فراهم تا هنگام راه اندازی میکرو، تراشه بدون

نیاز به نوسان ساز خارجی به کار خود ادامه دهد. همچنین این امکان فراهم می شود که برنامه ی

Bootloader ادامه دهد. با این منبع کار خود را

و USBبه دلیل دقت پایین فرکانس این منبع کالک نمی توان از آن به منظور راه اندازی واحد های

CAN .استفاده نمود

کار 24Mhzتا 0Mhzنوسان ساز اصلی : این بخش با استفاده از کریستال خارجی با فرکانس 10

داخلی فرکانس آن چند برابر افزایش می یابد. PLLمی کند و با استفاده از

استفاده می کند و کالک Khz 32.711: در این حالت، تراشه از کریستال خارجی RTCنوسان ساز 01

مورد استفاده قرار می گیرد. RTCخروجی آن برای راه اندازی بلوک

این حالت به صورت رزرو شده است و کاربرد ندارد00

Bit 2 این بیت ها رزرو شده هستند و کاربرد ندارند. 30 تا

رجیستر وضعیت و کنترل سیستم 4.5.3

:نوع نوشتن در برنامه

LPC_SC->scs=0xXXXXXXXX;

:توصیف بیت های رجیستر وضعیت و کنترل سیستم

Bit 0 این بیت ها به صورت رزرو شده هستند و استفاده نمیشوند 3تا

Bit 4 نوسان ساز خارجیانتخاب محدوده ی

،مقدار این بیت صفر در نظر گرفته 21Mhzتا 0Mhz= در صورت استفاده از رنج فرکانسی)کریستال( 1

.می شود

،مقدار این بیت یک در نظر 24Mhzتا 05Mhzدر صورت استفاده از رنج فرکانسی )کریستال( 1 =

.گرفته می شود

bit5 ی (فعال سازی نوسان ساز اصلی) کریستال خارج

غیر فعال ساختن نوسان ساز خارجی0 =

فعال سازی نوسان ساز خارجی1 =

LPC1768 4فصل

Page 57: my project

44

) Bit 6 خارجیفقط خواندنی( تعیین وضعیت نوسان ساز

نوسان ساز اصلی برای استفاده به عنوان منبع کالک نبودن صفر بودن این بیت نشان دهنده ی آماده = 0

.می باشد

.نوسان ساز اصلی برای استفاده به عنوان منبع کالک آماده است1 =

Bit 7 این بیت ها رزرو شده هستند و استفاده نمی شوند 30تا.

PLL0 به بلوکرجیستر های مربوط 4.5.4

: میگم تا هیچ ابهامی وجود نداشته باشه PLL0قبل از شروع توضیحاتی درباره ی بلوک

ضرب و تقسیم فرکانس منبع نوسان کننده ی متصل به تراشه می یاشد PLL0 کار اصلی

:مشخصات این واحد

.می باشد 51Mhzالی 32kفرکانس ورودی آن از 1

502تا 1در بخش ورودی این واحد یک ضرب کننده وجود دارد که فرکانس ورودی را در عددی بین 2

(M).ضرب میکند

تقسیم میشود)این فرکانس باید در 32تا 0در این مرحله فرکانس خروجی مرحله قبل به عددی بین 3

(N).باشد551Mhzتا 275محدوده ی

از فرمول زیر پیروی می کندرابطه ی فرکانس ورودی و خروجی 4

systemCLk=(2*F osc * (M+1))/(N+1)i

PLL0رجیستر کنترل4.5.5

:نوع نوشتن در برنامه

LPC_SC->PLL0CON=0xXXXXXXXX;

.مورد استفاده قرار میگیرد PLL0 بیتی برای کنترل بلوک32فقط دو بیت از این رجیستر

.روی فرکانس مورد نظر استفاده می شودو قفل شدن PLL0 اولین بیت برای فعال سازی

.به عنوان منبع کالک بلوک های داخلی میکرو به کار میرود PLL0 دومین بیت برای اتصال خروجی

رزرو شده میباشند 30تا 2بیت های

PLL0 رجیستر تنظیمات4.5.6

می باشد. این ضرایب باید به گونه ای PLL0 بیتی نگهدارنده ی ضرایب ضرب و تقسیم32این رجیستر

عددی صحیح باشد PLLتنظیم گردند که فرکانس خروجی

:نوع نوشتن در برنامه

LPC_SC->PLL0CON=0xXXXXXXXX : PLL0توصیف بیت های رجیستر تنظیمات

Bit 0 ضریب ضرب کننده که در واحد 04تا PLL0 می باشد.پس از کسریک 502تا 1که عددی بین

.واحد از این ضریب مقدار آن ذخیره می شود

LPC1768 4فصل

Page 58: my project

45

Bit 15 این بیت به صورت رزرو شده می باشد.

Bit 16 واحد درضریب تقسیم کننده 23تا PLL0 در ان قرار می گیرد. نتیجه 32تا 0که عددی بین

احد کسر یک و رکانس خروجی عددی صحیح باشد.پس ازی این ضرب و تقسیم باید به گونه ای باشد که ف

.از این ضریب مقدار آن ذخیره می شود

Bit 24 این بیت ها به صورت رزرو شده هستند 30ت.

PLL0 رجیستر وضعیت4.5.7 .تاثیر میگذارند را به اطالع میرساند PLL0 این رجیستر ضرایب و حالت هایی را که بربلوک

.این رجیستر به صورت خواندنی می باشد

: نوع نوشتن در برنامه

a=LPC_SC->PLL0STAT

: PLL0 توصیف بیت های رجیستر وضعیت

Bit 0 نمایش ضریب ضرب کننده که در واحد 04تا PLL0 کمتر از مقدار واقعی آن می یک واحد

.باشد

Bit 15 این بیت به صورت رزرو شده می باشد.

Bit 16 نمایش ضریب تقسیم کننده در واحد 23تا PLL0 یک واحد کمتر از مقدار واقعی آن می

.باشد

Bit 24 نگامی که این بیت یک باشد بدین معناست که PLL0 فعال می باشد. پس از

.خودکار صفر می شود یت به صورت این ب PLL0 خاموشی

Bit 25 هنگامی که این بیت و بیت صفرم از رجیسترکنترل یک باشد فرکانس خروجی PLL0 به عنوان

این بیت به صورت خودکار PLL0 منبع کالک واحد های دیگر مورد استفاده قرار می گیرد. پس از خاموشی

.صفر می شود

Bit 26 اگر این بیت یک باشد PLL0 روی فرکانس مورد نظر قفل شده است.

Bit 27 این بیت ها به صورت رزرو شده هستند 30تا.

PLL0FEED رجیستر4.5.8

بیت اول آن مورد استفاده قرار می گیرد.پس از اعمال هر تغییری در رجیستر 1این رجیستر فقط

را در این رجیستر 0x55 و پس از آن عدد0xAA ابتدا باید عدد PLL0CFG و PLL0CON های

.نوشت

LPC_SC->PLL0FEED=0xXXXXXXXX;

و ادوات جانبی CPUرجیستر های مربوط به تنظیم کالک4.5.9

: کالک های داخلی میکرو به سه گروه اصلی زیر تقسیم می شوند

LPC1768 4فصل

Page 59: my project

41

=> CPU Clock(Cclk) i

=> USB CLK

=>Peripheral CLK(Pclk) i

Cclk :

:نوع نوشتن در برنامه

LPC_SC->CCLKCFG=0xXXXXXXXX;

مانند کنترل AHB این کالک برای راه انداری هسته ی میکروکنترلر و ادوات متصل به باساز

، بر عددی PLL0 کالک خروجی استفاده می گردد. برای این منظور DMA و بلوک Ethernet کننده

قرار دارد تقسیم می CCLKCFG ا (CPU CLK CONFIG ) از رجیستر 7تا 1که در بیت های

رابطه ی زیر طبقشود.

(Cclk=PLL0clk / (CCLKSEL+1)

.باشد 255تا 0مقدار این بخش باید عددی فرد در بازه ی

:توصیف بیت های رجیستر وضعیت

BIT 1 ضریب تقسیم فرکانس خروجیانتخاب 7تا PLL برای تهیه کالک CPU

) می باشد 255تا 0بیت برای مشخص کردن عدی بین 1) این

.قرار میدهد CPU تقسیم کرده و در اختیار 0را بر PLL روجی= فرکانس خ1عدد

.قرار میدهد CPU تقسیم کرده و در اختیار 2را بر PLL = فرکانس خروجی0عدد

.قرار میدهد CPU تقسیم کرده و در اختیار 3را بر PLL = فرکانس خروجی2عدد

.

.

.

.قرار میدهد CPU در اختیار تقسیم کرده و 251را بر PLL فرکانس خروجی = 255 عدد

.این بیت ها به صورت رزرو شده هستند: 30تا 1بیت

و Mhz 011برابر LPC17xx حداکثر فرکانس مجاز پردازنده برای میکروکنترلر های سری نکته :

.میباشد 120Mhz برابر LPC1769 برای

USB CLK : 4.5.10

:نوع نوشتن در برنامه

LPC_SC->USBCLKCFG=0xXXXXXXXX

LPC1768 4فصل

Page 60: my project

47

داشته باشد، 48Mhz یک بخش از میکروکنترلر که باید کالک متصل به آن ، فرکانس

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

برای این بخش استفاده شده است که ضریب تقسیم تقسیم کننده ی فرکانس مستقل و قابل برنامه ریزی

.تعیین می شود USBCLKCFG بیت کم ارزش از رجیستر 4آن توسط

.باشد، تقسیم نمود 48Mhz ر فرکانسی که مضربی ازبا استفاده از این مقسم فرکانس میتوان ه

:رابطه ی مورد استفاده برای تهیه ی این فرکنس در زیر مشاهده میگردد

USBclk=PLL0clk / (USBSEL+1) i

توصیف بیت های رجیستر وضعیت

Bit 0 انتخاب ضریب تقسیم برای تهیه کالک بلوک 3تا USB از خروجی PLL0 بیت از 4توسط

.باشد 41باید مضربی از PLL0 رجیستر ذکر شده صورت می گیرد. فرکانس خروجی

5 Bit با انتخاب این عدد، فرکانس خروجی PLL0 تقسیم می شود. فرکانس خروجی 1بر PLL0 در

.باشد288Mhz این حالت باید مساوی

Bit 7 با انتخاب این عدد، فرکانس خروجی PLL0 نس خروجیتقسیم می شود. فرکا 1بر PLL0 در

.باشد384Mhz این حالت باید مساوی

Bit 9 با انتخاب این عدد، فرکانس خروجی PLL0 تقسیم می شود. فرکانس خروجی 01بر PLL0 در

.باشد480Mhz این حالت باید مساوی

Bit 4 این بیت ها به صورت رزرو شده هستند 30تا.

داخلی RC نوسان ساز استفاده نمایید، نباید به هیچ عنوان USB هنگامی که می خواهید از بلوک :نکته

.را به عنوان منبع کالک بکار ببرید

Pclk 4.5.11

:نوع نوشتن در برنامه

LPC_SC->PCLKSEL0=0xXXXXXXXX;

LPC_SC->PCLKSEL1=0xXXXXXXXX;

.استفاده می شودمتصل می باشند APB این کالک برای راه اندازی بلوک های که به باس

.و ... برخی از این ادوات هستند ADC،DACپورت سریال، تایمر، پورت های ورودی/خروجی،

بیتی در نظر گرفته شده است. با 32به منظور کنترل فرکانس متصل به هر یک از این ادوات، دو رجیستر

توان کالک متصل به حداکثر بیت اختصاص یافته است، می 2توجه به این که برای کنترل فرکانس هر بلوک

.می باشد PCLKSEL1و PCLKSEL0 بلوک را کنترل نمود. نام این دو رجیستر 32

LPC1768 4فصل

Page 61: my project

48

های این رجیستر ها به بلوکهای میکروکنترلر و تعیین فرکانس آنها در زیر قابل نحوه ی اختصاص بیت

:مشاهده است

00: Pclk=CPUclk/4

01: Pclk=CPUclk

10: Pclk=CPUclk/2

11: Pclk=CPUclk/8

این رابطه صحیح CAN Filtering وا CAN1 ,CAN2 هنـگام انتـخاب این گـزینه برای بلـوک های

:مـیباشد

Pclk=CPUclk/6

جهت PCLKSEL1 و PCLKSEL0 ساختار رجیستر های4.5.12

تعیین فرکانس بلوک های جانبی

PCLKSEL0

0:1 Bitتعیین کالک بلوک Quadrate Encoder Interface (QEI)i

2:3 Bit تعیین کالک بلوک GPIO Interrupts

4:5 Bit تعیین کالک بلوک Pin connect block(PCB)i

6:7 Bit تعیین کالک بلوک I2C1

8:9 Bit غیر فعال (NA)

10:11 Bit تعیین کالک بلوک SSP0

12:13 Bit تعیین کالک بلوک TIMER2

14:15 Bit تعیین کالک بلوک TIMER3

16:17 Bit تعیین کالک بلوک UART2

18:19 Bit تعیین کالک بلوک UART3

20:21 Bit کالک بلوک تعیین I2C2

22:23 Bit تعیین کالک بلوک I2S

24:25 Bit این بیت ها رزرو شده هستند

26:27 Bit تعیین کالک بلوک Repetitive Interrupt Timer(RIT)i

28:29 Bit تعیین کالک بلوک System Control (SYSCON or SC)i

30:31 Bit تعیین کالک بلوکMotor Control PWM (MC)i

PCLKSEL1

LPC1768 4فصل

Page 62: my project

49

0:1 Bit تعیین کالک بلوکWatch dog timer(WDT)i

2:3 Bit تعیین کالک بلوکTIMER0

4:5 Bit بلوکتعیین کالکTIMER1

6:7 Bit تعیین کالک بلوک UART0

8:9 Bit تعیین کالک بلوک UART1

10:11 Bit غیر فعال (NA)

12:13 Bit تعیین کالک بلوک PWM1

14:15 Bit تعیین کالک بلوک I2C0

16:17 Bit تعیین کالک بلوک SPI

18:19 Bit غیر فعال (NA)

20:21 Bit تعیین کالک بلوک SSP1

22:23 Bit تعیین کالک بلوک DAC

24:25 Bit تعیین کالک بلوک ADC

26:27 Bit تعیین کالک بلوک CAN1

28:29 Bit تعیین کالک بلوک CAN2

30:31 Bit تعیین کالک بلوک Acceptance CAN Filtering(ACF)i

PLL0 مراحل تنظیم4.5.13

: گروه اصلی زیر تقسیم می شوند به سهکالک های داخلی میکرو

PLL0 :را با قرار دادن کد صفر در رجیستر PLL0CON و مقدار دهی PLL0FEED غیر فعال و

.جدا نمایید

.امکان پذیر است SCS از رجیستر 1منتظر بمانید تا نوسان ساز پایدار شود. این کار با بررسی بیت

.انتخاب نمایید CLKRCSEL مقدار دهی رجیستررا با PLL0 منبع کالک متصل به

تعیین کنید. البته این ضرایب PLL0CFG کننده را توسط رجیستر (N) و تقسیم (M) ضرایب ضرب

.تاثیر گذار خواهد بود PLL0FEED پس از مقدار دهی رجیستر

گر جدا میباشد.را فعال کرده اید اما همچنان از بلوک های دی PLL0CON,PLL0با قرار دادن کد یک در

.انجام میشود PLL0FEEDاین دستور پس از مقدار دهی

.را مقدار دهی کنید CPU ضریب تقسیم کننده ی مربوط به کالک

به PLL0 و دیگر بخش ها را فقط باید قبل از اتصال CPU نکته:ضرایب مربوط به تقسیم کننده ی کالک

.بلوک های دیگر تغییر داد

LPC1768 4فصل

Page 63: my project

51

.روی فرکانس مورد نظر منتظر بمانید PLL0 تا قفل شدن

های دیگر کرده و آن را به بلوک OR را با کد دو PLL0CON رجیستر , PLL0 پس از قفل شدن

.متصل کنید

خالصه4.6 LPC1768 .بخش های مختلفی دارد و هر بخش رجیستر های مخصوص به خود را داراست

عبارتند از: system controllبرای مثال رجیسترهای بخش

RSIDتعیین منبع ریست :

CLKSRCSELتعیین منبع کالک :

SCSرجیستر وضعیت و کنترل سیستم :

هست. PLL0مربوط به قسمت System controlاین قسمت از رجیستر ها در بخش

PLL0 :PLL0CONرجیستر کنترل

PLL0 :PLL0STATرجیستر وضعیت

PLL0FEEDرجیستر تایید مقدار ها :

و ادوات جانبی هست. CPUاین قسمت از رجیستر ها مربوط به تنظیم کردن کالک

CPU :CCLKCFGرجیستر تنظیم کالک

USB :USBCLKCFGرجیستر تنظیم کالک

و با تنظیم کردن هر کدام از رجیسترهای بخش های مختلف میتوان میکرو کنترلر را برای انجام کرهای

مختلف آماده کرد.

LPC1768 4فصل

Page 64: my project

فصل پنجم

اتصاالت قطعات جانبی به میکرو

Page 65: my project

52

مقدمه5.1 برای اتصال قطعات جانبی به میکروکنترلر باید ابتدا نسبت به نحوه عملکرد آن آشنا شد و سپس باید دید

میکرو باید آنرا به کدام واحد میکرو متصل نمود .که برای اتصال به

استفاده نمود. GPIOبه میکرو باید از LEDمثال برای برای اتصال

به میکرو کترلر LEDاتصال 5.2 ،به صورت را به آنها وصل کنیم ledبه میکرو کنترلر باید پایه هایی ر که میخواهیم LEDصال اتبرای

خروجی تعریف کنیم .

شان صفر باشد ، توجه داشته باشید که مقدار MASKپین هایی که بخواهیم با آنها کار کنیم ، باید

MASK تمام پین ها در ابتدا صفر می باشد ، پس نیازی به تغییر در رجیسترMASK جهت کار با پین

نداریم. GPIOها و واحد

باشد .یک پین صفر باشد ، ورودی و اگر یک باشد خروجی می DIRاگر

را یک SCSکارنمائیم باید بیت اول از رجیستر 1و 0برای اینکه بتوانیم با رجیسترهای فوق برای پورت

.نمائیم

جهت دسترسی و مقداردهی مستقیم به پین ها نیز استفاده می شود ، پس هر مقداری که FIOxPINاز

به این رجیستر داده شود ، به پین های متاظر آن بیت نسبت داده می شود .

نمونه برنامه:

اتصاالت قطعات جانبی به میکرو 5فصل

Page 66: my project

53

گرافیکی LCDاتصال 5.3نمایشگر می باشد را LEDکه مربوط به LEDAآنرا وصل نمود ، همچنین پایه gndو vccابتدا باید

را کمتر LEDاز مقاومت نیز استفاده نمود تا نور LEDمتصل نمود . می توان جهت تنظیم نور vccبه

یک مقاومت می گذاریم( LEDAو vccکنیم )بین

LCD پایه( خط کنترلی می باشد 5بیت )معادل 5پایه( خط داده و 01بیت )معادل 01گرافیکی دارای

که باید به میکرو متصل شوند .

بیت خط دیتا 01هم که در دسترس باشند برای پین پشت سر 01به LCDدر هدر بورد برای استفاده از

نیاز است .

اتصاالت قطعات جانبی به میکرو 5فصل

Page 67: my project

54

از پورت یک موجود می باشد و 30تا 04بیت پشت سرهم در محدود پین های 01تنها LPC1768در

در سایر موارد پین های پشت سر هم وجود ندارد ، چون پین مربوطه در دسترس نمی باشد و به آن پایه ای

اختصاص داده نشده است .

د دارد .وجو tftlcd_functions.hو tftlcd_functions.cدو فایل LCDبرای هدر

باید به کدام پایه های میکرو وصل شوند ، باید به فایل LCDبرای تنظیم و یا مشاهده اینکه پایه های

.h : مراجعه نمود

به پورت صفر وصل هستندوخط LCDخط دوم به این معنی میباشد که نصفه ی کم ارزش خطوط داده ی

شروع می شوند. 05بعد به این معنی است که پین های مربوط به خطوط دیتا از پین

به پورت صفر وصل LCDخط چهارم به این معنی میباشد که نصفه ی پر ارزش خطوط داده ی

شروع می شوند. 4هستندوخط بعد به این معنی است که پین های مربوط به خطوط دیتا از پین

بیت کنترلی می توان متناسب با مدار و سایر قطعات متصل به میکرو ، پایه های دلخواهی را برای 5برای

از پورت یکسانی باشند .هر بیت در نظر گرفت ، البته تمامی پایه ها ، پین متناظرشان باید

، Cs ،Rs ،WRباتوجه به کدها ، خط کنترلی باید به پورت دو متصل بشود و هر کدام از پایه های

RD ،RST متصل اند . 13,11,10,9,8به ترتیب به پین های

را h.ل هدر را در پوشه پروژه خود کپی نمائید و فای c.و h.جهت استفاده از این هدر باید فایل های

include نمائیم ، و باید داخلmain ابتداPort یک را در حالتFast قرار دهیم )بیت اول رجیستر

SCS باید یک شود( و پس از فراخوانی متدtftlcd_init : از متدهای مورد نیاز خود استفاده نمائیم

اتصاالت قطعات جانبی به میکرو 5فصل

Page 68: my project

55

در جدول زیر متدهای مورد نیاز به همراه عملکرد آن ها بیان شده است :

LCDمتدهای 5-3جدول

به میکرو OV7670اتصال دوربین 5.4 آنرا وصل نمود. gndو vccابتدا باید

برای تنظیم و یا مشاهده اینکه پایه های دوربین باید به کدام پایه های میکرو وصل شوند ، باید به فایل

abstract.txt : موجود در برنامه مراجعه نمود

اتصاالت قطعات جانبی به میکرو 5فصل

Page 69: my project

51

ستون سمت راست معرف پایه های زوج دوربین و ستون سمت چپ معرف پایه های فرد دوربین میباشد.

زیر نیز قابل استنتاج است. که باتوجه به شکل

OV7670شماتیک دوربین 2-5شکل

را h.هدر را در پوشه پروژه خود کپی نمائید و فایل c.و h.جهت استفاده از این هدر باید فایل های

include نمائیم ، و باید داخلmain ابتداPort یک را در حالتFast قرار دهیم )بیت اول رجیستر

SCS باید یک شود( و پس از فراخوانی متد SystemInitو Camera_Configuration از متدهای مورد

نیاز خود استفاده نمائیم :

در جدول زیر متدهای مورد نیاز به همراه عملکرد آن ها بیان شده است :

اتصاالت قطعات جانبی به میکرو 5فصل

Page 70: my project

57

OV7670جدول متد های دوربین 2-5جدول

پیکربندی دوربین جهت شناسایی توسط

میکرو

Camera_Configuration

شناسایی پایه های ورودی و خروجی دوربین

OV7670_GPIO_Init

تنظیم ابعاد تصویر

OV7660_config_window

SDراه اندازی کارت 5.5ارتباط برقرار می spiدر توضیح این کارت ها باید بیان نمود که دارای چیپ داخلی هستند و از طریق

یک پروتکل ارتباط سریال سنکرون می باشد که از آن در بسیاری از ماژول ها استفاده می شود. SPI کنند.

می پردازیم . این نوع حافظه ها که از نوع SD/MMC قبل از هر چیزی به بررسی مموری کارتهای

FLASH می باشند به صورت مرسوم در دستگاه های قابل حملی مانند COOL DISK ، هاMP3

PLAYER ها و و موبایل ها استفاده می شوند. از خصوصیات بارز آن می توان به سرعت باال و حجم بسیار

مگابایت تا چندین گیگابایت میباشد به همان قدر که برای باالی آن اشاره کرد. این حجم باال که از چندین

تولید کنندگان این دستگاه ها وسوسه انگیز است که برای مهندسان الکترونیک نیز وسوسه انگیز است. شاید

دلیل عمده این توجه از طرف مهندسان الکترونیک فضای زیادی باشد که در هیچ مدار میکروکنترلری به

ند، دسترسی ندار  آن

نخواهند رسید. ویژگی بارز دیگر این حافظه قابلیت SDیا MMCالبته از لحاظ ظرفیت هرگز به گرد

است که با این ویژگی امکان دسترسی به داده ها در کامپیوتر بوجود می FATپشتیبانی از استانداردهای

آید.

mmcرجیسترهای 5.5.1 mmc رجیستر میباشد .این رجیسترها اطالعات کاملی در مورد 4دارایmmc و چگونگی انتقال اطالعات

را به ما میدهند.بنابراین دانستن اطالعات داخلی این رجیسترها برای انتقال داده مهم mmcو hostبین

است.

د.رجیسترهای پشتیبانی میشو MMCبرای مشخص کردن رنج ولتاژهایی است که توسط OCRرجیستر

CID و RCA برای شناسایی و ادرس دهی بهmmc استفاده میشود.)این دو رجیستر مواقعی استفاده

وصل کرده باشیم(. DATو CLK ،CMDرا به خطوط داده MMCمیشوند که چند

و چگونگی انتقال و mmcاست که شامل اطالعاتی راجع به خود CSDاز همه اینها مهمتر رجیستر

ده و اندازه بلوک داده میباشد.فرمت دا

پشتیبانی میکند را نشان mmcبیتی میباشد و رنج ولتاژهایی که 32: این رجیستر OCRرجیستر

دستور فعال شدن را به hostبکار میرود.وقتی mmcاین رجیستر در هنگام فعال کردن 30میدهد.بیت

mmc میدهد منتظر پاسخی از طرفmmc .می ماندMmc بیت این رجیستر را 32نیز در پاسخ

اتصاالت قطعات جانبی به میکرو 5فصل

Page 71: my project

58

باشد کارت فعال است( متوجه فعال بودن کارت 0اخرین بیت ارسالی )اگر میفرستد.هاست با چک کردن

مشغول باشد هاست این روند دوباره تکرار میکند. mmcمیشود.اگر

: CIDرجیستر

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

شود.

: RCAرجیستر

توسط هاست مقدار دهی میشود.مقدار این mmcبیتی است که هنگام فعال شدن 01این یک رجیستر

را هنگام تبادل اطالعات با هاست را تعیین میکند. mmcرجیستر آدرس

: CSDرجیستر

بیتی میباشد که چگونگی دسترسی به محتویات کارت را مشخص میکند. 021این یک رجیستر

لدهای این رجیستر هرکدام از انها را جداگانه بررسی میکنیم.بدلیل اهمیت زیاد فی

NSAC :

بیت است و تعداد کالک های اولیه که میکرو باید به کارت بدهد تا هر دو سنکرون شوند 1این فیلد دارای

را مشخص میکند.

READ_BLK_LEN :

آشنا شویم. بیتی بسیار مهم میباشد. در اینجا الزم است با د و مفهوم 01این فیلد

0.Blok بایت متغیر باشد. 2141تا 0: از چند بایت تشکیل شده و میتواند بین

2.Group .هر گروپ از چند بالک تشکیل شده است :

:بیتی تعداد بالک ها را مشخص میکند.شکل زیر 01مقدار این فیلد

READ_BLK_LEN

PARTIAL READ_BLK_ باشد یعنی اینکه فقط اندازه بلوکی که در 1: شامل یک بیت است .اگر

تعریف شده برای انتقال یک بلوک استفاده میشود. READ_BLK_LENفیلد

READ_BLK_LENبیت های رجیستر 1-5دول ج

اتصاالت قطعات جانبی به میکرو 5فصل

Page 72: my project

59

سی مموری کارت از دید سخت افزاریبرر5.5.2 MMC وSD تنها از نظر سرعت و حجم بافر با هم تفاوت دارند ولی از نظر نوع فضا و آدرس دهی ها با

SPIیا ارتباط موازی چهاربیتی و نوع IDE MODEهم فرقی ندارند. پروتکل ارتباطی مموری به دو شکل

MODE ا نیست، امیا ارتباط سریال سنکرون می باشد که متاسفانه مطالب زیادی درباره نوع اول موجود

دوم ارتباط مرسومی در میکروکنترلرها است. این پروتکل ارتباطی به طور معمول دارای سه خط اصلی نوع

ارتباطی می باشد که یکی از این سه خط وظیفه ارسال داده، دیگری دریافت داده و خط سوم حامل کالک

می باشد.

نده پالس و حالت دوم که که تولید کن MASTERدر این ارتباط طرفین در دو حالت قرار میگیرند یکی

هیچ گونه اعمالی روی کالک انجام نمی دهد و فقط دریافت کننده آن است.

می باشد که با فعال شدن آن SSیا SLAVE SELECTدر این ارتباط یک خط نیز حامل سیگنال

یا OPTIONALمی رود اما این خط به صورت SLAVEسیستم دریافت کننده این سیگنال به مد

است و در اکثر موارد نیازی به آن نیست. در ارتباط با مموری کارت ها این خط به نوعی به عنوان  اختیاری

CS یاCHIP SELECT .به کار می رود

که در بحث MSBارسال شود یا LSBنکته مهم دیگر اینکه در این ارتباط می توان انتخاب کرد که ابتدا

یشود. ابتدا ارسال م MSBمموری کارت

را نمایش می دهد . SDشکل زیر وضعیت پایه های مموری کارت و ابعاد فیزیکی مموری

SDشماتیک کارت 1-5شکل

اتصاالت قطعات جانبی به میکرو 5فصل

Page 73: my project

11

SDمودهای کاری کارت 5-5جدول

ولت می باشد که برای اطمینان از صحت کار آن توصیه شده با ولتاژ 3.1ولت تا 2.7تغذیه مموری بین

ولت تغذیه شود و حافظه بسیار به ولتاژ کاری خود حساس است و امکان آسیب دیدن به دلیل اضافه 3.1

هرتز می باشد.مگا 51آن تا SPIولتاژ و نویز بسیار زیاد است. فرکانس کاری حافظه در مد در

فعال شود به جز مواردی که ذکر خواهد شد. CSنکته: برای ارسال هر داده یا دستور به مموری باید ابتدا

بایت 502نکته: این نوع حافظه شامل چندین سکتور است که همه سکتورها در همه انواع مموری کارت

است.

اینهم اتصاالت سخت افزاری:

اتصاالت قطعات جانبی به میکرو 5فصل

Page 74: my project

10

LPC1768به SDاتصاالت کارت 4-5شکل

خالصه5.6 است تا با آن بتوانیم عکسی را از lpc1768به میکروکنترلر mmc cardاین فصل در باره اتصال یک

ذیره کنیم. mmcحافظه لود کرده و بر روی گرافیکی lcdروی یک

وسایل مورد نیاز:

lpc1768.میکروکنترلر 0

smd to dip.مبدل 2

3 .Lcd گرافیکی

کارت mmc.سوکت 4

5 .mmc گیگ 4کارت با حجم کمتر از

کارت دارای بلوک های متنوع است که به وسیله یک اسیالتور داخلی کالک mmcساختار درونی یک

باید فرکانس mmcمیخورند و دارای فرکانس مشخصی میباشد.پس برای انتقال داده و دستور بین هاست و

انجام میشود. Interface driveهای آنها سنکرون باشند که این کار توسط واحد

mmc به وسیله سه خطCMD ،DAT .و کالک کنترل میشوند

نتیجه گیری5.7 شبیه LPC1768در این پروژه سعی بر آن بوده است تا ساختر یک دوربین عکاسی توسط میکروکنترلر

سازی شود.

اتصاالت قطعات جانبی به میکرو 5فصل

Page 75: my project

12

SDو کارت OV7670، دوربین N96گرافیکی LPC1768 ،LCDوسایل مورد نیاز در این پروژه

را به میکرو وصل کرده و پس از اطمینان از صحت عملکرد آن ،دوربین را نیز وصل LCDهستند.که ابتدا

شدیم. LCDنموده و با انجام تنظیمات گفته شده موفق به دریافت تصویر دوربین روی

LCDرا طبق توضیحات داده شده متصل کردیم و با انجام کارهای گفته شده تصویر SDپس از ن کارت

ذخیره کردیم. SDرا روی کارت

و اینکه با این میکروی پی برد LPC1768هدر بورد با توجه به کارهای انجام شده میتوان به ظرفیت

ارزان قیمت میتوان کارهای صنعتی بزرگ انجام داد.

با امکانات اولیه جهت کار با میکروکنترلرهای CORTEX M3هدربرد )برد راه انداز( میکروکنترلرهای

LPC1768 پایه بودن میکرو، دو ردیف پین هدر در اطراف برد قرار گرفته که بر 011شد. با توجه به می با

بردبرد چسبیده به هم قابل قرارگیری است. از دیگر مزایای این برد راه انداز، تأمین ولتاژ مورد نیاز 2روی

ه این برد قابلیت پروگرامبه همراه کلید قطع وصل می باشد . یکی از امکانات ویژ USBمیکرو از طریق پورت

می باشد. در این روش هیچ احتیاجی به سخت افزار خاصی نیست و USBنمودن میکرو از طریق پورت

به رایانه می توان میکروکنترلر را پروگرام نمود. جهت پروگرام کردن USBفقط از طریق وصل نمودن کابل

اقدام کرد. JTAGرت و یا پو USBطریق ارتباط پورت 2این میکرو می توان از

از دیگر ویژگی های قابل توجه این میکرو کنرلر میتوان به موارد زیر اشاره کرد:

LPC1768حداقل مدار جهت راه اندازی میکروکنترولر

USBمجهز به بوت لودر بدون نیاز به پروگرامر

دارای خروجی تمام پایه های ورودی خروجی به ترتیب شمارشی

full speed USB 2.0دارای کانکتور

امکان نصب مستقیم برد بر روی بردبرد

ولت 5و 3.3دارای خروجی ولتاژهای

دارای کلید قطع و وصل تغذیه

، USB ،JTAGامکان فعال و غیر فعال کردن پورت های تمامی امکانات جانبی میکرو، از قبیل

DEBUG ،VREF ... و

استاندارد JTAGداری خروجی کانکتور

RESETه دارای دکم

داخلی RTCبرای راه اندازی 32.711KHZکریستال

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

جانبی به میکرواتصاالت قطعات 5فصل

Page 76: my project

منابع محمد مشاقی طبری، اصول و راهنمای رباتیک [1]

،دانشکده مهندسی برق و کامپیوتر،پردیسAVR،میکروکنترلر های 0321دکتر حسن سید رضی، [2]

دانشکده های فنی دانشگاه تهران

0گاهنامه تخصصی برق و الکترونیک نویز شماره [3]

مجتمع فرهنگی آموزشی عالمه طباطباییمقاالت علمی و تخصصی سخت افزار [4]

[5] Data Sheets,Microcontrollers,ARM,LPC1768

[1] (PMM)Persian Microcontroller Magazine 2شماره

[7] User manual,Microcontrollers,ARM, LPC17xx

[1] http://www.inventive.blogsky.com

[2] www.prozhe.com

[01] www.eca.ir

[10] http://www.dspworld.gigfa.com/

[12] http://www.cisium.com/

[13] http://www.noandishaan.com/

Page 77: my project

14

Abstract:

microcontroller are the most popular Consumer electronical

instruments and they cause changes-even little- in the electronical

industry and computer.

Microcontroller is a small computer with less capacity and ability

which is expendable up to some limited degrees .

That can be used for industrial and non-industrial usages.

Each of micro-controller's family has some advantages and

disadvantages in compare to the others.And type of micro-controller is

specified based on the individual needs and specific figure and

characteristics of each family of them.

In this project, we use ARM cortex m3 lpc 1768 microcontroler,

which is a specific microcontrollers with very high level industrial

consumes.

In this project OV7670 cameras were launched by this

microcontroller.

After showing photos on the LCD that is lcd N96 graphics,

Stored on the SD card with .bmp format.

Which this will be described in detail in advance.

Page 78: my project

15

Title :

Constraction of Capturing Camera By LPC 1768

Supervisor:

Dr.Omid Abedi

By:

Soheila Doosti

September 2014

Page 79: my project