KnowledgePlus.ir
5.48K subscribers
47 photos
11 videos
16 files
176 links
کانال مهندس اوژن کی نژاد
کلیه مطالب این کانال به جز مواردی که صریحا در متن آن ذکر شده باشد جنبه تالیفی دارد و از جایی کپی نشده است.
کانال اشتغال:
@KnowledgePlusir
@StepMotor
@MC3Delta
@FindChips
instagram.com/knowledgeplus.ir
aparat.com/KnowledgePlus
Download Telegram
با توجه به مشترک بودن اکثر دستورات اسمبلی در خانواده های AVR و XMEGA، علاقه مندان به فراگیری برنامه نویسی اسمبلی برای خانواده XMEGA می توانند به بخش های 76 تا 91 فیلم های آموزش AVR مراجعه کنند.

@KnowledgePlus
نمونه ای از یک مدار چاپی که رسم آن بصورت یک رو تنها به دلیل استفاده از قطعات غیر smd و امکان عبور track ها از بین پایه های قطعات ممکن شده است.

@KnowledgePlus
نقل یک تجربه عملی:

در یک برد صنعتی مبتنی بر میکروکنترلر، اتصال اتفاقی زمین مدار به بدنه فلزی یک موتور dc ولتاژ بالا باعث اعمال نویز شدید به میکروکنترلر و هنگ کردن مداوم آن میشد که با قطع اتصال زمین مدار از بدنه موتور، مشکل برطرف گردید.

@KnowledgePlus
نکته مهم برای انتخاب یک میکروکنترلر:

از آنجایی که ممکن است برخی از واحد های سخت افزاری در یک میکروکنترلر برای انجام وظایف خود از پین های مشترکی استفاده کنند، قضاوت برای انتخاب یک میکروکنترلر تنها بر اساس فهرست سخت افزارهای جانبی آن کافی نیست. بلکه باید در ابتدا بررسی شود که آیا در میکروکنترلر انتخاب شده، دسترسی به تمام سخت افزار های مورد نیاز با توجه به نحوه تخصیص پین ها مقدور هست یا نه. زیرا ممکن است به دلیل استفاده مشترک دو یا چند سخت افزار از یک یا چند پین و عدم امکان انتخاب پین های جایگزین، استفاده از برخی از آن سخت افزارها بصورت همزمان با هم ممکن نباشد و علیرغم وجود آن سخت افزارها نتوان از آنها بصورت توام استفاده کرد.

@KnowledgePlus
نکته طراحی مدار:

برای محافظت کنتاکت های رله در مقابل جرقه های ناشی از سوییچ کردن بارهای سلفی تغذیه شده با ولتاژ متناوب می توان وریستوری با مشخصات مناسب را با کنتاکت رله موازی کرد.

@KnowledgePlus
به دوستان علاقه مند به مباحث مرتبط با میکروکنترلرها پیشنهاد می شود که برای عمیق تر کردن اطلاعات خود و تسلط هر چه بیشتر به امکانات میکروکنترلر مورد نظر، کاربردهای اجرایی و عملیاتی را برای مدهای مختلفی که در سخت افزار ها پیش بینی شده بیابند و بررسی کنند که چه کاربردی ممکن است برای هر مد و قابلیتی وجود داشته باشد که طراحان آن میکروکنترلر را مجاب کرده که آن قابلیت را در سخت افزار بگنجانند. به عنوان یک مثال در AVR که قابلیت Force output compare برای برخی تایمر ها وجود دارد، ممکن است هیچ گاه به این قابلیت توجه نکرده باشیم که چرا چنین امکانی در تایمر تعبیه شده است. یا مثلا در XMEGA یک قابلیت توزیع pwm روی پین های دلخواه وجود دارد که قرار دادن چنین امکانی از طرف کارخانه سازنده بی دلیل نبوده است و می توانیم کاربرد هایی برای این مد بیابیم. به همین ترتیب و با همین دید می توان کاربرد های عملیاتی ممکن برای هر قابلیت موجود در سایر واحدهای سخت افزاری را بررسی کرد.

@KnowledgePlus
تمرین برنامه نویسی c:

اگر a از نوع char باشد، مقدار x بعد از اجرای عبارت زیر در هر یک از دو فرض چقدر است؟
الف- x از نوع char باشد.
ب- x از نوع int باشد.

x=(((((a=2)<1)?0:100)%11)«8);

پاسخ تشریحی: ابتدا a برابر 2 قرار داده می شود. سپس در عبارت:

(((a=2)<1)?0:100)

چون 2 کوچکتر از 1 نیست، کل عبارت برابر 100 خواهد بود. در مرحله بعد باقیمانده تقسیم 100 بر 11 محاسبه می شود که برابر با 1 است. در نهایت هم حاصل شیفت به چپ 1 به میزان 8 بیت محاسبه می شود که اگر x از نوع char باشد به دلیل 8 بیتی بودن، مقدار 0 در آن قرار خواهد گرفت و اگر x از نوع int باشد، مقدار 256 یا 0x100 در آن قرار خواهد گرفت.

@KnowledgePlus
مطابق تست های انجام شده، در IAR و AtmelStudio امکان تعریف متغیر در متن for که امکان مفیدی برای صرفه جویی در حافظه است، مانند مثال زیر قابل انجام است و خطایی از طرف کامپایلر ایجاد نمی شود:

for(unsigned char i=0;i<10;i++){...}

اما در Codevision (نسخه 2.05) این نوع تعریف از طرف کامپایلر پذیزفته نمی شود و خطا ایجاد می شود.

@KnowledgePlus
نقل یک تجربه عملی:

در آزمایش های انجام شده مشاهده شد که اکثر قریب به اتفاق IC های LM2576HVT-ADJ موجود در بازار تقلبی هستند و در ولتاژ و جریان های بالا دچار افت ولتاژ در خروجی می شوند که با واردات مستقیم این IC از مبدا خارجی معتبر، مشکل برطرف گردید.

@KnowledgePlus
توصیه ای به دوستانی که قصد دارند برنامه نویسی میکروکنترلر را بصورت حرفه ای و در بالاترین سطح دنبال کنند:

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

@KnowledgePlus
در تولید بردها و دستگاه های صنعتی حتی در صورت اطمینان از عدم وجود Earth در محل نصب دستگاه ها، در هر صورت اتصال Earth به بدنه را رعایت کنید و برای اتصال به برق شهر از پریزهای Earth دار و مانند آن استفاده کنید تا در صورت وقوع برق گرفتگی، مسوولیتی متوجه شما به عنوان تولیدکننده دستگاه نباشد.

@KnowledgePlus
معرفی قطعه:

قطعه Reed switch که در بازار معمولا به عنوان رید رله از آن نام برده می شود، شامل یک کنتاکت مکانیکی است که نزدیک کردن آهنربا به آن باعث اتصال کنتاکت و برقراری جریان می شود.

@KnowledgePlus
نکته آموزشی:

در استپر موتور منحنی مشخصه Pull out torque، گشتاوری در هر دور معین از موتور را مشخص می کند که اگر گشتاور بیشتری از آن به موتور وارد شود، موتور متوقف می شود و یا از پالس های ورودی به درستی تبعیت نمی کند (یا به اصطلاح پالس ها را گم می کند).

@KnowledgePlus
نکته آموزشی:

علیرغم 8 بیتی بودن CPU در AVR و XMEGA، دستورات اسمبلی MOVW و ADIW و SBIW بصورت توام روی 16 بیت عمل می کنند.

@KnowledgePlus
نکته ای در تعمیرات بردهای الکترونیک:

در مدار چاپی های دو لایه و بیشتر که در آوردن IC های خراب dip با تعداد پایه های زیاد بوسیله قلع کش یا هوای گرم می تواند باعث آسیب رساندن به مدار چاپی شود، یک روش این است که ابتدا با تیغ موکت بری یا کف چین کلیه پین های IC را از بدنه آن قطع کنیم و سپس پین های جدا شده را بصورت تک تک با گرم کردن بدنه آن در بیاوریم و در نهایت با قلع کش، قلع داخل پدها را خارج کنیم.

(لطفا از کپی کردن پست ها خودداری و تنها به شکل فوروارد منتشر شود)

@KnowledgePlus
بارها این سوال از طرف دوستان مختلف مطرح می شود که چگونه از طریق رشته الکترونیک کسب درآمد کنیم و چرا کاری برای ما وجود ندارد و مواردی از این قبیل. بصورت خلاصه بازار رشته الکترونیک امروزه از فارغ التحصیلان بی تجربه و با اطلاعات ضعیف و سطحی اشباع شده و یک مدرک لیسانس یا حتی فوق لیسانس، ویژگی و مزیت خاصی را به تنهایی برای یک فرد جویای کار ایجاد نمی کند و افرادی در این میان متمایز می شوند که با سنجش شرایط و جوانب، یک حوزه تخصصی را انتخاب کنند و تا جایی که ممکن است در آن بخش مطالعه و تحقیق و تمرین کنند چنانکه بتوانند در آن موضوع به عنوان یک فرد صاحب نظر و مسلط مطرح شوند. مشاهدات نشان می دهد در همین بازار راکد هم برای اینگونه افراد معمولا فرصت های شغلی و درآمد های خوبی به ویژه در بخش خصوصی فراهم است.

@KnowledgePlus
نکته ای در کدنویسی:

برای آن که بتوانیم از یک کد با کمترین تغییرات برای آرایش های سخت افزاری مختلف استفاده کنیم، ابتدا می توانیم تعاریفی را برای آرایش سخت افزاری انجام دهیم به گونه ای که در صورت تغییر پورت ها یا پین ها ، نیازی به تغییر در جزییات کد اصلی نباشد. بهتر است تعاریف مربوط به آزایش سخت افزاری را در فایل جداگانه ای در پروژه قرار دهیم.
مثلا فرض کنیم یک LED در AVR با واسطه یک مقاومت به PA3 متصل باشد و بخواهیم کد نویسی برای روشن و خاموش کردن این LED را به یک شکل عمومی بنویسیم. اگر ابتدا تعریف کنیم :

#define LED_PORT PORTA

#define LED_DDR DDRA

#define LED_bp 3

#define LED_bm (1«LED_bp)

در اینصورت برای خروجی کردن پین متصل به LED می توان نوشت:

LED_DDR|=LED_bm;

یک کردن پین متصل به LED:

LED_PORT|=LED_bm;

صفر کردن پین متصل به LED:

LED_PORT&=~LED_bm;

مزیت این روش این است که اگر آرایش سخت افزاری تغییر کند و هر پورت و پین دیگری هم مورد استفاده قرار بگیرد، با تغییر آن تعاریف اولیه می توانیم از یک کد مشترک استفاده کنیم. البته همانطور که قبلا در یکی از پست های آموزشی اشاره شد( https://telegram.me/KnowledgePlus/139 )، استفاده از این روش در مواردی می تواند منجر به کند شدن روند اجرای برنامه شود.

@KnowledgePlus
در میکروکنترلر XMEGA روی برخی پین های خاص می توان فرکانسی حداکثر تا 128MHz معادل با 4 برابر فرکانس کلاک CPU ایجاد کرد.

@KnowledgePlus
یک روش تجربی و ارزان برای تست میزان نویز پذیری بخش تغذیه مدارات میکروکنترلری که از برق شهر تغذیه می شوند، استفاده از چوک های مهتابی های قدیمی است. در این روش می توانیم به دو سر چوک مهتابی سیم متصل کنیم و چندین بار سیم یا دو شاخه متصل به چوک را بصورت متوالی و پشت سر هم به خط برق تغذیه کننده مدار میکروکنترلری وصل و از آن قطع کنیم که در صورت عدم وجود حفاظت کافی در مدار تغذیه میکروکنترلر، این کار می تواند منجر به ریست شدن یا هنگ کردن میکروکنترلر یا LCD یا سایر اجزای نویز پذیر شود. در انجام این آزمایش، مراقب برق گرفتگی باشید.

@KnowledgePlus