armeducation – Telegram
armeducation
3.58K subscribers
367 photos
326 videos
115 files
370 links
آموزش حرفه ای میکروکنترلرهای ARM

ادمین:
@mzarkoob
مهندس مهدی زرکوب
شروع مطالب :
https://news.1rj.ru/str/armeducation/1
اینستاگرام :
@armeducation
کانال ایتا:
https://eitaa.com/armeducation
همراه :
09359956361
Download Telegram
روال خواندن از تاچ به این صورت است که ابتدا موقعیت چهار نقطه در گوشه های صفحه تاچ گرفته می شود (کالیبراسیون). سپس سایر نقاط بر اساس این 4 نقطه مقایسه و موقعیت لمس شده تشخیص داده می شود. می توان توسط تابعی موقعیت لمس شده را به واحد پیکسل در tft lcd تبدیل کرد و نمایش داد تا بتوان درستی تاچ را تست کرد.
این چهار نقطه را می توان در جایی ذخیره کرد تا در دفعه بعد دستگاه روشن می شود لازم نباشد مجدد کالیبراسیون انجام شود.
روال خواندن یک نقطه نیز بدین صورت است : به محض اینکه توسط پایه TP_IRQ در لبه پایین رونده تشخیص زده شده شدن تاچ انجام شود، تعدادی موقعیت توسط تابعی خوانده می شود. این موقعیت ها از کوچک به بزرگ مرتب شده و چند نقطه ابتدا و انتها حذف و از سایر نقاط میانگین گرفته می شود.
@armeducation
تفاوت بین ارسال یک پیکسل برروی TFT در میکروکنترلر LPC1788 و LPC1768
میکروکنترلر LPC1788 دارای کنترلر LCD داخلی
میکروکنترلر LPC1768 توسط درایو، به LCD متصل است.
تفاوت قابل تشخیص است!؟
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
تست اولیه تاچ  4.3 اینچ در میکروکنترلر stm32f103rb با توجه به موارد ذکر شده
@armeducation
یکی از موارد پایه در ایجاد پروژه، نحوه ایجاد کتابخانه جدید و اضافه کردن آن به پروژه می باشد.
روش کار به این صورت است که تمام توابع در یک کتابخانه با فرمت c. مثلا name.c قرار داده و به پروژه اضافه می شود. تیتر تمام توابع که قصد داریم در جای دیگری استفاده کنیم در یک فایل با فرمت h. مثلا name.h قرار داده شده و در ابتدای هر فایلی که لازم داریم include می کنیم. در نرم افزار keil لازم است مسیر فایل های هدر h. در پروژه مشخص شود.
@armeducation
استفاده از توابع آماده مسئله ای است که تمام افراد تازه وارد به حیطه برنامه نویسی میکروکنترلرهای ARM با آن مواجه و ممکن است استفاده از آن برایشان جذاب باشد. در صورتی که آشنایی با این مقوله ندارید :
http://www.arm-education.ir/?p=102
در میکروکنترلرهای STM32 نیز کتابخانه ها و توابع HAL بدین منظور استفاده می شود که با نرم افزار STM32CubeMX نیز قابل ایجاد است.
و اما به نکاتی در این زمینه توجه داشته باشید:
- این کتابخانه ها به نظر سهولت در تنظیمات رجیسترها برای کسانی که نمی خواهند یا نمی توانند تنظیمات را رجیستری انجام دهند، ایجاد شده است.
- در صورتی که همیشه قصد دارید از توابع آماده برای کار استفاده کنید این موضوع را مد نظر داشته باشید که یک کاربر سطح پایین میکرو هستید. در صورتی که مشکلی در تنظیمات و ... پیش بیاید قادر به پیدا کردن ایراد نیستید. زیرا نمی دانید داخل این توابع چه کاری انجام شده و باید بشود و آیا درست انجام شده یا نه. توانایی رفع ایراد در صورت بروز مسئله مهمی است که نمی توان آن را نادیده گرفت. اینکه افرادی می گویند من تا الان استفاده کرده ام و دچارمشکل نشدم معیار نیست. اگر شما ایراد پیدا کردید و گیر کردید چه می کنید!؟ فیدبک هایی که از دیگران بوده مواردیکه با آن مواجه شده ایم نشان دهنده این است که ایرادتی وجود دارد.
- در صورتی که پریفرالهایی با رجیستر قبلا پیکربندی اولیه شده است و با توابعی می توان با آن عملی را انجام داد چه ضرورتی دارد حتما از توابع آماده CMSIS و یا HAL برای پیکربندی استفاده شود!؟
- اینکه نرم افزاری هست که خود ایجاد پروژه می کند جالب است ولی مگر چند بار برای یک میکرو نیاز به ایجاد پروژه است؟ (فقط یک بار) و مگر در انجام یک کار که چند ماه ممکن است طول بکشد چند بار می خواهید پریفرال ها را کانفیگ کنید و تغییر دهید؟ شاید یک بار بیشتر لازم نباشد بعد مهم اجرای الگوریم پیاده سازی کار است.
- در جایی که سرعت اجرا مهم است، استفاده از تابع در تابع باعث کاهش سرعت می شود. بنابراین بایستی مستقیما از رجیسترها برای مقدار دهی و مقدار خواندن استفاده شود.
- در صورتی که حجم فلش حافظه میکرویی محدود باشد (STM8) طبیعتا استفاده از کتابخانه های آماده ما را در حجم برنامه محدود می کند.
- اگر مدل میکرویی لازم باشد استفاده کنید که توابع آماده ایی برای آن نباشد، در صورتی که صرفا یادگرفته باشید با توابع آماده کار کنید نمی توانید راه اندازی اولیه ای از پریفرالها و تغییر در آن داشته باشید.
@armeducation
گاهی آنقدر در کاری که در حال انجام آن هستیم غرق می شویم که اصول اولیه را فراموش می کنیم.
- ایرادی در عدم کارکرد پریفرالی وجود دارد، فراموش می کنیم چک کنیم پاور و کلاک آن درست است؟ پایه ها درست کانفیگ شده؟ اصلا تابع اینیشیالیز در برنامه اصلی فراخوانی شده!؟
- فراموش می کنیم هر مرحله کار که پیش می رود در یک پوشه جدید انجام دهیم تا اگر مشکلی پیش آمد بتوان به یک مرحله قبل که کار می کرد باز گشت و ادامه داد.
- اتصال پروگرامر به برد انجام نشده دنبال این هستیم چرا موقع پروگرام خطا میدهد و چرا پروگرامر را نمی شناسد ! 😂
گاهی کمی تامل، استراحت و شروع از صفر لازم است. 👍
....
@armeducation
فیلم آموزش پیشرفته میکروکنترلر LPC1788 (کاملا کاربردی)
فروشگاه :
https://goo.gl/kKt72J
فروم ایران میکرو:
https://goo.gl/qccMOi

@armeducation
در حالت معمولی با قرار دادن دیتا در پایه های a تا g و dat و فعال کردن سگمنت مربوطه، نمایش در سون سگمنت انجام می شود. ولی می توان با تغییر الگوریتم کار، به شکل دیگری عمل کرد
👇ادامه ...
@armeducation
در حالت معمولی با قرار دادن دیتا در پایه های a تا g و dat و فعال کردن سگمنت مربوطه، نمایش در سون سگمنت انجام می شود. ولی می توان با تغییر الگوریتم کار، به شکل دیگری عمل کرد.
در نظر بگیرید برای نمایش 8 یا 9 یا .. تعداد بیشتری از سگمنت ها در سون سگمنت روشن شود. طبیعتا جریان کشی بیشتر خواهد شد. می توان در هر بار فقط یک سگمنت را روشن کرد و این کار به صورت چرخشی ادامه پیدا کند. مثلا می خواهید عدد 2 را نشان دهید. ابتدا فعال کردن شماره سون سگمنت1 -> a روشن و بعد a خاموش ، بعد b روشن و بعد b خاموش ، d روشن و بعد d خاموش ، e روشن و بعد e خاموش، g روشن و بعد g خاموش. بعد از این سراغ شماره بعدی سون سگمنت و عددی که قرار هست روی آن نمایش داده شود به همین شکل .....
فکر می کنید چه موقع نیاز به تغییر الگوریتم برنامه نویسی به منظور کاهش جریان کشی خواهید شد!؟
@armeducation
بنا به در خواست، لینک فروشگاه و فروم فیلم های آموزشی در کانال برای دسترسی سریع تر قرار داده می شود :
👇👇
@armeducation
مجموعه فیلم های آموزشی میکروکنترلرهای ARM :
—------------------------------—
آموزش کاربردی زبان C در میکروکنترلرهای ARM :
http://goo.gl/PoYFu1
تاپیک در فروم ایران میکرو :
http://goo.gl/hKvO0J
—------------------------------—
آموزش مقدماتی میکروکنترلر LPC1788 :
https://goo.gl/l4MmGP
تاپیک :
https://goo.gl/JEo7f9
—------------------------------—
آموزش پیشرفته میکروکنترلر LPC1788 :
https://goo.gl/kKt72J
تاپیک :
https://goo.gl/qccMOi
—------------------------------—
آموزش مقدماتی میکروکنترلر LPC1768 ورژن جدید :
http://goo.gl/vBlK6N
تاپیک :
http://goo.gl/FVaEnI
—------------------------------—
آموزش تکمیلی و پیشرفته میکروکنترلر LPC1768 :
http://goo.gl/YHLD0J
تاپیک :
http://goo.gl/HnLQAH
—------------------------------—

@armeducation
در بردی مانند LPC1788 می توان خروجی پایه های LCD را به یک TTL2LVDS (آی سی SN75LVDS83B)متصل نمود و خروجی های آن را به یک نمایشگر LED متصل نمایید
این میکرو دارای کنترلر داخلی LCD می باشد
@armeducation
پایه های ورودی نمایشگر 10.1 اینچی LED به ورودی های برد مربوطه متصل می شود. راه اندازی این LED شبیه به راه اندازی TFT LCD های 7 و 10 اینچ است.
@armeducation
مشاور چه نقشی ایفا می کند؟
برای یک شرکت یا سازمان یا شخصی، اینکه یک کاری چگونه انجام شود از اهمیت زیادی برخوردار است.زیرا در صورت تشخیص اشتباه وقت و هزینه زیادی تلف خواهد شد.
مثلا در حیطه الکترونیک یک کاری با فلان میکرو قابل انجام است ولی با FPGA انجام می شود! یا وجود یک fpga در کنار یک میکرو باعث بهبود عملکرد دستگاه می شود و ....
ممکن است انجام دهنده کار چنین تشخیصی نداشته باشد و فقط کاری که به او محول شده انجام دهد ولی یک مشاور تعیین جهت کلی را انجام می دهد.
دیده شده که به خاطر صرفه جویی یا بی اعتقاد بودن به این مسئله، کاری انجام شده و در عمل این تجربه حاصل شده. یعنی با صرف زمان و هزینه تجربه حاصل شده ولی از تجربه شخص دیگری به عنوان مشاور استفاده نشده است.
@armeducation
@armeducation
ساده ترین و ارزان ترین اینترفیس بین دستگاه و کاربر، led می باشد!
در بعضی دستگاه های صنعتی و تجاری به جهت نیاز نبودن قرار دادن LCD، کاهش هزینه و طول عمر بالاتر از چند led در دستگاه استفاده می شود. مثلا یک led چشمک زن برای نشان دادن اینکه دستگاه در حال اجرای برنامه است، قطع و وصل شده میکرو سوییچ و سنسورها و ..
مثلا برای اینکه مشخص شود چه خطایی در دستگاه اتفاق افتاده چند led قرار داده می شود و عدد باینری که led ها نشان می دهد، نمایان گر نوع خطای رخ داده است. (البته با مراجعه با راهنمای دستگاه) .
در صورتی که صرفا عدد در خروجی قرار است نمایش داده شود طبیعی است که 7segment دارای وضوح بیشتر و ارزان از LCD می باشد.
بنابراین نمی توان تصور کرد که چون از پروسسوری با قابلیت بالا یا میکروکنترلرهای ARM استفاده می کنید حتما برای دستگاه یک TFT LCD چند اینچ باید قرار داده شود! میکروکنترلرهای ARM قابلیت های دیگری به غیر از TFT LCD ها دارند که لازم می شود از آنها استفاده شود ولی نمایشگر یک 7Seg یا چند led باشد. البته دستگاهی که دارای نمایشگر LCD هم باشد کاربرپسندتر و دارای ارزش افزوده بیشتری است(به شرط طول عمر مناسب LCD استفاده شده)
@armeducation
در کار با بعضی پریفرال های یک میکرو مانند SD کارت و ... ، صرف آشنایی با عملکرد توابع کافی نیست بلکه مسئله اصلی وجود پروژه ای است که این توابع در آن درست کار کند. در نت نیز آموزش های برای این توابع وجود دارد ولی تا پروژه ای نباشد که این توابع در آن برای میکروکنترلر مورد نظر شما کار کند، عملا فایده ای ندارد!
@armeducation
👍1
@armeducation
یکی از امکانات میکروکنترلرهای ARM وجود پریفرال USB است. بدین معنا که دیگر نیازی به یک آی سی واسط برای اتصال به USB نیست و دو پایه D+ و D- مستقیما به پایه های میکرو متصل خواهد شد. در میکروکنترلرهایی که پریفرال USB را داشته باشد بدین صورت آمده است :
- lpc1768 : USB 2.0 full-speed Device controller and Host/OTG controller with DMA,
- lpc1788 : USB 2.0 full-speed controller configurable for either device, Host, or OTG.
- stm32f103 : USB 2.0 Full Speed Interface,
- stm32f107 : USB 2.0 Full Speed Device/Host/OTG Controller with on-chip PHY
میکروکنترلر stm32f103 فقط USB Device دارد و USB HOST ندارد.
در USB Device اتصال بین برد میکروکنترلری و کامپیوتر انجام می شود و در USB HOST اتصال وسیله ای مثل یو اس بی فلش به برد انجام می شود.
و در انتها OTG می تواند هم هاست باشد و هم دیوایس.

@armeducation
سخت افزار USB Device .
دو پایه D+ و D- مستقیما به پایه های میکرو متصل شده است.
با یک مقاومت پایه D+ به صورت Pull up شده است. با این کار LED مربوطه روشن می شود.
@armeducation
از دوستان عزیز تقاضامندم در صورت تمایل، مطالب پست ها را تنها بصورت فوروارد در سایر گروها و کانال ها (و سایت ها) قرار دهند و از کپی کردن مطالب بدون ذکر مرجع خودداری کنند.
با تشکر
@armeducation
در صورتی که مطالب آموزشی کانال را مفید می دانید شما معرف کانال به سایر دوستان خود باشید. 👇👇👇
با سپاس
@armeducation