با سلام، بنام خدا
جلسه اول آموزش arm سری lpc
ببنید دوستان
فکر کنم مهمترین بخش و اصلی ترین عضو کار با انواع اقسام میکرو ها حالا میخواد میکرو پروسسور باشد یا میکرو کنترلر بحث پروگرم کردن آن است
چون اگر ما بیایم قویترین برنامه رو هم بنویسم و برنامه از همه لحاظ درست باشد و سخت افزار آن هم هیچ مشکلی نداشته باشد تا نتونیم درست پروگرم کنیم پروژه ما کار نخواهد کرد
پس کمی در مورد پروگرم کردن arm صحبت میکنیم
ببنید در مورد arm تا جایی که من اصلاع دارم سه روش کلی وجود دارد
نرم افزار flash magic و سخت افزار مریوط به آن که معمولا این مدار رو روی خود بردی که arm قرار دارد میبندد
روش boot loader که درواقع در این روش میام و فایل هگز برنامه رو به فایلbin تبدیل میکنیم و روی میکرو میریزیم که خیلی درد سر داره و اصلا هم بهتون پیشنهاد نمیکنم من که ندیدم کسی از این روش راضی باشه
روش سوم استفاده از jlink iهست به این صورت که باید زحمت بکشید که یه پروگرم jlink بخرید قیمتش حدود شصت تومنه البته کپیش هست اینا اورجینالش حدود صد دلاره و تو ایران که من ندیدم
من خودم از شرکت eca خریدم خیلی هم راضی هستم و با اون کار میکنم
چند تا مزیت دارد این روش مهمترین همین پروگرم کردن راحت و بی درد سر هست و دومین مزیت هم امکان دیباگ کردن خط به خط نرم افار وجود داره که ایشالله سر فرصت کار میکنیم
از اونجا که شدیدا تاکید میکنم با jlink کار کنید کمی در مورد آن توضیح میدم
(( همینجا لازم به توضیح است که در مورد avr همانطور که میدانید خیلی روش برای پروگرم کردن موجود هست اما اگر فقط یک بار با tnm کار کرده باشین واقعا متوجه میشود که بقیه روشها واقعا اسباب بازی هست بر حسب همین تجربه حتما توصیه میکنم با jlink کار کنید ))
jlink یک پروتکل ارتباطی می باشد که توسط تعدادی از شرکت های وابسطه به سازمان IEEE و تحت استاندارد آن به ثبت رسیده است.
در پروتکل JTAG دسترسی کامل به CPU و حافظه ها فراهم می باشد, و شما می توانید داده های پردازش شده یا در حال پردازش توسط آن ها را مشاهده کنید, شما می توانید داده را در حافظه ها بنویسید یا از آن ها بخوانید. در این پروتکل, امکانات زیادی در اختیار شما گذاشته شده است.
معرفی ۴ پایه اصلی برای ارتباط با سخت افزار از طریق رابط JTAG
۱- TCK (Test Clock Input) : Clock ورودی, این پالس برای همزمانی میان دستگاه مورد تست و پروگرامر JTAG می باشد.
۲- TDI -&-Test Data In : از طریق این پایه, داده از پروگرامر به دستگاه در حال تست وارد می شود.
۳- TDO -&-Test Data Out : از طریق این پایه, داده از دستگاه مورد تست به پروگرامر ارسال می شود.
۴- TMS -&-Test Mode Select : از طریق این پورت حالت های مختلف تست انتخاب می شود.
نکته : هر وسیله ای که با استاندارد JTAG سازگار باشد لازم است تا پین های نامبرده شده در بالا را داشته باشد.
همچنین در این میان دو پایه دیگر نیز وجود دارد:
۵- TRST -&-Test Reset Input : این پایه از پروگرامر به ریست دستگاه متصل می شود و قبل از شروع کار آن را بازنشانی می کند.
۶- JTAGSEL -&-TJAG SELECT : برای راه اندازی پروتکل JTAG, این پایه باید یک شود.
:: کابل ارتباطی JTAG
کابل ارتباطی وظیفه اتصال دستگاه مورد تست را به پروگرامر به عهده دارد, معمولا پروگرامر از طریق یک کابل دیگر به پورت سریال یا موازی کامپیوتر متصل می شود. سخت افزار JTAG وظیفه کنترل داده های ارسالی و دریافتی و مراقبت از کامپیوتر در برابر خطاهای شخصی را به عهده دارد وظیفه نرم افزار JTAG تبدیل کدهای دریافتی به علائم نمایشی و کدهای قابل فهم برای انسان می باشد.
:: نرم افزار JTAG
ما برای راه اندازی واسط JTAG از نرم افزار رایگان HJTAG استفاده می کنیم.
:: سخت افزار JTAG
برای اتصال میکروکنترلر ARM به کامپیوتر از طریق واسط JTAG به یک سخت افزار نیاز دارید, این سخت افزار مطابق شکل زیر است:
اینم شکل ظاهری این بنده خدا هست؛ محصول شرکت segger
حالا ما اومدیم برنامه رو نوشتیم چطوری با این jlink کار کنیم
خوب کاری نداره خیلی راحته
در اینجا دو تا راه جلو مون هست
اولین راه اینکه با کمک برنامه خود شرکت segger این کار رو بکنیم
یا اینکه از داخل همان برنامه keil اینکار رو بکنیم که خیلی راحته و خیلی هم حال میده چرا چون همونجا که میزنی دیباگ بشه برنامت از همونجا میتونی بزنی که پروگرم هم بشه به همین راحتی
حالا بریم ببنیم چطوری میشه اینکار رو کرد و تنظیمات kile چگونه باید باشد.
خوب ببنید وقتی این دستگاه رو میخرید یه سی دی باهاش هست که قاعدتا درایورش توش هست و باید اونو نصب کنید
بعد که سیستم شما jlink رو شناخت نوبت به تنظیمات keil میرسه
به تنظیمات زیر توجه فرمایید.
بعد از کامپایل کردن برنامه نوشته شده و تولید فایل هگز آن از منوی project گزینه option for target را انتخاب میکنم
در پنجره باز شده وارد سربرگ debug l میشوم و در قسمت use گزینه jlink را مانند شکل زیر انتخاب میکنیم.
حال در تب utilitis نیز تنظیمات زیر را انجام میدهیم
روی seting کلیک میکنیم و وارد منوی زیر میشویم
خوب اینجا یه نکته مهم و اساسی لازم است توضیح بدم
در تصویر بالا زدن تیک reset and run مهم نیست زیاد
چرا ؟؟؟؟
چون عزیزان دل jlink های ما کپی است و گویا تا اینجا که من باهاش کار کردم فقط این قسمتش با نمونه اصلی تفاوت داره
یعنی اینکه در نمونه های اصلی وقتی کار پروگروم کردن تمام شود و این تیک ده شده باشد میکرو ریست میشود و برنامه اجرا میشود
در نمونه ای که من دارم که این اتقاف نمی افتد شاید در نمونه های شما این اتفاق افتاد
بعد از زدن این تیک روی add کلیک میکنیم
در منوی جدید باز شده باز هم روی add کلیک کنید و اینجا مثلا اگر با lpc 2368 کار میکنید باید گزینه زیر را add کنید
بعد از اینکار تمام منو ها رو ok کرده و از این منوها خارج میشویم
حال برای انجام پروگرم کردن فقط کافیست از منوی flash روی گزینه download کلیک کنید و کار انجام میشود
یا مانند شکل عمل کنید
همینجا لازم به ذکر است که این مراحل را باید برای هر پروزه به طور مجزا انجام شود
شاید برای بار اول کمی سخت باشد اما اگر دستتون راه بیفته کلا ژنج ثانیه هم کار ندارد
مطمعن باشید.
جلسه بعد به امید خدا در مورد دستورات gpio صحبت خواهیم کرد.
General-purpose input/output
تا دیدار بعد
در پناه حق
به امید دیدار
مهمان
سلام .یک مشکلی که من هنگام پروگرام دارم اینکه بار اول پروگرام میکنه ولی برای بار دوم پیغام خطای “check jatg cable….”,و بعدش پیغام ” target has been cancelled ” میاد.میشه کمکم کنید؟
مهمان
سلام دوست عزیز
ممنون از سایت خیلی خوبتوم
من LPC1768 توسط فلش مجیک پروگرم می کنم و وریفای هم میشه، ولی بعدش میکرو کار نمی کنه. می دونید مشکلش چیه؟
مدیر سایت
سلام-من با خود KEIL پروگرام میکنم والا با اینی که میگی کار نکردم – ولی خب اگه برنامه رو BOOT نمیره – نباید مشکلی باشه -( چون خودم قبلا برنامه ها رو روی bOOT اش میریختم کار نمیکرد – یعنی از طریق بوت لودر پروگرامش میکردم کار نمیکرد )
مهمان
سلام تشکر از آموزشتون
کاش پایه های خروجیه این jlink رو توضیح میدادین کودوم رو به کودوم پایه میکرو باید وصل کنیم
و این که این دستگاه ۱۴تا خروجی داره نیازه همشون وصل بشن؟؟؟؟
مدیر سایت
سلام
به شماتیک هدربرد های eca و شماتیک jlink مراجعه کنید – من اطلاعی از پایه هاش ندارم.
مهمان
ضمن خسته نباشید به مدیر سایت . با توجه به اینکه شما آموزش های متعددی رو در مورد arm دارید لطفا” برای جلوگیری از به هم ریختگی ترتیب جلسات ، لینک جلسه بعد و همینطور جلسه قبل رو توی هر آموزش قرار بدید. با تشکر
مدیر سایت
از منو سایت میتونید به لیست مطالب هر دسته مراجعه کنید – حرفتون هم صحیح هستش ولی معمولا فراموش میشه این کار.
مهمان
سلام خسته نباشی.
فقط خواستم بگم سایت عالی داری و خیلی خیلی خوب مینویسی.
موفق باشی.
مدیر سایت
سلام
لطفا عکس ها رو تو سایت آپلود کن….
این سایت های آپلود سنتر بعد مدتی فایل ها رو پاک میکنن….
الان یکی از عکس ها باز نمیشه…..
بعد مدتی همشون لینکاشون از بین میره…..
مهمان
عالی بود .

مثل همیشه . بچه های dmf ترکوندن .
————————————————-
2368 از سری arm7 – tdmi است . و 1768 از سری cortex m3
با توجه به اینکه برای سری cortex کتابخانه مشترک cmsis ارائه شده به نظرتون بهتر نیست روی 1768 متمرکز بشیم ؟
روی cmsis هم وقت بزاریم !
————————————————-
شنبه میرم مواد لازم رو میخرم . بدجوری داری وسوسم میکنی .
خیلی وقت بود میخواستم شروع کنم .
نویسنده این مطلب
دقیقا منم با شما موافقم
چون این دو تا میکرو از لحاظ پایه کاملا شبیه هم هستند خیلی کاربردی هستند
در مورد اون توابع هم ایشالله بعد از اینکه با gpio راه افتادیم سراغ آنهعا هم میریم منم خیلی دوست دارم روی آن توابع cmsis کار کنیم
نویسنده این مطلب
دوستان اگر عمری بود امشب آموزش دستورات gpio رو میذارم
این دستورات کلا دستورات مربوط به ورودی و خروجی کردن پورتها و ست و کلر کردن آنها است
که سعی میکنیم در یک مبحث دستورات مربوط به 1768 و 2368 رو به طور جداگانه قرار بدهیم و گار عمری بود یک تمرین با این دو میکرو انجام بدیم و دور هم یه چند تا led روشن خاموش کنیم ببنیم میتونیم یا نه