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

بازگشت به آموزشگاه

پیش نیاز : دوره آموزشی AVR

دسترسی سریع به بخش های قبلی :

شروع دوره های آموزش مجازی ARM

بخش اول آموزش ARM

بخش دوم آموزش ARM

بخش سوم آموزش ARM

بخش چهارم آموزش ARM

بخش پنجم آموزش ARM


مقدمه

همانطور که متوجه شدید، میکروکنترلرهایARM7  از نظر برنامه نویسی کمی از میکروکنترلرهای AVR دشوارتر هستند. در میکروکنترلرهای AVR درون نرم افزار CodeVision ابزاری به نام کدویزارد وجود داشت که بخشی از کدهای مورد نیاز برنامه نویسی را به صورت اتوماتیک و تنها با تنظیمات ساده ای تولید می کرد. اما در میکروکنترلرهایARM7  در هیچ کدام از نرم افزارها چنین قابلیت ویژه ای وجود ندارد. بنابراین تمامی برنامه نویسی و تنظیمات رجیسترها به صورت دستی و توسط برنامه نویس انجام می گیرد. در نتیجه این مسئله لزوم یادگیری عملکرد سخت افزار و درک عمیق عملکرد آی سی را بیش از پیش نمایان می کند. در این بخش از آموزش به بررسی مهمترین واحد میکرو یعنی واحد GPIO (ورودی/خروجی همه منظوره) می پردازیم.

ARM-Programming


تعیین عملکرد پورت ها در میکروکنترلر LPC2138

همانطور که در بخش چهارم آموزش به آن اشاره کردیم ، میکروکنترلر LPC2138 دارای دو پورت P0 و P1 می باشد. هر کدام از این پورت ها 32 بیتی هستند اما دسترسی به برخی از بیت ها به صورت سخت افزاری میسر نیست.

بیت های در دسترس عبارتند از : کلیه بیت های پورت P0 به جز P0.24 و نصف پورت P1 از P1.16 تا P1.31 در دسترس هستند.

اما بیت هایی که در دسترس هستند هر کدام دارای چندین عملکرد متفاوت می باشد. در میکروکنترلرهای AVR زمانی که از پایه ها به صورت ورودی/خروجی استفاده می شد یا به صورت واحدهای جانبی دیگر استفاده می شد ، پایه به صورت اتوماتیک تغییر وضعیت می داد. اما در میکروکنترلرهای ARM7 باید دقیقا مشخص کنیم از کدام ویژگی یک پایه استفاده می شود. بنابراین برای تنظیم عملکرد پورت ها رجیستری به نام PINSEL تعبیه شده است. رجیستر PINSEL مشخص می کند که هر پایه در چه عملکردی استفاده می شود. شکل زیر عملکردهای پایه P0.0 در نرم افزار پروتئوس را نشان می دهد.

LPC2138_Proteus_P0

بنابراین در هر میکروکنترلر ARM7 به تعداد پایه های در دسترس رجیستر PINSEL وجود دارد که در LPC2138 تعداد این رجیسترها 3 عدد می باشد. در جدول زیر عملکرد این رجیسترها را مشاهده می کنید.

نام رجیستر توضیح عملکرد دسترسی به رجیستر مقدار پیش فرض
PINSEL0 رجیستر تنظیم عملکرد پایه های P0.0 تا P0.15 خواندن/نوشتن 0x00000000
PINSEL1 رجیستر تنظیم عملکرد پایه های P0.16 تا P0.31 خواندن/نوشتن 0x00000000
PINSEL2 رجیستر تنظیم عملکرد پایه های P1.16 تا P1.31 خواندن/نوشتن به جدول 39 صفحه 63 دیتاشیت مراجعه شود

 

نکته 1 : تمام پایه های پورت P0 و P1 در حالت پیش فرض روی GPIO ( واحد ورودی/خروجی همه منظوره ) هستند. یعنی همواره همه پایه ها به عنوان عملکرد ورودی/خروجی استفاده می شوند مگر اینکه تنظیمات پیش فرض آنها را تغییر دهیم.

نکته2 : هر دو بیت از رجیستر PINSEL عملکرد یک پایه را مشخص می کند برای مثال بیت های 0 و 1 از رجیستر PINSEL0 عملکرد پایه P0.0 را مشخص می کند ، بیت های 2 و 3 از رجیستر PINSEL0 عملکرد پایه P0.1 را مشخص می کند و …. اگر عملکرد هر پایه را به صورت مجزا نگاه کنیم ، مثلا P0.0 می تواند در سه عملکرد مختلف ( GPIO ، TXD0 ، PWM1 ) باشد. در نتیجه مقدار دهی به دو بیت 0 و 1 از رجیستر PINSEL0 ، به صورت جدول زیر مشخص می گردد.

 

نام پایه مقدار آن در رجیستر PINSEL0 توضیح عملکرد مقدار ریست
P0.0

00

GPIO Port 0.0

0

01

TXD0 ( UART0 )

10

PWM1

11

RESERVED

 

نکته 3 : بیت RESERVED به معنای رزرو بودن آن حالت است یعنی برنامه نباید در آن حالت برود و قابلیت خواندن/نوشتن در بیت های رزرو وجود ندارد.

نکته 4 : به علت اینکه رجیسترها 32 بیتی هستند ، همیشه به صورت hexadecimal ( مبنای 16 ) آن ها را مقدار دهی می کنیم.

مثال 1 : فرض کنید میخواهیم از پایه P0.0 در حالت PWM1 استفاده کنیم در این صورت باید بیت اول رجیستر PINSEL0 را مقدار 1 بدهیم ، یعنی داریم :

تذکر : برای بقیه پایه ها نیز به همین صورت مقدار دهی به رجیسترهای PINSEL در حالتی که از پایه به غیر از GPIO استفاده می شود ، ضروری است. عملکرد کلی پایه ها را میتوانید در UM10120 ( راهنمای کاربر LPC213x ) صفحات 59 تا 63 مشاهده نمایید.

مثال 2 : می خواهیم P0.27 را روی حالت Match 0.1 قرار دهیم. به UserManual مراجعه کرده و در صفحه 62 مشاهده می کنیم که باید بیت های 22 و 23 رجیستر PINSEL1 را 1 کنیم. در نتیجه داریم :

نکته مهم : مقدار دهی به یک رجیستر 32 بیتی کمی دشوار به نظر می رسد. برای راحتی مقدار دهی در رجیسترها میتوان از عملگرهای بیتی Or و Shift استفاده کرد. یعنی برای مثال 2 داریم :

توضیح : رجیستر 32 بیتی PINSEL1 در عبارت فوق با عدد 3 در مبنای دسیمال ( 11 باینری ) که 22 تا شیفت به سمت چپ یافته است ، Or می شود. نتیجه این عملگر Or باعث می شود تنها بیت های 22 و 23 از رجیستر PINSEL1 ، مقدار 1 بگیرند و بقیه دست نخورده باقی می مانند. این شیوه مقدار دهی بسیار رایج و پر کاربرد است چرا که علاوه بر امکان ویژه مقدار دهی یک یا چند بیت بدون دست خوردن بقیه بیت ها ، سبب خوانا تر شدن برنامه می شود.

 


راه اندازی پورت ها به صورت GPIO در میکروکنترلر LPC2138

بعد از اینکه وظیفه هر کدام از پایه ها مشخص شد ، چنانچه از پایه ای به صورت عملکرد GPIO استفاده کنیم ، باید برای تنظیم ورودی یا خروجی بودن از رجیستر IODIR ، برای نوشتن در حالت خروجی بودن پورت از رجیسترهای IOSET و IOCLR و نیز برای خواندن منطق پورت در حالت ورودی بودن از رجیستر IOPIN استفاده می شود. به طور خلاصه :

  • رجیستر IODIR ( مخفف input output direction ) : برای تنظیم جهت پورت ( ورودی یا خروجی بودن )
  • رجیستر IOSET ( مخفف input output set ) : برای تغییر منطق پورت در حالت خروجی
  • رجیستر IOCLR ( مخفف input output clear) : برای تغییر منطق پورت در حالت خروجی
  • رجیستر IOPIN ( مخفف input output pin ) : برای خواندن منطق پورت در حالت ورودی

نکته 1 : از هر دو رجیستر IOSET و IOCLR به منظور تغییر منطق پورت در حالت خروجی استفاده می شود. وجود دو رجیستر برای تعیین منطق پورت ها در میکروکنترلرهای ARM نسبت به میکروکنترلرهای AVR ( که یک رجیستر PORTX  داشتند ) ، باعث راحتی برنامه نویسی می گردد. عملکرد این دو رجیستر به این صورت است که : اگر بیتی در IOSET برابر 1 شود ، منطق خروجی پایه متناظر با آن 1 می شود و اگر بیتی در IOCLR برابر 1 شود ، منطق خروجی پایه متناظر با آن برابر 0 می شود. بیت های صفری که در رجیسترهای IOSET و IOCLR وجود دارند ، بی تاثیر هستند.

نکته 2 : زمانی که میکروکنترلر ARM7 دارای یک پورت باشد ( مانند سری LPC210x ) رجیسترهای فوق به همین صورت ( IODIR,IOSET,IOPIN ) در برنامه استفاده می شود اما زمانی که میکروکنترلر دارای پورت های بیشتری باشد ( مانند سری های LPC213x و LPC236x ) بعد از IO در نام همه رجیسترهای فوق عدد پورت مورد نظر وارد می شود. شکل زیر این موضوع را نشان می دهد.

LPC_GPIO

مثال : می خواهیم پورت P1.3 را در میکروکنترلر LPC2138 به عنوان خروجی تنظیم و منطق 1 را در خروجی قرار دهیم :

یا می توانیم دو خط فوق را به صورت معادل صحیح تر زیر ( با عملگر بیتی Or و Shift ) بنویسیم :


مراحل کلی انجام پروژه با میکروکنترلر ARM

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

  1. طراحی سخت افزار : در این مرحله می بایست بر اساس هدف پروژه و شرایط مکانی به کارگیری پروژه ، نوع و مقدار تک تک المان های سخت افزار مورد نیاز طراحی و روی کاغذ یا در نرم افزار Proteus آورده شود.
  2. طراحی نرم افزار : در این مرحله ابتدا الگوریتم یا فلوچارت مورد نیاز در کاغذ رسم و سپس برنامه نویسی مورد نظر بر اساس آن در نرم افزار KEIL نوشته می شود.
  3. شبیه سازی: قبل از پیاده سازی عملی ، تست صحت عملکرد مدار در این مرحله توسط نرم افزار Proteus و برنامه نوشته شده در KEIL صورت می گیرد.
  4. طراحی و ساخت برد: طراحی PCB مدار مورد نظر در این مرحله و معمولا توسط نرم افزار Altium Designer صورت می گیرد. سپس فایل برد طراحی شده برای ساخت معمولا به یکی از شرکت های ساخت PCB داده می شود.
  5. تست و عیب یابی : با وصل منبع تغذیه به مدار و پروگرام کردن میکروکنترلر ، تست و عیب یابی برد مورد نظر در این مرحله صورت می گیرد.
  6. پشتیبانی و ارتقا : بعد از ارائه به مشتری ، پشتیبانی پروژه ، ارتقای برنامه نویسی و بهبود عملکرد مدار در این مرحله می باشد.

تذکر : پیاده سازی میکروکنترلرهای ARM روی برد بورد بدون وجود PCB مناسب امکان پذیر نیست. در نتیجه باید اقدام به طراحی و ساخت برد دلخواه نمود و یا به جای طراحی و ساخت برد توسط خودمان ، میتوان از برد های آماده موجود در بازار استفاده کرد. برای خرید بورد راه انداز LPC2138 به >>این آدرس<< مراجعه نمایید.

 


مثال عملی شماره 1 : بردی طراحی کنید که LED موجود روی P0.6 را با سرعت قابل دیدن به صورت چشمک زن روشن و خاموش کند. سپس آن را در نرم افزار Proteus شبیه سازی کرده و پس از اطمینان از عملکرد صحیح برنامه روی میکروکنترلر LPC2138 پیاده سازی نمایید.

حل :

مرحله اول : طراحی سخت افزار

LPC2138_mesal1


مرحله دوم : طراحی نرم افزار

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

توضیح برنامه : در ابتدای برنامه به منظور ایجاد تاخیر یک تابع delay خودمان تعریف کردیم که این تابع ورودی و خروجی ندارد و درون آن یک حلقه while وجود دارد که دائما متغیر i تعریف شده را کم می کند تا زمانی که متغیر 0 شود و سپس برنامه از تابع بیرون می آید. در تابع اصلی برنامه ابتدا جهت پایه P0.0 را خروجی کردیم و سپس در حلقه اصلی برنامه ابتدا پایه را On و بعد از تاخیر پایه را Off و بعد از تاخیر مجدد برنامه تمام می شود. میتوانستیم برنامه را برای با عملگر

نکته : در برنامه نویسی ARM و کامپایلر KEIL هدر فایلی شبیه delay.h که در AVR و کامپایلر Codevision بود وجود ندارد تا آن را به برنامه اضافه کرده و تابع delay دقیق به اندازه میکروثانیه یا میلی ثانیه داشته باشیم. بنابراین مشابه چنین تابعی خودمان در برنامه تعریف می کنیم.


مرحله سوم : شبیه سازی

lpc2138_m1_run

نکته :سرعت اجرای برنامه در نرم افزار پروتئوس از واقعیت کندتر است.


مرحله چهارم : پیاده سازی

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

لینک خرید آنلاین بورد LPC2138 از فروشگاه الکترو ولت

LPC2138_Board_Electrovolt2

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

  • بستن مدار مورد نظر روی برد برد
  • پروگرام کردن میکروکنترلر

ابتدا برد راه انداز را وسط دو عدد برد برد قرار داده و سپس مدار مثال 1 را می بندیم. همانطور که در بخش چهارم به آن اشاره کردیم برای پروگرام کردن میکروکنترلرهای ARM سه روش مختلف وجود دارد : JTAG ،UART  و برخی از میکرو ها با USB . اما چون میکروکنترلر LPC2138 از USB پشتیبانی نمی کند و استفاده از رابط JTAG نیازمند تهیه پروگرامر JLINK  می باشد ، استفاده از پورت UART بهترین گزینه پیش رو است. بنابراین در پیاده سازی این پروژه از ارتباط سریال UART برای پروگرام کردن و به طبع آن از ماژول FT232 و نرم افزار FlashMagic استفاده خواهیم کرد.


نکته : قبل از اتصال ماژول USB to Serial به کامپیوتر نیاز به نصب درایور آن دارید. در صورتی که از ماژول PL2303 استفاده می کنید میتوانید درایور آن را از لینک زیر دریافت و اقدام به نصب نمایید. ( طبق گفته سازنده در تمامی ویندوزها قابل نصب است )

PL2303_Prolific_DriverInstaller_v1_12_0

PL2303_USB_TO_SERIAL

 

نکته : ولتاژ عملکرد آی سی 3.3 ولت است که باید توسط رگولاتور به آن اعمال شود اما پایه های ورودی/خروجی میکرو توانایی تحمل ولتاژ 5 ولت به صورت لحظه ای را دارند.

تذکر مهم : ماژول PL2303 دارای ولتاژ عملکرد 5 ولت می باشد ، در نتیجه به علت اینکه میکروکنترلرهای ARM دارای ولتاژ عملکرد 3.3 ولت می باشد ، بهتر است از ماژول FT232 که توانایی عملکرد در هر دو حالت 3.3 ولت و 5 ولت را دارد برای پروگرام نمودن استفاده کرد.

لینک خرید آنلاین ماژول FT232 از فروشگاه الکترو ولت

همچنین آخرین نسخه نرم افزار Flash Magic را از لینک روبرو دریافت و آن را نصب نمایید. FlashMagicTool

 


پروگرام کردن برد راه انداز LPC2138 به روش سریال

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

  1. اتصال ماژول USB to Serial به پورت UART0 میکرو
  2. اتصال ماژول USB to Serial به پورت USB کامپیوتر
  3. برقراری تغذیه برد راه انداز و بردن میکرو به حالت پروگرام سریال ( بوت سریال )
  4. استفاده از نرم افزار Flash Magic جهت پروگرام کردن
  5. تغییر حالت میکرو کنترلر از بوت سریال به حالت کار معمولی

 


1- اتصال ماژول USB to Serial به پورت UART0 میکرو : ماژول FT232 را طوری وصل می کنیم که پایهRx ماژول به پایهP0.0  وTx  ماژول به پایهP0.1  متصل شده باشد. شکل زیر نحوه اتصال ماژول FT232 به پورت سریال جهت پروگرام کردن را نشان می دهد.

FT232RL_LPC2138_Electrovolt

2- اتصال ماژول USB to Serial به پورت USB کامپیوتر : پس از اتصال ماژول FT232به USB کامپیوتر به Control Panel ویندوز خود رفته و در قسمت Device Manager و سپس در قسمت Ports(Com&LPT) پورت سریال مجازی که ماژول دارد را شناسایی کنید. همانطور که در شکل زیر مشاهده می کنید ، پورتی که دراینجا تنظیم شده است COM10 می باشد.

ADXL345_3_pc

همچنین میتوانید با دوبار کلیک روی گزینه قرمز رنگ فوق وارد Properties شوید و در آنجا تنظیمات پورت سریال را تغییر دهید. برای این منظور در پنجره Properties وارد سربرگ Port Setting شده و تنظیمات آن را همانند زیر تغییر دهید.

ADXL345_3_pc2

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


3-  برقراری تغذیه برد راه انداز و بردن میکرو به حالت پروگرام سریال ( بوت سریال ) : زمانی که می خواهیم برنامه مورد نظر را روی میکرو پروگرام کنیم باید ابتدا میکرو کنترلر را به بوت سریال ببریم. بوت سریال یعنی حالتی که میکرو در آن برنامه را از پورت UART0 می پذیرد و پروگرام می شود. به منظور بردن میکروکنترلر LPC2138 به بوت سریال کافی است ابتدا پایه P0.14 را زمین کرده و سپس میکرو را ریست کنیم. در برد راه انداز ، این پایه توسط یک دیپ سوئیچ ( DIP Switch ) به زمین متصل خواهد شد. بنابراین با فعال کردن سوئیچ شماره 1 و سپس ریست کردن میکرو به بوت سریال می رویم. شکل زیر مراحل کار را نشان می دهد. همانطور که مشاهده می کنید در این شکل از پایه +5 ولت ماژول FT232RL برای تغذیه بورد راه انداز و نیز پروگرام کردن میکرو استفاده شده است.

LPC2138_FT232_Shop.Electrovolt.ir


4- استفاده از نرم افزار Flash Magic جهت پروگرام کردن : در این نرم افزار ابتدا تنظیمات Step1 و Step2 را مطابق شکل زیر انجام می دهیم. در قسمت Com Port باید شماره پورتی را که ماژول به آن متصل شده است را تنظیم کنیم. سپس در Step3 مسیر فایل hex ساخته شده توسط برنامه Keil را می دهیم. در Step4 نیز مطابق شکل تیک Verify را می زنیم و در نهایت Start را کلیک می کنیم. در صورتی که همه نکات گفته شده رعایت شده باشد برنامه به خوبی پروگرام می شود.


5- تغییر حالت میکرو کنترلر از بوت سریال به حالت کار معمولی : بعد از پروگرام شدن میکروکنترلر ابتدا دیپ سوئیچ بوت سریال را خاموش می کنیم ( پایه P0.14 از منطق 0 خارج می شود ) سپس با ریست کردن میکرو کنترلر ، برنامه مورد نظر اجرا می شود.

 

پیاده سازی مثال عملی شماره 1 با میکروکنترلر LPC2138


پروگرام کردن برد راه انداز LPC2138 با JLINK

JLINK  و JTRACE نام دیباگرهای میکروکنترلرهای ARM است که توانایی پروگرام کردن میکرو با سرعت بالا و قابلیت عیب یابی میکرو از طریق پورت JTAG را دارد. این پروگرامرها ساخت شرکت آلمانی Segger می باشد که در مدل های مختلفی تولید شده است. در جدول شکل زیر تمامی این مدل ها را مشاهده می کنید که از سایت segger.com استخراج شده است.

JLINK

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

Jlink_Debugger

با استفاده از هر کدام از این JLINK ها که خریداری شود میتوان میکروهای ARM را به دو روش پروگرام و دیباگ نمود. روش اول با استفاده از خود نرم افزار KEIL است و روش دوم با استفاده از نرم افزار J-Flash شرکت Segger می باشد.


راهنمای تنظیمات JLINK در نرم افزار KEIL

برای پروگرام کردن ابتدا باید تنظیمات آن را در KEIL انجام دهید. ابتدا JLINK را به کامپیوتر متصل کرده و سپس مراحل زیر را در KEIL انجام دهید.

keil16

در پنجره Option به سربرگ Debug رفته و JLINK را انتخاب کنید:

keil17

بعد از انتخاب گزینه قبل روی Setting کلیک کنید و مطابق شکل زیر تنظیمات را انجام دهید

Keil_Setting3

همچنین میتوانید با کلیک بر روی Jlink مشخصات دیباگر خود را مشاهده نمایید.

Keil_Setting4

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

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

keil18

سپس روی Setting کلیک کرده و تنظیمات RAM و Flash را انجام دهید.

Keil_Setting6

روی Add کلیک کرده و با توجه به نوع میکرو کنترلر مورد نظر سایز حافظه Flash را انتخاب نمایید. برای مثال جهت استفاده برای LPC2138 روی گزینه زیر قرار دهید و سپس Ok نمایید.

Keil_Setting7

با قرار گرفتن مقدار حافظه Flash تنظیمات به پایان می رسد.

Keil_Setting8

برای پروگرام کردن میکرو بعد از اتصال JTAG و فعال کردن دیپ سوئیچ مربوطه و ریست کردن میکرو از منوی Flash گزینه Download را کلیک کنید و یا روی نوار ابزار این کار را انجام دهید.

Keil_Setting9

جهت استفاده از دیباگر از منوی Debug روی Start/Stop Debuging یا روی نوار ابزار کلیک نمایید.

Keil_Setting10

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

Keil_Setting11


راهنمای تنظیمات JLINK در نرم افزار J-Flash

ابتدا به لینک زیر رفته و آخرین نسخه نرم افزارهای شرکت Segger که شامل J-Flash درایورها و نرم افزارهای کاربردی دیگری نیز می باشد را دانلود و سپس نصب نمایید:

https://www.segger.com/jlink-software.html

با نصب این نرم افزارها درایورهای JLINK نیز نصب می شود و با اتصال پروگرامر به کامپیوتر به طور خودکار شناخته می شود. بعد از نصب از نرم افزارهای متعددی وجود دارد که J-Flash برای پروگرام کردن می باشد. آن را از منوی Start باز نمایید.

j-flash1

بعد از باز کردن برنامه از منوی Options گزینه ی Project Setting را انتخاب نمایید.

j-flash2

در سربرگ Target Interface تنظیمات زیر را انجام دهید.

j-flash3

در سربرگ CPU روی Device انتخاب کرده و نام میکرو مورد نظر خود را انتخاب نمایید. در پایان Ok کنید.

j-flash4

جهت باز کردن فایل Hex مورد نظر از منوی File گزینه Open data file را انتخاب کنید و فایل باینری یا هگز خود را انتخاب نمایید.

j-flash5

حال با استفاده از گزینه Connect در منوی Target ابتدا ارتباط بین میکرو و کامپیوتر را برقرار نمایید. در صورت صحیح بودن همه موارد اتصال برقرار شده و میتوان با استفاده از گزینه Auto میکرو را پروگرام نمود. همچنین بعد از پروگرام شدن با زدن گزینه Start Application  برنامه اجرا می شود.

j-flash6



برای ادامه آموزش ARM روی تصویر زیر کلیک کنید.

next-image


در صورتی که این مطلب مورد پسندتان بود لایک و اشتراک گذاری فراموش نشود

دیدگاه (9)

  • ali-ali پاسخ

    ممنون بابت سایت بسیار کامل و عالیتون لطفا در صورت امکان پروژه های بیشتری برای ARM قرار دهید ممنون

    1394-11-23 در 11:32
    • ادمین الکترو ولت پاسخ

      از حسن نظرتون بسیار ممنونم ، حتما در هفته های آینده آموزش ها و پروژه های بیشتری قرار خواهد گرفت

      1394-11-23 در 17:07
  • محسن پاسخ

    با سلام و تشکر بابت آموزش های که قرار دادید.
    در قسمت کی می خواستید پورت P1.3 را تغییر دهید، مقدار 0x10 اشتباه است و برای P1.4 است و باید 0x08 باشد.

    1394-12-27 در 17:09
    • ادمین الکترو ولت پاسخ

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

      1394-12-27 در 18:58
  • armangh پاسخ

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

    1395-01-17 در 13:47
    • ادمین الکترو ولت پاسخ

      سلام سپاسگذارم دوست عزیز همچنین

      1395-01-17 در 16:06
  • hameddd پاسخ

    سلام
    من flash majico دانلود کردم ولی یه مشکلی هست و اینکه lpc2138نداره تو کتابخونش!!!!!!

    1395-02-20 در 14:35
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز از قسمت Select باید ARM7 را انتخاب کنید و سپس LPC2138 نشان داده می شود

      1395-02-20 در 18:58
  • Reza پاسخ

    سلام دوست عزیز وقت شما به خیر. سپاس از آموزش های فوق العاده تون. عالی هستن. جسارتا یه سوال داشتم. در lpc2138 پین های 0 تا 15 از پورت 1 رو فرمودین در دسترس نیستن و نمیتونیم استفاده کنیم ازشون. ولی اینجا در مثال P1.3 رو تبدیل به خروجی کردین. این قضیه واسم ابهام ب وجود اورده که وقتی اون پین در دسترس نیست، ما چجوری تبدیلش میکنیم به خروجی؟
    ممنون از لطفتون

    1399-02-30 در 10:46

دیدگاهتان را بنویسید

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

بازگشت به آموزشگاه