در آموزش ARM LPC1768 شما نه تنها یاد میگیرید چطوری به میکروکنترلر های ARM LPC1768 برنامه بنویسید بلکه یاد میگیرید چطوری روی تمامی هسته های ARM CORTEX M3 برنامه نویسید.در این آموزش ها هم بصورت رجیستری یاد میگیرید که این کار باعث می شود دید ماشینی و درک عمیقی از میکروکنترلر و ساختار آن داشته باشید و همچنین با توابع استاندارد CMSIS برنامه می نویسید که با یاد گیری csmis با میکروکنترلرهای شرکت های مختلف براحتی می توانید کار کنید.
بیایید برای شروع مروری بر میکروکنترلر های ARM Cortex M3 بکنیم و ببینیم میکروکنترلر هایی که با این هسته شرکت ARM طراحی می شوند چه خصوصیاتی دارند و همچنین مقدمه بر کاربردهای مختلف ARM داشته باشیم.
امروزه استفاده از میکرو کنترلرها به ویژه میکروکنترلر ARM بسیار گسترده شده است. پشتیبانی ARM از پرو تکل های صنعتی ای مثل CAN ، اترنت ، USB و یا فناوری بی سیم دلایل اولیه ی برتری میکرو کنترلر ARM نسبت به میکرو کنترلر های مشابه خود بود.
این میکرو کنترلر ها به دلیل استفاده از تعداد گیت کمتر بسیار کم مصرف هستند. از این رو استفاده از آن در وسایل قابل حمل بسیار به مقرون به صرفه خواهد بود.
به طور خلاصه میتوان دلایل برتری ARM را به صورت زیر لیست کرد :
توان مصرفی پایین : این مورد باعث میشود عمر باطری دستگاه افزایش یابد. برای این که تصویر مناسبی از این مسئله داشته باشد به مثال های زیر دقت کنید :
سرعت پردازنده ی های اینتل مثل 80286 تقریبا با Cortex-M3 یکسان است. اما از لحاظ توان اصلا قابل مقایسه نیستند. چرا که مصرف توان پردازنده ی اینتل تقریبا 50 برابر Cortex-M3 میباشد. از این روی اگر پردازنده ی اینتل یک باطری را در یک ساعت خالی کند. ARM این باطری را در 50 ساعت خالی خواهد کرد.
با میکرو کنترلر ARM میتوان دمای محیط را بدون استفاده از سنسور دماسنج اندازه گرفت ! در واقع در ARM یک بلوک وجود دارد که با راه اندازی آن میتوان دما خود چیپ را اندازه گرفت و از آنجایی اختلاف که دمای محیط و دمای چیپ بسیار کم( نیم درجه یا یک درجه) است. از دمای چیپ میتوان به عنوان دمای محیط استفاده کرد.
قیمت مناسب : با توجه به کارایای بالای ARM قیمت آن بسیار مناسب است. برای مثال هزینه ی این میکرو کنترلر ها تقریبا با میکرو کنترلر های AVR تفاوت آنچنانی ندارد.
با توسعه ی بازار مصرف ARM تولید کنندگان آن بر آن شدند که برای هر کاربردی ARM مخصوصی را ایجا کنند. نتیجه ی این مسئله ایجا سه پروفایل مختلف در پردازنده های ARM شد که هر کدام برای کار برد خاص در نظر گرفته شده بودند.
Cortex A : این چیپ ها برای اجرای برنامه های پیچیده مثل سیستم عامل های ویندوز و اندروید ، طراحی شده اند. تلفن های همراه و تبلت ها نمونه هایی از این محصولات هستند. برای مثال در گوشی های همراه سامسونگ S6 از یک نوع ARM 4 هسته ای استفاده میشود. و یا در گوشی HTC جدید از دو پردازنده ی ARM 4 هسته ای به صورت موازی استفاده شده است.
Cortex R : این پردازنده ها برای سیستم های تعبیه شده ی گران قیمت که به کارای بلادرنگ نیاز دارند طراحی شده است. در محصولاتی از قبیل ترمز پیشرفته از این پروفابیل استفاده میشود.
Cortex M : این پردازنده ها برای سیستم های تعبیه شده طراحی شده است و برای دستگاه های ارزان قیمت است. که نیاز به توان پردازش پایینی دارند. و استفاده از آن ها راحت است.
کاربردهای پردازنده های ARM :
صنعت خودروسازی : یکی از کاربرد های ایده آل برای پردازنده های ARM صنعت خودرو سازی است. پردازنده های ARM با کارای بالا و تاخیر کم این امکان را فراهم میکند که در سیستم های بلادرنگ مورد استفاده قرار گیرد.
کنترل صنعتی : در کاربردهای کنترل صنعتی ، سادگی ، پاسخ دهی سریع و پایداری بسیار مهم هستند. که قابلیت های ARM موجب شده است که تبدیل به یکی از مهمترین انتخاب ها در این صنعت پر مخاطب بشود.
مشخصات فایل های آموزشی:
** در این مجموعه پردازنده ای که انتخاب شده است LPC1768 است.
** برای یادگیری LPC1768 داشتن برد ضروری نیست. محیط کیل دارای یک شبیه ساز است که امکان تست برنامه های ساده را برای کاربر فراهم میکند.
** توضیحات هم به صورت رجیستری است و هم به صورت توابع CMSIS .
** چرا برنامه نویسی با CMSIS کمک میکند :
*** گاهی لازم میشود که بجای Cortex M3 از نسل بالا تر استفاده شود . یا لازم میشود که بجای آرم شرکت فیلیپس از آرم شرکت st یا ti استفاده کنیم. اگر برنامه نویسی با CMSIS باشد به راحتی میتوان این کار را انجام داد.
*** خوانایی برنامه را افزایش میدهد.
*** سرعت برنامه نویسی را افزایش میدهد.
** در ادامه ی آموزش ، نوشتن برنامه با استفاده از زبان لبویو هم گفته خواهد شد.
فیلم زیر آموزش ایجاد پروژه در محیط نرم افزار keil و همچنین اضافه کردن کتابخانه های CMSIS به پروژه را آموزش می دهد. در این فیلم با مثال بطور کامل آموزش داده شده است . پس بعد از تهیه آموزش حتما این فیلم آموزشی را ببینید.در ادامه هم با میکرو دیزاینر الکترونیک باشید تا بیشتر این مجموعه آموزشی را برسی کنیم.
این مجموعه آموزشی که این اولین و مهمترین قسمت آن می باشد به روش یادگیری با مثال شما را قادر می سازد کار با میکروکنترلر های LPC1768 را یاد بگیرید و در پروژه های خود استفاده کنید.
سرفصل های قسمت اول :
سر فصل های قسمت اول بخش [0] :
- انتخاب وظیفه ی پین ها : تقریبا روی هر پینی 4 وظیفه تعبیه شده است مثلا : بر روی پین صفر از پورت 0 چهار وظیفه ی زیر تعبیه شده است
- GPIO
- RD1
- TXD3
- SDA1
- انتخاب حالت پین ها : مثلا انتخاب این که Pull up باشد یا Pull down
- انتخاب حالت open drain .
- سه قسمت گفته شده در بالا به صورت CMSIS هم گفته شده است.
سر فصل های قسمت اول بخش [1] :
ابتدا یک تابع delay نوشته میشود .
سپس کار با GPIO گفته میشود :
- ورودی خروجی کردن هر پورت .
- یک کردن هر پورت .
- پاک کردن پورت .
و در انتها بخش های گفته شده در بالا با توابع CMSIS هم گفته خواهد شد.
سر فصل های قسمت اول بخش [2] :
- توضیح واحد NVIC و آشنایی با فعال کردن وقفه ها و چگونگی اولویت دادن به هر وقفه .
- کار با وقفه های GPIO به صورت رجیستری
- کار با وقف های GPIO با استفاده از توابع CMSIS
سر فصل های قسمت اول بخش [3] :
- آموزش کار با وقفه های خارجی به صورت رجیستری
- آموزش کار با وقفه ی خارجی با استفاده از توابع CMSIS
نمونه ای از قسمت های این آموزش را از لینک زیر می توانید دانلود کنید:
نحوه مطالعه این فایل های آموزشی :
بعد از دانلود مجموعه بصورت پوشه هایی شماره گذاری شده از 0 فصل ها شروع می شود که دخل هر فصل موضوعی برسی و بعد داخل پوشه های کناری آن مثال ها بهمراه فایل PDF توضیح کامل مثال موجود میباشد.
برای مثال : اول فایل PDF اصلی را مطالعه می کنید و با پورت های LPC1768 آشنا می شوید و بعد بترتیب داخل پوشه ها مثال هایی هست که برای یادگیری کامل و یادگیری نکات مهم باید تک تک مثال ها ببینید و توضیحات هر مثال که داخل فایل PDF در کنار مثال موجود می باشد را نیز مطالعه کنید تا یک برنامه نویس حرفه ای ARM LPC1768 شوید.
دانلود فایل ها::
دانلود (متاسفانه فایل از سرورهای ما پاک شده. عذر خواهی میکنیم.)
جلسات آموزش میکروکنترلر ARM LPC1768 با مثال :
- آموزش میکروکنترلرهای LPC1768 جلسه اول: معرفی ARM و هسته Cortex-M3
- آموزش میکروکنترلرهای LPC1768 جلسه دوم: برسی امکانات LPC1768
- آموزش میکروکنترلرهای LPC1768 جلسه سوم: ایجاد پروژه در Keil
- آموزش میکروکنترلرهای LPC1768 جلسه چهارم: معرفی CMSIS
- آموزش میکروکنترلرهای LPC1768 جلسه پنجم: پورت های ورودی و خروجی lpc17xx_gpio
- آموزش میکروکنترلرهای LPC1768 جلسه ششم: مبدل آنالوگ به دیجیتال lpc17xx_adc.h
- آموزش میکروکنترلرهای LPC1768 جلسه هفتم: مبدل دیجیتال به آنالوگ lpc17xx_dac.h
- آموزش میکروکنترلرهای LPC1768 جلسه هشتم: وقفه ها در LPC1768
- آموزش میکروکنترلرهای LPC1768 جلسه نهم: وقفه GPIO
- آموزش میکروکنترلرهای LPC1768 جلسه دهم: UART
- آموزش میکروکنترلرهای LPC1768 جلسه یازدهم: تایمر های LPC1768
سوالات خودتان را در قسمت نظرات همین نوشته و یا در انجمن بپرسید .
ادامه آموزش ها را از ایجا بخوانید.
مدرس : ابراهیم معظمی
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
چند سوال دارم در رابطه با آموزشتون ،
اولا سرفصل های آموزش چی هست؟
دوما اگر بخوام به صورت عملی هم کارکنم میتونم با برد راه انداز lpc1768 کارکنم؟
ببخشید یادم رفت سرفصل ها را مرتب کنم بنویسم ولی خب در قسمت اول با پایه های میکروکنترلر آشنا می شوید که مهمترین قسمت برای شروع هستن و انواع حالت های پایه ها برسی میشه و نمونه مثال ها را می خونید که برای هر قسمت چندتا مثال داره بعد با CMSIS کد می نویسید که همانطور که نوشته بودم همه ی کارهای ما کد محور یا مثال محور هستن چون می دونیم که اکثرا با AVR کد زدین و از توضیحات خسته کننده خوداری کردیم و مستقیم سر اصل مبحث رفتیم . بعد با نحوه نوشتن تابع تاخیر – وقفه های میکرو از جمله داخلی خارجی و وقفه های تودرتو را برسی کردیم .
در مورد سوال دومتان دقیقا مقال ها همه عملی هستن و روی برد های شرکت ECA نوشته شدن.
سلام من کاردانی ICT دارم حالا هم دانشجوی کارشناسی ICT گرایش مخابرات سیارم و برنامه نویسی LPC1768 رجیستری میکنم اگه کمکی خواستی خبرم کن خوشحال میشم بتونم کمکتون کنم
سلام
خیلی ممنون
حیلی خوش حال می شویم که تجریبات خودتان را با ما به اشتراک بگذارید.
سلام
تا حالا با میکرو های خانواده stm سری stm8 کار کردید؟؟
اگه میشه کمکم کنید لازمش دارم ولی هیچ علمی در موردش ندارم و سورس آموزشی و سمپلی هم تو فضا مجازی پیدا نکردم؟
یاعلی
سلام آقا کاظم متاسفانه با این سری از میکروکنترلر ها کار نکردم .
این فایل شرکت st شاید شما را کمک کند :
http://go.melec.ir/jQ
سلام . منظورتون از stm8 چیه ؟؟
اگه منظورزتون stm32f8 که فک نکنم داشته باشیم .
واگه منظورتون stm32f0x8 که نوعش رو مشخص کنید بهتون میگم چی کار کنیید. نزدیک 10 نوع داره.
و اگر نسخه ی خاصیه که بیخبریم ازش لطف کنید فیچرهاشو بگین .
ولی توصیه میکنم سراغ نسلی از آرم نرید که تو ایران کار نمیشه .
سرفصل هایی که گذاشتید افتضاخ است و هیچی مشخص نیست
دوسن عزیز ممنون از اطلاع رسانی و انتقاد شما بزودی سرفصل های دقیق را اضافه می کنیم البته چون کاربران ما معمولا قبلا با AVR و امثال آن کمی کار کردن سرفصل های کلی را بدانند متوجه داخل ان می شوند ولی آقای معظمی قول دادن که سرفصل های ریز را برامون بفرستن .
با سلام و عرض ادب فراوان خدمت خدمت گزاران سایت علمی ملک
خدمت مدیر محترم سوالی داشتم نرم افزار طراحی مدار شرکت اپل چیه و آیا نرم افزار ارکد بدون کرک و پروتیوس کتابخانه کامل میشه تهیه کرد چون پروتیوس 8آپدیت نمیشه
در مورد نرم افزار اپل اگر منظورتان نرم افزاری هست که روی سیستم مک نصب بشه که صد در صد هست ولی اگر منظورتان نرم افزار مهندسان خود اپل هست که نمیدونم و معمولا از نرم افزار های خیلی حرفه ای استفاده میکنند و البته در لینک زیر نرم افزار های حرفه ای را میتوانید ببینید :
http://melec.ir/pcb-allegro/
چون این نرم افزار ها پولی هستن بدون کرک نمیشه نصب کرد مگر ورژن های دانشجویی که محدودیت دارند
سلام. این لینک خرید که مشکل داره نمیشه خرید کرد. لطفا درستش کنید.
سلام.من وقتی فایل های مربوط به توابع cmsis اضافه می کنم keil ارور میده و هدر فایلو نمیشناسه. پروژه های اماده ی شما رو هم باز کردم اونجا هم ارور میده. مشکل از کجاست ؟ کمک کنید
سلام . دقیق دقیق مانند فیلم آموزشی پیش برید نباید هیچ مشکلی داشته باشین . اگر بازم مشکلی بود متن خطا را اینجا بنویسید
سلام من ارشد الکترونیک قدرت میخونم
تا الان کلا مباحث مربوط به قدرت رو خوندم و برای پروژه ارشدم باید با میکرو arm مدل STM32F103ZET6 کار کنم و فقط آشنایی مختصری با avr دارم و خط به خط آموزش هاتون رو هم دارم میخونم ولی یه سری سوال دارم که خیلی پیش پا افتاده است اگر امکانش هست یک ایمیل بدید تا من بتونم راحت تر مکاتبه کنم ممنون میشم اگر کمکم کنید
سلام از قسمت تماس با ما بالای سایت میتوانید سوالات خودتان را بپرسید.
با سپاس فراوان از زحمات شما
سلام و خسته نباشيد …
مهندس اين فايل اموزشيتون رو نمى شه دان کرد..اصلا رو لينک ک مى زنم فعلا نيست و اتفاقى نميوفته…لطفا راهنمايى کنيد..ممنون
سلام خیلی ممنون از شما اصلاح شد .
* خیلی ها میبینن مشکل داره اطلاع نمیدن 🙁
سلام
اگه میشه کل مطالب lpc1768رو داخل یه pdfمیگذاشتید
خیلی خوب میشد
ممنون
سلام ،از آموزش های لینک زیر استفاده کنید :
https://melec.ir/lpc1768-tutorials-part1-arm-proccessors-cortex-m3/
واقعا عالی
دستتون درد نکنه
سلام
مطالب مفید هست
موفق و پیروز باشید
مرسی از مطالب خوبتون
سلام و درود
فایل های بارگذاری شده قابل دانلود نیستند.
سلام و وقت بخیر
لینک دانلود قابل دستیتبی نیست آیا امکان دسترسی وجود دارد؟ ممنون می شوم