آموزش ARM LPC1768 (قسمت اول)

در آموزش ARM LPC1768 شما نه تنها یاد میگیرید چطوری به میکروکنترلر های ARM LPC1768 برنامه بنویسید بلکه یاد میگیرید چطوری روی تمامی هسته های ARM CORTEX M3 برنامه نویسید.در این آموزش ها هم بصورت رجیستری یاد میگیرید که این کار باعث می شود دید ماشینی و درک عمیقی از میکروکنترلر و ساختار آن داشته باشید و همچنین با توابع استاندارد CMSIS برنامه می نویسید که با یاد گیری csmis با میکروکنترلرهای شرکت های مختلف براحتی می توانید کار کنید.

 

بیایید برای شروع مروری بر میکروکنترلر های ARM Cortex M3 بکنیم و ببینیم میکروکنترلر هایی که با این هسته شرکت ARM طراحی می شوند چه خصوصیاتی دارند و همچنین مقدمه بر کاربردهای مختلف ARM داشته باشیم.

آموزش ARM LPC1768

امروزه استفاده از میکرو کنترلرها به ویژه میکروکنترلر 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 هسته ای به صورت موازی استفاده شده است.

arm-usage-in-car-melec

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

Cortex M : این پردازنده ها برای سیستم های تعبیه شده طراحی شده است و برای دستگاه های ارزان قیمت است. که نیاز به توان پردازش پایینی دارند. و استفاده از آن ها راحت است.

کاربردهای پردازنده های ARM :

حتما در ادامه این مطلب را هم بخوانید:  آموزش میکروکنترلرهای LPC1768 جلسه سوم: ایجاد پروژه در Keil

آموزش cmsis

صنعت خودروسازی : یکی از کاربرد های ایده آل برای پردازنده های ARM صنعت خودرو سازی است. پردازنده های ARM با کارای بالا و تاخیر کم این امکان را فراهم میکند که در سیستم های بلادرنگ مورد استفاده قرار گیرد.

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

مشخصات فایل های آموزشی:

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

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

** توضیحات هم به صورت رجیستری است و هم به صورت توابع CMSIS .

** چرا برنامه نویسی با CMSIS کمک میکند :

*** گاهی لازم میشود که بجای Cortex M3 از نسل بالا تر استفاده شود . یا لازم میشود که بجای آرم شرکت فیلیپس از آرم شرکت st یا ti استفاده کنیم. اگر برنامه نویسی با CMSIS باشد به راحتی میتوان این کار را انجام داد.

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

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

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

فیلم زیر آموزش ایجاد پروژه در محیط نرم افزار keil و همچنین اضافه کردن کتابخانه های CMSIS به پروژه را آموزش می دهد. در این فیلم با مثال بطور کامل آموزش داده شده است . پس بعد از تهیه آموزش حتما این فیلم آموزشی را ببینید.در ادامه هم با میکرو دیزاینر الکترونیک باشید تا بیشتر این مجموعه آموزشی را برسی کنیم.

حتما در ادامه این مطلب را هم بخوانید:  فیلم های آموزشی میکروکنترلرهای ARM

تذکر : دوستان زیادی در ایجاد پروژه و اضافه کردن فایل های هدر مشکل داشتن و سوال پرسیدن ، فیلم آموزشی زیر را ببینید مشکلتون حل میشه.

این مجموعه آموزشی که این اولین و مهمترین قسمت آن می باشد به روش یادگیری با مثال شما را قادر می سازد کار با میکروکنترلر های LPC1768 را یاد بگیرید و در پروژه های خود استفاده کنید.

سرفصل های قسمت اول : 

سر فصل های قسمت اول بخش [0] :

  1. انتخاب وظیفه ی پین ها : تقریبا روی هر پینی 4 وظیفه تعبیه شده است مثلا : بر روی پین صفر از پورت 0 چهار وظیفه ی زیر تعبیه شده است
  • GPIO
  • RD1
  • TXD3
  • SDA1
  1. انتخاب حالت پین ها : مثلا انتخاب این که Pull up باشد یا Pull down
  2. انتخاب حالت open drain .
  3. سه قسمت گفته شده در بالا به صورت CMSIS هم گفته شده است.

سر فصل های قسمت اول بخش [1]  :

ابتدا یک تابع  delay  نوشته میشود .

سپس کار با  GPIO  گفته میشود :

  • ورودی خروجی کردن هر پورت .
  • یک کردن هر پورت .
  • پاک کردن پورت .

و در انتها بخش های گفته شده در بالا با توابع  CMSIS  هم گفته خواهد شد.

سر فصل های قسمت اول بخش [2]  :

  • توضیح واحد NVIC و آشنایی با فعال کردن وقفه ها و چگونگی اولویت دادن به هر وقفه .
  • کار با وقفه های GPIO به صورت رجیستری
  • کار با وقف های GPIO  با استفاده از توابع  CMSIS
حتما در ادامه این مطلب را هم بخوانید:  آموزش برنامه نویسی میکروکنترلرهای ARM [از شی گرایی تا توابع CMSIS]

سر فصل های قسمت اول بخش [3]  :

  • آموزش کار با وقفه های خارجی به صورت رجیستری
  • آموزش کار با وقفه ی خارجی با استفاده از توابع CMSIS

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

دانلود آموزش ایجاد delay

نحوه مطالعه این فایل های آموزشی :

بعد از دانلود مجموعه بصورت پوشه هایی شماره گذاری شده از 0 فصل ها شروع می شود که دخل هر فصل موضوعی برسی و بعد داخل پوشه های کناری آن مثال ها بهمراه فایل PDF توضیح کامل مثال موجود میباشد.

آموزش ARM LPC1768 با کیل

برای مثال : اول فایل PDF اصلی را مطالعه می کنید و با پورت های LPC1768 آشنا می شوید و بعد بترتیب داخل پوشه ها مثال هایی هست که برای یادگیری کامل و یادگیری نکات مهم باید تک تک مثال ها ببینید و توضیحات هر مثال که داخل فایل PDF در کنار مثال موجود می باشد را نیز مطالعه کنید تا یک برنامه نویس حرفه ای ARM LPC1768  شوید.

این فایل ها با درخواست از نویسنده بصورت رایگان و از طریق سایت Melec.ir قابل دانلود میباشد.

دانلود فایل ها::

دانلود

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

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

مدرس : ابراهیم معظمی

درباره ی جهاندیده

با سلام درود به شما که مطالب سایت خودتان را مطالعه می کنید امیدوارم مطالب سایت برایتان مفید باشد و باعث پیشرفت روز افزون شما شود. دوران راهنمایی در کار منتاژ کیت های الکترونیکی بودم تا رفتم هنرستان ^_^ دو سال هنرستان الکترونیک خیلی چیزها یاد گرفتم ! دو سال کاردانی الکترونیک و کارشناسی ICT گرایش بهره برداری از سیستم های مخابراتی پر از تجربه بود و مدتی است در الکترونیک دنیای مشغولم . الکترونیک – تکنولوژی – ICT ، برنامه نویسی …

20 دیدگاه

  1. چند سوال دارم در رابطه با آموزشتون ،
    اولا سرفصل های آموزش چی هست؟
    دوما اگر بخوام به صورت عملی هم کارکنم میتونم با برد راه انداز lpc1768 کارکنم؟

    • ببخشید یادم رفت سرفصل ها را مرتب کنم بنویسم ولی خب در قسمت اول با پایه های میکروکنترلر آشنا می شوید که مهمترین قسمت برای شروع هستن و انواع حالت های پایه ها برسی میشه و نمونه مثال ها را می خونید که برای هر قسمت چندتا مثال داره بعد با CMSIS کد می نویسید که همانطور که نوشته بودم همه ی کارهای ما کد محور یا مثال محور هستن چون می دونیم که اکثرا با AVR کد زدین و از توضیحات خسته کننده خوداری کردیم و مستقیم سر اصل مبحث رفتیم . بعد با نحوه نوشتن تابع تاخیر – وقفه های میکرو از جمله داخلی خارجی و وقفه های تودرتو را برسی کردیم .

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

  2. سلام
    تا حالا با میکرو های خانواده stm سری stm8 کار کردید؟؟
    اگه میشه کمکم کنید لازمش دارم ولی هیچ علمی در موردش ندارم و سورس آموزشی و سمپلی هم تو فضا مجازی پیدا نکردم؟
    یاعلی

    • سلام آقا کاظم متاسفانه با این سری از میکروکنترلر ها کار نکردم .

      این فایل شرکت st شاید شما را کمک کند :
      http://go.melec.ir/jQ

    • سلام . منظورتون از stm8 چیه ؟؟
      اگه منظورزتون stm32f8 که فک نکنم داشته باشیم .
      واگه منظورتون stm32f0x8 که نوعش رو مشخص کنید بهتون میگم چی کار کنیید. نزدیک 10 نوع داره.

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

  3. سرفصل هایی که گذاشتید افتضاخ است و هیچی مشخص نیست

    • دوسن عزیز ممنون از اطلاع رسانی و انتقاد شما بزودی سرفصل های دقیق را اضافه می کنیم البته چون کاربران ما معمولا قبلا با AVR و امثال آن کمی کار کردن سرفصل های کلی را بدانند متوجه داخل ان می شوند ولی آقای معظمی قول دادن که سرفصل های ریز را برامون بفرستن .

  4. شهرام اصلانی

    با سلام و عرض ادب فراوان خدمت خدمت گزاران سایت علمی ملک

  5. شهرام اصلانی

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

    • در مورد نرم افزار اپل اگر منظورتان نرم افزاری هست که روی سیستم مک نصب بشه که صد در صد هست ولی اگر منظورتان نرم افزار مهندسان خود اپل هست که نمیدونم و معمولا از نرم افزار های خیلی حرفه ای استفاده میکنند و البته در لینک زیر نرم افزار های حرفه ای را میتوانید ببینید :
      //melec.ir/pcb-allegro/

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

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

  7. سلام.من وقتی فایل های مربوط به توابع cmsis اضافه می کنم keil ارور میده و هدر فایلو نمیشناسه. پروژه های اماده ی شما رو هم باز کردم اونجا هم ارور میده. مشکل از کجاست ؟ کمک کنید

  8. سلام من ارشد الکترونیک قدرت میخونم
    تا الان کلا مباحث مربوط به قدرت رو خوندم و برای پروژه ارشدم باید با میکرو arm مدل STM32F103ZET6 کار کنم و فقط آشنایی مختصری با avr دارم و خط به خط آموزش هاتون رو هم دارم میخونم ولی یه سری سوال دارم که خیلی پیش پا افتاده است اگر امکانش هست یک ایمیل بدید تا من بتونم راحت تر مکاتبه کنم ممنون میشم اگر کمکم کنید

  9. با سپاس فراوان از زحمات شما

  10. سلام و خسته نباشيد …
    مهندس اين فايل اموزشيتون رو نمى شه دان کرد..اصلا رو لينک ک مى زنم فعلا نيست و اتفاقى نميوفته…لطفا راهنمايى کنيد..ممنون

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *