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
نکته طراحی مدار:

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

@KnowledgePlus
چگونه می توانیم برای کامپایلرهای مختلف یک کد مشترک بنویسیم:

قابلیت Conditional Compilation این امکان را فراهم می کند که با کامپایل کردن مشروط بخش هایی از کد که وابسته به یک کامپایلر خاص هستند، برای کامپایلرهای مختلف بتوانیم یک سورس مشترک را بنویسیم. به عنوان یک مثال در کد زیر بسته به اینکه کامپایلر IAR یا Codevision یا AVR-GCC باشد، include های متناسب در هنگام کامپایل انجام می شود:

#if defined( __ICCAVR__ )
#include <ioavr.h>
#elif defined (__CODEVISIONAVR__)
#include <io.h>
#elif defined( __GNUC__ )
#include <avr/io.h>
#else
#error Compiler not supported
#endif

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

@KnowledgePlus
مطلب توضیح داده شده در این پست:

https://t.iss.one/KnowledgePlus/543

در کد ویژن هم تست شد و همان شرایط بر قرار بود و مقدار 65535 در صورت عدم type casting در z قرار می گرفت.

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

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

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

در هنگام آزمایش یک سیستم کنترلر PC based در یک محیط بسیار پر نویز صنعتی با انواع سرو موتورها و اینورترها و شیر برقی های در حال کار، ارتباط سریال با سیستم تحت کنترل توسط یک لپ تاپ Dell مجهز به پورت RS232 به خوبی و بدون مشکل بر قرار می شد. اما همین ارتباط از طریق یک کامپیوتر Desktop معمولی و غیر صنعتی دچار مشکل بود و بایت ها بصورت اشتباه رد و بدل می شدند و ارتباط بصورت مداوم قطع می شد.

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

@KnowledgePlus
قیمت بالای بردهای الکترونیک استفاده شده در نیروگاه ها:

بر حسب نقل قول از یکی از افراد مطلع در امر نیروگاه های برق، برخی بردهای الکترونیک استفاده شده در نیروگاه ها دارای قیمت های بالایی در محدوده 5 تا 20 میلیون تومان هستند و حتی بردهای خاصی تا حد 100 میلیون تومان هم در این بخش وجود دارند.

@KnowledgePlus
شاید تاسف بار تر از در گذشت مریم میرزاخانی این باشد که قدر امثال او را تا زنده هستند نمی دانیم. یادش گرامی باد.

@KnowledgePlus
معرفی یک کتاب مفید

@KnowledgePlus
تجربه ای از خرابی یک شارژر لپ تاپ:

در بررسی شارژری که علیرغم صحت ولتاژ خروجی، باتری لپ تاپ را شارژ نمی کرد مشخص شد که شارژر توسط سه سیم به لپ تاپ متصل شده که دو سیم تامین کننده ولتاژ اصلی هستند و سیم سوم یک آی سی به شماره DS2501 را به لپ تاپ متصل می کند. این آی سی نوعی EPROM است که بصورت 1wire ارتباط برقرار می کند و در هنگام اتصال شارژر به لپ تاپ اگر اطلاعات صحیح از این آی سی به لپ تاپ ارسال نشود، اجازه شارژ باتری داده نمی شود. به عبارت دیگر لپ تاپ تنها در صورتی اجازه شارژ باتری توسط شارژر را می دهد که اطلاعات درست را از این آی سی دریافت کند و تشخیص دهد که این یک شارژر معتبر و شناخته شده است. علت عدم شارژ باتری هم خرابی این آی سی و عدم ارسال دیتای درست به لپ تاپ بود.

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

@KnowledgePlus
به اطلاع می رساند که برگزاری دوره های آموزشی بصورت کلاس های حضوری اعم از عمومی و خصوصی از سال ۱۳۹۴ تاکنون متوقف شده و تا اطلاع ثانوی هم تصمیمی برای برگزاری چنین دوره هایی وجود ندارد. چنانچه آموزشی هم ارائه شود تنها به شکل فیلم های آموزشی رایگان یا مقالات و نمونه کد و مانند آن خواهد بود.

@KnowledgePlus
پیرو پست های زیر:

https://t.iss.one/KnowledgePlus/42
https://t.iss.one/KnowledgePlus/211
https://t.iss.one/KnowledgePlus/318
https://t.iss.one/KnowledgePlus/422

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

@KnowledgePlus
یک تجربه درباره مشکل اسیلاتورهای کریستالی:

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

@KnowledgePlus
در نمونه کد زیر که برای avr نوشته شده به دلیل این موضوع فکر کنید که چرا وقفه قبل از تغییر در data32 غیر فعال و بعد فعال شده است:

volatile unsigned long data32;
در حلقه اصلی برنامه:
...
cli();
data32++;
sei();
...
در روتین یک وقفه:
...
data32=0;
...

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

@KnowledgePlus
اخیرا برای تولید یک برد الکترونیک و به منظور قرار ندادن پتانسیومتر، دو نوع از LCD های کاراکتری 2x8 موجود در بازار از این نظر تست شدند که با قرار دادن چه مقاومتی بین پین تنظیم کنتراست تا زمین، بهترین سطح کنتراست ایجاد می شود که در یک نوع از LCD ها مقاومت 2.2K و در دیگری مقاومت 4.7K بهترین شرایط نمایش را ایجاد می کرد.

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

@KnowledgePlus
محاسبه سرانگشتی خازن خروجی پل دیود:

برای محاسبه ظرفیت خازن خروجی پل دیود به ازای ولتاژ ریپل دلخواه می توان از فرمول زیر استفاده کرد که در آن i جریان متوسط و Vr ولتاژ ریپل است.

C=0.01.i/Vr

@KnowledgePlus
زرنگی در دو نسخه

نسخه یک:

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

نسخه دو:

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

* انتخاب نسخه زرنگ بودن به عهده مخاطب.

@KnowledgePlus